打造属于自己的神兵利器
字数 1089 2025-08-18 11:38:52
打造高效渗透测试字典的完整指南
一、前言
在多人协作的渗透测试项目中,漏洞发现率往往与使用的工具和字典质量密切相关。本文详细介绍如何整理优化各类渗透测试字典,包括敏感目录字典、子域名字典和用户密码字典,以提升渗透测试效率。
二、敏感目录字典整理
1. 原始字典收集与预处理
- 从20多个目录扫描工具中收集字典文件
- 剔除非字典文件后剩余约200MB数据
- 按文件大小排序并删除重复文件
- 统一文件命名规范和编码格式(建议UTF-8)
2. 字典标准化处理
使用Python脚本进行以下处理:
-
路径标准化:
- 确保所有路径以"/"开头
- 移除路径末尾的"/"
-
过滤无用条目:
- 排除静态资源(.gif, .png, .swf, .flv, .dll等)
- 排除开发资源(inc, skins, Fonts等)
- 排除特殊文件(thumbs.db)
- 排除相对路径(../)
-
分类与排序:
- 按后缀分为asp、aspx、php、jsp和dir五类
- 统计每个路径出现的频率
- 按出现频率降序排列
3. 优化技巧
- Windows服务器优化:将所有路径转为小写(Windows不区分大小写)
- 精简字典:根据实际测试结果删除低频条目
- 针对性使用:根据目标服务器类型选择相应字典(如ASPX用于.NET网站)
三、子域名字典整理
1. 基础字典处理
- 从多个子域名扫描工具中收集字典
- 进行去重处理
- 保留尽可能多的子域名条目以扩大攻击面
2. 高级收集技术
-
使用FuzzDomain工具:
- 指定扫描字符集和子域名长度
- 支持三级域名扫描
- 自动生成字典
-
搜索引擎收集(示例代码):
from urllib.request import urlopen
from urllib.error import HTTPError
from bs4 import BeautifulSoup
site = []
lagestpage = 76
count = ''
domain = "target.com"
for i in range(lagestpage):
Page = (i) * 10
url = "http://www.baidu.com/s?wd=site:"+domain+"&pn="+str(Page)
try:
html = urlopen(url)
bs0bj = BeautifulSoup(html.read(), "html.parser", from_encoding="iso-8859-1")
subdomain = bs0bj.findAll("a",{"class":"c-showurl"})
for name in subdomain:
for i in name.get_text().split('/'):
if domain in i:
site.append(i)
print(i)
currpage = bs0bj.findAll("strong")
if count == currpage:
break
else:
count = currpage
except Exception as e:
print(e)
# 去重输出
for i in list(set(site)):
print(i)
四、用户密码字典整理
1. 密码字典整合
- 收集各类爆破工具中的密码字典(如Kali中的字典)
- 整合社工库中的密码数据
- 按密码出现频率排序
- 保留高频密码(前N位)
2. 用户名字典构建
- 收集中国姓名排行榜数据
- 将中文姓名转换为拼音
- 收集常见管理后台账号(如admin、root等)
五、总结与最佳实践
-
字典使用原则:
- 不是越大越好,要平衡覆盖面和效率
- 根据目标特性选择合适字典
- 定期更新维护字典库
-
工具配合:
- 将优化后的字典与常用渗透工具配合使用
- 根据扫描结果持续调整字典内容
-
团队协作:
- 共享字典库但保持个人定制
- 记录字典在实际测试中的效果
通过系统化的字典整理和优化,可以显著提高渗透测试的效率和漏洞发现率。建议将字典整理作为渗透测试人员的常规工作内容,并建立持续改进机制。
六、扩展资源
- Tide安全团队官网:http://www.TideSec.net
- 关注安全社区的最新字典分享
- 参与开源字典项目的维护和贡献