Python灰帽子 黑客與逆向工程師的Python編程之道pdf

圖書網
圖書網
圖書網
10388
文章
1383
評論
2019年7月20日13:25:22 4 200

Python灰帽子 黑客與逆向工程師的Python編程之道 內容簡介

《Python灰帽子:黑客與逆向工程師的Python編程之道》是由知名安全機構Immunity Inc的資深黑帽Justin Seitz先生主筆撰寫的一本關于編程語言Python如何被廣泛應用于黑客與逆向工程領域的書籍。老牌黑客,同時也是Immunity Inc的創始人兼首席技術執行官(CTO)Dave Aitel為本書擔任了技術編輯一職。本書的絕大部分篇幅著眼于黑客技術領域中的兩大經久不衰的話題:逆向工程與漏洞挖掘,并向讀者呈現了幾乎每個逆向工程師或安全研究人員在日常工作中所面臨的各種場景,其中包括:如何設計與構建自己的調試工具,如何自動化實現煩瑣的逆向分析任務,如何設計與構建自己的fuzzing工具,如何利用fuzzing測試來找出存在于軟件產品中的安全漏洞,一些小技巧諸如鉤子與注入技術的應用,以及對一些主流Python安全工具如PyDbg、Immunity Debugger、Sulley、IDAPython、PyEmu等的深入介紹。作者借助于如今黑客社區中備受青睞的編程語言Python讀者構建出精悍的腳本程序來一一應對上述這些問題。出現在本書中的相當一部分Python代碼實例借鑒或直接來源于一些優秀的開源安全項目,諸如Pedram Amini的Paimei,由此讀者可以領略到安全研究者們是如何將黑客藝術與工程技術優雅融合來解決那些棘手問題的。

Python灰帽子 黑客與逆向工程師的Python編程之道 目錄

第1章 搭建開發環境

1.1 操作系統要求

1.2 獲取和安裝Python 2.5

1.2.1 在Windows下安裝Python

1.2.2 在Linux下安裝Python

1.3 安裝Eclipse和PyDev

1.3.1 黑客摯友:ctype庫

1.3.2 使用動態鏈接庫

1.3.3 構建C數據類型

1.3.4 按引用傳參

1.3.5 定義結構體和聯合體

第2章 調試器原理和設計

2.1 通用寄存器

2.2 棧

2.3 調試事件

2.4 斷點

2.4.1 軟斷點

2.4.2 硬件斷點

2.4.3 內存斷點

第3章 構建自己的Windows調試器

3.1 Debugee,敢問你在何處

3.2 獲取寄存器狀態信息

3.2.1 線程枚舉

3.2.2 功能整合

3.3 實現調試事件處理例程

3.4 無所不能的斷點

3.4.1 軟斷點

3.4.2 硬件斷點

3.4.3 內存斷點

3.5 總結

第4章 PyDbg——Windows下的純Python調試器

4.1 擴展斷點處理例程

4.2 非法內存操作處理例程

4.3 進程快照

4.3.1 獲取進程快照

4.3.2 匯總與整合

第5章 Immunity Debugger——兩極世界的最佳選擇

5.1 安裝Immunity Debugger

5.2 Immunity Debugger

5.2.1 PyCommand命令

5.2.2 PyHooks

5.3 Exploit(漏洞利用程序)開發

5.3.1 搜尋exploit友好指令

5.3.2 “壞”字符過濾

5.3.3 繞過Windows 下的DEP機制

5.4 破除惡意軟件中的反調試例程

5.4.1 IsDebuugerPresent

5.4.2 破除進程枚舉例程

第6章 鉤子的藝術

6.1 使用PyDbg部署軟鉤子

6.2 使用Immunity Debugger部署硬鉤子

第7章 DLL注入與代碼注入技術

7.1 創建遠程線程

7.1.1 DLL注入

7.1.2 代碼注入

7.2 遁入黑暗

7.2.1 文件隱藏

7.2.2 構建后門

7.2.3 使用py2exe編譯Python代碼

第8章 Fuzzing

8.1 幾種常見的bug類型

8.1.1 緩沖區溢出

8.1.2 整數溢出

8.1.3 格式化串攻擊

8.2 文件Fuzzer

8.3 后續改進策略

8.3.1 代碼覆蓋率

8.3.2 自動化靜態分析

第9章 Sulley

9.1 安裝Sulley

9.2 Sulley中的基本數據類型

9.2.1 字符串

9.2.2 分隔符

9.2.3 靜態和隨機數據類型

9.2.4 二進制數據

9.2.5 整數

9.2.6 塊與組

9.3 行刺WarFTPD

9.3.1 FTP 101

9.3.2 創建FTP協議描述框架

9.3.3 Sulley會話

9.3.4 網絡和進程監控

9.3.5 Fuzzing測試以及Sulley的Web界面

第10章 面向Windows驅動的Fuzzing測試技術

10.1 驅動通信基礎

10.2 使用Immunity Debugger進行驅動級的Fuzzing測試

10.3 Driverlib——面向驅動的靜態分析工具

10.3.1 尋找設備名稱

10.3.2 尋找IOCTL分派例程

10.3.3 搜尋有效的IOCTL控制碼

10.4 構建一個驅動Fuzzer

第11章 IDAPython——IDA PRO環境下的Python腳本編程

11.1 安裝IDAPython

11.2 IDAPython函數

11.2.1 兩個工具函數

11.2.2 段(Segment)

11.2.3 函數

11.2.4 交叉引用

11.2.5 調試器鉤子

11.3 腳本實例

11.3.1 搜尋危險函數的交叉代碼

11.3.2 函數覆蓋檢測

11.3.3 檢測棧變量大小

第12章 PYEmu——腳本驅動式仿真器

12.1 安裝PyEmu

12.2 PyEmu概覽

12.2.1 PyCPU

12.2.2 PyMemory

12.2.3 PyEmu

12.2.4 指令執行

12.2.5 內存修改器與寄存器修改器

12.2.6 處理例程(Handler)

12.3 IDAPyEmu

12.3.1 函數仿真

12.3.2 PEPyEmu

12.3.3 可執行文件加殼器

12.3.4 UPX加殼器

12.3.5 利用PEPyEmu脫UPX殼

Python灰帽子 黑客與逆向工程師的Python編程之道 精彩文摘

“搞定了嗎?”,這可能是在Immunity公司出現頻率最高的一句話了。你也許會在類似以下的場景中聽到這樣的發問:“我正要給ImmunityDebugger開發一個新的ELF加載器”,片刻停頓之后,“搞定了嗎?”或者,“我剛發現了IE瀏覽器的一個Bug!”又一片刻的沉寂之后,“那個漏洞利用程序搞定了嗎?”在日常的安全項目中我們幾乎無時無刻地須要創建或者改寫自己的安全工具,并在這些頻繁的活動中始終保持高速的開發節奏,這使得Python逐漸成為了這個舞臺上的明星。你可以在下一個安全項目中選擇Python作為自己的開發工具,也許你將會用它來創建一個特殊的反編譯器或者開發一個完整的調試器。

當我走進位于南邁阿密海灘的AceHardware(美國的一家連鎖五金店),沿著擺放著螺絲刀的通道走過時,常常會感到目眩。你會看到接近50多種不同規格的螺絲刀以整齊的順序陳列在貨架上。每一種規格的螺絲刀都與緊鄰的螺絲刀有著微小卻又十分重要的區別。我不算一個合格的修理能手,因此無法準確地說出每一種螺絲刀最為理想的使用場合,但是我很確信類似的情況同樣適用于我們的安全工具軟件。尤其是當你在對Web類型或者其他類型的高度定制化的應用程序進行安全審計時,你會發現每一次的審計任務都會需要一把特殊的“螺絲刀”來解決問題。要知道能夠及時地拼湊出一些類似SQLAPI函數鉤子之類的安全小工具已經不止一次地拯救了Immunity的工作團隊。當然這些工具并不僅僅適用于安全審計任務,一旦你能夠使用鉤子函數對SQLAPI進行攔截,你就可以輕易地編寫出一個工具用于實時檢測可疑的異常SQL查詢,并及時向你的客戶公司提供修復方案,以抵御那些來自頑固黑客們的攻擊。

眾所周知,要讓你的每一個安全研究人員真正成為團隊的一部分是一件棘手的事情。很多安全研究人員無論在面對何種類型的問題時,都懷揣著白手起家式的過度熱情,企圖將需要借助的工具庫完全重寫。比如說Immunity發現了某個SSLDaemon的一個安全漏洞,接下來很有可能發生的一件事就是,你突然發現你的某個安全研究人員居然正在試圖從頭開始編寫一個SSL客戶端。而他們對此通常給出的解釋是“我能找到的SSL庫都丑陋不堪”。

你需要盡力避免這種情況發生。事實情況并不是現有的SSL庫丑陋不堪——它只是沒有按照某個安全研究人員的特別偏好風格來設計而已。而我們真正需要做的是能夠深入分析大量的現有代碼,快速地發現問題所在,并對其進行修改以適應自身所需,這才是及時地搭建出一個可用的SSL庫,并用其開發出一個尚處于保鮮期內的漏洞利用程序的關鍵。而要做到這一點,你需要使你的安全研究員們能夠像一個真正的團隊一樣去工作。一個熟練掌握了Python的安全研究人員就有了一個強大的武器,也許就像那些掌握了Ruby的安全研究人員一樣。然而Python真正的與眾不同之處顯現在那些Python狂熱分子們協同工作時,他們將猶如一個高速運轉的超個體①一樣戰斗力驚人。正如你家廚房中的螞蟻大軍一樣,當它們的數量足夠組成一只大烏賊時,要殺死它們將比殺死一只烏賊棘手得多。而這正是本書極力告訴你的一個事實。

你也許已經為自己想做的事找到了一些工具。你也許會問:“我已經有了一套VisualStudio,里面附帶了一個調試器,為什么還要去編寫一個供自己專用的調試器?!被蛘摺癢inDbg不是有一個插件接口了嗎?”答案是肯定的。WinDbg的確提供了插件接口,你可以通過那些API慢慢地拼湊出一些有用的東西。直到某一天你很可能又會說:“Heck,如果我能和5000個WinDbg使用者互聯該有多好啊,這樣我們就可以互通各自的調試結果了”。如果你從一開始就選擇了Python,你只要寫100行左右的代碼就可以構建一個XMLRPC客戶端與服務端,接下來整個團隊可以同步地進行工作并使每個人及時地享有他人的成果和信息。

黑客絕不等同于逆向工程——你的目標并不是還原出整個應用程序的源碼。你的目標是對軟件系統獲得比系統開發者自身更加深入的理解。一旦你能做到這一點,無論目標以何種形式出現,你將最終成功地滲透它,獲得炙手可熱的漏洞利用(exploit)。這也意味著你需要成為可視化、遠程同步、圖論、線性方程求解、靜態分析技術以及其他很多方面的專家。因此,Immunity決定將這些都標準化實現在Python平臺上,這樣一旦我們編寫了一個圖論算法,這個算法將在我們所有的工具中通用。

圖書網:Python灰帽子 黑客與逆向工程師的Python編程之道pdf

恭喜,此資源為免費資源,請先
聲明:本站所有資源收集于網絡,只做學習和交流使用,版權歸著作人和出版社所有,請在下載后24小時之內自覺刪除,若作商業用途,請購買正版,由于未及時購買和付費發生的侵權行為,與本站無關。本站發布的內容若侵犯到您的權益,請聯系站長刪除,我們將及時處理!
繼續閱讀
  • 我的微信
  • 掃一掃加好友
  • weinxin
  • 微信公眾號
  • 掃一掃關注
  • weinxin
社會工程 防范釣魚欺詐(卷3)pdf 信息安全

社會工程 防范釣魚欺詐(卷3)pdf

釣魚郵件是一種利用人性弱點進行欺詐的社會工程手段。調查機構數據顯示,全球每天有幾百億封左右的垃圾郵件。這些郵件已經成為騙子和惡意社會工程人員滲透進人們生活和工作的利器,給個人以及組...
匿名

發表評論

匿名網友 填寫信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

評論:4   其中:訪客  4   博主  0
    • 火旋風 火旋風 9

      謝謝分享

      • 火旋風 火旋風 9

        謝謝分享了

        • Ccc Ccc 9

          好好學習,天天向上

          • 水木年華 水木年華 9

            謝謝分享