前言:安全人员在渗透测试、攻防演练的第一步就是信息收集,收集目标公司的域名、IP。近期 Goby 新版本添加了一个内测功能,叫 IP 库。研究了一段时间,发现其基本思想是通过某个资产节点,如:域名、IP、公司、备案、HTTPS 证书或站点图标等,导入其他资产,通过多次执行导入动作,扩充资产。可以帮助安全人员更好的收集资产而编写的一个功能。
本文以收集 huawei.com 相关资产为例,说说 Goby IP 库里的一些功能使用。
0x01 节点类型
打开 Goby 最新版,点击右侧那个写着 “IP Lib” 的按钮,进入 IP 库。
初始界面是一个中间写着 Start 的按钮,点击该按钮,开始添加第一个资产节点。
原文:Goby 内测版 1.9.304 | IP 库 Big Feature 上线,限时尝鲜
资产节点的类型有:
domain:主域名
subdomain:子域名
icp:主备案号
ip:IP地址
cert:HTTPS 证书序列号(跟 FOFA 的 HTTPS 证书信息里的 Serial Number 字段一个意思)
icon:图标 hash 值(跟 FOFA 的 icon_hash 一个意思)
keyword:关键字
company:公司名
开始看到 domain 和 subdomain 有些疑惑,这两个有什么区别呢。问了 Goby 团队,才知道 domain 节点是一个概念节点,用于汇集子域名。
比如添加一个 example.com 的 domain 节点,在获取子域名操作的时候,可以获取到 example.com 和 www.example.com 这两个 subdomain 类型节点,example.com:domain 与 example.com:subdomain 是不同的节点,而这个 example.com:domain 节点就指向这两个 subdomain 节点。如下图:
我按照 Goby 之前发的演示视频,添加一个值为 huawei.com 的 domain 节点。
0x02 右键菜单
添加完 domain 节点,在该节点上右键,看看有什么操作可以选择:
导入 subdomain / ip → FOFA:从 FOFA 获取子域名
导入 icon → FOFA:从 FOFA 获取图标
导入 cert → FOFA:从 FOFA 获取 HTTPS 证书
导入 icp:获取域名对应的主备案号
增加:添加节点
折叠 domain:折叠操作,用于折叠显示该 domain 下方的 subdomain 节点
展开 subdomain:如果 domain 节点下的 subdomain 节点被折叠了,则展开显示
查看关系:查看该节点与其他节点之间的关系
试试导入 icp,发现多了两个主要节点,一个主备案号,一个备案号对应的备案主体的公司。
0x03 不确定的数据
试试在公司节点上右键点击导入 company,弹出一个框。这里跟上面导入 icp 后直接渲染出节点不同,而是让我们自己勾选想要添加的数据。
在弹出的框中,看到“华为投资控股有限公司”是“深圳市华为技术有限公司”的母公司(Is Parent 列为 Y),它的投资比例是 90%。很明显这家公司跟华为相关,把它勾选上,还有其他子公司(Is Parent 列为 N),粗略判断下,都勾上,再点击“增加”按钮添加。
0x04 批量操作
上面导了那么多公司,有的公司会有备案,有的没有。我想尝试导入所有公司的备案号,该怎么批量操作?有一些叫 XXRoot 的节点,看着有些可疑,右键看看是否有批量操作(果真有)。在 companyRoot 节点上右键看看菜单:
◼导入所有 icp → 全部:对 companyRoot 下的所有公司节点都执行一遍导入 icp
◼导入所有 icp → 未操作节点:对 companyRoot 下没有执行过导入 icp 操作的公司节点都执行一遍导入 icp
这里选择第二个操作,因为之前导过 icp 的公司没必要再操作一遍。
按照常规的信息收集思路,接着获取所有主备案号对应的所有域名:在 icpRoot 节点上右键 → 导入所有 domain → 未操作节点。这一步可以搜集很多跟华为相关的主域名,像 hisilicon.com(海思),hikunpeng.com(鲲鹏)。
接着就是获取这些主域名的子域名:在 domainRoot 节点上右键 → 导入所有subdomain/ip → 全部。(节点有点多,可能找不到 domainRoot 节点,可以到左上角的搜索按钮进行搜索)。这个批量操作不太行,有些耗时,有时还会 5xx 错误,多试几次吧。
0x05 按钮栏
界面左上角有一排按钮,说几个我常用的按钮。
操作日志按钮:点击该按钮,在右侧会多一个日志栏,可以清楚地看到每个导入操作获取到多少数据,再点击日志上的蓝色字,就可以看到具体是哪些数据。
节点列表按钮:点该按钮,右侧多了个列表。列表里包含目前获取到的域名、IP、备案号等数据。
数据导出按钮:将数据导出到文件。数据导入按钮:可将之前导出的文件再导入进来,接着上次收集的资产继续操作。
0x06 小结
上面整个收集流程的精华是:收集子母公司 → 收集公司对应的备案号 → 收集备案号对应的域名,这样可以拿到很多相关的主域名。之前收集时,每一步骤都去找对应的脚本,或者自己写脚本。IP 库这些功能确实方便了很多,自动化资产梳理神器呐。
IP 库还有一些本文未提及的功能,像导入 HTTPS 证书、图标,再从 HTTPS 证书、图标去反查域名 / IP。基于文章篇幅(lanle)就不写了。在多次尝试每个功能,资产也慢慢多了,最后来一个数据导出操作,再将数据喂给扫描器。
此外,感谢 Goby 团队的@go0p 表哥对本文的指导。
文章来自Goby社区成员:mesosaur,转载请注明出处。