作者 | 陳峻
審校 | 重樓
引言
不知有多少“曾夢(mèng)想仗劍走天涯”的網(wǎng)絡(luò)與信息安全從業(yè)者,是因?yàn)闈B透測(cè)試的初心而步入這個(gè)行業(yè)的。不過,您是否對(duì)滲透測(cè)試及其漏洞掃描的相關(guān)概念感到既熟悉又陌生呢?您是否覺得自己還停留在從工作實(shí)踐中積累的感性認(rèn)識(shí)呢?下面,我們將為您梳理滲透測(cè)試的各個(gè)實(shí)施階段,流程示例,典型工具,以及自動(dòng)化開源方案。
滲透測(cè)試的階段
從概念上說,滲透測(cè)試是一種通過模擬“友好的”黑客,來識(shí)別和利用安全漏洞的過程。作為一種標(biāo)準(zhǔn)化的系統(tǒng)性方法,它旨在提高目標(biāo)系統(tǒng)與組織的安全態(tài)勢(shì)。如下圖所示,滲透測(cè)試往往從規(guī)劃和收集信息開始,根據(jù)目標(biāo)需求的不同,或是以報(bào)告發(fā)現(xiàn)到的漏洞、或是以保持訪問控制作為結(jié)束。
滲透測(cè)試的各個(gè)階段
規(guī)劃與偵察
計(jì)劃階段旨在獲取目標(biāo)的所有相關(guān)信息,例如通過網(wǎng)絡(luò)釣魚攻擊捕獲詳細(xì)的技術(shù)數(shù)據(jù)。這些細(xì)節(jié)方面的信息,對(duì)于后續(xù)過程的開展,起到了至關(guān)重要的影響。
而偵察階段主要是通過主動(dòng)和被動(dòng)兩種基本方法,收集大量的基本數(shù)據(jù)。其中,主動(dòng)偵查很容易引起目標(biāo)組織的注意;而被動(dòng)偵察則以更加隱蔽、難以識(shí)別的方式間接收集信息。不過,相比被動(dòng)方法的復(fù)雜與耗時(shí),主動(dòng)方法雖不夠細(xì)致,但效率更高。
掃描
掃描階段的主要目的是以最小的被發(fā)現(xiàn)代價(jià),深入挖掘目標(biāo),收集有價(jià)值的信息,如同從一堆亂七八糟的物品中篩選出隱藏的寶石。例如,針對(duì)Web應(yīng)用,我們可以掃描CSRF潛在漏洞和XSS端點(diǎn)等。定位入侵點(diǎn)后,我們便可以調(diào)查該端口上運(yùn)行的服務(wù)類型,進(jìn)而判定其是否存在防火墻或WAF。下圖展示了可開展的多種掃描類型。
各種掃描類型
作為滲透測(cè)試的重要一環(huán),漏洞掃描往往被細(xì)化為分析評(píng)估數(shù)據(jù),通過逆向工程研究漏洞和錯(cuò)誤的成因。通常,漏洞掃描與評(píng)估需要我們投入大量的時(shí)間和精力,以了解不同信息之間的相互關(guān)系,進(jìn)而準(zhǔn)確地發(fā)現(xiàn)可能被利用的入侵點(diǎn)。當(dāng)然,像exploit-db之類的在線數(shù)據(jù)庫(kù),可以為我們提供針對(duì)CVE的可利用漏洞列表,以及相關(guān)的PoC代碼及其詳細(xì)信息。
利用和獲取訪問
一旦發(fā)現(xiàn)可被利用的漏洞,攻擊者需要盡快謹(jǐn)慎地利用漏洞,對(duì)目標(biāo)系統(tǒng)予以非法訪問。其中,最常見的莫過于使用遠(yuǎn)程代碼執(zhí)行(RCE)和后門。作為最危險(xiǎn)的漏洞類型,RCE漏洞往往表現(xiàn)對(duì)輸入與輸出缺乏檢查,以及存在可被篡改的代碼邏輯。后門則有兩類:自定義后門通常與欺騙目標(biāo)下載惡意文件有關(guān),而錯(cuò)誤配置的后門則開放了開發(fā)者的隱蔽訪問模式。
報(bào)告和控制
作為一名道德黑客,滲透測(cè)試的最后往往是撰寫報(bào)告。在報(bào)告中,您需要闡述采取的步驟、發(fā)現(xiàn)的問題、可利用的漏洞、面臨風(fēng)險(xiǎn)的資產(chǎn)、以及取得的成果等。這些有價(jià)值的信息可以協(xié)助組織確定針對(duì)攻擊預(yù)防的優(yōu)先級(jí),從而有的放矢。
滲透測(cè)試的流程
在不斷變化的網(wǎng)絡(luò)威脅領(lǐng)域,我們有必要根據(jù)上述不同的實(shí)施階段,為滲透測(cè)試創(chuàng)建一套能夠輕松集成各種工具的工作流程。例如,我們可以首先使用Amass收集Web應(yīng)用系統(tǒng)的子域地址,接著利用DnsDumpster提取IP地址,或使用regex來提取諸如URL、IP、端口等必要的數(shù)據(jù),然后通過Nmap進(jìn)行基于腳本的漏洞分析。下圖展示了一個(gè)典型的滲透測(cè)試流程模型:
流程模型示例
該流程的特點(diǎn)是能夠合理地整合各個(gè)測(cè)試工具之間的關(guān)聯(lián),讓一種工具的輸出能夠影響另一種工具的配置,從而使得針對(duì)Web應(yīng)用的枚舉流程更加流暢和簡(jiǎn)化。當(dāng)然,隨著時(shí)間的推移、威脅的演化、以及Web環(huán)境的復(fù)雜化,安全專家需要通過持續(xù)關(guān)注細(xì)節(jié)和積累實(shí)戰(zhàn)經(jīng)驗(yàn),來不斷修訂和完善該測(cè)試流程。
滲透測(cè)試的工具
顯然,滲透測(cè)試離不開工具的使用。讓我們來試想一位安全專家被要求對(duì)某個(gè)Web應(yīng)用開展?jié)B透測(cè)試。那么他會(huì)根據(jù)自己的工作經(jīng)驗(yàn)開展如下工作:
- 選用Python作為自動(dòng)化腳本的基礎(chǔ),開發(fā)各種工作流。
- 通過Sublist3r使用開源網(wǎng)絡(luò)情報(bào)(OSINT),來枚舉和收集目標(biāo)Web的子域。
- 通過Nmap使用Sublist3r的輸出結(jié)果,對(duì)發(fā)現(xiàn)的子域進(jìn)行有針對(duì)性的掃描,以了解開放的端口和網(wǎng)絡(luò)服務(wù)等攻擊面。
- 以Nmap掃描結(jié)果為基礎(chǔ),配置Burp Suite,查找SQL注入和跨站腳本等常見漏洞。
- 以Burp Suite掃描到的漏洞為指導(dǎo),通過Dirb枚舉目標(biāo)應(yīng)用目錄和文件,以查找Web服務(wù)器上的隱藏資源。
- 參照Dirb的發(fā)現(xiàn),使用Nikto進(jìn)行更全面、更深入的漏洞分析,總結(jié)出Web服務(wù)器上的已知漏洞、錯(cuò)誤配置、以及過時(shí)的軟件版本,并形成有關(guān)安全風(fēng)險(xiǎn)的綜合報(bào)告。
典型工具的綜合運(yùn)用
隨著網(wǎng)絡(luò)安全威脅的不斷變化,滲透測(cè)試工具也應(yīng)持續(xù)迭代、與時(shí)俱進(jìn)。以Metasploit為代表的漏洞利用平臺(tái)與框架不但能夠提供友好的用戶界面,而且可以支持更廣泛的漏洞類型,為安全專家提供直觀、高效的自動(dòng)漏洞利用執(zhí)行流程。目前,整合威脅情報(bào)信息已成為一項(xiàng)標(biāo)準(zhǔn)功能。有的工具甚至采用了人工智能和機(jī)器學(xué)習(xí)等技術(shù),來提高對(duì)于新型網(wǎng)絡(luò)威脅和漏洞的識(shí)別和排序的精確度和有效性。
自動(dòng)化開源方案
隨著越來越多的組織實(shí)現(xiàn)了持續(xù)、快速的軟件交付,自動(dòng)化滲透測(cè)試方案也在不斷與DevOps工作流進(jìn)行整合。它可以在開發(fā)管道的不同階段引入安全測(cè)試。同時(shí),隨著無服務(wù)器架構(gòu)在云計(jì)算環(huán)境的普及,我們也可以通過創(chuàng)建或修改現(xiàn)有的自動(dòng)化工具,以評(píng)估云基礎(chǔ)架構(gòu)的安全性。對(duì)此,安全專家可以將如下開源的工具與方案,整合到現(xiàn)有的測(cè)試流程中,以免去自己動(dòng)手編寫系統(tǒng)代碼和腳本的煩惱:
- Rayder:是一款簡(jiǎn)化的工作流應(yīng)用,可用于運(yùn)行復(fù)雜的編排映射。該工具通過YAML來映射不同的命令和工具,來運(yùn)行偵查任務(wù)。當(dāng)然,我們需要使用命令來告知其該如何執(zhí)行、保存和定位輸出。
- MetaHub:是一個(gè)上下文框架,可根據(jù)環(huán)境與核心要求,自動(dòng)編譯與上下文相關(guān)的資產(chǎn)。該工具主要適用于與云服務(wù)和AWS相關(guān)的操作。
- Vortex:該工具有助于偵查、枚舉和開發(fā)等多種任務(wù)的自動(dòng)化。
- Osmedeus:是一個(gè)龐大的框架,幾乎涵蓋了自動(dòng)化枚舉和偵查的所有要求,可被用于掃描Git存儲(chǔ)庫(kù)、某個(gè)子域、以及云服務(wù)發(fā)行版。
小結(jié)
當(dāng)然,您可以自行在GitHub上搜索可用于持續(xù)集成與持續(xù)部署的Python軟件包。例如,使用GitHub Actions、GitLab CI或Jenkins等工具,可建立持續(xù)集成和測(cè)試的管道,以確保自動(dòng)化測(cè)試流程的有效性、靈活性。
可以說,滲透測(cè)試流程的自動(dòng)化使得安全團(tuán)隊(duì)能夠從重復(fù)性任務(wù)中解脫出來,簡(jiǎn)化了資源的使用率,縮短了漏洞掃描與評(píng)估的時(shí)間,進(jìn)而讓組織能夠動(dòng)態(tài)地應(yīng)對(duì)不斷變化的威脅形勢(shì),保護(hù)自身的敏感數(shù)據(jù)和數(shù)字資產(chǎn)。
【參考文獻(xiàn)】Penetration Testing And Vulnerability Scanning -- Morpheuslord
作者介紹
陳峻(Julian Chen),51CTO社區(qū)編輯,具有十多年的IT項(xiàng)目實(shí)施經(jīng)驗(yàn),善于對(duì)內(nèi)外部資源與風(fēng)險(xiǎn)實(shí)施管控,專注傳播網(wǎng)絡(luò)與信息安全知識(shí)與經(jīng)驗(yàn)。