各界好評推薦
本書可以讓讀者學習到相關基礎知識,學習到新科技的研究方法,學習到別人如何使用這些基礎知識來建構攻防。這是一本打底基礎的好書,我推薦給大家。
趨勢科技 資深協理 張裕敏
以攻擊角度協助企業防守方了解駭客攻擊 Windows 系統手法的中文書,這是第一本!非常期待這本書能協助資安從業人員、資安防護產品工程師與駭客攻防之愛好自學者,了解更多攻擊手法,以習得更完整之防禦對應。
立勤國際法律事務所主持律師 黃沛聲
對資安實務技術有興趣但僅有修習過作業系統、編譯器原理的資訊相關科系的讀者,這本書絕對是讓你們一窺資訊安全領域精彩的首選工具書之一,我推薦給大家。
鄭欣明
國立臺灣科技大學 資訊工程系 副教授
中央研究院 資訊科技創新研究中心 合聘副研究員
教育部資安人才培育計畫 AIS3 主持人
全台第一本反守為攻的資安教戰守則!
囊括了近年第一線各國之國家級網軍曾使用過的奇技淫巧,從扎實的基礎逐步剖析攻擊原理與復現惡意利用。
★內容由淺入深,務使讀者打下最穩固的基礎,讓所學更能應用在實戰上
★編譯器原理、作業系統與逆向工程實務,一次網羅學習逆向工程的三大主題
★全台第一本,從攻擊方角度剖析網軍在野行動所使用過的軍火細節,化被動為主動更能見招拆招!
★軟體工程師、資安研究員、逆向工程愛好者、滲透測試人員、資安防護產品工程師、對駭客技巧有興趣者的必備好書
本書是作者以自身逆向工程十年的經驗累積而成,其中結合了編譯器原理、作業系統與逆向工程實務三者混著介紹的書;坊間已經有了許多獨立介紹單一主題且非常深度的書,然而逆向工程實際上需要有這三個不同領域都非常扎實的基礎與脈絡才能融會貫通,作者因而催生了撰寫一本專為逆向工程有興趣的入門者撰寫書籍的想法。
此書內容由淺入深,從基礎的C語言原始碼開始談及編譯器如何將它編譯,並且遵照可執行檔案格式(PE)封裝為靜態*.EXE檔案,接下來是作業系統如何解析*.EXE檔案並裝載為Process使其能真正的執行起來的完整流程。其中,除了介紹扎實的作業系統實現基礎外,並帶以各國網軍(如 CIA、海蓮花、APT41)曾玩轉這些基礎的惡意利用手段,使讀者能一窺網軍如何操作這些奇技淫巧來打擊防毒軟體。這本書的內容能讓無論是網軍、逆向工程愛好者甚至威脅研究員都能以紅隊視角打下對PE格式扎實的基礎!
本書線上資源下載
https://github.com/aaaddress1/Windows-APT-Warfare
作者簡介:
馬聖豪(Sheng-Hao Ma)
網路暱稱 aaaddress1(adr)。目前為資安社群CHROOT的核心成員。他在逆向工程領域具有十年以上的經驗、專研於 Windows漏洞缺陷、逆向工程、C/C++、x86、編譯器原理、作業系統特性等多個領域。曾任S&P、DEFCON、BlackHat、HITB、HITCON、CYBERSEC等國內外各個頂級研討會的議程講者。此外,他也在HITCON與教育部系列課程中,開設Windows漏洞與惡意程式分析相關的教育訓練。
Twitter: @aaaddress1
Blog: blog.30cm.tw
Email: aaaddress1@chroot.org
封面主圖設計:黃梵真(湯湯水水設計工作所)
目錄
CHAPTER 01 一個從 C 開始說起的故事
最精簡的 Windows 程式
組合語言腳本生成(C Compiler)
組譯器(Assembler)
組譯程式碼
連結器(Linker)
從靜態一路到動態執行
CHAPTER 02 檔案映射(File Mapping)
PE 靜態內容分佈
NT Headers
Section Headers
Lab 2-1 靜態PE解析器(PE Parser)
動態檔案映射
Lab 2-2 PE 蠕蟲感染(PE Patcher)
Lab 2-3 手工自造連結器(TinyLinker)
Lab 2-4 Process Hollowing(RunPE)
Lab 2-5 PE To HTML(PE2HTML)
CHAPTER 03 動態函數呼叫基礎
呼叫慣例
TEB(Thread Environment Block)
PEB(Process Environment Block)
Lab 3-1 參數偽造
Lab 3-2 動態模組列舉
Lab 3-3 動態模組資訊偽造
CHAPTER 04 導出函數攀爬
Lab 4-1 靜態 DLL 導出函數分析
Lab 4-2 動態 PE 攀爬搜尋函數位址
Lab 4-3 手工 Shellcode 開發實務
Lab 4-4 Shellcode 樣板工具開發
CHAPTER 05 執行程式裝載器
Lab 5-1 靜態引入函數表分析
Lab 5-2 在記憶體中直接呼叫程式
Lab 5-3 引入函數表劫持
Lab 5-4 DLL Side-Loading(DLL 劫持)
CHAPTER 06 PE 模組重定向(Relocation)
Lab 6-1 精簡版執行程式裝載器設計
CHAPTER 07 將EXE 直接轉換為 Shellcode(PE To Shellcode)
CHAPTER 08 加殼技術(Executable Compression)
加殼器(Packer)
殼主程式(Stub)
CHAPTER 09 數位簽名
Authenticode Digital Signatures
驗證嵌入數位簽章
WinVerifyTrust 內部認證流程
PE 結構中的 Authenticode 簽名訊息
證書簽名訊息
Lab 9-1 簽名偽造(Signature Thief)
Lab 9-2 雜湊校驗繞過
Lab 9-3 簽名擴展攻擊
濫用路徑正規化達成數位簽章偽造
CHAPTER 10 UAC 防護逆向工程至本地提權
UAC 服務概要
RAiLaunchAdminProcess
UAC 信任授權雙重認證機制
Authentication A(認證A)
Authentication B(認證B)
UAC 介面程式 ConsentUI
UAC 信任認證條件
不當註冊表配置引發的特權劫持提權
Elevated COM Object UAC Bypass
Lab 10-1 Elevated COM Object(IFileOperation)
Lab 10-2 CMSTP 任意特權提升執行
Lab 10-3 透過信任路徑碰撞達成提權
APPENDIX A 附錄
Win32 與NT 路徑規範
DOS 路徑1.0
DOS 路徑2.0
例子1
例子2
例子3
例子4
例子5
例子6
例子7
例子8
CHAPTER 01 一個從 C 開始說起的故事
最精簡的 Windows 程式
組合語言腳本生成(C Compiler)
組譯器(Assembler)
組譯程式碼
連結器(Linker)
從靜態一路到動態執行
CHAPTER 02 檔案映射(File Mapping)
PE 靜態內容分佈
NT Headers
Section Headers
Lab 2-1 靜態PE解析器(PE Parser)
動態檔案映射
Lab 2-2 PE 蠕蟲感染(PE Patcher)
Lab 2-3 手工自造連結器(TinyLinker)
Lab 2-4 Process Hollowing(RunPE)
Lab 2-5 PE To HTML(PE2HTML)
CHAPTER 03 動態函數呼叫基礎
呼叫慣例
TEB(Thread Envi...