某次证书站的渗透测试经历
字数 1557 2025-08-22 12:22:54
证书站渗透测试高级技巧:从子域名收集到敏感信息泄露利用
1. 信息收集方法论
1.1 子域名收集技术栈
使用多工具组合进行全面的子域名枚举:
# 使用subfinder进行初始收集
subfinder -d **.edu.cn -all -o subdomains.txt
# 使用amass进行深度枚举
amass enum -d **.edu.cn -dir amass4owasp
# 使用oam_subs工具
./oam_subs -names -d **.edu.cn -dir amass4owasp | ./anew subdomains.txt
# 使用assetfinder补充收集
assetfinder | ./anew subdomains.txt
1.2 子域名字典构建技术
将收集到的子域名转化为可重用的字典:
# 将特定域名替换为FUZZ关键字
sed -r 's/baidu\.com/FUZZ/g' subdomains.txt | tee sub-baidu-dic.txt
# 将新字典合并到主字典
cat sub-baidu-dic | ./anew ./dic/自用字典/edu-subdomain-dic.txt
1.3 子域名爆破实战
使用两种方法进行子域名爆破:
方法一:使用httpx
cat sub-baidu-dic.txt | sed 's/FUZZ/baidu\.com/g' | ./httpx -sc -title -td -location -t 100
方法二:使用ffuf
# 首先生成完整URL列表
cat sub-baidu-dic.txt | sed 's/FUZZ/baidu\.com/g' | tee baidu-urls.txt
# 然后进行爆破
ffuf -u http://FUZZ -w baidu-urls.txt -c -H "User-Agent: Mozilla/5.0 Windows NT 10.0 Win64 AppleWebKit/537.36 Chrome/69.0.3497.100"
2. 突破302跳转限制的渗透技巧
2.1 目录扫描技术
对302跳转的资产使用feroxbuster进行目录扫描:
./feroxbuster --scan-limit 2 -t 10 --filter-status 404 -x jsp -A -u https://you-url -k --proxy http://ip:10809
2.2 全链接爬取技术
使用katana爬取所有链接:
./katana -list urls.txt -o allurls.txt -proxy socks5://ip:10808
2.3 相似站点寻找技巧
- 识别网站指纹
- 在ZoomEye搜索相似网站
- 收集免认证的路由信息
- 将有效路由添加到测试列表
3. JS敏感信息挖掘技术
3.1 JS文件提取与扫描
# 从所有URL中提取JS文件路径
grep "\.js" allurls.txt > js-urls.txt
# 使用SecretFinder扫描JS文件
cat ../js-urls.txt | while read url; do python3 SecretFinder.py -i $url -o cli; done | tee result.txt
3.2 自定义正则表达式优化
修改SecretFinder.py文件:
- 删除不必要的正则表达式
- 添加高价值正则(可参考HaE插件的正则规则)
3.3 结合Burp Suite的高级分析
# 通过Burp代理访问所有JS文件
ffuf -u FUZZ -w js-urls.txt -c -H "User-Agent: Mozilla/5.0 Windows NT 10.0 Win64 AppleWebKit/537.36 Chrome/69.0.3497.100" -x http://ip:8090
4. 云服务凭证泄露与接管实战
4.1 阿里云AccessKey泄露利用
- 在JS文件中发现泄露的AccessKey
- 验证AccessKey权限级别
- 评估可接管服务范围
4.2 云主机接管验证
使用云服务检测平台:
https://yun.cloudbility.com/
验证步骤:
- 导入可疑主机
- 检查重置密码权限
- 验证安全组规则修改权限
- 确认服务器登录能力
5. 渗透测试知识体系构建
5.1 长期积累策略
- 子域名收集:持续积累各类型站点的子域名字典
- 路由字典:收集常见CMS、框架的敏感路径
- 密码字典:从泄露事件中提取有效密码组合
- 指纹库:建立完善的Web应用指纹识别库
5.2 测试范围扩展原则
- 不忽略302跳转资产
- 全面扫描JS文件
- 测试所有API接口的权限配置
- 验证所有发现的凭证的实际权限
6. 工具清单
| 工具名称 | 用途 | 项目地址 |
|---|---|---|
| subfinder | 子域名枚举 | https://github.com/projectdiscovery/subfinder |
| amass | 深度子域名枚举 | https://github.com/OWASP/Amass |
| assetfinder | 子域名发现 | https://github.com/tomnomnom/assetfinder |
| httpx | HTTP探测 | https://github.com/projectdiscovery/httpx |
| ffuf | Web模糊测试 | https://github.com/ffuf/ffuf |
| feroxbuster | 目录爆破 | https://github.com/epi052/feroxbuster |
| katana | 链接爬取 | https://github.com/projectdiscovery/katana |
| SecretFinder | JS敏感信息扫描 | https://github.com/m4ll0k/SecretFinder |
| anew | 去重合并工具 | https://github.com/tomnomnom/anew |
7. 防御建议
-
JS文件安全:
- 避免在客户端代码中硬编码敏感凭证
- 实施代码审查流程检查敏感信息
- 使用自动化工具扫描发布前的代码
-
云服务安全:
- 遵循最小权限原则配置AccessKey
- 定期轮换访问凭证
- 启用操作审计日志
-
资产暴露管理:
- 监控子域名暴露情况
- 及时下线不再使用的服务
- 对测试环境实施严格的访问控制
-
API安全:
- 实施严格的权限控制
- 禁用不必要的API端点
- 对敏感操作实施多因素认证