OneOS開發進階
內容描述
本書是中國移動物聯網作系統OneOS 開發系列叢書之一,側重於驅動及組件應用模塊的實現。
如果讀者之前沒有接觸過RTOS的實時內核,建議您先學習完《OneOS內核基礎入門》再來學習本書的內容。
本書內容分為驅動、組件和異核通信3篇,針對STM32F103芯片,實現IIC、
SPI等多種通信機制設備驅動及MQTT、CoAP等網絡協議組件;針對STM32MP157目標芯片,
實現MQTT、CoAP等網絡協議,並利用雙核異構的特性,構建主處理器對協處理器生命週期管理以及核間通信機制。
目錄大綱
1章 網絡滲透測試 1
1.1 企業數據洩 2
1.2 黑客如何侵入2
1.2.1 防御者角色 2
1.2.2 攻擊者角色 3
1.3 對抗攻擊模擬:滲透測試 3
1.4 何時滲透測試無效 5
1.4.1 容易實現的目標 5
1.4.2 公司什麼時候真正需要滲透測試 6
1.5 執行網絡滲透測試 6
1.5.1 1階段:信息收集 7
1.5.2 2階段:集中滲透 8
1.5.3 3階段:漏洞利用和權限提升9
1.5.4 4階段:文檔 10
1.6 設置實驗室環境 11
1.7 構建自己的虛擬滲透測試平台11
1.7.1 從 Linu開始 11
1.7.2 Ubuntu項目 12
1.7.3 為什麼不使用滲透測試發行版 12
1.8 總 結 13
1階段 信息收集
2章 發現網絡主機 17
2.1 了解工作範圍 19
2.1.1 黑盒、白盒和灰盒測試範圍 19
2.1.2 Capsulecorp 20
2.1.3 設置 CapsulecorpPentest環境21
2.2 互聯網控制消息協議 21
2.2.1 使用ping命令 22
2.2.2 使用bashpingsweep掃描網絡範圍 24
2.2.3 使用ping命令的限制 26
2.3 使用 Nmap發現主機 26
2.3.1 主要輸出格式 28
2.3.2 使用遠程管理接口端口29
2.3.3 提高 Nmap掃描性能 31
2.4 其他主機發現方法 32
2.4.1 DNS暴力破解 32
2.4.2 數據包捕獲和分析33
2.4.3 尋找子網 33
2.5 總 結 35
3章 發現網絡服務 36
3.1 從攻擊者的角度了解網絡服務 36
3.1.1 了解網絡服務通信 38
3.1.2 識別監聽網絡服務 39
3.1.3 網絡服務橫幅 39
3.2 使用 Nmap端口掃描 40
3.2.1 常用端口 41
3.2.2 掃描所有的65536個TCP端口 44
3.2.3 對 NSE腳本輸出進行分類 45
3.3 用 Ruby解析 XML輸出 49
3.4 總 結 56
4章 發現網絡漏洞 57
4.1 了解漏洞發現 58
4.2 發現補丁漏洞 59
4.3 發現身份驗證漏洞 62
4.3.1 創建一個客戶專用的密碼列表 63
4.3.2 暴力破解本地 Windows賬戶密碼 65
4.3.3 暴力破解 MSSQL和 MySQL數據庫密碼 67
4.3.4 暴力破解 VNC密碼 70
4.4 發現配置漏洞 72
4.4.1 設置 Webshot 73
4.4.2 分析 Webshot的輸出 74
4.4.3 手動猜測 Web服務器密碼 76
4.4.4 準備集中滲透 78
4.5 總 結 78
2階段 集中滲透
5章 攻擊易受攻擊的 Web服務 81
5.1 理解2階段:集中滲透 82
5.1.1 部署後門 WebShell 82
5.1.2 訪問遠程管理服務 83
5.1.3 利用缺少的軟件補丁 83
5.2 獲得一個初步立足點 83
5.3 破壞一個易受攻擊的 Tomcat服務器 84
5.3.1 創建一個惡意的 WAR文件 85
5.3.2 部署 WAR文件 86
5.3.3 從瀏覽器訪問 WebShell 87
5.4 交互式Shell與非交互式Shell的對比88
5.5 提升到交互式Shell 89
5.5.1 備份sethc.ee 90
5.5.2 使用cacls.ee修改文件ACL 91
5.5.3 通過 RDP啟動粘滯鍵 92
5.6 破壞易受攻擊的Jenkins服務器 93
5.7 總 結 95
6章 攻擊易受攻擊的數據庫服務 96
6.1 破壞 Microsoft SQL服務器 96
6.1.1 MSSQL存儲過程 98
6.1.2 使用 Metasploit枚舉 MSSQL服務器 98
6.1.3 啟用p_cmdshell 100
6.1.4 使用p_cmdshell運行作系統命令 102
6.2 竊取 Windows賬戶哈希密碼104
6.2.1 使用reg.ee複製註冊表hive105
6.2.2 下載註冊表 hive副本 107
6.3 使用creddump提取哈希密碼 109
6.4 總 結 111
7章 攻擊未打補丁的服務 112
7.1 理解軟件漏洞利用 113
7.2 理解典型的漏洞利用生命週期 113
7.3 使用 Metasploit破壞 MS17-010 114
7.3.1 驗證缺少補丁 115
7.3.2 使用 ms17_010_pseeceploit模塊 117
7.4 MeterpreterShell負載 118
7.5 關於公共漏洞利用數據庫的注意事項 124
7.6 總 結 126
3階段 後漏洞利用和權限提升
8章 Windows後漏洞利用 129
8.1 基本的後漏洞利用目標 129
8.1.1 維護可靠的重新訪問權 130
8.1.2 獲取憑證 130
8.1.3 橫向移動 130
8.2 使用 Meterpreter維護可靠的重新訪問權 131
8.3 使用 Mimikatz獲取憑證 134
8.4 獲取域緩存憑證 136
8.4.1 使用 MeterpreterPost模塊 137
8.4.2 使用JohntheRipper破解緩存憑證 138
8.4.3 與JohntheRipper一起使用字典文件 140
8.5 從文件系統中獲取憑證 141
8.6 使用哈希傳遞攻擊進行橫向移動 143
8.6.1 使用 Metasploitsmb_login模塊 144
8.6.2 使用 CrackMapEec進行哈希傳遞攻擊 146
8.7 總 結 148
9章 Linu或 UNIX後漏洞利用 149
9.1 使用定時命令維護可靠的重新訪問權 150
9.1.1 創建SSH 密鑰對 151
9.1.2 啟用公鑰身份驗證 152
9.1.3 通過SSH 建立隧道 154
9.1.4 使用定時任務自動建立SSH 隧道 156
9.2 獲取憑證 157
9.2.1 從bash歷史記錄中獲取憑證 158
9.2.2 獲取哈希密碼 159
9.3 使用SUID二進製文件提升權限 160
9.3.1 使用find命令查找SUID二進製文件 161
9.3.2 在/etc/passwd中插入一個新用戶 163
9.4 傳遞SSH 密鑰 165
9.4.1 從受破壞的主機中竊取密鑰 165
9.4.2 使用 Metasploit掃描多個目標 166
9.5 總 結 168
10章 控制整個網絡 169
10.1 識別域管理員用戶賬號 171
10.1.1 使用net命令查詢活動目錄組171
10.1.2 查找已登錄的域管理員用戶 172
10.2 獲得域管理員權限 173
10.2.1 使用Incognito模擬登錄的用戶 175
10.2.2 使用 Mimikatz獲取明文憑證 176
10.3 ntds.dit文件和王國之鑰 177
10.3.1 繞過 VSS的限制 178
10.3.2 使用secretsdump.py提取所有哈希值 182
10.4 總 結 183
4階段 INPT的清理和文檔
11章 後期清理 187
11.1 終止活動的Shell連接 188
11.2 禁用本地用戶賬戶 189
11.3 從文件系統中刪除殘留文件190
11.3.1 刪除 Windows註冊表hive的副本 191
11.3.2 刪除SSH 密鑰對 191
11.3.3 刪除ntds.dit文件的副本 192
11.4 反轉配置更改 193
5網絡滲透測試的藝術
11.4.1 禁用 MSSQL存儲過程 193
11.4.2 禁用匿名文件共享 194
11.4.3 刪除定時任務條目 195
11.5 關閉後門 196
11.5.1 從 ApacheTomcat中取消部署 WAR文件 196
11.5.2 關閉粘滯鍵後門 197
11.5.3 卸載持久的 Meterpreter回調 198
11.6 總 結 199
12章 撰寫一個穩定的滲透測試可交付成果 200
12.1 穩定的滲透測試可交付成果的8個部分 200
12.2 執行摘要 202
12.3 工作方法 202
12.4 攻擊敘述 203
12.5 技術觀察 203
12.6 附 錄 206
12.6.1 嚴重程度定義 206
12.6.2 主機和服務 207
12.6.3 工具列表 207
12.6.4 其他參考文獻 208
12.7 收尾工作 208
12.8 現在怎麼辦 209
12.9 總 結 210
附錄 A 構建一個虛擬的滲透測試平台 211
A.1 創建 Ubuntu虛擬機 211
A.2 其他作系統依賴項 212
A.2.1 使用apt管理 Ubuntu包 212
A.2.2 安裝 CrackMapEec 213
A.2.3 自定義終端界面外觀 213
A.3 安裝 Nmap 213
A.3.1 NSE:Nmap腳本引擎 214
A.3.2 作系統依賴項 215
A.3.3 從源代碼編譯和安裝 216
A.3.4 探索文檔 217
A.4 Ruby腳本語言 218
A.4.1 安裝 Ruby版本管理器 218
A.4.2 編寫必需的 Helloworld示例 219
A.5 Metasploit框架 222
A.5.1 作系統依賴項 222
A.5.2 必要的 Rubygem 223
A.5.3 為 Metasploit安裝 PostgreSQL 224
A.5.4 瀏覽 msfconsole 226
附錄 B Linu基本命令 230
B.1 CLI命令 230
B.1.1 $cat 230
B.1.2 $cut 231
B.1.3 $grep 232
B.1.4 $sort和 wc 233
B.2 tmu … 234
B.2.1 使用tmu命令 235
B.2.2 保存tmu會話 235
附錄 C 創建 CapsulecorpPentest實驗室網絡 237
C.1 硬件和軟件要求 238
C.2 創建 Windows主服務器 240
C.2.1 Goku.capsulecorp.local 240
C.2.2 Gohan.capsulecorp.local 241
C.2.3 Vegeta.capsulecorp.local 241
C.2.4 Trunks.capsulecorp.local 241
C.2.5 Nappa.capsulecorp.local和 Tien.capsulecorp.local 242
C.2.6 Yamcha.capsulecorp.local和 Krillin.capsulecorp.local 242
C.3 創建 Linu服務器 242
附錄 D Capsulecorp內部網絡滲透測試報告 243
D.1 執行摘要 243
D.1.1 工作範圍 243
D.1.2 觀察總結 243
D.2 工作方法 244
7網絡滲透測試的藝術
D.2.1 信息收集 244
D.2.2 集中滲透 244
D.2.3 後漏洞利用和權限提升 244
D.2.4 文檔和清理 245
D.3 攻擊敘述 245
D.4 技術觀察 245
D.5 附錄1:嚴重程度定義 249
D.5.1 關 鍵 249
D.5.2 高 級 249
D.5.3 中 級 249
D.5.4 低 級 250
D.6 附錄2:主機和服務 250
D.7 附錄3:工具列表 254
D.8 附錄4:其他參考文獻 255
附錄 E 練習答案 256