Kali Linux Web 滲透測(cè)試秘籍 第五章 自動(dòng)化掃描

第五章 自動(dòng)化掃描

作者:Gilberto Najera-Gutierrez

譯者:飛龍

協(xié)議:CC BY-NC-SA 4.0

簡(jiǎn)介

幾乎每個(gè)滲透測(cè)試項(xiàng)目都需要遵循嚴(yán)格的日程,多數(shù)由客戶的需求或開發(fā)交談日期決定。對(duì)于滲透測(cè)試者,擁有一種工具,它可以在很短的時(shí)間內(nèi)執(zhí)行單個(gè)應(yīng)用上的多個(gè)測(cè)試,來(lái)盡可能在排期內(nèi)識(shí)別最多漏洞很有幫助。自動(dòng)化漏洞掃描器就是完成這種任務(wù)的工具,它們也用于發(fā)現(xiàn)替代的利用,或者確保滲透測(cè)試中不會(huì)遺漏了明顯的事情。

Kali 包含一些針對(duì) Web 應(yīng)用或特定 Web 漏洞的漏洞掃描器。這一章中,我們會(huì)涉及到一些在滲透測(cè)試者和安全研究員中最廣泛使用工具。

5.1 使用 Nikto 掃描

每個(gè)測(cè)試者的工具庫(kù)中必定含有的工具就是 Nikto,它可能是世界上使用最廣泛的自由掃描器。就像它的網(wǎng)站(https://cirt.net/Nikto2)上所說的那樣:

Nikto 是開源(GPL)的 Web 服務(wù)器掃描器,它對(duì) Web 服務(wù)器執(zhí)行綜合掃描,包含超過 6700 個(gè)潛在的危險(xiǎn)文件或程序,檢查超過 1250 個(gè)服務(wù)器的過期版本,以及超過 270 個(gè)服務(wù)器上的特定問題。它也會(huì)檢查服務(wù)器配置項(xiàng),例如多個(gè)首頁(yè)文件的存在,HTTP 服務(wù)器選項(xiàng),也會(huì)嘗試識(shí)別安裝的 Web 服務(wù)器和軟件。掃描的項(xiàng)目和插件也會(huì)經(jīng)常更新,并可以自動(dòng)更新。

這個(gè)秘籍中,我們會(huì)使用 Nikto 來(lái)搜索 Web 服務(wù)器中的漏洞并分析結(jié)果、

操作步驟

  1. Nikto 是個(gè)命令行工具,所以我們打開終端。

  2. 我們會(huì)掃描 Peruggia 漏洞應(yīng)用,并導(dǎo)出結(jié)果到 HTML 報(bào)告:

    nikto -h http://192.168.56.102/peruggia/ -o result.html
    

    -h選項(xiàng)告訴 Nikto 掃描哪個(gè)主機(jī),-o選項(xiàng)告訴在哪里存放輸出,文件的擴(kuò)展名決定了接受的格式。這里,我們使用.html來(lái)獲得 HTML 格式的結(jié)果報(bào)告。輸出也可以以 CSV、TXT 或 XML 格式。

  3. 它需要一些時(shí)間來(lái)完成掃描。完成之后,我么可以打開result.html文件:

工作原理

這個(gè)秘籍中,我們使用 Nikto 來(lái)掃描應(yīng)用并生成 HTML 報(bào)告。這個(gè)工具擁有一些更多的選項(xiàng),用于執(zhí)行特定掃描或生成特定輸出格式。一些最實(shí)用的選項(xiàng)是:

  • -H:這會(huì)顯示 Nikto 的幫助。

  • -config <file>:在掃描中用自定義的配置文件。

  • -update:更新插件數(shù)據(jù)庫(kù)。

  • -Format <format>:這定義了輸出格式,可以為CSV、HTML、NBE(Nessus)、SQL、TXT 或 XML。例如 CSV、XML 和 NBE 的格式在我們打算將其用于其它工具的輸入時(shí)非常實(shí)用。

  • -evasion <techique>:這使用一些編碼技巧來(lái)幫助避免 Web 應(yīng)用防火墻和入侵檢測(cè)系統(tǒng)的檢測(cè)。

  • -list-plugins:查看可用的測(cè)試插件。

  • -Plugins <plugins>:選擇在掃描中使用哪個(gè)插件(默認(rèn)為全部)。

  • -port <port number>:如果服務(wù)器使用非標(biāo)準(zhǔn)端口(80,443),我們可能會(huì)以這個(gè)選項(xiàng)來(lái)使用 Nikto。

5.2 使用 Wapiti 發(fā)現(xiàn)漏洞

Wapiti 是另一個(gè)基于終端的 Web 漏洞掃描器,它發(fā)送 GET 和 POST 請(qǐng)求給目標(biāo)站點(diǎn),來(lái)尋找下列漏洞(<http://wapiti. sourceforge.net/>):

  • 文件泄露

  • 數(shù)據(jù)庫(kù)注入

  • XSS

  • 命令執(zhí)行檢測(cè)

  • CRLF 注入

  • XXE(XML 外部實(shí)體)注入

  • 已知潛在危險(xiǎn)文件的使用

  • 可被繞過的.htaccess弱配置

  • 提供敏感信息的備份文件(源碼泄露)

這個(gè)秘籍中,我們使用 Wapiti 來(lái)發(fā)現(xiàn)我們的測(cè)試應(yīng)用上的漏洞,并生成掃描報(bào)告。

操作步驟

  1. 我們可以從終端窗口打開 Wapiti,例如:

    wapiti http://192.168.56.102/peruggia/ -o wapiti_result -f html -m "-blindsql"
    

    我們會(huì)掃描 vulnerable_vm 中的 Peruggia 應(yīng)用,將輸出保存為 HTML 格式,保存到wapiti_result目錄中,并跳過 SQL 盲注檢測(cè)。

  2. 如果我們打開了報(bào)告目錄,和index.html文件,我們會(huì)看到一些這樣的東西:

    這里,我們可以看到 Wapiti 發(fā)現(xiàn)了 12 個(gè) XSS 和 20 個(gè)文件處理漏洞。

  3. 現(xiàn)在點(diǎn)擊Cross Site Scripting(跨站腳本)。

  4. 選項(xiàng)某個(gè)漏洞并點(diǎn)擊HTTP Request。我們選擇第二個(gè),選中并復(fù)制請(qǐng)求的 URL 部分。

  5. 現(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。

    我們確實(shí)發(fā)現(xiàn)了 XSS 漏洞。

工作原理

這個(gè)秘籍中,我們跳過了 SQL 盲注檢測(cè)(-m "-blindsql"),因?yàn)檫@個(gè)應(yīng)用存在這個(gè)漏洞。它會(huì)觸發(fā)超時(shí)錯(cuò)誤,使 Wapiti 在掃描完成之前關(guān)閉,因?yàn)?Wapiti 通過輸入 sleep()命令來(lái)測(cè)試多次,直到服務(wù)器超過了超時(shí)門檻。同時(shí),我們?yōu)檩敵鲞x擇了 HTML 格式(-o html),wapiti_result作為報(bào)告的目標(biāo)目錄,我們也可以選擇其他格式,例如,JSON、OpenVAS、TXT 或 XML。

Wapiti 擁有一些其它的有趣的選項(xiàng),它們是:

  • -x <URL>:從掃描中排除特定的 URL,對(duì)于登出和密碼修改 URL 很實(shí)用。

  • -i <file>:從 XML 文件中恢復(fù)之前保存的掃描。文件名稱是可選的,因?yàn)槿绻雎缘脑?Wapiti 從scan文件夾中讀取文件。

  • -a <login%password>:為 HTTP 登錄使用特定的證書。

  • --auth-method <method>:為-a選項(xiàng)定義授權(quán)方式,可以為basic,digest,kerberosntlm

  • -s <URL>:定義要掃描的 URL。

  • -p <proxy_url>:使用 HTTP 或 HTTPS 代理。

5.3 使用 OWASP ZAP 掃描漏洞

OWASP ZAP 是我們已經(jīng)在這本書中使用過的工具,用于不同的任務(wù),并且在它的眾多特性中,包含了自動(dòng)化的漏洞掃描器。它的使用和報(bào)告生成會(huì)在這個(gè)秘籍中涉及。

準(zhǔn)備

在我們使用 OWASP ZAP 成功執(zhí)行漏洞掃描之前,我們需要爬取站點(diǎn):

  1. 打開 OWASP ZAP 并配置瀏覽器將其用作代理。

  2. 訪問 192.168.56.102/peruggia/。

  3. 遵循第三章“使用 ZAP 的蜘蛛”中的指南。

操作步驟

  1. 訪問 OWASP ZAP 的Sites面板,并右擊peruggia文件夾。

  2. 訪問菜單中的Attack | Active Scan。

  3. 新的窗口會(huì)彈出。這里,我們知道我們的應(yīng)用和服務(wù)器使用哪種技術(shù),所以,訪問Technology標(biāo)簽頁(yè),并只勾選MySQL、PostgreSQLLinux,以及Apache。

    這里我們可以配置我們的掃描器的Scope(從哪里開始掃描、在什么上下文中,以及其它)、Input Vectors(選項(xiàng)是否你打算測(cè)試 GET 和 POST 請(qǐng)求、協(xié)議頭、Cookie和其它選項(xiàng))、Custom Vectors(向原始請(qǐng)求中添加特定的字符或單詞作為攻擊向量)、Technology(要執(zhí)行什么技術(shù)特定的測(cè)試)、以及Policy(為特定測(cè)試選項(xiàng)配置參數(shù))。

  4. 點(diǎn)擊Start Scan。

  5. Active Scan標(biāo)簽頁(yè)會(huì)出現(xiàn)在面板頂部,并且所有請(qǐng)求都會(huì)出現(xiàn)在那里。當(dāng)掃描完成時(shí),我們可以在ALerts標(biāo)簽頁(yè)中檢查結(jié)果。

  6. 如果我們選項(xiàng)某個(gè)警告,我們可以查看生成的請(qǐng)求,以及從服務(wù)器獲得的響應(yīng)。這允許我們分析攻擊并判斷是否是真正的漏洞,或者是誤報(bào)。我們也可以使用這個(gè)信息來(lái)模糊測(cè)試,在瀏覽器中重放這個(gè)請(qǐng)求,或者深入挖掘以利用。為了生成 HTML 報(bào)告,就像前一個(gè)工具那樣,在主菜單中訪問Report之后選擇Generate HTML Report....。

  7. 新的對(duì)話框會(huì)詢問文件名和位置。例如,設(shè)置zap_result. html并且在完成時(shí)打開文件:

工作原理

OWASP ZAP 能夠執(zhí)行主動(dòng)和被動(dòng)漏洞掃描。被動(dòng)掃描是 OWASP ZAP 在我們?yōu)g覽過、發(fā)送數(shù)據(jù)和點(diǎn)擊鏈接程中進(jìn)行的非入侵測(cè)試。主動(dòng)測(cè)試涉及對(duì)每個(gè)表單變量或請(qǐng)求值使用多種攻擊字符串,以便檢測(cè)服務(wù)器的響應(yīng)是否帶有我們叫做“脆弱行為”的東西。

OWASP ZAP 使用多種技術(shù)生成測(cè)試字串,它對(duì)于首次識(shí)別目標(biāo)所使用的技術(shù)非常實(shí)用,以便優(yōu)化我們的掃描并減少被檢測(cè)到或?qū)е路?wù)崩潰的可能。

這個(gè)工具的另一個(gè)有趣特性是,我們可以產(chǎn)生于漏洞檢測(cè)中的請(qǐng)求,而且它的相應(yīng)響應(yīng)在檢測(cè)的時(shí)候會(huì)位于相同窗口中。這允許我們快讀判斷它是真正的漏洞還是誤報(bào),以及是否要開發(fā)我們的漏洞證明(POC)還是開始利用。

更多

我們已經(jīng)談?wù)摰?Burp Suite。Kali 只包含了免費(fèi)版本,它沒有主動(dòng)和被動(dòng)掃描特性。強(qiáng)烈推薦你獲得 Burp Suite 的專業(yè)版許可證,因?yàn)樗鼡碛袑?shí)用特性和免費(fèi)版之上的改進(jìn),例如主動(dòng)和被動(dòng)漏洞掃描。

被動(dòng)漏洞掃描在我們使用 Burp Suite 作為瀏覽器的代理,并瀏覽網(wǎng)頁(yè)時(shí)發(fā)生。Burp 會(huì)分析所有請(qǐng)求和響應(yīng),同時(shí)查找對(duì)應(yīng)已知漏洞的模式。

在主動(dòng)掃描中,Burp 會(huì)發(fā)送特定的請(qǐng)求給服務(wù)器并檢查響應(yīng)來(lái)查看是否對(duì)應(yīng)一些漏洞模式。這些請(qǐng)求是特殊構(gòu)造的,用于觸發(fā)帶有漏洞的應(yīng)用的特定行為。

5.4 使用 w3af 掃描

w3af 支持應(yīng)用審計(jì)和攻擊框架。它是開源的,基于 Python 的 Web 漏洞掃描器。它擁有 GUI 和命令行界面,都帶有相同的功能。這個(gè)秘籍中,我們會(huì)使用 w3af 的 GUI 配置掃描和報(bào)告選項(xiàng)來(lái)執(zhí)行掃描。

操作步驟

  1. 為了啟動(dòng) w3af 我們可以從應(yīng)用菜單欄選擇它,通過瀏覽Applications | 03 Web Application Analysis | w3af,或者從終端中:

    w3af_gui
    
  2. Profiles部分中,我們選擇full_audit。

  3. 在插件部分中,訪問crawl并選擇web_spider(已經(jīng)選擇的項(xiàng)目)。

  4. 我們不打算讓掃描器測(cè)試所有服務(wù)器,而是我們讓它測(cè)試應(yīng)用。在插件部分中,選中only_forward選項(xiàng)并點(diǎn)擊Save。

  5. 現(xiàn)在,我們會(huì)告訴 w3af 在完成時(shí)生成 HTML 報(bào)告。訪問output插件并選中html_file。

  6. 為了選擇文件名稱和保存報(bào)告的位置,修改output_file選項(xiàng)。這里我們會(huì)指定根目錄下的w3af_report.html,點(diǎn)擊Save。

  7. 現(xiàn)在在Target文本框中,輸入打算測(cè)試的 URL,這里是http://192.168.56.102/WackoPicko/,并點(diǎn)擊Start。

  8. 日志標(biāo)簽頁(yè)會(huì)獲得焦點(diǎn),我們能夠看到掃描的進(jìn)程。我們需要等待它完成。

  9. 完成之后,切換到Results標(biāo)簽頁(yè),像這樣:

  10. 為了查看詳細(xì)的報(bào)告,在瀏覽器中打開w3af_report.htmlHTML 文件。

工作原理

w3af 使用配置文件來(lái)簡(jiǎn)化為掃描選擇插件的任務(wù),例如,我們可以定義只含有 SQL 注入的配置文件,它測(cè)試應(yīng)用的 SQL 注入,不干其他的事情。full_audit配置使用一些插件,它們執(zhí)行爬蟲測(cè)試、提取可以用作密碼的單詞列表、測(cè)試大多數(shù)相關(guān)的 Web 漏洞,例如 XSS、SQLi、文件包含、目錄遍歷以及其它。我們修改了web_spider插件來(lái)前向爬取,以便我們可以專注于打算測(cè)試的應(yīng)用,避免掃描到其它應(yīng)用。我們也修改了輸出插件來(lái)生成 HTML 報(bào)告,而不是控制臺(tái)輸出和文本文件。

w3af 也擁有一些工具,例如攔截代理、模糊測(cè)試器、文本編解碼器、以及請(qǐng)求導(dǎo)出器,它可以將原始的請(qǐng)求轉(zhuǎn)換為多種語(yǔ)言的源代碼。

更多

w3af 的 GUI 有時(shí)會(huì)不穩(wěn)定。在它崩潰以及不能完成掃描的情況下,它的命令行界面可以提供相同的功能。例如,為了執(zhí)行我們剛才執(zhí)行的相同掃描,我們需要在終端中做下列事情:

w3af_console 
profiles
use 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)站點(diǎn)時(shí)掃描。

這個(gè)秘籍中,我們會(huì)使用 Vega 來(lái)發(fā)現(xiàn) Web 漏洞。

操作步驟

  1. 從應(yīng)用菜單中選擇它,訪問Applications | Kali Linux | Web Applications | Web Vulnerability Scanners | vega,或者通過終端來(lái)打開 Vega:

    vega
    
  2. 點(diǎn)擊“開始新掃描“按鈕。

  3. 新的對(duì)話框會(huì)彈出。在標(biāo)為Enter a base URI for scan的輸入框中,輸入http://192.168.56.102/WackoPicko來(lái)掃描應(yīng)用。

  4. 點(diǎn)擊Next。這里我們可以選擇在應(yīng)用上運(yùn)行那個(gè)模塊。讓我們保持默認(rèn)。

  5. 點(diǎn)擊Finish來(lái)開始掃描。

  6. 當(dāng)掃描完成時(shí),我們可以通過訪問左邊的Scan Alerts樹來(lái)檢查結(jié)果。漏洞詳情會(huì)在右邊的面板中展示,像這樣:

工作原理

Vega 的工作方式是首先爬取我們指定為目標(biāo)的 URL,識(shí)別表單和其它可能的數(shù)據(jù)輸入,例如 Cookie 或請(qǐng)求頭。一旦找到了它們,Vega 嘗試不同的輸入,通過分析響應(yīng)并將它們與已知漏洞模式匹配來(lái)識(shí)別漏洞。

在 Vega 中,我們可以掃描單個(gè)站點(diǎn)或范圍內(nèi)的一組站點(diǎn)。我們可以通過選擇在掃描中使用的模塊,來(lái)選擇要進(jìn)行哪種測(cè)試。同樣,我們可以使用身份(預(yù)保存的用戶/密碼組合)或者會(huì)話 Cookie來(lái)為站點(diǎn)認(rèn)證,并且從測(cè)試中排除一些參數(shù)。

作為重要的缺陷,它并沒有報(bào)告生成或數(shù)據(jù)導(dǎo)出特性。所以我們需要在 Vega GUI 中查看所有的漏洞描述和詳情。

5.6 使用 Metasploit 的 Wmap 發(fā)現(xiàn) Web 漏洞

Wmap 本身并不是漏洞掃描器,他是個(gè) Metasploit 模塊,使用所有框架中的 Web 漏洞和服務(wù)器相關(guān)的模塊,并使它們協(xié)調(diào)加載和對(duì)目標(biāo)服務(wù)器執(zhí)行。它的結(jié)果并不會(huì)導(dǎo)出為報(bào)告,但是會(huì)作為 Metasploit 數(shù)據(jù)庫(kù)中的條目。

這個(gè)秘籍中,我們會(huì)使用 Wmap 來(lái)尋找 vulnerable_vm 中的漏洞,并使用 Metasploit 命令行工具來(lái)檢查結(jié)果。

準(zhǔn)備

在我們運(yùn)行 Metasploit 的控制臺(tái)之前,我們需要啟動(dòng) 所連接的數(shù)據(jù)庫(kù)服務(wù)器,以便保存我們生成的結(jié)果:

service postgresql start

操作步驟

  1. 啟動(dòng)終端并運(yùn)行 Metasploit 控制臺(tái):

    msfconsole 
    
  2. 加載完成后,加載 Wmap 模塊:

    load wmap 
    
  3. 現(xiàn)在,我們向 Wamp 中添加站點(diǎn):

    wmap_sites -a http://192.168.56.102/WackoPicko/ 
    
  4. 如果我們打算查看注冊(cè)的站點(diǎn):

    wmap_sites -l 
    
  5. 現(xiàn)在我們將這個(gè)站點(diǎn)設(shè)為掃描目標(biāo):

    wmap_targets -d 0 
    
  6. 如果我們打算插件所選目標(biāo),我們可以使用:

    wmap_targets -l 
    
  7. 現(xiàn)在,我們執(zhí)行測(cè)試:

    wmap_run -e
    
  8. 我們需要使用 Metasploit 的命令來(lái)檢查記錄的漏洞:

    vulns 
    wmap_vulns
    

工作原理

Wmap 使用 Metasploit 的模塊來(lái)掃描目標(biāo)應(yīng)用和服務(wù)器上的漏洞。它從 Metasploit 的數(shù)據(jù)庫(kù)和模塊中獲取站點(diǎn)信息,并將結(jié)果發(fā)送到數(shù)據(jù)庫(kù)中。這個(gè)集成的一個(gè)非常實(shí)用的層面是,如果我們執(zhí)行多個(gè)服務(wù)器上的滲透測(cè)試,并且在測(cè)試中使用 Metasploit,Wmap 會(huì)自動(dòng)獲得所有 Web 服務(wù)器的 IP 地址,和已知 URL,并將它們集成為站點(diǎn),以便當(dāng)我們打算執(zhí)行 Web 評(píng)估時(shí),我們只需要從站點(diǎn)列表中選擇目標(biāo)。

在執(zhí)行wmap_run的時(shí)候,我們可以選擇要執(zhí)行哪個(gè)模塊。通過-m選項(xiàng)和正則表達(dá)式。例如,下面的命令行會(huì)開啟所有模塊,除了包含dos的模塊,這意味著沒有拒絕服務(wù)測(cè)試:

wmap_run -m ^((?!dos).)*$ 

另一個(gè)實(shí)用的選項(xiàng)是-p。它允許我們通過正則表達(dá)式選擇我們打算測(cè)試的路徑,例如,在下一個(gè)命令中,我們會(huì)檢查所有包含單詞login的 URL。

wmap_run -p ^.*(login).*$

最后,如果我們打算導(dǎo)出我們的掃描結(jié)果,我們總是可以使用 Metasploit 的數(shù)據(jù)庫(kù)特性。例如,在 MSF 控制臺(tái)中使用下列命令來(lái)將整個(gè)數(shù)據(jù)庫(kù)導(dǎo)出為 XML 文件。

db_export -f xml /root/database.xml
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容