Kali Linux滲透測試——WEB滲透(一)

Kali Linux滲透測試——WEB滲透(一)

筆記內容參考安全牛課堂苑房弘老師的Kali Linux滲透測試教程

WEB攻擊面

訪問網絡服務基本架構如圖1所示:

網絡服務訪問架構

圖1 網絡服務訪問架構

WEB滲透途徑涵蓋了每一層內容

  • Browser
  • Network
  • WEB Server
  • WEB Application
  • App Server
  • Database

掃描工具

主要介紹針對WEB Server、WEB Application層面的漏洞掃描工具,注意與Nessus、OpenVAS等側重於操作系統層面的掃描工具不同。自動化的掃描工具只能發現技術層面的漏洞,不能發現業務邏輯層面的漏洞

1.HTTrack

開源的跨平臺網站克隆工具,用於離線存儲網絡鏡像進行掃描探測,避免與目標網站大量交互。嚮導式交互界面,支持代理功能。

2.Nikto

Perl語言開發的開源WEB安全掃描器,針對軟件版本、存在安全隱患的文件、服務器配置漏洞以及WEB應用進行掃描探測,主要掃描WEB Server層面的安全隱患。基本使用:

git clone https://github.com/sullo/nikto.git
# 通過git進行升級

nikto -list-plugins
# 列出nikto插件,對應掃描的內容

nikto -host http://10.10.11.128/dvwa
nikto -host 192.168.1.1 -ssl -port 443,8443,995
# 可以通過url或host:port形式指定掃描目標
# 掃描目標可以是網站主頁或子站
# 支持ssl掃描

nikto -host host.txt
# host.txt中爲多個掃描目標,每個目標占一行

nmap -p80 192.168.1.0/24 -oG - | nikto -host -
# 將nmap掃描結果輸出給nikto掃描

nikto -host baidu.com -useproxy http://localhost:8087 
# 指定代理服務器,提高掃描隱蔽性

nikto -host http://10.10.11.128/dvwa -evasion 157
# -evasion:指定IDS繞過技術,有8種可供選擇

在掃描過程中可以交互式回顯信息:

Space:report current scan status

v:verbose mode on/off

d:debug mode on/off

e:error reporting on/off

p:progress reporting on/off

r:redirect display on/off

c:cookie display on/off

a:auth display on/off

q:quit

N:next host

P:Pause

可以通過配置文件/etc/nikto.conf設置cookies,注意修改其中的USERAGNET,增加掃描行爲的隱蔽性。

注意:nikto不能提供基於表單的身份驗證,身份驗證只能通過cookies的形式,在/etc/nikto.conf中修改STATIC-COOKIE的值。

3.Vega

JAVA語言開發的開源圖形化掃描工具,主要掃描WEB Application層面的安全隱患,分爲掃描模式(Scanner)和代理模式(Proxy)。

Vega配置界面

圖2 Vega配置界面

Window->Preferences中配置Proxy和Scanner參數,注意General中的代理是外部代理,Proxy中代理是Vega自身代理。

(1)爬站掃描

① 首先進入Proxy模式進行人工爬站,所有的鏈接、提交頁面都要瀏覽,瀏覽器設置好Vega代理,開啓掃描模塊,人工訪問目標站點的每一個鏈接,此時Vega會掃描、分析經由自身的流量,爬取目標站點網頁並分析安全漏洞;

Vega Proxy模式掃描

圖3 Vega Proxy模式掃描

② 然後進入Scanner模式,需要登錄訪問的網站要配置身份信息Identity,macro認證信息可以通過request請求添加,注意掃描時定義好scope,否則Scanner會爬取頁面中所有的鏈接,點擊開始後Scanner就會根據字典和已爬取的網頁進行進一步爬取,並逐一掃描分析安全漏洞。

綜合Proxy模式和Scanner模式掃描的結果進行分析。

(2)流量截獲

在Proxy模式下,Vega可以通過Intercept進行流量截斷、篡改,通過Intereptor Options對Request和Response流量配置截流規則。

4.OWASP ZAP

JAVA語言開發的開源WEB Application圖形化集成滲透測試和漏洞挖掘工具,主要掃描WEB Application層面的安全隱患,具有截斷代理、主被動掃描、暴力破解、Fuzz等功能。

開啓時可以選擇將當前session保存在指定文件中,方便下次打開時查看爬網結果。ZAP開啓後首先進行add-ons升級,add-ons分爲:Realease(發行版,穩定性好,準確率高)、Beta(基本版,性能待優化)、Alpha(開發版,性能沒有保證),Installed爲已安裝,Marketplace爲未安裝。

在這裏插入圖片描述

圖4 ZAP運行界面

標準的掃描工作流程爲:
設置代理 -> 手動爬網(被動掃描)-> 自動爬網(主動掃描)
(1)設置代理

ZAP默認開啓代理功能,HTTPS代理需要在瀏覽器中添加OWASP根證書且設置爲信任

OWASP證書

圖5 OWASP根證書

(2)手動爬網(被動掃描)
  • 配置掃描範圍
    ZAP掃描範圍概念爲Context(上下文),可以定義不同的Context,每個Context包含不同的站點,Scope爲掃描顯示的站點,可以包含不同的Context

  • 配置登錄身份
    Session Properties選擇相應會話的身份驗證,一般選擇手動身份驗證,即通過手動爬網自動記錄登錄信息

  • 配置HTTP Session
    通過Set as Active選擇不同的HTTP Sessions作爲登錄身份,而無需再瀏覽器中修改配置,其中Session中沒有的關鍵字可以在Options->HTTP Sessions中添加

  • 配置掃描策略、規則
    ZAP掃描模式分爲Safe、Protected、Standard、Attack,掃描的危險性依次遞增;在工具欄Scan Strategy定製掃描策略,可以配置不同的警報閾值和攻擊強度,掃描策略應用於主動掃描;在Options中配置主被動掃描規則,選擇閾值、質量、範圍等參數。

  • 手動爬網(被動掃描)
    瀏覽器設置好代理後,手動訪問目標網站,所有的鏈接、提交頁面都要瀏覽,ZAP會記錄人工爬網站點,且根據設置的策略、規則進行被動掃描

(3)自動爬網(主動掃描)

在Quick Start中輸入目標URL,開始Attack,或者在已爬站點上右鍵->攻擊->主動掃描,選擇掃描策略進行主動掃描。

在這裏插入圖片描述

圖6 配置HTTP Sessions

  • Fuzz/暴力破解
    在工具欄選擇工具->Fuzz,或者在已爬站點上右鍵->攻擊->Fuzz,選中要Fuzz的部分,輸入自定義字典,類型爲字符串、文件、File Fuzzers等,在Kali中已默認安裝常見WEB Fuzz文件(eg:/usr/share/wfuzz/wordlist/fuzzdb/),開始Fuzz匹配。暴力破解即將post表單中的password部分進行Fuzz,根據返回碼和size進行判斷是否登錄成功。

在這裏插入圖片描述

圖7 Fuzz匹配

5.Burp Suite

JAVA語言開發的統一WEB安全集成工具,WEB安全工具中的瑞士軍刀,分爲Enterprise、Professional、Community三個版本,其中Community爲免費版本,但是沒有主動掃描的功能。

注:Burp運行需要與JDK版本對應,不然可能導致打不開情況,這裏使用的Burp版本爲Professional v1.7.37,JDK版本爲jdk-8u201

(1)Proxy
Burp最爲優異的功能,可以通過代理高效截獲、分析、過濾、修改HTTP流量。

① Invisible
當客戶端不支持代理時,可以啓動Invisible功能,通過DNS重定向將客戶端請求發往Burp,此時爲了將流量正常轉發,需要在Project options->Hostname Resolution添加正確的域名和IP,這樣流量會根據Burp設置的域名對應IP進行轉發。

注意:
正常情況下,支持代理的瀏覽器HTTP Request的url如:
GET http://example.org/foo.php HTTP/1.1
Host: example.org
不支持代理的瀏覽器發出的HTTP Request如:
GET /foo.php HTTP/1.1
Host: example.org

Burp Proxy分析正常HTTP Request不會理會Host頭,而Invisible模式下會將Host與GET後的url拼接成完整url,但如果不支持代理功能的客戶端請求沒有嚴格按照HTTP規範,HTTP請求頭沒有Host,GET後的url只是相對路徑,此時可以在Request handling中配置Redirect to host
Invisible proxy

圖8 Proxy Invisible配置

② CA根證書
作爲HTTPS代理時需要在瀏覽器中導入Burp的CA根證書,可以在Proxy->Options中將證書導出,也可以通過瀏覽器訪問http://burp將證書導出,然後添加至瀏覽器證書並選擇信任。

③ Intercept
默認只截斷HTTP Request,HTTP Response截斷需要在Options中配置,所有訪問的流量都會在HTTP history保存,在Filter處右鍵對內容進行篩選,同時可以對Request和Response頭以及內容進行修改和替換:

Request/Response頭修改和替換

圖9 HTTP Request/Response頭修改和替換


Response Modification

圖10 HTTP Response修改

客戶端發出的Request和服務器返回的Response都是可以被代理截獲修改的,任何來自客戶端瀏覽器的驗證都是不可靠的。

(2)Target

所有訪問的url會在Target中記錄,黑色字體爲已經訪問過的,灰色爲頁面分析得到的url,但沒有訪問。
① Scope
可以選擇目標網站添加至scope,添加至IncludeExclude,一般導致登出logout的請求頁面不能訪問。

② Site map
顯示所有爬取以及分析出的url,在Filter處右鍵進行選擇,如圖11所示,其中Show only commented itemsShow only highlighted items僅顯示有comment和highlight的內容,這些都是在分析時對某個HTTP Request或Response做的標記,Filter by search term可以很方便查找特定的Request/Response內容。

Site map Filter

圖11 Site map Filter

注:在Proxy->HTTP historyTarget->Site map中對流量做的標記和Filter過濾配置是相互獨立的,互不影響。

(3)Spider

Burp已自動開啓Passive Spidering,所有經過Burp代理的流量都會被Burp爬取分析,可以通過Control界面開啓Spider,或者在Target->Site map中選擇站點右鍵->Spider this branch。在Options中進行身份驗證信息配置,如下圖所示:
Spider驗證信息配置

圖12 Spider驗證信息配置

可以對不同登錄身份所爬取的頁面進行頁面級比較,首先選擇Burp->Save copy of project保存當前項目,然後以另一身份新建項目,選擇目標站點右鍵選擇Compare site maps,選擇要比較的兩個項目和站點內容進行比較,可以同步選擇HTTP Request/Response,如下圖所示:
Compare site maps

圖13 Compare site maps

(4)Scanner

被動掃描默認開啓,主動掃描在目標站點右鍵選擇Active scan,在Options中配置掃描項、掃描速度、準確度等內容,開啓主動掃描後Scan queue顯示掃描進度。

(5)Intruder

利用Payload進行Fuzz攻擊(暴力破解),在目標HTTP Request/Response右鍵選擇Send to Intruder,需要Fuzz的變量位置用$Variable$表示,Payload包括Simple listRuntime fileNumbersDatesBrute force等多種類型,攻擊類型分爲四種:

  • Sniper:利用1個Payload針對每一個變量進行Fuzz,期間其他變量保持不變
    Sniper
  • Battering ram:利用1個Payload對所有變量同步進行Fuzz
    Battering ram
  • Pitchfork:利用多個Payload對多個變量同步進行Fuzz,注意Fuzz數量與內容最少的Payload相同
    Pitchfork
  • Cluster bomb:利用所有的Payload對多個變量交叉Fuzz,Fuzz數量是所有Payload內容的組合項
    Cluster bomb

可以在Payload->Payload Processing中對Payload內容進行添加前綴、後綴、大小寫切換等處理,攻擊結果除了根據Length和HTTP返回碼判斷,還可以根據Options->Grep-Match進行判斷
在這裏插入圖片描述

圖14 Grep-Match判斷Intruder攻擊結果

(6)Repeater

選擇HTTP Request/Response編輯後進行重放,可以修改Request的提交方法、編碼方式等,對Response可以通過不同形式查看內容。

在HTTP Request界面右鍵選擇Engagement tools->Generate CSRF PoC可以將Request轉換爲CSRF PoC,保存爲HTML文檔方便後續漏洞利用。

(7)Sequencer

判斷僞隨機序列算法的質量,選中包含Set-Cookie頭的HTTP Request/Response,右鍵選擇Send to Sequencer,選中隨機生成的Cookies值,然後選擇Start live capture,當捕獲的內容足夠多時,進行分析Analyze now,生成報告,查看Cookie隨機生成算法的質量。
Sequencer隨機算法分析

圖15 Sequencer隨機算法分析

(8)Decoder

編碼、解碼模塊,支持Base64、ASCII、Hex、Binary、Octal、URL、HTML、Gzip等編碼方式,以及SHA、SHA-256、SHA-512、MD5等HASH算法。

(9)Comparer

對HTTP Request/Response進行字節級比較,在比較內容上右鍵選擇Sent to comparer,在Comparer不同窗口中可以同步查看區別。

(10)Extender

擴展功能,BApp Store中包含了可以擴展安裝的插件,以及每個插件的評級、受歡迎程度、更新時間等信息。

6.AWVS

Acunetix WEB Vulnerability Scanner,商業版WEB掃描器,AWVS11.0以後採用B/S架構,支持不同平臺,具有AcuSensor灰盒測試強大的報告生成功能等優勢,閹割掉了HTTP Request/Response截獲、轉發、分析等功能,更加專注於漏洞掃描和管理,操作界面更加簡介。

首先選擇Target->Add Target添加掃描目標URL,在General、Crawl、HTTP、Advanced中配置相應信息,然後選擇Scan,配置掃描和報告類型後開啓掃描。ScansReports中生成相應掃描項和報告項。
配置Targets

圖16 配置Targets

Vulnerabilities查看掃描的所有漏洞,點擊具體漏洞後查看漏洞檢測方法、漏洞編號、修復建議等詳細信息。
查看Vulnerabilities

圖16 查看Vulnerabilities

7.AppScan

商業版WEB掃描器,具有Glass Box灰盒測試強大的報告生成功能等優勢,掃描過程分爲探索(爬網)階段和測試(掃描)階段,與一般掃描工具不同的是,AppScan除了可以將自身作爲代理服務器,而且可以在自身窗口中集成瀏覽器功能直接進行爬網。

(1)探索掃描

按照 手動探索->繼續僅探索->完全掃描 的順序完成探索掃描過程

首先新建項目,選擇文件->新建,選擇針對WEB Application或者WEB Service進行掃描,可以選擇將AppScan作爲代理,這裏要對Metasploitable主機上的DVWA應用進行掃描,選在掃描Web應用程序,填寫url。

新建項目嚮導

圖17 新建項目嚮導

然後選擇登錄方法,推薦使用記錄的方式進行登錄,點擊記錄按鈕,AppScan會打開集成的IE或者Chrome接口,訪問上一步填寫的URL,用戶只需要正常登錄,AppScan就會將登錄過程記錄下來供之後掃描、爬網登錄使用。

記錄身份驗證過程

圖18 記錄身份驗證過程

隨着嚮導選擇掃描配置,也可以在之後的掃描界面菜單欄選擇配置進行詳細的配置,最後建議選擇使用手動探索啓動(AppScan中探索=爬網,測試=掃描)。

手動探索啓動後,AppScan會開啓瀏覽器窗口對目標進行登陸訪問,人工點擊每個鏈接,提交所有的url,然後在掃描中選擇繼續僅探索,自動爬取所有的頁面後再開啓完全掃描,如果左下角已爬取的頁面和需要爬取的頁面數目不一致,則需要將探索-掃描的步驟一直持續,直到將所有界面都爬取且掃描,之後掃描的按鈕會顯示灰色。

AppScan掃描界面

圖19 AppScan掃描界面

(2)漏洞分析

對於檢測出的每個漏洞,AppScan在問題中記錄了有關漏洞信息、修復建議、測試方法等非常詳細的說明,對安全測試人員非常有幫助,甚至在任務中按照優先級制定好了修復漏洞的一系列任務,幫助安全測試人員修復漏洞。

數據中記錄了HTTP Request/Response的參數、Cookie等信息,針對具體內容右鍵選擇手動測試,可以對HTTP Request/Response進行編輯重放進行測試。

(3)報告生成

AppScan同樣具有強大的報告生成功能,支持不同行業標準、不同合規性、不同模板內容的報告導出功能,同時其具有Glass Box灰盒測試功能,可以幫助更加精準地掃描目標。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章