渗透测试被动信息搜集之 Recon-NG

0x00:前言

在渗透测试中,第一步莫非搜集信息,而搜集信息其被动搜索方法是很不错的。为什么?对于搜集信息被主机检测到的可能性来说,被动搜索是最低的,其次是主机检测、端口扫描等,然后就是主机服务、应用、补丁等。对于被动搜集,Recon-NG 是一个很不错的工具。

0x01:工具介绍

何为 Recon-NG,主要用来对于目标的信息搜集,可以搜集哪些东西?ip 地址,子域名,子域名 ip,位置,邮件地址,用户,密码等。

0x02:如何安装

首先,这个工具在 github 的地址是:https:bitbucket.org/LaNMaSteR53/recon-ng,在 Kali 中,这个工具是自带的,位于应用程序的信息搜集模块中,点击即运行。也可命令行输入 recon-ng 来进行启动。

Recon-NG 和 Metasploit 差不多,Recon-NG 是一个框架,进入后调用其模块来进行搜集。

0x03:使用示例

按照搜集流程其示例如下,首先进入 Recon-NG 后,其界面如下:

渗透测试被动信息搜集之 Recon-NG_第1张图片

这里有个坑需要注意一下,刚启动它回提示一串红色字,不要慌,仔细看它在提示你 key not set,就是一些 API 没有设置,因为里面的一些外部服务模块你需要调用的时候,要有其 API,Recon-NG 启动时回默认加载它们,当其没有时便会输出红色的字提示你,有些一般用不到,可以直接忽略。

怎么看有哪些模块?输入命令 keys list 即可,如下图:

渗透测试被动信息搜集之 Recon-NG_第2张图片

怎么添加 API?Name 栏可以添加时自定义,以 ipinfodb 为例,什么是 ipinfodb,因为在被动搜集中,获取其 ip 后要判断其位置,而 ipinfodb 就是很不错的选择。所以这里以添加 ipinfodb 为例。

获取其 API 方法是:访问 ipinfodb 的官网:https://ipinfodb.com/regiseter.php 注册其账号,登录后在主页复制即可,然后回到 Recon-NG 键入以下命令:keys add ipinfodb_api xxxxx,即可。xxx 是你的 API 密钥。

怎么验证是否添加成功?命令执行后会提示 key 已添加,也可以执行刚才说的查看 key 的命令,keys list。之后在搜集信息的过程中就可以直接使用。

刚启动时我们会发现命令行前的符号为 default,也就是默认空间的意思,准备一个新的目标时建议新建一个工作空间,命令如下:

workspaces add 公司名字

添加好工作空间后,随后添加其域名,这里有个坑需要注意,如果不添加域名,随后每调用一个模块就需要通过 set SOURCE xxx.com 这个命令来设置一回目标域名,这是很麻烦的,所以建好工作空间后,建议直接设置目标域名,其命令如下:

add domains xxx.com

添加域名后,就可以使用搜索引擎来搜索相关信息,以前搜索引擎有三个,分别是 google、baidu、bing。

这里有个坑需要注意下,就是很多教程都是可以使用 baidu 引擎去搜索的,但你会发现 Recon-ng 提示你没有此模块,为什么,你翻到 github 上查看其分支提交记录会发现,baidu 模块下架了,那怎么办,使用 bing 即可,其命令如下:

use recon/domains-hosts/bing_domain_web
run

use 命令后跟要使用的模块,回车确定后执行 run 命令即可运行。

搜索后可进行暴力破解子域名,其模块是 recon/domains-hosts/brute_hosts, 其命令如下:

use recon/domains-hosts/brute_hosts
run

随后可使用 netcraft 查询域名,什么是 netcraft?它用来查询网站信息,例如服务器、web 服务器、机房等。怎么了解它呢,你可以直接访问官网 https://netcraft.com,然后输入域名即可查询。这里的命令如下:

use recon/domains-hosts/netcraft
run

这里有一个坑需要注意,它可能会提示你 timed out,提示你超时,不要慌,这个网站打开可能会慢点,但是可以访问。不如再 run 一下试试看。然后可以将所有的域名解析成 ip 地址,其命令如下:

use recon/hosts-hosts/resolve
run

接下来可以将所有的域名解析成主机名,其用到的模块是 recon/hosts-hosts/reverse_resolve,命令如下:

use recon/hosts-hosts/reverse_resolve
run

这时可以去指定的域名中查找一些隐私文件,也就是泄露文件,何为泄露文件,例如 robots 文件、phpinfo 文件、xml 配置文件等等,有很多,具体的文件可以看命令的执行过程,其命令如下:

use discovery/info_disclosure/interesting_files
run

这时可以探测其 ip 的地址位置,用到的模块是 recon/hosts-hosts/ipinfodb,这里有一个坑需要注意下,你直接用是不行的,因为 ipinfodb 模块要依赖 ipinfodb 的 API 密钥,具体的获取方法和配置方法开头有记录,配置好后,执行以下命令即可:

use recon/hosts-hosts/ipinfodb
run

查询地址后可以再查询一下 whois 的邮件地址,用到的模块是 recon/domains-contacts/whois_pocs,其命令如下:

use recon/domains-contacts/whois_pocs
run

最后可以搜集一下公共的 PGP 存储中的邮件地址,什么是 PGP,它用来对邮件进行加密,执行以下命令:

use recon/domains-contacts/pgp_search
run

然后可以使用 hibp_paste 模块,什么是 hibp_paste,它可以根据你的邮件地址去搜索,看你的邮件密码有没有在某些地方泄露,想了解你可以访问官网:https://haveibeenpwned.com,这个只作为了解,对于国内测试来说,可以不使用这个模块,因为这个是针对国外的,咱们使用可能效果不太理想,可忽略。其命令如下:

use recon/contacts-credentials/hibp_paste
run

至此,可以用此流程来搜集一个目标网,然后将以上的搜集内容导出报告即可,以 html 格式为例,用到的模块是 reporting/html,其命令如下:

use reporting/html

创建报告后设置一下创建者名称,如下命令:

set CREATOR xxx

同时,也设置一下客户的名称,如下命令:

set CUSTOMER xxx

最后执行 run 命令运行,会输出其报告的 html 文件地址,然后 exit 退出。

可以直接到其 html 文件所在的地址打开看报告,也可以直接命令好以 firefox 打开,命令如下:

firefox /root/.recon-ng/workspaces/xxx/results.html

说明一下,这个 html 一般都是这个地址固定的,xxx 时开始时设置的工作空间的名称。这里有个坑需要注意一下,当你去找这个文件时,你会发现 root 目录下并没有. recon-ng 这个目录,为什么,因为它默认是隐藏的。那怎么看,在右边菜单把相似隐藏文件框点上即可,如下图:

渗透测试被动信息搜集之 Recon-NG_第3张图片

其结果报告大体如下图:

渗透测试被动信息搜集之 Recon-NG_第4张图片

0x04:总结

上述使用了部分模块,如果要查看 Recon-NG 都有哪些模块可通过 show modules 命令查看。

有时候你会发现如果是一些小的目标,而同时又是通过 bing 引擎搜索的相关信息,报告中的内容可能没有那么详细,但搜集信息也许某一条就会帮助你突破某一个难点,另外工具乃是辅助,不要过于依赖。

公众号回复数字“8”领取CIS加固全套手册。

微 信:fageweiketang,朋友圈不定期干货分享,欢迎讨论。

公众号:发哥微课堂,专注于代码审计、WEB渗透、网络安全。

 渗透测试被动信息搜集之 Recon-NG_第5张图片                    渗透测试被动信息搜集之 Recon-NG_第6张图片

你可能感兴趣的:(渗透测试,Kali)