參考:
https://book.hacktricks.xyz/external-recon-methodology
https://book.hacktricks.xyz/pentesting/pentesting-web#web-tech-tricks web 資訊收集
https://github.com/redhuntlabs/Awesome-Asset-Discovery 資訊收集工具箱
主要是個人總結積累,結合網絡上多篇優秀文章。
持續改進中 ~~
難免有不當之處,懇請指正。
簡介
什麼是資訊收集? 為什麼?
收集目标一系列相關資訊。
資訊收集主要目标是為了詳細了解目标。一個複雜的系統,了解越多,就能發現更多攻擊面,攻擊面多了,存在缺陷的可能性也就大了。就跟和阿喀琉斯之踵一樣。
要收集哪些資訊?
從全局來講。分為外網資訊收集和内網資訊收集,此處暫時僅關注外網。關于内網資訊收集,後期會更新。
一般滲透測試,客戶會指定 域名或 ip。是以就從這些給定的範圍入手。
像一些 其它資訊收集方法,asn 号、favicon 同類站點、注冊人查詢 等等,在指定特定範圍時,就沒必要收集這些資訊。
開始之前,我們要了解:
- 一個機構可以有多台伺服器,一個伺服器上一般有一個公網 ip,一個 ip 上可以有多個 web 端口 ( 多個中間件同時開啟,80 8080 443 等),一個端口可以有多個網站 ( 虛拟主機,host 頭部不同),一個網站不同目錄可以使用不同的 cms。
- Web 滲透測試,主要就是測試網站安全性,每個網站都是可能的入侵點。是以資訊收集主要目标之一是收集到所有網站入口。
收集方法、步驟
假設一台伺服器上隻有一個公網 IP,一台伺服器上可能開放多個網站端口,一個端口可能有多個網站(虛拟主機)。可能一個伺服器上搭建多個網站,暴露一個 80 端口,根據 host 頭部區分請求轉達的目标。這個時候的不同的域名就對應不同的網站。這也是一個入口點。
通常來講,web 伺服器若未設定 cdn,則web 端口通常時 固定的 80 、443 而當設定 cdn,則可以指定其它端口。因為 域名解析隻能解析到域名所對應的 ip 資訊,無法擷取任何跟端口相關的資訊。而 cdn 回源可以指定端口。
大綱
-
對客戶所給的所有域名找到所有子域。
原因:因為有可能不同子域對應不同的伺服器。
工具:oneforall
-
對擷取到的所有域名,嘗試擷取 ip 。對擷取到的 ip 整合去重
目的:擷取到目标範圍内所有暴露在公網上的 web 伺服器 ip。
工具:腳本去重。域名解析獲得 ip,若碰到 cdn ,嘗試繞過。
-
對每個獲得到的 ip ,掃描其端口,探測服務。
工具:nmap + exploit-db 或者 nessus
更多技巧見下文。
-
定位到每個 web 端口,以及其上的網站域名。
web 資訊收集,見下文。
識别服務
也可以用 shodan fofa 之類,收集端口
對每個 ip 進行端口掃描,識别第三方軟體,可以利用 nessus 。或 nmap + searchsploit
如果找到指令執行的漏洞,那就不用進行下一步了。
# ICMP 請求
nmap -PEPM -sP -n 199.66.11.0/24
# 常見的 http 端口
nmap -p80,443,8000-8100,8443 199.66.11.0/24
#udp scanner
nmap -sU -sV --version-intensity 0 -F -n 199.66.11.53/24
# sctp
nmap -T4 -sY -n --open -Pn <IP/range>
Web 資訊收集
綜合工具:WhatWeb 、nikto
對于 web 站點,則進行進一步資訊收集。
-
web server。
由于前面通過端口服務探測,可以得到 web server 版本資訊,以及是否存在漏洞。
此處進一步可以嘗試掃描其預設的敏感檔案,例如 tomcat 的manage 界面。
例如已知 exp、或預設路徑敏感檔案。
配置缺陷,例如支援額外 http 方法 webdav put
-
檢測是否存在 WAF 等相關資訊。
可以通過 wafw00f 或惡意payload 探測。
若有 WAF ,使用代理池、爬蟲白名單、時延等技術繞過 WAF 對探測的攔截。否則可能會影響後面的探測。
# 代理池 https://www.kuaidaili.com/ https://github.com/jhao104/proxy_pool
-
收集 cms 相關資訊。
如果目标使用的是 cms,可以嘗試 代碼審計。途徑:網絡公開的源碼,或跑網站備份檔案。
此外 cms 的敏感檔案、預設憑證等資訊。
# 線上識别 cms 網站 http://whatweb.bugscaner.com/ https://whatcms.org/
- 收集 腳本語言、資料庫等資訊。可以通過 url 探測,或者常見的搭建組合猜想。
某些腳本語言可能也存在漏洞。可以和其它網站功能結合利用。aspx mssql windows iis php mysql windows/linux apache jsp mssql/oracle windows/linux tomcat javaee mysql/oracle/ windows/linux weblogic/jboos/tomcat
-
對于網站功能,則進行相應漏洞檢測。
重點關注:sql 注入,檔案上傳、下載下傳,代碼、指令執行,越權,登入界面跑密碼等等。
主要關注能進行指令執行的漏洞。而像某些漏洞,例如 用戶端 xss,一般而言利用條件苛刻,不需要投入太多精力。
-
可以檢測的其它資訊。
如果目标未使用 cms ,則可以嘗試 跑/爬取 目錄檔案 ,或者嘗試 使用 burp param minier 發現隐藏參數。
工具: burp 的 scanner 功能可以爬取。dirsearch 主要用來爆破目錄、檔案。
其它
不同站點的組建方式
# 域名類站點:
www.xiaodi8.com -> zblog
test.xiaodi8.com -> zbzcms
port.xiaodi8.com -> tongdaOA
bbs.xiaodi8.com -> discuz
# 端口站點:
http://101.32.62.213 -> null
http://101.32.62.213:81 -> tongdaOA
port.xiaodi8.com -> null
port.xiaodi8.com:88 -> zblog
# 目錄站點:
test.xiaodi8.com -> zbzcms
test.xiaodi8.com/blog -> zblog
常見 http 40x 錯誤及繞過方法
https://book.hacktricks.xyz/pentesting/pentesting-web#403-forbidden-basic-authentication-401-unauthorized-bypass