在终端输入recon-ng,或者在菜单中application/inforemation gathering/recon-ng
recon-ng 启动界面
需要查看可以使用的命令输入help即可。
下面介绍每条命令的作用:
add:向数据库添加一条记录
back:返回到上一级
delete:从数据库删除一条记录
exit:退出recon-ng
help:显示帮助信息
keys:管理API
load:载入指定模块
pdb:打开python调试
query:查询数据库
record:将命令保存为资源文件
reload:重新载入所有模块
resource:执行一个资源文件
search:搜索可用的模块
set:设置参数的值
shell:执行操作系统的命令
show:显示各种框架的条目
snapshots:创建一个快照
spool:将结果输出到一个文件
unset:重置参数值
use:载入指定模块
workspaces:管理工作区
可以使用show命令和参数modules来查看recon-ng中所有的模块。
recon-ng包含5个种类,一共90个模块,有些模块是被动扫描的,可以在目标不知情的情况下进行的,有些是主动扫描的,它们会向目标发出探针,甚至对目标发起攻击。
由于recon-ng模块数量众多,新版的recon-ng在为模块命名的时候采用了分层式(三层)的命名方式。
以recon/domains-hosts/google_site_web这个为例。
最前面的是模块类型,这个模块的类型是recon,这种类型的模块是用来对目标进行侦查的。
中间的是domains-host给出的模块的工作目标,从名字上看出工作目标是域名。
最后面给出的使用的技术,这个模块bing_domain_Web就是借助微软的bing对一个域名的子域名进行检查。
recon-ng的使用
recon-ng的使用和msf很相似,虽然上面介绍了21个命令,但在recon-ng中常用的主要是use,show,set,run这几个命令。
下面以recon/domains-hosts/brute_hosts为例,这个模块可以根据你给出的一个域名列出他所有子域名,原理就是利用字典文件生成各种域名,然后对这些域名发出请求,如果得到回应的话,则确认该域名存在。
使用方法
1.用workspaces add添加工作区,然后用show options查看选项,更改user-agent选项。
2.打开浏览器随便进入一个网页,用wireshark抓http包,从http包中,找到USER-AGENT
3.用set user-agent 命令设置,把你刚刚抓到的用户代理直接复制粘贴在set user-agent命令后面,设置代理后,你进行扫描的时候就会被认为是浏览器访问,ip被拉黑的可能性会降低
4.用use 命令启动recon/domains-hosts/brute_hosts
要是怕自己打错也可以搜索,用search命令就可以。
5.用show options查看选项,下面有两个参数
6.这个模块只需要设置两个参数,source和wordlist,source参数就是我们要扫描的域名,如果我们想查看新浪的域名sina.com下面还包含了哪些子域名的话,就使用命令set source sina.com 而wordlist是用来穷举的字典,这个文件已经有了默认值,这里不用修改。
7.模块设置就完成了,现在可以进行扫描了,执行命令为run,结果如下:
276个发现,240个有效。
可以用show hosts查看找到的主机。
8.如果你希望这次的扫描结果保存,就可以使用reporting中的模块,现在使用back返回,注意不是退出(exit),然后用show modules查看reporting类型的模块。
这个reporting类型的模块作用是提供了输出各种格式的报告。
这里我们输出xml格式,所以用reporting/xml模块。
载入模块 use reporting/xml
运行 run
需要注意的一点,这是个隐藏的文件夹,所以无法直接浏览,但是可以用cat命令来查看。
cat /root/.recon-ng/workspaces/test/results.xml