簡介
幾乎每個滲透測試項目都需要遵循嚴格的日程纽绍,多數(shù)由客戶的需求或開發(fā)交談日期決定粘衬。對于滲透測試者橄仆,擁有一種工具摧玫,它可以在很短的時間內(nèi)執(zhí)行單個應(yīng)用上的多個測試耳奕,來盡可能在排期內(nèi)識別最多漏洞很有幫助。自動化漏洞掃描器就是完成這種任務(wù)的工具,它們也用于發(fā)現(xiàn)替代的利用屋群,或者確保滲透測試中不會遺漏了明顯的事情闸婴。a
Kali 包含一些針對 Web 應(yīng)用或特定 Web 漏洞的漏洞掃描器。這一章中芍躏,我們會涉及到一些在滲透測試者和安全研究員中最廣泛使用工具邪乍。
5.1 使用 Nikto 掃描
每個測試者的工具庫中必定含有的工具就是 Nikto,它可能是世界上使用最廣泛的自由掃描器对竣。就像它的網(wǎng)站(https://cirt.net/Nikto2)上所說的那樣:
Nikto 是開源(GPL)的 Web 服務(wù)器掃描器庇楞,它對 Web 服務(wù)器執(zhí)行綜合掃描,包含超過 6700 個潛在的危險文件或程序否纬,檢查超過 1250 個服務(wù)器的過期版本姐刁,以及超過 270 個服務(wù)器上的特定問題。它也會檢查服務(wù)器配置項烦味,例如多個首頁文件的存在,HTTP 服務(wù)器選項壁拉,也會嘗試識別安裝的 Web 服務(wù)器和軟件谬俄。掃描的項目和插件也會經(jīng)常更新,并可以自動更新弃理。
這個秘籍中溃论,我們會使用 Nikto 來搜索 Web 服務(wù)器中的漏洞并分析結(jié)果、
操作步驟
Nikto 是個命令行工具痘昌,所以我們打開終端钥勋。
我們會掃描 Peruggia 漏洞應(yīng)用,并導(dǎo)出結(jié)果到 HTML 報告:
nikto -h http://192.168.56.102/peruggia/ -o result.html
[圖片上傳中辆苔。算灸。。(1)]
-h
選項告訴 Nikto 掃描哪個主機驻啤,-o
選項告訴在哪里存放輸出菲驴,文件的擴展名決定了接受的格式。這里骑冗,我們使用.html
來獲得 HTML 格式的結(jié)果報告赊瞬。輸出也可以以 CSV、TXT 或 XML 格式贼涩。
它需要一些時間來完成掃描巧涧。完成之后,我么可以打開result.html
文件:
[圖片上傳中遥倦。谤绳。。(2)]
工作原理
這個秘籍中,我們使用 Nikto 來掃描應(yīng)用并生成 HTML 報告闷供。這個工具擁有一些更多的選項烟央,用于執(zhí)行特定掃描或生成特定輸出格式。一些最實用的選項是:
-H
:這會顯示 Nikto 的幫助歪脏。
-config <file>
:在掃描中用自定義的配置文件疑俭。
-update
:更新插件數(shù)據(jù)庫。
-Format <format>
:這定義了輸出格式婿失,可以為CSV钞艇、HTML、NBE(Nessus)豪硅、SQL哩照、TXT 或 XML。例如 CSV懒浮、XML 和 NBE 的格式在我們打算將其用于其它工具的輸入時非常實用飘弧。
-evasion <techique>
:這使用一些編碼技巧來幫助避免 Web 應(yīng)用防火墻和入侵檢測系統(tǒng)的檢測。
-list-plugins
:查看可用的測試插件砚著。
-Plugins <plugins>
:選擇在掃描中使用哪個插件(默認為全部)次伶。
-port <port number>
:如果服務(wù)器使用非標(biāo)準端口(80,443)稽穆,我們可能會以這個選項來使用 Nikto冠王。
5.2 使用 Wapiti 發(fā)現(xiàn)漏洞
Wapiti 是另一個基于終端的 Web 漏洞掃描器,它發(fā)送 GET 和 POST 請求給目標(biāo)站點舌镶,來尋找下列漏洞(<http://wapiti. sourceforge.net/>):
文件泄露
數(shù)據(jù)庫注入
XSS
命令執(zhí)行檢測
CRLF 注入
XXE(XML 外部實體)注入
已知潛在危險文件的使用
可被繞過的.htaccess
弱配置
提供敏感信息的備份文件(源碼泄露)
這個秘籍中柱彻,我們使用 Wapiti 來發(fā)現(xiàn)我們的測試應(yīng)用上的漏洞,并生成掃描報告餐胀。
操作步驟
我們可以從終端窗口打開 Wapiti哟楷,例如:
wapiti http://192.168.56.102/peruggia/ -o wapiti_result -f html -m "-blindsql"
我們會掃描 vulnerable_vm 中的 Peruggia 應(yīng)用,將輸出保存為 HTML 格式否灾,保存到wapiti_result
目錄中吓蘑,并跳過 SQL 盲注檢測。
如果我們打開了報告目錄坟冲,和index.html
文件磨镶,我們會看到一些這樣的東西:
[圖片上傳中。健提。琳猫。(3)]
這里,我們可以看到 Wapiti 發(fā)現(xiàn)了 12 個 XSS 和 20 個文件處理漏洞私痹。
現(xiàn)在點擊Cross Site Scripting
(跨站腳本)脐嫂。
選項某個漏洞并點擊HTTP Request
统刮。我們選擇第二個,選中并復(fù)制請求的 URL 部分账千。
[圖片上傳中侥蒙。。匀奏。(4)]
現(xiàn)在鞭衩,我們將 URL 粘貼到瀏覽器中,像這樣:http://192.168.56.102/ peruggia/index.php?action=comment&pic_id=%3E%3C%2Fform%3E%3Cscr ipt%3Ealert%28%27wxs0lvms89%27%29%3C%2Fscript%3E
娃善。
[圖片上傳中论衍。。聚磺。(5)]
我們確實發(fā)現(xiàn)了 XSS 漏洞坯台。
工作原理
這個秘籍中,我們跳過了 SQL 盲注檢測(-m "-blindsql"
)瘫寝,因為這個應(yīng)用存在這個漏洞蜒蕾。它會觸發(fā)超時錯誤,使 Wapiti 在掃描完成之前關(guān)閉焕阿,因為 Wapiti 通過輸入 sleep()
命令來測試多次滥搭,直到服務(wù)器超過了超時門檻。同時捣鲸,我們?yōu)檩敵鲞x擇了 HTML 格式(-o html
),wapiti_result
作為報告的目標(biāo)目錄闽坡,我們也可以選擇其他格式栽惶,例如,JSON疾嗅、OpenVAS外厂、TXT 或 XML。
Wapiti 擁有一些其它的有趣的選項代承,它們是:
-x <URL>
:從掃描中排除特定的 URL汁蝶,對于登出和密碼修改 URL 很實用。
-i <file>
:從 XML 文件中恢復(fù)之前保存的掃描论悴。文件名稱是可選的掖棉,因為如果忽略的話 Wapiti 從scan
文件夾中讀取文件。
-a <login%password>
:為 HTTP 登錄使用特定的證書膀估。
--auth-method <method>
:為-a
選項定義授權(quán)方式幔亥,可以為basic
,digest
察纯,kerberos
或 ntlm
帕棉。
-s <URL>
:定義要掃描的 URL针肥。
-p <proxy_url>
:使用 HTTP 或 HTTPS 代理。
5.3 使用 OWASP ZAP 掃描漏洞
OWASP ZAP 是我們已經(jīng)在這本書中使用過的工具香伴,用于不同的任務(wù)慰枕,并且在它的眾多特性中,包含了自動化的漏洞掃描器即纲。它的使用和報告生成會在這個秘籍中涉及具帮。
準備
在我們使用 OWASP ZAP 成功執(zhí)行漏洞掃描之前,我們需要爬取站點:
打開 OWASP ZAP 并配置瀏覽器將其用作代理崇裁。
訪問 192.168.56.102/peruggia/
匕坯。
遵循第三章“使用 ZAP 的蜘蛛”中的指南。
操作步驟
訪問 OWASP ZAP 的Sites
面板拔稳,并右擊peruggia
文件夾葛峻。
訪問菜單中的Attack | Active Scan
。
新的窗口會彈出巴比。這里术奖,我們知道我們的應(yīng)用和服務(wù)器使用哪種技術(shù),所以轻绞,訪問Technology
標(biāo)簽頁采记,并只勾選MySQL
、PostgreSQL
和Linux
政勃,以及Apache
唧龄。
[圖片上傳中。奸远。既棺。(7)]
這里我們可以配置我們的掃描器的Scope
(從哪里開始掃描、在什么上下文中懒叛,以及其它)丸冕、Input Vectors
(選項是否你打算測試 GET 和 POST 請求、協(xié)議頭薛窥、Cookie和其它選項)胖烛、Custom Vectors
(向原始請求中添加特定的字符或單詞作為攻擊向量)、Technology
(要執(zhí)行什么技術(shù)特定的測試)诅迷、以及Policy
(為特定測試選項配置參數(shù))佩番。
點擊Start Scan
。
Active Scan
標(biāo)簽頁會出現(xiàn)在面板頂部罢杉,并且所有請求都會出現(xiàn)在那里答捕。當(dāng)掃描完成時,我們可以在ALerts
標(biāo)簽頁中檢查結(jié)果屑那。
[圖片上傳中拱镐。艘款。。(8)]
如果我們選項某個警告沃琅,我們可以查看生成的請求哗咆,以及從服務(wù)器獲得的響應(yīng)。這允許我們分析攻擊并判斷是否是真正的漏洞益眉,或者是誤報晌柬。我們也可以使用這個信息來模糊測試,在瀏覽器中重放這個請求郭脂,或者深入挖掘以利用年碘。為了生成 HTML 報告,就像前一個工具那樣展鸡,在主菜單中訪問Report
之后選擇Generate HTML Report....
屿衅。
新的對話框會詢問文件名和位置。例如莹弊,設(shè)置zap_result. html
并且在完成時打開文件:
[圖片上傳中涤久。。忍弛。(9)]
工作原理
OWASP ZAP 能夠執(zhí)行主動和被動漏洞掃描响迂。被動掃描是 OWASP ZAP 在我們?yōu)g覽過、發(fā)送數(shù)據(jù)和點擊鏈接程中進行的非入侵測試细疚。主動測試涉及對每個表單變量或請求值使用多種攻擊字符串蔗彤,以便檢測服務(wù)器的響應(yīng)是否帶有我們叫做“脆弱行為”的東西。
OWASP ZAP 使用多種技術(shù)生成測試字串疯兼,它對于首次識別目標(biāo)所使用的技術(shù)非常實用然遏,以便優(yōu)化我們的掃描并減少被檢測到或?qū)е路?wù)崩潰的可能。
這個工具的另一個有趣特性是镇防,我們可以產(chǎn)生于漏洞檢測中的請求,而且它的相應(yīng)響應(yīng)在檢測的時候會位于相同窗口中潮饱。這允許我們快讀判斷它是真正的漏洞還是誤報来氧,以及是否要開發(fā)我們的漏洞證明(POC)還是開始利用。
[圖片上傳中香拉。啦扬。。(10)]
更多
我們已經(jīng)談?wù)摰?Burp Suite凫碌。Kali 只包含了免費版本扑毡,它沒有主動和被動掃描特性。強烈推薦你獲得 Burp Suite 的專業(yè)版許可證盛险,因為它擁有實用特性和免費版之上的改進瞄摊,例如主動和被動漏洞掃描勋又。
被動漏洞掃描在我們使用 Burp Suite 作為瀏覽器的代理,并瀏覽網(wǎng)頁時發(fā)生换帜。Burp 會分析所有請求和響應(yīng)楔壤,同時查找對應(yīng)已知漏洞的模式。
在主動掃描中惯驼,Burp 會發(fā)送特定的請求給服務(wù)器并檢查響應(yīng)來查看是否對應(yīng)一些漏洞模式蹲嚣。這些請求是特殊構(gòu)造的,用于觸發(fā)帶有漏洞的應(yīng)用的特定行為祟牲。
5.4 使用 w3af 掃描
w3af 支持應(yīng)用審計和攻擊框架隙畜。它是開源的,基于 Python 的 Web 漏洞掃描器说贝。它擁有 GUI 和命令行界面祈纯,都帶有相同的功能。這個秘籍中敞贡,我們會使用 w3af 的 GUI 配置掃描和報告選項來執(zhí)行掃描童本。
操作步驟
為了啟動 w3af 我們可以從應(yīng)用菜單欄選擇它,通過瀏覽Applications | 03 Web Application Analysis | w3af
几颜,或者從終端中:
w3af_gui
在Profiles
部分中倍试,我們選擇full_audit
。
在插件部分中蛋哭,訪問crawl
并選擇web_spider
(已經(jīng)選擇的項目)县习。
我們不打算讓掃描器測試所有服務(wù)器,而是我們讓它測試應(yīng)用谆趾。在插件部分中躁愿,選中only_forward
選項并點擊Save
。
[圖片上傳中沪蓬。彤钟。。(11)]
現(xiàn)在跷叉,我們會告訴 w3af 在完成時生成 HTML 報告逸雹。訪問output
插件并選中html_file
。
為了選擇文件名稱和保存報告的位置云挟,修改output_file
選項梆砸。這里我們會指定根目錄下的w3af_report.html
,點擊Save
园欣。
[圖片上傳中帖世。。沸枯。(12)]
現(xiàn)在在Target
文本框中日矫,輸入打算測試的 URL赂弓,這里是http://192.168.56.102/WackoPicko/
,并點擊Start
搬男。
[圖片上傳中拣展。。缔逛。(13)]
日志標(biāo)簽頁會獲得焦點备埃,我們能夠看到掃描的進程。我們需要等待它完成褐奴。
完成之后按脚,切換到Results
標(biāo)簽頁,像這樣:
[圖片上傳中敦冬。辅搬。。(14)]
為了查看詳細的報告脖旱,在瀏覽器中打開w3af_report.html
HTML 文件堪遂。
[圖片上傳中。萌庆。溶褪。(15)]
工作原理
w3af 使用配置文件來簡化為掃描選擇插件的任務(wù),例如践险,我們可以定義只含有 SQL 注入的配置文件猿妈,它測試應(yīng)用的 SQL 注入,不干其他的事情巍虫。full_audit
配置使用一些插件彭则,它們執(zhí)行爬蟲測試、提取可以用作密碼的單詞列表占遥、測試大多數(shù)相關(guān)的 Web 漏洞俯抖,例如 XSS、SQLi瓦胎、文件包含芬萍、目錄遍歷以及其它。我們修改了web_spider
插件來前向爬取凛捏,以便我們可以專注于打算測試的應(yīng)用担忧,避免掃描到其它應(yīng)用芹缔。我們也修改了輸出插件來生成 HTML 報告坯癣,而不是控制臺輸出和文本文件。
w3af 也擁有一些工具最欠,例如攔截代理示罗、模糊測試器惩猫、文本編解碼器、以及請求導(dǎo)出器蚜点,它可以將原始的請求轉(zhuǎn)換為多種語言的源代碼轧房。
更多
w3af 的 GUI 有時會不穩(wěn)定。在它崩潰以及不能完成掃描的情況下绍绘,它的命令行界面可以提供相同的功能奶镶。例如,為了執(zhí)行我們剛才執(zhí)行的相同掃描陪拘,我們需要在終端中做下列事情:
w3af_console profilesuse full_audit back plugins output config html_file set output_file /root/w3af_report.html save back crawl config web_spider set only_forward True save back back target set target http://192.168.56.102/WackoPicko/ save back start
5.5 使用 Vega 掃描器
Vega 是由加拿大公司 Subgraph 制作的 Web 漏洞掃描器厂镇,作為開源工具分發(fā)。除了是掃描器之外左刽,它也可以用作攔截代理捺信,以及在我們?yōu)g覽器目標(biāo)站點時掃描。
這個秘籍中欠痴,我們會使用 Vega 來發(fā)現(xiàn) Web 漏洞迄靠。
操作步驟
從應(yīng)用菜單中選擇它,訪問Applications | Kali Linux | Web Applications | Web Vulnerability Scanners | vega
喇辽,或者通過終端來打開 Vega:
vega
點擊“開始新掃描“按鈕掌挚。
新的對話框會彈出。在標(biāo)為Enter a base URI for scan
的輸入框中茵臭,輸入http://192.168.56.102/WackoPicko
來掃描應(yīng)用疫诽。
[圖片上傳中。旦委。奇徒。(16)]
點擊Next
。這里我們可以選擇在應(yīng)用上運行那個模塊缨硝。讓我們保持默認摩钙。
[圖片上傳中。查辩。胖笛。(17)]
點擊Finish
來開始掃描。
[圖片上傳中宜岛。长踊。。(18)]
當(dāng)掃描完成時萍倡,我們可以通過訪問左邊的Scan Alerts
樹來檢查結(jié)果身弊。漏洞詳情會在右邊的面板中展示,像這樣:
[圖片上傳中。阱佛。帖汞。(19)]
工作原理
Vega 的工作方式是首先爬取我們指定為目標(biāo)的 URL,識別表單和其它可能的數(shù)據(jù)輸入凑术,例如 Cookie 或請求頭翩蘸。一旦找到了它們,Vega 嘗試不同的輸入淮逊,通過分析響應(yīng)并將它們與已知漏洞模式匹配來識別漏洞催首。
在 Vega 中,我們可以掃描單個站點或范圍內(nèi)的一組站點泄鹏。我們可以通過選擇在掃描中使用的模塊翅帜,來選擇要進行哪種測試。同樣命满,我們可以使用身份(預(yù)保存的用戶/密碼組合)或者會話 Cookie來為站點認證涝滴,并且從測試中排除一些參數(shù)。
作為重要的缺陷胶台,它并沒有報告生成或數(shù)據(jù)導(dǎo)出特性歼疮。所以我們需要在 Vega GUI 中查看所有的漏洞描述和詳情。
5.6 使用 Metasploit 的 Wmap 發(fā)現(xiàn) Web 漏洞
Wmap 本身并不是漏洞掃描器诈唬,他是個 Metasploit 模塊韩脏,使用所有框架中的 Web 漏洞和服務(wù)器相關(guān)的模塊,并使它們協(xié)調(diào)加載和對目標(biāo)服務(wù)器執(zhí)行铸磅。它的結(jié)果并不會導(dǎo)出為報告赡矢,但是會作為 Metasploit 數(shù)據(jù)庫中的條目。
這個秘籍中阅仔,我們會使用 Wmap 來尋找 vulnerable_vm 中的漏洞吹散,并使用 Metasploit 命令行工具來檢查結(jié)果。
準備
在我們運行 Metasploit 的控制臺之前八酒,我們需要啟動 所連接的數(shù)據(jù)庫服務(wù)器空民,以便保存我們生成的結(jié)果:
service postgresql start
操作步驟
啟動終端并運行 Metasploit 控制臺:
msfconsole
加載完成后,加載 Wmap 模塊:
load wmap
現(xiàn)在羞迷,我們向 Wamp 中添加站點:
wmap_sites -a http://192.168.56.102/WackoPicko/
如果我們打算查看注冊的站點:
wmap_sites -l
現(xiàn)在我們將這個站點設(shè)為掃描目標(biāo):
wmap_targets -d 0
如果我們打算插件所選目標(biāo)界轩,我們可以使用:
wmap_targets -l
[圖片上傳中。衔瓮。浊猾。(20)]
現(xiàn)在,我們執(zhí)行測試:
wmap_run -e
[圖片上傳中热鞍。葫慎。单山。(21)]
我們需要使用 Metasploit 的命令來檢查記錄的漏洞:
vulns wmap_vulns
[圖片上傳中。幅疼。。(22)]
工作原理
Wmap 使用 Metasploit 的模塊來掃描目標(biāo)應(yīng)用和服務(wù)器上的漏洞昼接。它從 Metasploit 的數(shù)據(jù)庫和模塊中獲取站點信息爽篷,并將結(jié)果發(fā)送到數(shù)據(jù)庫中。這個集成的一個非常實用的層面是慢睡,如果我們執(zhí)行多個服務(wù)器上的滲透測試逐工,并且在測試中使用 Metasploit,Wmap 會自動獲得所有 Web 服務(wù)器的 IP 地址漂辐,和已知 URL泪喊,并將它們集成為站點,以便當(dāng)我們打算執(zhí)行 Web 評估時髓涯,我們只需要從站點列表中選擇目標(biāo)袒啼。
在執(zhí)行wmap_run
的時候,我們可以選擇要執(zhí)行哪個模塊纬纪。通過-m
選項和正則表達式蚓再。例如,下面的命令行會開啟所有模塊包各,除了包含dos
的模塊摘仅,這意味著沒有拒絕服務(wù)測試:
wmap_run -m ^((?!dos).)*$
另一個實用的選項是-p
。它允許我們通過正則表達式選擇我們打算測試的路徑问畅,例如娃属,在下一個命令中,我們會檢查所有包含單詞login
的 URL护姆。
wmap_run -p ^.(login).$
最后矾端,如果我們打算導(dǎo)出我們的掃描結(jié)果,我們總是可以使用 Metasploit 的數(shù)據(jù)庫特性卵皂。例如须床,在 MSF 控制臺中使用下列命令來將整個數(shù)據(jù)庫導(dǎo)出為 XML 文件。+
db_export -f xml /root/database.xml