Go黑帽子滲透測試編程之道

Go黑帽子滲透測試編程之道

《Go黑帽子 滲透測試編程之道》是清華大學出版社2021年出版的圖書,作者是[美]湯姆·斯蒂爾 (Tom Steele)、克里斯·帕頓(Chris Patten)和丹·科特曼(Dan Kottmann),譯者是賈玉彬和朱錢杭。

基本介紹

  • 中文名:Go黑帽子 滲透測試編程之道
  • 作者:[美]湯姆·斯蒂爾 (Tom Steele)、克里斯·帕頓(Chris Patten)、丹·科特曼(Dan Kottmann)
  • 譯者:賈玉彬、朱錢杭
  • 出版時間:2021年9月
  • 出版社:清華大學出版社
  • ISBN:9787302588245
  • 原作品:Black Hat Go: Go Programming for Hackers and Pentesters
  • 定價:99 元
  • 開本:16 開
  • 裝幀:平裝
圖書目錄,作者簡介,

圖書目錄

第1 章 Go 語言基礎1
1.1 設定開發環境 1
1.1.1 下載和安裝Go 1
1.1.2 設定GOROOT 以定義二進制檔案的位置 2
1.1.3 設定GOPATH 以確定Go工作區的位置 2
1.1.4 選擇一個集成開發環境 3
1.1.5 常用的Go 工具命令 6
1.2 理解Go 的語法 9
1.2.1 數據類型10
1.2.2 控制結構13
1.2.3 並發15
1.2.4 錯誤處理17
1.2.5 處理結構化數據18
1.3 小結19
第2 章 TCP、掃描器和代理 21
2.1 理解TCP 的握手機制21
2.2 通過連線埠轉發繞過防火牆22
2.3 編寫一個TCP 掃描器23
2.3.1 測試連線埠可用性23
2.3.2 執行非並發掃描24
2.3.3 執行並發掃描26
2.4 構造TCP 代理31
2.4.1 使用io.Reader 和io.Writer 32
2.4.2 創建回顯伺服器 35
2.4.3 通過創建帶緩衝的監聽器來改進代碼 37
2.4.4 代理一個TCP 客戶端 39
2.4.5 復現Netcat 命令執行 41
2.5 小結 44
第3 章 HTTP 客戶端以及與工具的遠程互動 45
3.1 Go 的HTTP 基礎知識 45
3.1.1 調用HTTP API 46
3.1.2 生成一個請求 47
3.1.3 使用結構化回響解析 48
3.2 構建與Shodan 互動的HTTP
客戶端 51
3.2.1 回顧構建API 客戶端的步驟 51
3.2.2 設計項目結構 52
3.2.3 清理API 調用 52
3.2.4 查詢Shodan 訂閱情況 53
3.2.5 創建一個客戶端 58
3.3 與Metasploit 互動 59
3.3.1 配置環境 59
3.3.2 定義目標 61
3.3.3 獲取有效令牌 62
3.3.4 定義請求和回響方法 63
3.3.5 創建配置結構體和RPC方法64
3.3.6 執行遠程調用65
3.3.7 創建實用程式67
3.4 使用Bing Scraping 解析文檔元數據69
3.4.1 配置環境和規劃69
3.4.2 定義元數據包71
3.4.3 把數據映射到結構體72
3.4.4 使用Bing 搜尋和接收檔案.73
3.5 小結77
第4 章 HTTP 伺服器、路由和中間件79
4.1 HTTP 伺服器基礎79
4.1.1 構建一個簡單的伺服器80
4.1.2 構建一個簡單的路由器81
4.1.3 構建簡單的中間件82
4.1.4 使用gorilla/mux 包進行路由84
4.1.5 使用negroni 包構建中間件.85
4.1.6 使用negroni 包添加身份驗證88
4.1.7 使用模板生成HTML 回響.90
4.2 憑證收割92
4.3 使用WebSocket API 實現按鍵記錄.96
4.4 多路命令與控制100
4.5 小結.104
第5 章 DNS 利用 105
5.1 編寫DNS 客戶端105
5.1.1 檢索A 記錄106
5.1.2 使用Msg 結構體處理應答.107
5.1.3 枚舉子域.109
5.1.4 查詢A 記錄和CNAME記錄110
5.1.5 工人函式113
5.1.6 使用bufio 包創建一個文本掃描器.114
5.1.7 收集和顯示結果.115
5.2 編寫DNS 伺服器120
5.2.1 實驗環境搭建和伺服器介紹120
5.2.2 創建DNS 伺服器和代理123
5.3 小結.132
第6 章 與SMB 和NTLM 互動.133
6.1 SMB 包133
6.2 理解SMB .134
6.2.1 理解SMB 安全令牌135
6.2.2 創建一個SMB 會話135
6.2.3 使用結構域的混合編碼.136
6.2.4 了解元數據和引用欄位.139
6.2.5 理解SMB 實現.140
6.3 使用SMB 包猜測密碼147
6.4 通過pass-the-hash 技術重用密碼.149
6.5 恢復NTLM 密碼.151
6.5.1 計算散列值151
6.5.2 恢復NTLM 散列值152
6.6 小結.153
第7 章 濫用資料庫和檔案系統.155
7.1 使用Docker 設定資料庫156
7.1.1 安裝MongoDB 資料庫並寫入數據.156
7.1.2 安裝PostgreSQL 和MySQL資料庫並寫入數據.158
7.1.3 安裝Microsoft SQL Server資料庫並寫入數據.159
7.2 在Go 中連線和查詢資料庫 160
7.2.1 查詢MongoDB 資料庫 160
7.2.2 查詢SQL 資料庫 162
7.3 構建資料庫礦工 163
7.3.1 實現一個MongoDB資料庫礦工 166
7.3.2 實現一個MySQL資料庫礦工 169
7.4 掠奪檔案系統 172
7.5 小結 174
第8 章 原始數據包處理 175
8.1 配置環境 175
8.2 使用pcap 子包識別設備 176
8.3 實時捕獲和結果過濾 177
8.4 嗅探和顯示明文用戶憑證 180
8.5 通過SYN 泛洪保護進行連線埠掃描 182
8.5.1 檢查TCP 標誌位 183
8.5.2 構建BPF 過濾器 183
8.5.3 編寫連線埠掃描器 184
8.6 小結 187
第9 章 編寫和移植利用代碼 189
9.1 創建一個模糊測試器 189
9.1.1 緩衝區溢出模糊測試 190
9.1.2 SQL 注入模糊測試 193
9.2 將漏洞利用移植到Go 198
9.2.1 從Python 移植漏洞利用 199
9.2.2 從C 移植漏洞利用 202
9.3 在Go 中構建shellcode 215
9.3.1 C 轉換 216
9.3.2 十六進制轉換 216
9.3.3 num 轉換 217
9.3.4 raw 轉換 217
9.3.5 Base64 編碼 218
9.3.6 一個關於彙編的注意事項.219
9.4 小結.219
第10 章 Go 外掛程式和可擴展工具221
10.1 使用Go 的原生外掛程式系統222
10.1.1 創建主程式.223
10.1.2 構建一個密碼猜測外掛程式226
10.1.3 運行掃描器.228
10.2 基於Lua 構建外掛程式.229
10.2.1 創建head HTTP 函式230
10.2.2 創建函式get 231
10.2.3 向Lua VM 註冊函式.233
10.2.4 編寫函式main 233
10.2.5 創建外掛程式腳本.234
10.2.6 測試Lua 外掛程式.235
10.3 小結236
第11 章 針對密碼學的攻擊和實現.237
11.1 回顧基本密碼學概念.237
11.2 理解標準的Crypto 庫.238
11.3 探索散列.239
11.3.1 破解MD5 和SHA-512散列值.239
11.3.2 實現bcrypt241
11.4 驗證訊息.243
11.5 加密數據.245
11.5.1 對稱密鑰加密.245
11.5.2 非對稱加密.248
11.6 暴力破解RC2.255
11.6.1 準備工作.256
11.6.2 生產工作.258
11.6.3 執行工作和解密數據.260
11.6.4 編寫函式main .261
11.6.5 運行程式.263
11.7 小結.264
第12 章 Windows 系統互動與分析 265
12.1 Windows API 的函式OpenProcess265
12.2 unsafe.Pointer 和uintptr類型268
12.3 使用syscall 包執行進程注入270
12.3.1 定義Windows DLL並給變數賦值272
12.3.2 使用OpenProcess Windows API 獲取進程令牌.273
12.3.3 使用VirtualAllocEx Windows API 操作記憶體.276
12.3.4 使用WriteProcessMemory Windows API 寫入記憶體.276
12.3.5 使用GetProcessAddress Windows API 查找LoadLibraryA .277
12.3.6 使用CreateRemoteThread Windows API 執行惡意DLL.278
12.3.7 使用WaitforSingleObject Windows API 驗證注入.279
12.3.8 使用VirtualFreeEx Windows API 進行清理.280
12.3.9 附加練習.281
12.4 可移植的執行檔281
12.4.1 理解PE 檔案格式282
12.4.2 編寫一個PE 解析器282
12.4.3 附加練習.293
12.5 在Go 中使用C293
12.5.1 安裝C Windows 工具鏈293
12.5.2 使用C 和Windows API創建一個訊息框294
12.5.3 在C 程式中嵌入Go代碼.295
12.6 小結.297
第13 章 使用隱寫術隱藏數據.299
13.1 探索PNG 格式.299
13.1.1 檔案頭.300
13.1.2 塊序列.300
13.2 讀取圖像位元組數據.301
13.2.1 讀取頭數據.302
13.2.2 讀取塊序列.303
13.3 寫入圖像位元組數據以植入載荷.306
13.3.1 查找塊偏移量.306
13.3.2 使用方法ProcessImage寫入位元組.306
13.4 使用XOR 編碼和解碼圖像位元組數據.311
13.5 小結.316
13.6 附加練習.316
第14 章 構建一個C2 遠控木馬.319
14.1 入門.319
14.1.1 安裝用於定義gRPC API的Protocol Buffers .320
14.1.2 創建項目工作區.320
14.2 定義和構建gRPC API 321
14.3 創建伺服器323
14.3.1 實現協定接口.323
14.3.2 編寫函式main .325
14.4 創建客戶端植入程式.327
14.5 構建管理組件.329
14.6 運行RAT330
14.7 改進RAT330
14.7.1 加密通信.331
14.7.2 處理連線中斷.331
14.7.3 註冊植入程式 331
14.7.4 添加資料庫持久 332
14.7.5 支持多個植入程式 332
14.7.6 添加植入程式功能 332
14.7.7 連結作業系統命令 333
14.7.8 增強植入程式的真實性並實踐良好的運營安全333
14.7.9 添加ASCII Art .333
14.8 小結334

作者簡介

Tom Steele、Chris Patten和Dan Kottmann分享了他們30多年的滲透測試和進攻性俺安全經驗,並舉辦了多次Go培訓和開發課程(有關詳細信息,請參閱書中內容)。

熱門詞條

聯絡我們