渗透测试---信息收集(细!)
字数 1062 2025-08-05 00:15:08
渗透测试信息收集详细指南
前言
在渗透测试过程中,网站主站信息往往较少,需要通过系统化的信息收集技术来扩展攻击面。本指南将详细介绍各种信息收集工具和技术,包括路径爆破、子域名枚举、敏感文件查找以及数据爬取等方法。
一、路径爆破工具与技术
1. 常用爆破工具
- dirsearch:高级命令行工具,用于暴力破解web服务器中的目录和文件
- OneForAll:功能强大的子域收集工具
- Virustotal:可疑文件分析服务,可检测恶意软件类型
- 御剑、DirBuster、intellitamper、dirmap、椰树、dirb等
2. OneForAll使用详解
安装步骤:
git clone https://github.com/shmilylty/OneForAll.git
cd OneForALL
pip install -r requirements.txt
执行命令:
./oneforall.py --target http://xxx.cn run
输出结果:
- 存放在
/OneForALL/results目录下 - 生成CSV文件包含域名、URL、IP、状态码、banner、ISP等信息
3. dirsearch使用详解
安装:
git clone https://github.com/maurosoria/dirsearch.git
基本用法:
python3 dirsearch.py -u <URL> -e <EXTENSION>
实战示例:
./dirsearch.py -u http://10.10.10.1/510cms -e php --plain-text-report=/su.txt
字典位置:
/dirsearch/db/目录下存放暴力破解字典
4. Virustotal功能
- 文件扫描:检测上传文件是否为恶意软件
- URL检测:分析网站安全性
- WHOIS查询:获取域名注册信息
- DNS复制功能:通过存储DNS解析构建子域名数据库
二、子域名自动化搜索技术
1. 基本方法
- Google语法:
site:xxx.cn - 证书透明度查询:
- crtsh:https://crt.sh/?q=xxx.cn
- Censys:https://censys.io/certificates?q=xxx.cn
2. Sublist3r工具
安装:
git clone https://github.com/aboul3la/Sublist3r.git
cd /Sbulist3r
sudo pip install -r requirements.txt
使用:
python sublist3r.py -d 目标域名
python sublist3r.py -d xxx.cn -p 80,443 -o su.txt
3. 其他工具与资源
- Dnsdumpster:https://dnsdumpster.com
- 子域名挖掘机:Layer子域名挖掘机
- FeeiCN:
pip install esd esd -d xxx.com
三、敏感路径查找技术
1. 敏感文件类型
- 数据库文件:
.mdb,.sql - 压缩文件:
.zip,.rar - 文本文件:
.txt - 版本控制文件:
.git,.svn
2. 路径枚举脚本示例
import requests
url = 'http://www.xxx.cn/'
with open("web.txt","r") as web:
webs=web.readlines()
for web in webs:
web=web.strip()
u = url+web
r = requests.get(u)
print("url为:"+u+' '+"状态为:%d"%r.status_code)
3. 常见工具
- 御剑后台扫描器
- intellitamper软件
四、敏感数据爬取技术
1. OA系统日志爬取示例
import requests
import re
heade = {
'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:83.0) Gecko/20100101 Firefox/83.0',
'Cookie':'csa=19; my_expand_3=2%2C1%2C0%2C; my_expand_all_3=; PO_auth=MQlkMjM4N2YwYjMyZjIzM2RjYzg5OWZmNGE0ODU0OWE4NA%3D%3D'
}
postdata = {
'username':'phpoa',
'password':'12345678'
}
for i in range(1,20):
posturl = ("http://10.10.10.1/oa/admin.php?ac=log&fileurl=member&page=%d"%i)
res = requests.post(url=posturl, data=postdata, headers=heade)
text = res.text
pattern = re.compile('<li class="name">(.*?)</li>.*?<td class="name">(.*?)</td>.*?<td>(.*?)</td>.*?<td>(.*?)</td>', re.S)
flag = re.findall(pattern, text)
print("用户名\tIP地址\t登录时间\t登出时间")
print(flag)
2. CMS后台留言板爬取
import requests
import re
heade = {
'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:83.0) Gecko/20100101 Firefox/83.0',
'Cookie':'username=admin; userid=1; PO_auth=MQkyODExZmI4ZjQ5MTllOGMxMmMyMjc4NDlkMzNmMjFlMg%3D%3D; PHPSESSID=5d26475d72a9c879b007642b29764cf2'
}
postdata = {
'username':'admin',
'password':'123456'
}
posturl = ("http://10.10.10.1/cms/admin/message.php")
res = requests.post(url=posturl, data=postdata, headers=heade)
text = res.text
pattern = re.compile('.*?<font style="color:#009900">(.*?)</font>.*?</font>(.*?)</td>.*?', re.S)
flag = re.findall(pattern, text)
for i in range(0,3):
print(flag[i])
总结
信息收集是渗透测试的基础环节,通过系统化的路径爆破、子域名枚举、敏感文件查找和数据爬取等技术,可以全面了解目标系统的攻击面。在实际操作中,应根据目标特点选择合适的工具和技术组合,同时注意操作的合法性和道德边界。