? 利用Ettercap來構(gòu)建和發(fā)動欺騙攻擊 ? 使用模糊器來誘發(fā)錯誤條件并使軟件崩潰 ? 利用高級逆向工程技術(shù)對Windows和Linux上的軟件發(fā)起漏洞攻擊 ? 繞過Windows訪問控制和內(nèi)存保護方案 ? 利用Padding Oracle Attack攻擊Web應(yīng)用程序 ? 研究*近0-day漏洞中使用的釋放后重用技術(shù) ? 使用高級XSS攻擊來劫持Web瀏覽器 ? 理解勒索軟件及其如何控制桌面 ? 使用JEB 和DAD反編譯器來剖析Android惡意軟件 ? 通過二進制比較來查找1-day漏洞 ? 使用軟件無線電(SDR)攻擊無線系統(tǒng) ? 攻擊物聯(lián)網(wǎng)設(shè)備 ? 剖析和攻擊嵌入式設(shè)備 ? 了解漏洞賞金計劃 ? 部署下一代蜜罐 ? 剖析ATM惡意軟件和常見的ATM攻擊 ? 從業(yè)務(wù)角度分析道德黑客攻擊
《灰帽黑客(第5版)》在上一版本的基礎(chǔ)上做了全面細(xì)致的更新,新增了13章內(nèi)容,分析敵方當(dāng)前的武器、技能和戰(zhàn)術(shù),提供切實有效的補救措施、案例研究和可部署的測試實驗,并揭示黑客們?nèi)绾潍@取訪問權(quán)限、攻擊網(wǎng)絡(luò)設(shè)備、編寫和注入惡意代碼及侵占Web應(yīng)用程序和瀏覽器。這個與時俱進的知識寶庫也透徹講解Android漏洞攻擊、逆向工程技術(shù)和網(wǎng)絡(luò)法律等主題,呈現(xiàn)物聯(lián)網(wǎng)等新主題。
前 言
我不知道第三次世界大戰(zhàn)用什么武器,但我知道第四次世界大戰(zhàn)中用的肯定是棍棒和石頭。
阿爾伯特?愛因斯坦
人類文明的確在進步,但這不能保證你的安全……在每次戰(zhàn)爭中,敵方都會試圖借助新武器、新戰(zhàn)術(shù)消滅你。
威爾?羅杰
不戰(zhàn)而屈人之兵,善之善者也。
孫子
《灰帽黑客(第5版)》由致力于以道德和負(fù)責(zé)任的工作方式來提升個人、企業(yè)和國家的整體安全性的信息安全專業(yè)人員編撰,適合相關(guān)專業(yè)人士閱讀!痘颐焙诳(第5版)》旨在向你提供過去只有少數(shù)黑客才了解的信息。無論是個人,還是一家機構(gòu)的防御者,在面對黑帽黑客時,對敵人的深入了解非常重要,包括他們的策略、技能、工具和動機。因此《灰帽黑客(第5版)》將帶你領(lǐng)會灰帽黑客的思路,即道德黑客使用攻擊性技術(shù)達到防御性目的。道德黑客始終尊重法律和他人的權(quán)利,并且相信,通過先行的自我測試和完善,對手將無處下手,知難而退。
《灰帽黑客(第5版)》作者們希望為讀者提供我們所認(rèn)為的這個行業(yè)和社會所需的信息:對負(fù)責(zé)任的而且在意識和物質(zhì)方面真正合乎道德標(biāo)準(zhǔn)的正義黑客技術(shù)的整體性討論。這也是我們?yōu)槭裁匆恢眻猿衷凇痘颐焙诳?第5版)》每個新版本的開頭就給出正義黑客的清晰定義的原因所在,社會上對正義黑客的理解是非常模糊的。
《灰帽黑客(第5版)》對第4版中的內(nèi)容做了全面細(xì)致的更新,并嘗試將最新最全的技術(shù)、流程、材料以及可重復(fù)的實際動手實驗組合起來。在第4版的基礎(chǔ)上,第5版中增加了13章全新的內(nèi)容,同時對其他章節(jié)的內(nèi)容也進行了更新。
《灰帽黑客(第5版)》第I部分介紹打贏安全戰(zhàn)需要的所有工具和技術(shù),使你通透理解更高級的主題。該部分節(jié)奏明快,無論是初出茅廬的新手,還是想將安全技能提高到新水平的專業(yè)人員,都必須掌握其中的知識點。第I部分的內(nèi)容包括:
● 白帽、黑帽和灰帽黑客的定義及特征
● 在實施任何類型的正義黑客行動前應(yīng)該了解的一些棘手道德問題
● 編程生存技能,這是灰帽黑客編寫漏洞攻擊程序或?qū)彶樵创a必備的技能
● 模糊測試,這是挖掘零日漏洞的利器
● 逆向工程,這是剖析惡意軟件或研究漏洞的必備技能
● 軟件定義的無線電
第II部分從業(yè)務(wù)角度分析黑客攻擊。不管你因為愛好還是謀生而從事黑客攻擊,該部分的內(nèi)容都適合你閱讀。如果你是一位資深黑客,該部分的提示將讓你功力倍增。該部分介紹一些讓道德黑客合法賺錢的軟技能:
● 如何進入滲透測試行當(dāng)
● 通過紅隊改善企業(yè)的安全態(tài)勢
● 適用于啟動階段的紫隊
● 介紹Bug賞金計劃,講述如何以合乎道德的方式通過查找漏洞獲得賞金
第III部分討論開發(fā)程序來攻擊系統(tǒng)漏洞所需的技能。其他書籍都介紹過此類主題,但舊式漏洞攻擊程序到現(xiàn)在已經(jīng)過時,不再奏效。因此,該部分將更新內(nèi)容,介紹如何突破系統(tǒng)保護。該部分介紹的主題如下:
● 如何在不使用漏洞攻擊程序的情況下獲得shell訪問權(quán)限
● 基本和高級Linux漏洞攻擊程序
● 基本和高級Windows漏洞攻擊程序
● 使用PowerShell攻擊系統(tǒng)漏洞
● 現(xiàn)代Web漏洞攻擊
● 使用補丁開發(fā)漏洞攻擊程序
第IV部分分析高級惡意軟件。在很多方面,這是網(wǎng)絡(luò)安全領(lǐng)域最高級的主題。在網(wǎng)絡(luò)戰(zhàn)中,惡意軟件扮演著沖鋒陷陣的角色。該部分介紹用于執(zhí)行惡意軟件分析所需要的工具和技術(shù)。該部分介紹的主題如下:
● 分析移動惡意軟件
● 分析最新的勒索軟件
● 分析ATM惡意軟件
● 使用下一代蜜罐在網(wǎng)絡(luò)上查找高級攻擊者和惡意軟件
第V部分討論物聯(lián)網(wǎng)(Internet of Things,IoT)攻擊主題。物聯(lián)網(wǎng)會受到攻擊,其中的漏洞會被人利用。該部分介紹的主題如下:
● 受到攻擊的物聯(lián)網(wǎng)
● 剖析嵌入式設(shè)備
● 攻擊嵌入式設(shè)備
● 分析針對物聯(lián)網(wǎng)設(shè)備的惡意軟件
希望你能體會到《灰帽黑客(第5版)》呈現(xiàn)的新內(nèi)容的價值,并在閱讀新章節(jié)的過程中享受樂趣。如果你剛進入網(wǎng)絡(luò)安全領(lǐng)域,或想更進一步深刻理解道德黑客攻擊主題,《灰帽黑客(第5版)》將是你的良師益友。
注意:為確保你正確配置系統(tǒng),從而執(zhí)行實驗步驟,《灰帽黑客(第5版)》配套網(wǎng)站提供了所需的文件。要獲得實驗材料和勘誤信息,可訪問GitHub庫https://github.com/GrayHatHacking/GHHv5,也可訪問出版商的網(wǎng)站www.mhprofessional.com。另外,還可掃描《灰帽黑客(第5版)》封底的二維碼來下載它們。
Allen Harper博士,CISSP。Allen曾擔(dān)任美國海軍陸戰(zhàn)隊(Marine Corps)軍官,2007年,在伊拉克之旅結(jié)束后退役。Allen擁有30年以上的IT/安全經(jīng)驗。Allen從Capella大學(xué)獲得IT博士學(xué)位,研究方向是信息保障和安全;從海軍研究生院(NPS)獲得計算機科學(xué)碩士學(xué)位,從北卡羅來納州大學(xué)獲得計算機工程學(xué)士學(xué)位。Allen負(fù)責(zé)為Honeynet項目指導(dǎo)開發(fā)名為roo的第三代蜜墻CD-ROM。Allen曾擔(dān)任多家《財富》500強公司和政府機構(gòu)的安全顧問。Allen對物聯(lián)網(wǎng)、逆向工程、漏洞發(fā)現(xiàn)以及各種形式的道德黑客攻擊感興趣。Allen是N2 Net Security有限公司的創(chuàng)始人,曾擔(dān)任Tangible安全公司的執(zhí)行副總裁和首席道德黑客。Allen目前擔(dān)任利伯緹大學(xué)(位于弗吉尼亞州林奇堡市)網(wǎng)絡(luò)卓越中心的執(zhí)行總監(jiān)。
Daniel Regalado(又名Danux)是一名墨西哥裔的安全研究員,在安全領(lǐng)域擁有16年以上的豐富經(jīng)驗,曾參與惡意軟件、零日攻擊、ATM、物聯(lián)網(wǎng)設(shè)備、靜脈注射泵和汽車信息娛樂系統(tǒng)的剖析和滲透測試。Daniel曾在FireEye和賽門鐵克(Symantec)等知名公司工作,目前擔(dān)任Zingbox的首席安全研究員。Daniel曾分析針對全球銀行ATM的惡意軟件攻擊,獲得多項發(fā)明,并因此成名,最著名的發(fā)明有Ploutus、Padpin和Ripper。
Ryan Linn在安全領(lǐng)域積累了逾20年的經(jīng)驗。曾擔(dān)任系統(tǒng)編程人員、公司安全人員,還領(lǐng)導(dǎo)過全球網(wǎng)絡(luò)安全咨詢工作。Ryan參與過多個開源項目,包括Metasploit和Browser Exploitation Framework (BeEF)等。Ryan的推特賬號是@sussurro,曾在多個安全會議(包括Black Hat、DEFCON)上發(fā)表研究報告,并為全球機構(gòu)提供攻擊和取證技術(shù)方面的培訓(xùn)。
Stephen Sims是一位業(yè)內(nèi)專家,在信息技術(shù)和安全領(lǐng)域擁有逾15年的經(jīng)驗。Stephen目前在舊金山擔(dān)任顧問,提供逆向工程、漏洞攻擊程序開發(fā)、威脅建模和滲透測試方面的咨詢。Stephen從諾威治大學(xué)獲得信息保障碩士學(xué)位,是SANS機構(gòu)的高級講師、課程作者和研究員,編寫高級漏洞攻擊程序和滲透測試課程。Stephen曾在多個重要的技術(shù)會議上發(fā)表演講,如RSA、 BSides、OWASP AppSec、ThaiCERT和AISA等。Stephen的推特賬號是@Steph3nSims。
Branko Spasojevic是谷歌檢測和響應(yīng)團隊的安全工程師。他曾在賽門鐵克擔(dān)任逆向工程師,并分析過各類威脅和APT組。
Linda Martinez是Tangible安全公司商業(yè)服務(wù)交付部門的首席信息安全官兼副總裁。Linda是一位老道的信息安全執(zhí)行官和業(yè)內(nèi)專家,具有18年以上的管理技術(shù)團隊、開拓技術(shù)業(yè)務(wù)范圍以及為客戶提供優(yōu)質(zhì)咨詢服務(wù)的經(jīng)驗。Linda負(fù)責(zé)管理Tangible安全公司商業(yè)服務(wù)交付部門,業(yè)務(wù)范圍包括:滲透測試(紅隊和紫隊操作),硬件攻擊,產(chǎn)品和供應(yīng)鏈安全,治理、風(fēng)險管理和合規(guī),應(yīng)急響應(yīng)和數(shù)字取證。身為首席信息安全官,Linda還為多家公司提供專家級指導(dǎo)。此前,Linda曾擔(dān)任N2 Net Security的運營副總裁,曾參與創(chuàng)立信息安全研究和咨詢公司Executive Instruments,并擔(dān)任首席運營官。
Michael Baucom目前擔(dān)任Tangible安全公司Tangible實驗室的副總裁,曾參與多個項目,包括軟件安全評估、SDLC咨詢、工具開發(fā)和滲透測試。此前,Michael曾在美國海軍陸戰(zhàn)隊擔(dān)任地面無線電維修員。另外,Michael曾在IBM、Motorola和Broadcom擔(dān)任多個職位,包括測試工程師、設(shè)備驅(qū)動程序開發(fā)人員以及嵌入式系統(tǒng)軟件開發(fā)人員。Michael還擔(dān)任Black Hat培訓(xùn)師,為本書提供技術(shù)建議,曾在多個技術(shù)會議上發(fā)表演講。Michael目前的研究方向是滲透測試活動的自動化、嵌入式系統(tǒng)安全和手機安全。
Chris Eagle是位于加州蒙特利爾的海軍研究生院(Naval Postgraduate School,NPS)計算機科學(xué)系的高級講師。作為一位具有30年以上經(jīng)驗的計算機工程師及科學(xué)家,他曾撰寫多本書籍,曾擔(dān)任DARPA的Cyber Grand Challenge的首席架構(gòu)師,經(jīng)常在安全會議上發(fā)表演講,為安全社區(qū)貢獻了多個流行的開源工具。
Shon Harris(已故)令人無限懷念。Shon是Logical Security公司的總裁、一位安全顧問,曾擔(dān)任美國空軍信息戰(zhàn)(U.S. Air Force Information Warfare)部隊的工程師,也是一名作家、教育工作者。Shon撰寫了暢銷全球的《CISSP認(rèn)證考試指南》(最新版本是第8版)以及其他多本著作。Shon曾為來自多個不同行業(yè)的各類公司提供咨詢服務(wù),也曾為廣泛的客戶講授計算機和信息安全課程,這些客戶包括RSA、Department of Defense、Department of Energy、West Point、National Security Agency (NSA)、Bank of America、Defense Information Systems Agency (DISA)和BMC等。Shon被Information Security Magazine評為信息安全領(lǐng)域25位最杰出的女性精英之一。
免責(zé)聲明:本書中發(fā)表的內(nèi)容均屬作者個人觀點,并不代表美國政府或這里提及的其他任何公司。
目 錄
第Ⅰ部分 備 戰(zhàn)
第1章 灰帽黑客 道德和法律 3
1.1 了解敵人 3
1.1.1 當(dāng)前的安全狀況 3
1.1.2 識別攻擊 5
1.2 灰帽黑客之道 5
1.2.1 模擬攻擊 6
1.2.2 測試頻率及關(guān)注點 9
1.3 網(wǎng)絡(luò)安全相關(guān)法律的演變 10
1.4 本章小結(jié) 13
第2章 編程技能 15
2.1 C編程語言 15
2.1.1 C語言程序的基本結(jié)構(gòu) 15
2.1.2 程序示例 22
2.1.3 使用gcc進行編譯 23
2.2 計算機內(nèi)存 24
2.2.1 隨機存取存儲器 24
2.2.2 字節(jié)序 25
2.2.3 內(nèi)存分段 25
2.2.4 內(nèi)存中的程序 25
2.2.5 緩沖區(qū) 27
2.2.6 內(nèi)存中的字符串 27
2.2.7 指針 27
2.2.8 內(nèi)存知識小結(jié) 28
2.3 Intel處理器 29
2.4 匯編語言基礎(chǔ) 30
2.4.1 機器語言、匯編語言與C語言 30
2.4.2 AT&T與NASM 30
2.4.3 尋址模式 33
2.4.4 匯編文件結(jié)構(gòu) 34
2.4.5 匯編過程 35
2.5 使用gdb進行調(diào)試 35
2.5.1 gdb基礎(chǔ) 35
2.5.2 使用gdb進行反匯編 37
2.6 Python編程技能 38
2.6.1 獲取Python 39
2.6.2 Python的Hello world程序 39
2.6.3 Python對象 39
2.6.4 字符串 40
2.6.5 數(shù)值 41
2.6.6 列表 42
2.6.7 字典 44
2.6.8 Python文件操作 44
2.6.9 Python套接字編程 46
2.7 本章小結(jié) 47
第3章 下一代模糊測試 49
3.1 模糊測試簡介 49
3.2 模糊測試器的類型 50
3.2.1 數(shù)據(jù)變異模糊測試器 50
3.2.2 數(shù)據(jù)生成模糊測試器 50
3.2.3 遺傳模糊測試 50
3.3 Peach數(shù)據(jù)變異模糊測試 51
3.4 Peach數(shù)據(jù)生成模糊測試 56
3.5 AFL遺傳或進化模糊測試 64
3.6 本章小結(jié) 68
第4章 下一代逆向工程 69
4.1 代碼標(biāo)注 69
4.1.1 使用IDAscope的IDB標(biāo)注 69
4.1.2 C 代碼分析 75
4.2 協(xié)作分析 79
4.2.1 利用FIRST協(xié)作知識 80
4.2.2 使用BinNavi進行協(xié)作 82
4.3 動態(tài)分析 84
4.3.1 使用Cuckoo沙箱自動執(zhí)行動態(tài)分析 84
4.3.2 使用Labeless填補靜態(tài)工具與動態(tài)工具之間的空隙 85
4.3.3 實驗4-1:將IDA標(biāo)注應(yīng)用于x64dbg調(diào)試器 86
4.3.4 實驗4-2:將調(diào)試器內(nèi)存區(qū)域?qū)隝DA 87
4.4 本章小結(jié) 88
第5章 軟件定義的無線電 89
5.1 SDR入門 89
5.1.1 從何處購買 89
5.1.2 了解管理規(guī)則 91
5.2 示例 91
5.2.1 搜索 91
5.2.2 捕獲 92
5.2.3 重放 94
5.2.4 分析 96
5.2.5 預(yù)覽 102
5.2.6 執(zhí)行 104
5.3 本章小結(jié) 105
第Ⅱ部分 從業(yè)務(wù)角度分析黑客攻擊
第6章 成為一名滲透測試人員 109
6.1 從新手成長為專家的歷程 109
6.1.1 滲透測試精神 110
6.1.2 滲透測試分類 110
6.1.3 未來的黑客攻擊 110
6.1.4 了解技術(shù) 111
6.1.5 知道什么是良好的 111
6.1.6 滲透測試培訓(xùn) 112
6.1.7 實踐 112
6.1.8 學(xué)位課程 115
6.1.9 知識傳播 115
6.2 滲透測試人員和職業(yè)技能 116
6.2.1 個人責(zé)任 116
6.2.2 成為一名值得信賴的顧問 117
6.2.3 管理滲透測試 119
6.3 本章小結(jié) 122
第7章 紅隊的行動 123
7.1 紅隊的基本行動 124
7.1.1 策略、行動和戰(zhàn)術(shù)重點 124
7.1.2 評估比較 125
7.2 紅隊的目標(biāo) 126
7.3 常見問題 127
7.3.1 范圍受限 127
7.3.2 時間受限 127
7.3.3 參與者受限 127
7.3.4 克服條件的限制 127
7.4 溝通 128
7.4.1 規(guī)劃會議 128
7.4.2 確定可衡量的事件 129
7.5 理解威脅 129
7.6 攻擊框架 130
7.7 測試環(huán)境 131
7.8 自適應(yīng)測試 132
7.8.1 外部評估 132
7.8.2 物理安全評估 133
7.8.3 社交工程攻擊 133
7.8.4 內(nèi)部評估 134
7.9 吸取的教訓(xùn) 135
7.10 本章小結(jié) 136
第8章 紫隊的行動 137
8.1 紫隊簡介 137
8.2 藍(lán)隊的基本行動 138
8.2.1 了解敵人 139
8.2.2 了解自己 139
8.2.3 安全程序 140
8.2.4 事故響應(yīng)程序 140
8.2.5 常見的藍(lán)隊挑戰(zhàn) 142
8.3 紫隊的基本行動 143
8.3.1 決策框架 143
8.3.2 破壞殺傷鏈 144
8.3.3 殺傷鏈對策框架 146
8.3.4 溝通 146
8.4 紫隊的優(yōu)化和自動化 147
8.5 本章小結(jié) 148
第9章 漏洞賞金計劃 149
9.1 漏洞披露的歷史 149
9.1.1 完全向供應(yīng)商披露 150
9.1.2 完全向公眾披露 151
9.1.3 負(fù)責(zé)任的披露方式 152
9.1.4 再沒有免費的Bug 152
9.2 漏洞賞金計劃 153
9.2.1 漏洞賞金計劃的類型 153
9.2.2 激勵措施 155
9.2.3 圍繞漏洞賞金計劃的爭議 155
9.2.4 主流的漏洞賞金計劃促進者 155
9.3 Bugcrowd詳解 156
9.3.1 程序所有者Web界面 156
9.3.2 程序所有者API示例 161
9.3.3 研究人員Web界面 162
9.4 通過發(fā)現(xiàn)漏洞謀生 163
9.4.1 選擇一個目標(biāo) 163
9.4.2 如有必要,進行注冊 163
9.4.3 理解游戲規(guī)則 164
9.4.4 發(fā)現(xiàn)漏洞 164
9.4.5 報告漏洞 164
9.4.6 領(lǐng)取賞金 165
9.5 事故響應(yīng) 165
9.5.1 溝通 165
9.5.2 鑒別和分級 165
9.5.3 修復(fù) 166
9.5.4 向用戶披露 166
9.5.5 公關(guān) 166
9.6 本章小結(jié) 167
第Ⅲ部分 漏 洞 攻 擊
第10章 不使用漏洞獲取權(quán)限 171
10.1 捕獲口令哈希 171
10.1.1 理解LLMNR和NBNS 171
10.1.2 理解Windows NTLMv1和NTLMv2身份認(rèn)證 172
10.1.3 使用Responder 173
10.1.4 實驗10-1:使用Responder獲取口令 175
10.2 使用Winexe 178
10.2.1 實驗10-2:使用Winexe訪問遠(yuǎn)程系統(tǒng) 178
10.2.2 實驗10-3:使用Winexe提升權(quán)限 179
10.3 使用WMI 180
10.3.1 實驗10-4:使用WMI查詢系統(tǒng)信息 180
10.3.2 實驗10-5:使用WMI執(zhí)行命令 182
10.4 利用WinRM 185
10.4.1 實驗10-6:使用WinRM執(zhí)行命令 185
10.4.2 實驗10-7:使用WinRM遠(yuǎn)程運行PowerShell 186
10.5 本章小結(jié) 188
第11章 基本的Linux漏洞攻擊 189
11.1 堆棧操作和函數(shù)調(diào)用過程 189
11.2 緩沖區(qū)溢出 191
11.2.1 實驗11-1:meet.c溢出 192
11.2.2 緩沖區(qū)溢出的后果 196
11.3 本地緩沖區(qū)溢出漏洞攻擊 197
11.3.1 實驗11-2:漏洞攻擊的組件 197
11.3.2 實驗11-3:在命令行上進行堆棧溢出漏洞攻擊 200
11.3.3 實驗11-4:使用通用漏洞攻擊代碼進行堆棧溢出漏洞攻擊 203
11.3.4 實驗11-5:對小緩沖區(qū)進行漏洞攻擊 205
11.4 漏洞攻擊的開發(fā)過程 208
11.5 本章小結(jié) 215
第12章 高級的Linux漏洞攻擊 217
12.1 格式化字符串漏洞攻擊 217
12.1.1 格式化字符串 217
12.1.2 實驗12-1:從任意內(nèi)存讀取 222
12.1.3 實驗12-2:寫入任意內(nèi)存 224
12.1.4 實驗12-3:改變程序執(zhí)行 226
12.2 內(nèi)存保護機制 229
12.2.1 編譯器的改進 229
12.2.2 實驗12-4:繞過棧保護 231
12.2.3 內(nèi)核補丁和腳本 234
12.2.4 實驗12-5:Return to Libc漏洞攻擊 235
12.2.5 實驗12-6:使用ret2libc保持權(quán)限 240
12.2.6 結(jié)論 244
12.3 本章小結(jié) 245
第13章 基本的Windows漏洞攻擊 247
13.1 編譯和調(diào)試Windows程序 247
13.1.1 實驗13-1:在Windows上編譯程序 248
13.1.2 Windows編譯選項 249
13.1.3 在Windows上使用Immunity Debugger進行調(diào)試 250
13.1.4 實驗13-2:程序崩潰 253
13.2 編寫Windows漏洞攻擊程序 256
13.2.1 回顧漏洞攻擊程序的開發(fā)過程 256
13.2.2 實驗13-3:攻擊ProSSHD服務(wù)器 256
13.3 理解SEH 267
13.4 理解和繞過Windows內(nèi)存保護 269
13.4.1 SafeSEH 269
13.4.2 繞過SafeSEH 270
13.4.3 SEHOP 271
13.4.4 繞過SEHOP 271
13.4.5 基于堆棧的緩沖區(qū)溢出檢測(/GS) 278
13.4.6 繞過/GS 280
13.4.7 堆保護 280
13.5 本章小結(jié) 281
第14章 高級的Windows漏洞攻擊 283
14.1 DEP 283
14.2 ASLR 284
14.3 EMET和Windows Defender Exploit Guard 285
14.4 繞過ASLR 285
14.5 繞過DEP和ASLR 287
14.5.1 VirtualProtect函數(shù) 287
14.5.2 ROP 287
14.5.3 指令片段 288
14.5.4 構(gòu)建ROP鏈 289
14.6 通過內(nèi)存泄漏突破ASLR 293
14.6.1 觸發(fā)缺陷 294
14.6.2 跟蹤內(nèi)存泄漏 297
14.6.3 內(nèi)存泄漏武器化 308
14.6.4 構(gòu)建RVA ROP鏈 311
14.7 本章小結(jié) 315
第15章 PowerShell漏洞攻擊 317
15.1 為什么使用PowerShell 317
15.1.1 利用現(xiàn)有資源 317
15.1.2 PowerShell日志記錄 318
15.1.3 PowerShell的可移植性 319
15.2 加載PowerShell腳本 319
15.2.1 實驗15-1:攻擊條件 319
15.2.2 實驗15-2:在命令行上傳遞命令 321
15.2.3 實驗15-3:編碼的命令 322
15.2.4 實驗15-4:通過Web啟動 323
15.3 使用PowerSploit進行漏洞攻擊和后漏洞攻擊 325
15.3.1 實驗15-5:設(shè)置PowerSploit 325
15.3.2 實驗15-6:通過PowerShell運行Mimikatz 327
15.3.3 實驗15-7:使用PowerSploit創(chuàng)建持續(xù)訪問 330
15.4 使用Empire實現(xiàn)命令和控制 333
15.4.1 實驗15-8:設(shè)置Empire 333
15.4.2 實驗15-9:使用Empire執(zhí)行命令和控制 333
15.4.3 實驗15-10:使用Empire攻克系統(tǒng) 334
15.5 本章小結(jié) 337
第16章 下一代Web應(yīng)用程序漏洞攻擊 339
16.1 XSS演化史 339
16.1.1 設(shè)置環(huán)境 340
16.1.2 實驗16-1:溫習(xí)XSS 341
16.1.3 實驗16-2:XSS規(guī)避Internet防線 344
16.1.4 實驗16-3:使用XSS更改應(yīng)用程序邏輯 346
16.1.5 實驗16-4:為XSS使用DOM 348
16.2 框架漏洞 351
16.2.1 設(shè)置環(huán)境 352
16.2.2 實驗16-5:CVE-2017-5638漏洞攻擊 352
16.2.3 實驗16-6:CVE-2017-9805漏洞攻擊 354
16.3 Padding Oracle Attack 357
16.4 本章小結(jié) 360
第17章 下一代補丁漏洞攻擊 361
17.1 有關(guān)二進制比較的介紹 361
17.1.1 應(yīng)用程序比較 361
17.1.2 補丁比較 362
17.2 二進制比較工具 363
17.2.1 BinDiff 364
17.2.2 turbodiff 365
17.2.3 實驗17-1:首次文件比較 367
17.3 補丁管理流程 369
17.3.1 微軟星期二補丁 370
17.3.2 獲得并提取微軟補丁 371
17.3.3 實驗17-2:比較MS17-010 372
17.4 通過比較補丁進行漏洞攻擊 375
17.4.1 DLL旁路漏洞 375
17.4.2 實驗17-3:比較MS16-009 377
17.5 本章小結(jié) 382
第Ⅳ部分 高級惡意軟件分析
第18章 剖析移動平臺惡意軟件 385
18.1 Android平臺簡介 385
18.1.1 Android應(yīng)用程序包 385
18.1.2 應(yīng)用程序清單 387
18.1.3 分析DEX 389
18.1.4 Java反編譯 391
18.1.5 DEX反編譯 392
18.1.6 DEX反匯編 394
18.1.7 示例18-1:在模擬器中運行APK 395
18.1.8 惡意軟件分析 397
18.1.9 示例18-2:運用Droidbox進行黑盒APK監(jiān)控 401
18.2 iOS平臺 403
18.2.1 iOS安全 403
18.2.2 iOS應(yīng)用程序 405
18.2.3 實驗18-1:分析二進制屬性列表文件 405
18.2.4 實驗18-2:iPhone 4S越獄 406
18.2.5 實驗18-3:解密Apple商店應(yīng)用程序 407
18.3 本章小結(jié) 409
第19章 剖析勒索軟件 411
19.1 勒索軟件的歷史 411
19.2 贖金支付選項 412
19.3 剖析Ransomlock 413
19.3.1 示例19-1:動態(tài)分析 413
19.3.2 示例19-2:靜態(tài)分析 415
19.4 Wannacry 428
19.5 本章小結(jié) 434
第20章 ATM惡意軟件 435
20.1 ATM概覽 435
20.2 XFS概覽 437
20.2.1 XFS體系結(jié)構(gòu) 438
20.2.2 XFS管理器 439
20.3 分析ATM惡意軟件 443
20.3.1 ATM惡意軟件的類型 443
20.3.2 攻擊者是如何在ATM上安裝惡意軟件的 444
20.3.3 剖析惡意軟件 446
20.3.4 針對ATM惡意軟件的對策 453
20.4 本章小結(jié) 454
第21章 欺騙:下一代蜜罐 455
21.1 欺騙簡史 455
21.1.1 作為欺騙形式的蜜罐 456
21.1.2 部署時的考慮事項 458
21.1.3 設(shè)置虛擬機 458
21.2 開源蜜罐 459
21.2.1 實驗21-1:Dionaea 459
21.2.2 實驗21-2:ConPot 462
21.2.3 實驗21-3:Cowrie 463
21.2.4 實驗21-4:T-Pot 466
21.3 可選的商業(yè)化產(chǎn)品:TrapX 471
21.4 本章小結(jié) 480
第Ⅴ部分 物 聯(lián) 網(wǎng)
第22章 攻擊目標(biāo):物聯(lián)網(wǎng) 483
22.1 IoT 483
22.1.1 連接設(shè)備的類型 483
22.1.2 無線協(xié)議 484
22.1.3 通信協(xié)議 485
22.1.4 安全方面的考慮事項 485
22.2 Shodan IoT搜索引擎 486
22.2.1 Web界面 486
22.2.2 實驗22-1:使用Shodan命令行工具 488
22.2.3 Shodan API 489
22.2.4 實驗22-2:測試Shodan API 489
22.2.5 實驗22-3:使用MQTT 491
22.2.6 未經(jīng)身份認(rèn)證訪問MQTT帶來的啟示 492
22.3 IoT蠕蟲:只是時間問題 493
22.3.1 實驗22-4:Mirai依然存在 493
22.3.2 預(yù)防措施 494
22.4 本章小結(jié) 494
第23章 剖析嵌入式設(shè)備 495
23.1 CPU 495
23.1.1 微處理器 495
23.1.2 微控制器 496
23.1.3 SoC 496
23.1.4 常見的處理器架構(gòu) 496
23.2 串行接口 497
23.2.1 UART 497
23.2.2 SPI 502
23.2.3 I2C 503
23.3 調(diào)試接口 503
23.3.1 JTAG 503
23.3.2 SWD 505
23.4 軟件 506
23.4.1 啟動加載程序 507
23.4.2 無操作系統(tǒng) 508
23.4.3 實時操作系統(tǒng) 508
23.4.4 通用操作系統(tǒng) 509
23.5 本章小結(jié) 509
第24章 攻擊嵌入式設(shè)備 511
24.1 對嵌入式設(shè)備中的漏洞進行靜態(tài)分析 511
24.1.1 實驗24-1:分析更新包 511
24.1.2 實驗24-2:執(zhí)行漏洞分析 515
24.2 使用硬件執(zhí)行動態(tài)分析 518
24.2.1 設(shè)置測試環(huán)境 518
24.2.2 Ettercap 519
24.3 使用模擬器執(zhí)行動態(tài)分析 523
24.3.1 FIRMADYNE工具 523
24.3.2 實驗24-3:設(shè)置FIRMADYNE 523
24.3.3 實驗24-4:模擬固件 525
24.3.4 實驗24-5:攻擊固件 528
24.4 本章小結(jié) 529
第25章 反制物聯(lián)網(wǎng)惡意軟件 531
25.1 對物聯(lián)網(wǎng)設(shè)備的物理訪問 531
25.1.1 RS-232概述 532
25.1.2 RS-232引腳排列 532
25.1.3 練習(xí)25-1:排除醫(yī)療設(shè)備的RS-232端口故障 533
25.2 建立威脅實驗室 539
25.2.1 ARM和MIPS概述 540
25.2.2 實驗25-1:使用QEMU設(shè)置系統(tǒng) 541
25.3 動態(tài)分析物聯(lián)網(wǎng)惡意軟件 544
25.3.1 實驗25-2:動態(tài)分析惡意軟件 544
25.3.2 PANDA 545
25.3.3 BeagleBone Black開發(fā)板 546
25.4 物聯(lián)網(wǎng)惡意軟件的逆向工程 546
25.4.1 ARM/MIPS指令集速成 546
25.4.2 實驗25-3:IDA Pro遠(yuǎn)程調(diào)試和逆向工程 549
25.4.3 練習(xí)物聯(lián)網(wǎng)惡意軟件逆向工程 553
25.5 本章小結(jié) 555