幾款常見web掃描器的簡要記錄


一、前期偵查

 

為了減少和目標系統的交互(防止觸發報警),建議將目標站點鏡像一份到本地

httrack(鏡像網站到本地)  ====> 根據引導填入相關信息即可,使用非常簡單

 

 

二、掃描

 

掃描分兩種:一種是主動掃描,一種是截斷代理

 

三、掃描工具

* Nikto(弱點掃描,輸出結果全部為弱點項)

perl語言開發的開源web安全掃描器

掃描軟件版本

搜索存在安全隱患的文件(比如系統管理員將后台代碼打包備份后忘了刪留在web目錄下的打包文件等可能泄露隱私的文件)

服務器配置漏洞

WEB Application層面的安全隱患

避免404誤判原理:Nikto會先隨機向目標請求若干類型的隨機肯定不存在的文件,來獲取不同擴展名的文件404的真實返回內容,這樣在掃描時收到404后會和收集到的真實404庫進行對比,能匹配到則為真404,否則為假404

(注意:很多服務器不遵守RFC標准,對於不存在的對象也會返回200,)(可以使用 -no404 參數關閉該功能)

使用說明:

nikto -host https://www.baidu.com  ====> 常規掃描方法

nikto -host https://www.google.com -useproxy http://localhost:1080  ====> 代理掃描方法

在掃描的時候可以輸入以下值來與Nikto交互:

空格 =返回當前掃描狀態

v -顯示掃描過程的詳細信息

d -顯示掃描過程的巨詳細信息

e -顯示錯誤信息

p -顯示進程信息

r -顯示重定向信息

c -顯示cookie信息

a -顯示認證信息

q -退出

N -下一台主機

P -暫停

 

Nikto默認不支持自動輸入用戶名密碼登錄,想要掃描登錄后的頁面可以使用cookie的方式。 修改配置文件里的'#STATIC-COOKIE='可以實現帶cookie掃描

例: STATIC-COOKIE="PHPSESSID"="3804689b6bbfe8729681b0b8d547b1d0";"security"="low"

配置文件路徑:

/etc/nikto.conf

 

 

 

 

 

* Vega

JAVA編寫的開源web掃描器

支持主動掃描和截斷代理

支持爬站、處理表單、注入測試

支持SSLhttp://vega/ca.crt

 

 

 

 

 

 

* Skipfish(經測試此工具極其牛逼,才300K可以做到這個程度,google就是牛逼)

C語言編寫

google開發的實驗性的主動web安全評估工具

遞歸爬網

基於字典的探測

速度較快

多線程掃描

啟發式自動內容識別

誤報率低

用法:

Usage: skipfish [ options ... ] -W wordlist -o output_dir start_url [ start_url2 ... ]

例:

skipfish -o result http://172.20.163.44/dvwa/   ====>注意:默認無論指什么路徑skipfish都會從根路徑開始掃

-I:只檢查包含'string'URL

-X:不檢查包含'string'URL

-K:不對指定參數進行Fuzz測試

-D:跨站點爬另外一個域  ====>如果被掃描目標沒有鏈接鏈到另外一個域名則不會主動去掃,默認爬到不是目標的域名不掃

-l:每秒最大請求數

-m:每個IP最大並發連接數

--config:指定配置文件

 

skipfish -o result @存儲URL文件  ====> 可以通過@方式讀取存放有待掃描URL文件來實現同時掃描多個目標

skipfish -o result -S complet.wl -W a.wl http://172.20.163.44  ====> 默認只掃描超鏈接能連接到的地方,可以通過-W的方式加字典來爬取隱藏的目錄及文件

(可以通過'dpkg -L skipfish | grep wl'查看wl字典文件路徑) (-W可以自動補充字典,當碰到字典里沒有的會寫入這個文件,供下次掃描使用)

 

身份認證:

 

1、提交表單

skipfish -o result --auth-form '需要密碼的URL' --auth-user '用戶名' --auth-pass '密碼' --auth-verify-url '登陸成功后的URL'

(注意:如果程序不能自動找到用戶名填寫位置則需手工添加'--auth-form-target 表單名稱'告訴程序具體是哪個表單,

以及手工添加'--auth-user-field 表單中的位置'/'--auth-pass-fields 表單中的位置'告訴程序應該填在該表單的哪個位置里,

表單名稱以及表單位置通過F12后點擊表單位置即可在源代碼中看到)

 

舉例:

skipfish -o result112 --auth-form http://172.20.163.44/dvwa/login.php --auth-form-target http://172.20.163.44/dvwa/login.php

--auth-user-field username --auth-user admin --auth-pass-field password --auth-pass password --auth-verify-url http://172.20.163.44/dvwa/index.php -I dvwa http://172.20.163.44/dvwa/

(注意:不知為啥表單名稱和登陸URL一樣,表單名稱提取自"<form action='login.php' method='post'>==$0"中的'login.php',姑且認為表單名就是路徑+action的值吧)

 

2cookie登陸

skipfish -C 'cookie' -o test http://172.20.163.44   ===> cookie有多個值時要用多個'-C'來填充

 

舉例:

skipfish -o bb -I dvwa -C "PHPSESSID=3804689b6bbfe8729681b0b8d547b1d0" -C "security=low" http://172.20.163.44/dvwa/

 

 

 

 

 

 

* Arachni(支持分布式掃描,感覺非常產品化的一個東西,特別適合企業使用)

特點:可以向其他主機安裝agent,實現統一管理、分布式掃描,安裝簡單

 

安裝:

http://www.arachni-scanner.com/download/

解壓出來后在該文件夾下的bin目錄里執行arachni_web即可開啟web端口

 

agent運行命令: ./arachni_rpcd --address=服務器IP --port=本地監聽端口 --nickname=test1

agent分組運行命令: ./arachni_rpcd --address=服務器IP --neighour=你要和誰在一組就寫誰的IP:PORT,第一個agent肯定是以單個形式注冊的,剩余的才是和第一個建組 --nickname=test2

 

小技巧:php因為是服務端腳本語言,所以它的代碼不會在瀏覽器被執行,要想打印出php腳本代碼,只需在路徑后加上'-s'即可

例:http://172.20.163.44/dvwa/login.php?-s

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM