1. Recon-ng侦察框架概述
Recon-ng是Kali Linux中一款基于Python开发的自动化网络侦察框架,专为渗透测试人员设计。它采用模块化架构,内置超过80个标准模块,涵盖从信息收集到漏洞探测的全流程。与传统的命令行工具不同,Recon-ng提供了类Metasploit的交互式控制台,支持工作区管理、数据关联分析和自动化报告生成。
我在实际渗透测试中发现,Recon-ng特别适合以下场景:
- 企业外部网络资产发现
- 社交媒体信息收集
- 子域名枚举和敏感文件扫描
- 邮箱账户和员工信息挖掘
2. 环境准备与基础配置
2.1 Kali Linux环境准备
建议使用Kali Linux 2023.x及以上版本,系统已预装Python 3和Recon-ng。如果遇到版本问题,可通过以下命令更新:
sudo apt update && sudo apt install -y recon-ng注意:避免在root账户下直接操作,建议新建专用用户并配置sudo权限
2.2 初始化工作区
启动Recon-ng后首要任务是创建工作区:
recon-ng workspaces create pentest_demo workspaces load pentest_demo工作区会自动保存所有收集的数据和配置,不同项目应创建独立工作区防止数据混淆。
3. 核心模块使用详解
3.1 信息收集模块
3.1.1 域名侦察
modules load recon/domains-hosts/baidu_site options set SOURCE example.com run这个模块会通过百度搜索引擎收集子域名信息。实测中发现,配合以下模块效果更佳:
- recon/domains-hosts/google_site
- recon/domains-hosts/netcraft
3.1.2 员工邮箱收集
modules load recon/contacts-contacts/hunter options set DOMAIN example.com runHunter.io模块需要API密钥,建议在配置文件中预先设置:
keys add hunter_api YOUR_API_KEY3.2 漏洞探测模块
3.2.1 敏感文件扫描
modules load discovery/info_disclosure/interesting_files options set HOST example.com run该模块会检测常见的敏感文件路径,如:
- /.git/config
- /wp-config.php.bak
- /robots.txt
警告:高频扫描可能触发WAF防护,建议调整DELAY参数
4. 高级使用技巧
4.1 数据关联分析
Recon-ng内置数据库支持多维度关联查询:
query select * from hosts where ip_address like '192.168.%'可通过以下命令导出CSV报告:
reporting csv options set FILENAME /tmp/report.csv run4.2 自定义模块开发
新建模块模板:
modules create custom_module典型模块结构示例:
from recon.core.base import BaseModule class Module(BaseModule): meta = { 'name': 'Custom Domain Scanner', 'author': 'Your Name', 'description': 'Custom domain scanning module', 'options': ( ('domain', None, True, 'target domain'), ), } def module_run(self): domain = self.options['domain'] # 自定义扫描逻辑5. 实战案例解析
5.1 企业外部资产测绘
完整工作流程:
- 创建专用工作区
- 加载多引擎域名收集模块
- 进行IP反查和端口扫描
- 识别Web应用框架
- 生成可视化报告
workspaces create corp_assets modules load recon/domains-hosts/brute_suffix options set SOURCE example.com run modules load recon/hosts-ports/shodan run5.2 社交媒体信息收集
针对LinkedIn的自动化信息收集:
modules load recon/profiles-profiles/linkedin options set SOURCE "company name" keys add linkedin_email YOUR_EMAIL keys add linkedin_pass YOUR_PASSWORD run重要:使用此模块需遵守LinkedIn用户协议
6. 常见问题排查
6.1 API密钥错误
典型报错:
[!] Module execution failed (x) [!] Invalid API key解决方案:
- 确认密钥是否在正确的工作区
- 检查密钥是否过期
- 验证API服务是否可用
keys list keys update shodan_api NEW_KEY6.2 模块执行超时
调整超时参数:
options set TIMEOUT 30对于网络不稳定情况,建议:
- 使用代理设置
- 分批次执行
- 记录进度后继续
7. 性能优化建议
- 数据库维护:
db schema db optimize- 并发控制:
options set THREADS 5- 结果缓存:
options set CACHE True- 资源监控:
show resources8. 法律与合规要点
使用Recon-ng必须注意:
- 仅对授权目标进行测试
- 遵守当地数据保护法规
- 敏感数据加密存储
- 及时清理测试数据
建议操作前签署书面授权协议,并记录所有操作日志:
logging set /var/log/recon-ng.log