目標:理解信息收集在滲透測試中的意義,熟悉常用工具用法,完成基本打點測試
一.理論學習:
模塊 | 內容說明 |
---|---|
信息收集分類 | 主動信息收集 vs 被動信息收集 |
目標發現 | 子域名、IP、端口、子站點、目錄、接口 |
技術指紋識別 | Web框架(如ThinkPHP)、CMS(如WordPress)、服務器中間件(如nginx、tomcat) |
OSINT 思路 | 從公開資源(百度、Shodan、Github)收集情報 |
工具準備 | 學會這些理論是后面用工具(如 nmap , whatweb )的基礎 |
1.信息收集分類
主動信息收集:通過直接發起與北側目標網絡間的互動來獲取相關信息,如通過Nmap掃描,直接訪問網站目錄,暴力破解子域名等(速度快,信息新且準確,但會留下訪問痕跡)
被動信息收集:通過第三方服務間接獲取目標網絡相關信息,如搜索引擎查詢,查詢DNS歷史記錄,查看WHOIS信息等
(隱蔽性強,但信息可能不及時或不準確)
2.目標發現
1)子域名:大型網站往往有多個子域名,有些可能安全性較弱
方法:字典爆破工具,搜索引擎,SSL證書查詢,DNS區域傳輸測試
2)IP:確定網站真實IP
方法:DNS歷史記錄查詢,全球ping測試,查詢MX記錄,SPF記錄等輔助信息,通過子域名可能找到真實IP
3)端口:確定開放的服務和潛在攻擊面
方法:Nmap,masscan(高速掃描工具)
關鍵端口:
- web:80,443,8080,8443
- 數據庫:3306(MySQL),5432(PostgreSQL)
- 遠程管理:22(SSH),3389(RDP)
4)子站點/目錄:發現隱蔽的管理后臺,測試頁面等
工具:dirsearch,gobuster,burp suite的intruder模塊
6)接口:現代應用大量使用API接口,可能暴露敏感功能
方法:分析JS文件查找API端點,使用burp等代理工具捕獲請求,檢查/swagger/, /api-docs/等常見文檔路徑
3.技術指紋識別
1)Web框架識別:知道框架后可查找已知漏洞
-
方法:
-
HTTP響應頭(X-Powered-By等)
-
默認錯誤頁面特征
-
特定URL路徑(如/thinkphp/...)
-
工具:whatweb, wappalyzer
-
2)CMS(內容管理系統)識別
-
常見CMS:
-
WordPress: 檢查/wp-admin/, wp-includes/
-
Joomla: 檢查/administrator/
-
Drupal: 檢查/core/
-
-
工具:
-
CMSeek
-
在線工具:builtwith.com
-
3)服務器中間件識別:不同中間件有不同的配置方法和漏洞
-
常見中間件:
-
Nginx: Server頭通常包含nginx版本
-
Apache: Server頭包含Apache
-
IIS: 微軟特有響應頭
-
4.OSINT(開源情報)思路
1)搜索引擎技巧
-
Google Dorking:
-
site:example.com filetype:pdf
-
inurl:admin site:example.com
-
intitle:"index of" "parent directory"
-
2)Shodan:搜索聯網設備
-
示例查詢:
-
hostname:example.com
-
port:22 country:CN
-
product:nginx
-
3)Github情報收集:開發人員可能意外上傳敏感信息
-
搜索技巧:
-
搜索公司名+關鍵詞(password, secret, config)
-
檢查.git目錄泄露
-
查找歷史提交中的敏感信息
-
4)其他
-
WHOIS查詢:獲取注冊信息
-
社交媒體:LinkedIn員工信息
-
歷史快照:archive.org查看網站歷史版本
5.常用工具詳解
1)Nmap
# 基本掃描
nmap -sV -O target_ip# 隱蔽掃描(不完成TCP握手)
nmap -sS -Pn target_ip# 腳本掃描(使用漏洞檢測腳本)
nmap --script=vuln target_ip
2)WhatWeb
# 基本使用
whatweb http://example.com# 詳細輸出
whatweb -v http://example.com
3)Subfinder(子域名發現)
subfinder -d example.com -o subdomains.txt
4)dirsearch(目錄爆破)
dirsearch -u http://example.com -e php,html,js -w /path/to/wordlist.txt
6.基本打點測試流程
-
確定范圍:明確授權測試的域名/IP范圍
-
被動收集:先通過OSINT方法收集信息
-
主動掃描:進行端口掃描、子域名爆破等
-
指紋識別:確定使用的技術棧
-
漏洞映射:根據技術棧查找已知漏洞
-
驗證測試:對發現的潛在漏洞進行驗證性測試
-
報告整理:記錄所有發現,包括負面結果
二.工具實戰
Amass&Httpx
被動枚舉:(不跟目標通信)
amass enum -passive -d baidu.com
結果:
格式:<域名> → <記錄類型> → <目標>:哪個域名通過什么記錄類型關聯到了哪個結果
記錄類型 | 信息含義 | 實戰用途 |
---|---|---|
A Record | 域名對應 IP | 后續 Nmap 掃描 |
CNAME | 指向別名域 | 檢查外部服務、接管風險 |
MX | 郵件服務器 | 郵件相關服務探測 |
NS | DNS 服務器 | 枚舉 NS、嘗試 Zone Transfer |
ASN/IP段 | IP歸屬分析 | 擴展目標范圍 |
主動枚舉:(跟目標服務器通信)+保存結果
amass enum -active -d baidu.com -o amass_output.txt
1)格式化輸出結果,提取子域名
grep -oE '[a-zA-Z0-9.-]+\.baidu\.com' amass_output.txt | sort -u > baidu_subs.txt
解釋:用正則提取FQDN域名,sort -u去重,輸出成只有子域名的一行一個的格式
2)探測子域是否可訪問
httpx -l baidu_subs.txt -status-code -title -tech-detect -ip -o baidu_live.txt
3)識別潛在風險子域
cat amass_output.txt | grep "cname_record" | grep -v "baidu.com" > cname_candidates.txt
Nmap
功能 | 參數 | 說明 |
---|---|---|
掃描目標 | nmap target.com | 默認掃描常用端口 |
指定端口 | -p 80,443 | 掃描特定端口 |
所有端口 | -p- | 掃描所有 65535 個端口 |
快速掃描 | -F | 掃描常用 100 端口 |
服務識別 | -sV | 探測服務名稱和版本 |
OS識別 | -O | 探測操作系統 |
使用腳本 | --script=xxx | 使用 NSE 腳本 |
輸入文件掃描 | -iL list.txt | 從文件導入 IP 列表 |
輸出 | -oN out.txt | 普通輸出到文件 |
WhatWeb
用于識別網站所使用的技術棧,web服務器,中間件框架,CMS系統,編程語言,安全機制等
通過HTTP頭部信息,HTML內容中的關鍵詞或特征碼,cookies中的特征字段,JS,CSS文件路徑等進行識別
whatweb http://example.com
參數 | 含義 |
---|---|
-v | 顯示詳細信息(verbose) |
-a LEVEL | 識別級別(Aggression Level):從 1 到 4,默認 1,4 最激進 |
-U AGENT | 偽造 User-Agent |
-t | 設置并發線程數(默認1) |
-o FILENAME | 輸出結果到文件 |
--log-verbose=FILENAME | 記錄詳細日志 |
--no-errors | 不顯示錯誤信息 |
--proxy | 設置代理(如 Burp Suite) |
--color=never | 禁用顏色輸出 |
用工具掃描vulhub實例
用whatweb進行技術指紋識別
用dirsearch進行目錄掃描
nikto:自動檢測常見漏洞,弱點配置
可進行路徑遍歷,文件泄露漏洞