❶ Python可以做系統底層開發嗎
可以的,因為pytho可以調用系統的API,C怎麼調用,python一樣怎麼調用就行。
具體如何實現可以參考:python灰帽子一書,這本書的中文版網上到處有下,一下就好
下面是目錄:看看吧,沒什麼不能做的
目錄
· · · · · ·
第1章 搭建開發環境 1
1.1 操作系統要求 1
1.2 獲取和安裝Python 2.5 2
1.2.1 在Windows下安裝Python 2
1.2.2 在Linux下安裝Python 2
1.3 安裝Eclipse和PyDev 4
1.3.1 黑客摯友:ctype庫 5
1.3.2 使用動態鏈接庫 6
1.3.3 構建C數據類型 8
1.3.4 按引用傳參 9
1.3.5 定義結構體和聯合體 9
第2章 調試器原理和設計 12
2.1 通用寄存器 13
2.2 棧 15
2.3 調試事件 17
2.4 斷點 18
2.4.1 軟斷點 18
2.4.2 硬體斷點 20
2.4.3 內存斷點 22
第3章 構建自己的Windows調試器 24
3.1 Debugee,敢問你在何處 24
3.2 獲取寄存器狀態信息 33
3.2.1 線程枚舉 34
3.2.2 功能整合 35
3.3 實現調試事件處理常式 39
3.4 無所不能的斷點 44
3.4.1 軟斷點 44
3.4.2 硬體斷點 49
3.4.3 內存斷點 55
3.5 總結 59
第4章 PyDbg——Windows下的純Python調試器 60
4.1 擴展斷點處理常式 60
4.2 非法內存操作處理常式 63
4.3 進程快照 66
4.3.1 獲取進程快照 67
4.3.2 匯總與整合 70
第5章 Immunity Debugger——兩極世界的最佳選擇 74
5.1 安裝Immunity Debugger 74
5.2 Immunity Debugger 101 75
5.2.1 PyCommand命令 76
5.2.2 PyHooks 76
5.3 Exploit(漏洞利用程序)開發 78
5.3.1 搜尋exploit友好指令 78
5.3.2 「壞」字元過濾 80
5.3.3 繞過Windows 下的DEP機制 82
5.4 破除惡意軟體中的反調試常式 87
5.4.1 IsDebuugerPresent 87
5.4.2 破除進程枚舉常式 88
第6章 鉤子的藝術 90
6.1 使用PyDbg部署軟鉤子 90
6.2 使用Immunity Debugger部署硬鉤子 95
第7章 DLL注入與代碼注入技術 101
7.1 創建遠程線程 101
7.1.1 DLL注入 102
7.1.2 代碼注入 105
7.2 遁入黑暗 108
7.2.1 文件隱藏 109
7.2.2 構建後門 110
7.2.3 使用py2exe編譯Python代碼 114
第8章 Fuzzing 117
8.1 幾種常見的bug類型 118
8.1.1 緩沖區溢出 118
8.1.2 整數溢出 119
8.1.3 格式化串攻擊 121
8.2 文件Fuzzer 122
8.3 後續改進策略 129
8.3.1 代碼覆蓋率 129
8.3.2 自動化靜態分析 130
第9章 Sulley 131
9.1 安裝Sulley 132
9.2 Sulley中的基本數據類型 132
9.2.1 字元串 133
9.2.2 分隔符 133
9.2.3 靜態和隨機數據類型 134
9.2.4 二進制數據 134
9.2.5 整數 134
9.2.6 塊與組 135
9.3 行刺WarFTPD 136
9.3.1 FTP 101 137
9.3.2 創建FTP協議描述框架 138
9.3.3 Sulley會話 139
9.3.4 網路和進程監控 140
9.3.5 Fuzzing測試以及Sulley的Web界面 141
第10章 面向Windows驅動的Fuzzing測試技術 145
10.1 驅動通信基礎 146
10.2 使用Immunity Debugger進行驅動級的Fuzzing測試 147
10.3 Driverlib——面向驅動的靜態分析工具 151
10.3.1 尋找設備名稱 152
10.3.2 尋找IOCTL分派常式 153
10.3.3 搜尋有效的IOCTL控制碼 155
10.4 構建一個驅動Fuzzer 157
第11章 IDAPython——IDA PRO環境下的Python腳本編程 162
11.1 安裝IDAPython 163
11.2 IDAPython函數 164
11.2.1 兩個工具函數 164
11.2.2 段(Segment) 164
11.2.3 函數 165
11.2.4 交叉引用 166
11.2.5 調試器鉤子 166
11.3 腳本實例 167
11.3.1 搜尋危險函數的交叉代碼 168
11.3.2 函數覆蓋檢測 169
11.3.3 檢測棧變數大小 171
第12章 PYEmu——腳本驅動式模擬器 174
12.1 安裝PyEmu 174
12.2 PyEmu概覽 175
12.2.1 PyCPU 175
12.2.2 PyMemory 176
12.2.3 PyEmu 176
12.2.4 指令執行 176
12.2.5 內存修改器與寄存器修改器 177
12.2.6 處理常式(Handler) 177
12.3 IDAPyEmu 182
12.3.1 函數模擬 184
12.3.2 PEPyEmu 187
12.3.3 可執行文件加殼器 188
12.3.4 UPX加殼器 188
12.3.5 利用PEPyEmu脫UPX殼 189
❷ 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教程》
作者簡介
Justin Seitz是一名Immunity公司的高級安全研究員,他在以往的工作中花費了大量的時間從事漏洞挖掘、逆向工程、編寫漏洞利用以及編寫Python代碼的研究。
目錄
第1章 搭建開發環境 1
1.1 操作系統要求 1
1.2 獲取和安裝Python 2.5 2
1.2.1 在Windows下安裝Python 2
1.2.2 在Linux下安裝Python 2
1.3 安裝Eclipse和PyDev 4
1.3.1 黑客摯友:ctype庫 5
1.3.2 使用動態鏈接庫 6
1.3.3 構建C數據類型 8
1.3.4 按引用傳參 9
1.3.5 定義結構體和聯合體 9
第2章 調試器原理和設計 12
2.1 通用寄存器 13
2.2 棧 15
2.3 調試事件 17
2.4 斷點 18
2.4.1 軟斷點 18
2.4.2 硬體斷點 20
2.4.3 內存斷點 22
第3章 構建自己的Windows調試器 24
3.1 Debugee,敢問你在何處 24
3.2 獲取寄存器狀態信息 33
3.2.1 線程枚舉 34
3.2.2 功能整合 35
3.3 實現調試事件處理常式 39
3.4 無所不能的斷點 44
3.4.1 軟斷點 44
3.4.2 硬體斷點 49
3.4.3 內存斷點 55
3.5 總結 59
第4章 PyDbg——Windows下的純Python調試器 60
4.1 擴展斷點處理常式 60
4.2 非法內存操作處理常式 63
4.3 進程快照 66
4.3.1 獲取進程快照 67
4.3.2 匯總與整合 70
第5章 Immunity Debugger——兩極世界的最佳選擇 74
5.1 安裝Immunity Debugger 74
5.2 Immunity Debugger 101 75
5.2.1 PyCommand命令 76
5.2.2 PyHooks 76
5.3 Exploit(漏洞利用程序)開發 78
5.3.1 搜尋exploit友好指令 78
5.3.2 「壞」字元過濾 80
5.3.3 繞過Windows 下的DEP機制 82
5.4 破除惡意軟體中的反調試常式 87
5.4.1 IsDebuugerPresent 87
5.4.2 破除進程枚舉常式 88
第6章 鉤子的藝術 90
6.1 使用PyDbg部署軟鉤子 90
6.2 使用Immunity Debugger部署硬鉤子 95
第7章 DLL注入與代碼注入技術 101
7.1 創建遠程線程 101
7.1.1 DLL注入 102
7.1.2 代碼注入 105
7.2 遁入黑暗 108
7.2.1 文件隱藏 109
7.2.2 構建後門 110
7.2.3 使用py2exe編譯Python代碼 114
第8章 Fuzzing 117
8.1 幾種常見的bug類型 118
8.1.1 緩沖區溢出 118
8.1.2 整數溢出 119
8.1.3 格式化串攻擊 121
8.2 文件Fuzzer 122
8.3 後續改進策略 129
8.3.1 代碼覆蓋率 129
8.3.2 自動化靜態分析 130
第9章 Sulley 131
9.1 安裝Sulley 132
9.2 Sulley中的基本數據類型 132
9.2.1 字元串 133
9.2.2 分隔符 133
9.2.3 靜態和隨機數據類型 134
9.2.4 二進制數據 134
9.2.5 整數 134
9.2.6 塊與組 135
9.3 行刺WarFTPD 136
9.3.1 FTP 101 137
9.3.2 創建FTP協議描述框架 138
9.3.3 Sulley會話 139
9.3.4 網路和進程監控 140
9.3.5 Fuzzing測試以及Sulley的Web界面 141
第10章 面向Windows驅動的Fuzzing測試技術 145
10.1 驅動通信基礎 146
10.2 使用Immunity Debugger進行驅動級的Fuzzing測試 147
10.3 Driverlib——面向驅動的靜態分析工具 151
10.3.1 尋找設備名稱 152
10.3.2 尋找IOCTL分派常式 153
10.3.3 搜尋有效的IOCTL控制碼 155
10.4 構建一個驅動Fuzzer 157
第11章 IDAPython——IDA PRO環境下的Python腳本編程 162
11.1 安裝IDAPython 163
11.2 IDAPython函數 164
11.2.1 兩個工具函數 164
11.2.2 段(Segment) 164
11.2.3 函數 165
11.2.4 交叉引用 166
11.2.5 調試器鉤子 166
11.3 腳本實例 167
11.3.1 搜尋危險函數的交叉代碼 168
11.3.2 函數覆蓋檢測 169
11.3.3 檢測棧變數大小 171
第12章 PYEmu——腳本驅動式模擬器 174
12.1 安裝PyEmu 174
12.2 PyEmu概覽 175
12.2.1 PyCPU 175
12.2.2 PyMemory 176
12.2.3 PyEmu 176
12.2.4 指令執行 176
12.2.5 內存修改器與寄存器修改器 177
12.2.6 處理常式(Handler) 177
12.3 IDAPyEmu 182
12.3.1 函數模擬 184
12.3.2 PEPyEmu 187
12.3.3 可執行文件加殼器 188
12.3.4 UPX加殼器 188
12.3.5 利用PEPyEmu脫UPX殼 189
❸ Python滲透測試工具都有哪些
網路
Scapy, Scapy3k: 發送,嗅探,分析和偽造網路數據包。可用作互動式包處理程序或單獨作為一個庫
pypcap, Pcapy, pylibpcap: 幾個不同 libpcap 捆綁的python庫
libdnet: 低級網路路由,包括埠查看和乙太網幀的轉發
dpkt: 快速,輕量數據包創建和分析,面向基本的 TCP/IP 協議
Impacket: 偽造和解碼網路數據包,支持高級協議如 NMB 和 SMB
pynids: libnids 封裝提供網路嗅探,IP 包碎片重組,TCP 流重組和埠掃描偵查
Dirtbags py-pcap: 無需 libpcap 庫支持讀取 pcap 文件
flowgrep: 通過正則表達式查找數據包中的 Payloads
Knock Subdomain Scan: 通過字典枚舉目標子域名
SubBrute: 快速的子域名枚舉工具
Mallory: 可擴展的 TCP/UDP 中間人代理工具,可以實時修改非標准協議
Pytbull: 靈活的 IDS/IPS 測試框架(附帶超過300個測試樣例)
調試和逆向工程
Paimei: 逆向工程框架,包含PyDBG, PIDA , pGRAPH
Immunity Debugger: 腳本 GUI 和命令行調試器
mona.py: Immunity Debugger 中的擴展,用於代替 pvefindaddr
IDAPython: IDA pro 中的插件,集成 Python 編程語言,允許腳本在 IDA Pro 中執行
PyEMU: 全腳本實現的英特爾32位模擬器,用於惡意軟體分析
pefile: 讀取並處理 PE 文件
pydasm: Python 封裝的libdasm
PyDbgEng: Python 封裝的微軟 Windows 調試引擎
uhooker: 截獲 DLL 或內存中任意地址可執行文件的 API 調用
diStorm: AMD64 下的反匯編庫
python-ptrace: Python 寫的使用 ptrace 的調試器
vdb/vtrace: vtrace 是用 Python 實現的跨平台調試 API, vdb 是使用它的調試器
Androguard: 安卓應用程序的逆向分析工具
Capstone: 一個輕量級的多平台多架構支持的反匯編框架。支持包括ARM,ARM64,MIPS和x86/x64平台
PyBFD: GNU 二進制文件描述(BFD)庫的 Python 介面
Fuzzing
Sulley: 一個模糊器開發和模糊測試的框架,由多個可擴展的構件組成的
Peach Fuzzing Platform: 可擴展的模糊測試框架(v2版本 是用 Python 語言編寫的)
antiparser: 模糊測試和故障注入的 API
TAOF: (The Art of Fuzzing, 模糊的藝術)包含 ProxyFuzz, 一個中間人網路模糊測試工具
untidy: 針對 XML 模糊測試工具
Powerfuzzer: 高度自動化和可完全定製的 Web 模糊測試工具
SMUDGE: 純 Python 實現的網路協議模糊測試
Mistress: 基於預設模式,偵測實時文件格式和偵測畸形數據中的協議
Fuzzbox: 媒體多編碼器的模糊測試
Forensic Fuzzing Tools: 通過生成模糊測試用的文件,文件系統和包含模糊測試文件的文件系統,來測試取證工具的魯棒性
Windows IPC Fuzzing Tools: 使用 Windows 進程間通信機制進行模糊測試的工具
WSBang: 基於 Web 服務自動化測試 SOAP 安全性
Construct: 用於解析和構建數據格式(二進制或文本)的庫
fuzzer.py(feliam): 由 Felipe Andres Manzano 編寫的簡單模糊測試工具
Fusil: 用於編寫模糊測試程序的 Python 庫
Web
Requests: 優雅,簡單,人性化的 HTTP 庫
HTTPie: 人性化的類似 cURL 命令行的 HTTP 客戶端
ProxMon: 處理代理日誌和報告發現的問題
WSMap: 尋找 Web 伺服器和發現文件
Twill: 從命令行界面瀏覽網頁。支持自動化網路測試
Ghost.py: Python 寫的 WebKit Web 客戶端
Windmill: Web 測試工具幫助你輕松實現自動化調試 Web 應用
FunkLoad: Web 功能和負載測試
spynner: Python 寫的 Web瀏覽模塊支持 Javascript/AJAX
python-spidermonkey: 是 Mozilla JS 引擎在 Python 上的移植,允許調用 Javascript 腳本和函數
mitmproxy: 支持 SSL 的 HTTP 代理。可以在控制台介面實時檢查和編輯網路流量
pathod/pathoc: 變態的 HTTP/S 守護進程,用於測試和折磨 HTTP 客戶端
❹ 黑客與逆向工程師的Python編程之道的目錄
第1章 搭建開發環境 1
1.1 操作系統要求 1
1.2 獲取和安裝Python 2.5 2
1.2.1 在Windows下安裝Python 2
1.2.2 在Linux下安裝Python 2
1.3 安裝Eclipse和PyDev 4
1.3.1 黑客摯友:ctype庫 5
1.3.2 使用動態鏈接庫 6
1.3.3 構建C數據類型 8
1.3.4 按引用傳參 9
1.3.5 定義結構體和聯合體 9
第2章 調試器原理和設計 12
2.1 通用寄存器 13
2.2 棧 15
2.3 調試事件 17
2.4 斷點 18
2.4.1 軟斷點 18
2.4.2 硬體斷點 20
2.4.3 內存斷點 22
第3章 構建自己的Windows調試器 24
3.1 Debugee,敢問你在何處 24
3.2 獲取寄存器狀態信息 33
3.2.1 線程枚舉 34
3.2.2 功能整合 35
3.3 實現調試事件處理常式 39
3.4 無所不能的斷點 44
3.4.1 軟斷點 44
3.4.2 硬體斷點 49
3.4.3 內存斷點 55
3.5 總結 59
第4章 PyDbg——Windows下的純Python調試器 60
4.1 擴展斷點處理常式 60
4.2 非法內存操作處理常式 63
4.3 進程快照 66
4.3.1 獲取進程快照 67
4.3.2 匯總與整合 70
第5章 Immunity Debugger——兩極世界的最佳選擇 74
5.1 安裝Immunity Debugger 74
5.2 Immunity Debugger 101 75
5.2.1 PyCommand命令 76
5.2.2 PyHooks 76
5.3 Exploit(漏洞利用程序)開發 78
5.3.1 搜尋exploit友好指令 78
5.3.2 「壞」字元過濾 80
5.3.3 繞過Windows 下的DEP機制 82
5.4 破除惡意軟體中的反調試常式 87
5.4.1 IsDebuugerPresent 87
5.4.2 破除進程枚舉常式 88
第6章 鉤子的藝術 90
6.1 使用PyDbg部署軟鉤子 90
6.2 使用Immunity Debugger部署硬鉤子 95
第7章 DLL注入與代碼注入技術 101
7.1 創建遠程線程 101
7.1.1 DLL注入 102
7.1.2 代碼注入 105
7.2 遁入黑暗 108
7.2.1 文件隱藏 109
7.2.2 構建後門 110
7.2.3 使用py2exe編譯Python代碼 114
第8章 Fuzzing 117
8.1 幾種常見的bug類型 118
8.1.1 緩沖區溢出 118
8.1.2 整數溢出 119
8.1.3 格式化串攻擊 121
8.2 文件Fuzzer 122
8.3 後續改進策略 129
8.3.1 代碼覆蓋率 129
8.3.2 自動化靜態分析 130
第9章 Sulley 131
9.1 安裝Sulley 132
9.2 Sulley中的基本數據類型 132
9.2.1 字元串 133
9.2.2 分隔符 133
9.2.3 靜態和隨機數據類型 134
9.2.4 二進制數據 134
9.2.5 整數 134
9.2.6 塊與組 135
9.3 行刺WarFTPD 136
9.3.1 FTP 101 137
9.3.2 創建FTP協議描述框架 138
9.3.3 Sulley會話 139
9.3.4 網路和進程監控 140
9.3.5 Fuzzing測試以及Sulley的Web界面 141
第10章 面向Windows驅動的Fuzzing測試技術 145
10.1 驅動通信基礎 146
10.2 使用Immunity Debugger進行驅動級的Fuzzing測試 147
10.3 Driverlib——面向驅動的靜態分析工具 151
10.3.1 尋找設備名稱 152
10.3.2 尋找IOCTL分派常式 153
10.3.3 搜尋有效的IOCTL控制碼 155
10.4 構建一個驅動Fuzzer 157
第11章 IDAPython——IDA PRO環境下的Python腳本編程 162
11.1 安裝IDAPython 163
11.2 IDAPython函數 164
11.2.1 兩個工具函數 164
11.2.2 段(Segment) 164
11.2.3 函數 165
11.2.4 交叉引用 166
11.2.5 調試器鉤子 166
11.3 腳本實例 167
11.3.1 搜尋危險函數的交叉代碼 168
11.3.2 函數覆蓋檢測 169
11.3.3 檢測棧變數大小 171
第12章 PYEmu——腳本驅動式模擬器 174
12.1 安裝PyEmu 174
12.2 PyEmu概覽 175
12.2.1 PyCPU 175
12.2.2 PyMemory 176
12.2.3 PyEmu 176
12.2.4 指令執行 176
12.2.5 內存修改器與寄存器修改器 177
12.2.6 處理常式(Handler) 177
12.3 IDAPyEmu 182
12.3.1 函數模擬 184
12.3.2 PEPyEmu 187
12.3.3 可執行文件加殼器 188
12.3.4 UPX加殼器 188
12.3.5 利用PEPyEmu脫UPX殼 189
❺ Fuzz 測試的思路和測試工具有哪些
目前fuzz測試領域最為專業的測試工具是一款叫Mu協議分析儀的工具,目前在中國只有達信通成科技(北京)有限公司在代理。
協議分析儀就是能夠捕獲網路報文的設備。協議分析儀的正當用處在於撲捉分析網路的流量,以便找出所關心的網路中潛在的問題。
假設網路的某一段運行得不是很好,報文的發送比較慢,而我們又不知道問題出在什麼地方,此時就可以用協議分析儀來作出精確的問題判斷。協議分析儀在功能和設計方面有很多不同。有些只能分析一種協議,而另一些能夠分析幾百種協議。
(5)sulley測試ftp協議擴展閱讀:
展望協議分析儀已成為數據通信系統設計、建設和管理維護所不可缺少的工具。隨著數據通信技術的不斷發展,協議分析儀將向三個方向發展。
①增強功能。開發、測試和分析高層協議將是協議分析儀發展的必然趨勢。同時,協議分析儀還將逐漸增加協議一致性測試功能,向開放系統互連(OSI)一致性測試方向發展。
②擴大應用范圍。協議分析儀除用於各種數據通信系統和廣域數據通信網外,有效地應用到區域網(LAN)和綜合業務數字網(ISDN)等領域也是一個必然的趨勢。
③提高操作的方便程度。採用將模擬功能與編程功能分開;增加顯示屏幕的尺寸和提高顯示屏幕的清晰度;增加翻譯顯示等措施,以提高操作的方便程度。