Recon-ng:Web 信息收集的智能引擎
在网络安全的复杂战场中,Recon-ng 宛如一台高效运转的智能引擎,以 Python 为燃料,凭借开源的强劲动力,驱动着自动化信息收集的征程。它作为专业的 Web 侦查框架,无缝集成多数据源,支持模块化灵活扩展。从子域名枚举到邮箱收集,从端口扫描至漏洞探测,功能一应俱全。本教程将为您全面拆解 Recon-ng,从安装步骤着手,深入核心功能,详解模块使用,展示示例命令,并分享高级技巧,助您借助这一强大工具,在渗透测试和信息安全审计中精准发力,洞察网络的每一处隐秘角落。
1. 安装与配置
1.1 安装方法
Kali Linux(默认已预装):
其他系统(需手动安装):
1.2 模块安装
首次启动需通过 marketplace
安装模块(默认无模块):
若因网络问题失败,可配置代理或 DNS(如 8.8.8.8
)。
2. 核心功能与命令
2.1 工作区管理
Recon-ng 通过工作区隔离不同项目数据:
2.2 常用命令
命令 | 功能 | 示例 |
---|---|---|
show modules | 列出所有可用模块 | show modules |
use | 加载模块 | use recon/domains-hosts/brute_hosts |
show info | 查看模块描述 | show info |
set | 设置模块参数 | set SOURCE example.com |
run | 执行模块 | run |
show hosts | 查看收集的主机信息 | show hosts |
keys | 管理 API 密钥 | keys add shodan_api YOUR_KEY |
root@kali:~# recon-ng -h
usage: recon-ng [-h] [-w workspace] [-r filename] [--no-version]
[--no-analytics] [--no-marketplace] [--stealth] [--version]
[--analytics]
recon-ng - Tim Tomes (@lanmaster53)
optional arguments:
-h, --help 显示此帮助消息并退出
-w workspace 加载/创建工作区
-r filename 从资源文件加载命令
--no-version 禁用版本检查。已在Debian中默认禁用
--no-analytics 禁用分析报告。已在Debian中默认禁用
--no-marketplace 禁用远程模块管理
--stealth 禁用所有被动请求(--no-*)
--version 显示当前版本
--analytics 启用分析报告。将分析发送到谷歌
3. 模块使用示例
3.1 子域名爆破(brute_hosts
)
示例输出:
3.2 Google 子域名枚举(google_site_web
)
示例输出:
3.3 端口扫描(shodan_ip
)
需配置 Shodan API:
示例输出:
3.4 邮箱收集(metacrawler
)
示例输出:
4. 高级功能
4.1 数据库查询
Recon-ng 自动将结果存储于 SQLite 数据库,支持自定义 SQL 查询:
4.2 报告生成
导出结果至文件(支持 HTML、CSV、XML 等格式):
生成文件路径:~/.recon-ng/workspaces/myproject/results.html
。
4.3 自定义模块开发
模块文件需按分类存放于 ~/.recon-ng/modules/
,格式示例:
from recon.core.module import BaseModule
class Module(BaseModule):
meta = {
'name': 'Custom Subdomain Finder',
'author': 'Your Name',
'description': 'Finds subdomains via custom API',
}
def module_run(self):
domain = self.options['SOURCE']
# 自定义逻辑
self.add_hosts('sub.example.com')
5. 注意事项
合法授权:仅对授权目标使用,避免非法扫描。
API 配置:部分模块需 API 密钥(如 Shodan、Bing),通过
keys add
配置。性能优化:调整
THREADS
和TIMEOUT
参数(show options
)。代理设置:若需绕过网络限制,配置代理:
6. 综合示例
目标:收集 example.com
的子域名、主机 IP 及开放端口,并生成报告:
# 创建工作区
workspaces add example_scan
workspaces select example_scan
# 枚举子域名
use recon/domains-hosts/brute_hosts
set SOURCE example.com
run
# 解析主机 IP
use recon/hosts-hosts/resolve
set SOURCE example.com
run
# 扫描端口
use recon/hosts-ports/shodan_ip
run
# 生成 HTML 报告
use reporting/html
run
通过以上命令和示例,可快速掌握 Recon-ng 的核心功能。更多模块用法可通过 show modules
和 search
命令探索,或参考 官方文档。
评论