很多人在年少時,曾經有一個駭客夢。
還記得“駭客”這個詞是我在一部名為《駭客帝國》的電影中第一次接觸到,雖然那時我並沒有學習網路安全相關知識,但是裡面的情景卻深深地印在了我的腦海中。眼花繚亂的命令列畫面讓我興奮不已,幻想著自己以後也能夠敲出神奇的命令,其中關於注入木馬病毒的場景至今記憶猶新。
隨著網際網路的快速發展,網路攻擊日益頻繁,惡意程式碼常被用於控制目標伺服器,執行系統命令、監控作業系統等。惡意程式碼分析工程師需要分析惡意程式碼的樣本,提取shellcode 二進位碼,歸納總結惡意程式碼的特徵碼。使用特徵碼辨識對應的惡意程式碼,從而檢測和查殺對應的惡意程式。
目前市面上很少有關於逆向分析惡意程式碼的入門類書籍,這正是撰寫本書的初衷,希望本書能為網路安全行業貢獻一份微薄之力。透過撰寫本書,筆者查閱了大量的資料,使知識系統擴大了不少,收穫良多。
本書主要內容
第1 章介紹架設惡意程式碼分析環境,包括FLARE VM 及Kali Linux 虛擬機器的安裝。
第2 章介紹Windows 程式基礎,包括PE 檔案結構和PE 分析工具。
第3 章介紹生成和執行shellcode,包括Metasploit Framework 生成shellcode和C 語言載入執行shellcode。
第4 章介紹逆向分析工具基礎,包括靜態分析工具IDA 和動態分析工具x64dbg。
第5 章介紹執行PE 節中的shellcode, 包括嵌入PE 節的原理, 執行嵌入.text、.data、.rsrc 的shellcode。
第6 章介紹base64 解碼的shellcode,包括base64 解碼原理、執行base64解碼的shellcode,以及使用x64dbg 工具分析提取shellcode。
第7 章介紹XOR 互斥加密shellcode,包括XOR 互斥加密原理、執行XOR互斥加密的shellcode,以及使用x64dbg 工具分析提取shellcode。
第8 章介紹AES 加密shellcode,包括AES 加密原理、執行AES 加密的shellcode,以及使用x64dbg 工具分析提取shellcode。
第9 章介紹建構shellcode runner 程式,包括C 語言載入並執行shellcode 的多種方法,C 語言載入並執行shellcode 的方法,以及Virus Total 分析惡意程式碼的使用方法。
第10 章介紹API 函式混淆,包括API 函式混淆的原理與實現,以及使用x64dbg 工具分析API 函式混淆。
第11 章介紹處理程序注入技術,包括處理程序注入原理與實現,使用Process Hacker 和x64dbg 工具分析處理程序注入。
第12 章介紹DLL 注入技術,包括DLL 注入原理與實現,使用x64dbg 工具分析提取shellcode。
第13 章介紹Yara 檢測惡意程式的原理與實踐,包括安裝Yara 工具,以及使用Yara 工具的規則檔案檢測惡意程式碼。
第14 章介紹檢測和分析惡意程式碼,包括架設REMnux Linux 環境,分析惡意程式碼的惡意域名資訊,剖析惡意程式碼的網路流量和檔案行為。
閱讀建議
本書是一本基礎入門加實戰的書籍,既有基礎知識,又有豐富範例,包括詳細的操作步驟,實操性強。由於逆向分析惡意程式碼的相關技術較多,所以本書僅對逆向分析惡意程式碼的基本概念和技術進行介紹,包括基本概念及程式範例。每個基礎知識都配有程式範例,力求精簡。對於每個基礎知識和專案案例,先通讀一遍有個大概印象,然後將每個基礎知識的實例程式在分析環境中操作一遍,加深對基礎知識的印象。
建議讀者先把第1 章架設惡意程式碼分析環境通讀一遍,架設好分析環境。
第2~5 章是逆向分析惡意程式碼的基礎,掌握Windows 作業系統PE 檔案結構,將生成的shellcode 二進位碼嵌入PE 檔案的不同節區,使用C 語言載入並執行嵌入的shellcode 二進位碼。了解逆向分析工具IDA 和x64dbg 的基礎。
第6~9 章是關於解碼和加密shellcode 二進位碼的內容,掌握base64 解碼、XOR 互斥加密、AES 加密shellcode 二進位碼,能夠使用x64dbg 工具分析提取shellcode 二進位碼。
第10~14 章是關於規避檢測和實戰分析的內容, 掌握API 函式混淆、處理程序注入、DLL 注入規避檢測的技術,能夠使用x64dbg 工具分析並提取shellcode 二進位碼。掌握Yara 工具檢測惡意程式碼的基本使用方法。架設REMnux Linux 環境,實戰分析惡意程式碼的網路流量和檔案行為。
繁體中文版出版說明
本書原作者為中國大陸人士,書中使用軟體之操作範例圖多有簡體中文。為確保本書內容讀者可順利執行,本書部分章節之範例圖均保持簡體中文介面,唯請讀者在閱讀時能對照前後文參考。
致謝
首先感謝我敬愛的主管劉高峰校長對我工作和生活的指導,給予我的關心與支援,點撥我的教育教學,指明我人生的道路,正是你的教誨和領導,才讓我更有信心地堅持學習並專研網路安全技術。
感謝趙佳霓編輯對內容和結構上的指導,以及細心的審閱,讓本書更加完善和嚴謹,也感謝清華大學出版社的排版、設計、審校等所有參與本書出版過程的工作人員,有了你們的支援才會有本書的出版。
最後感謝我深愛的妻子、我可愛的女兒,感謝你們在我撰寫本書時給予的無條件的理解和支援,使我可以全身心地投入寫作工作,在我專心寫書時給了我無盡的關懷和耐心的陪伴。
由於時間倉促,書中難免存在不妥之處,請讀者見諒,並提寶貴意見。
劉曉陽