上个月信安之路上线了 POC 管理系统,又增加了可以秒出资产报告的功能:
这背后是大量时间堆积的结果,并非一朝一夕所能完成,今天就来给大家揭秘获得一份资产报告需要做哪些工作。
资产报告是以主域名作为起始点进行资产扩展的,主要分为几个阶段:
1、子域名收集阶段
2、端口服务探测以及指纹识别阶段
3、网站资产信息获取与指纹识别阶段
4、网站爬虫阶段,收集接口信息
5、swagger 信息收集阶段
以上是一份报告的产出所要经历的工作阶段,无论时间还是操作,都还算比较复杂。
1、子域名收集阶段
这个阶段,也是所有渗透测试人员必经之路,已经有大把相关工具可以完成该工作,比如知名的 Oneforall 集成了子域名枚举、第三方查询功能,subfinder 集成大量第三方平台获取子域,当然,还有很多其他的工具:
那么我这里收集的子域名有什么亮点呢?
1、第三方平台数据,这块是我的弱势,大多数第三方平台是收费查询,所以仅集成了 rapiddns 平台的子域名数据,并非亮点,而是弱点
2、子域名枚举,采用两万域名字典进行 dns 枚举,工具使用的 ksubdomain,这个阶段存在子域名漏报的情况,毕竟发包速度快,丢包也很正常
3、爬虫阶段,这块需要耗费大量的时间才能收集到很多域名,这块是由后期的接口收集阶段来反哺这块的内容,算是一个亮点吧
报告中并没有将所有子域名展示,而是将存在存活网站的部分展示出来,如果有需求想要完整子域名数据,可以联系我(有偿)。
2、端口服务探测及指纹识别
这个阶段主要基于子域名收集的结果,进行拓展,主要包含以下几个阶段:
1、子域名解析 IP 地址,获取 IP 列表
2、针对所有 IP 地址进行端口扫描,端口非全端口,而是根据实战经验整理的 TOP 端口字典
3、针对所有端口进行指纹识别,核心原理基于 Nmap,主要识别 HTTP 服务,其他服务仅支持多个常见服务,不过没有在报告中体现出来
最后基于所有域名数据和端口数据,整合成网站数据,进入下一个阶段。
3、网站资产信息获取与指纹识别阶段
这个阶段主要基于上一个阶段获取的网站列表,进行指纹识别
并关联 POC 列表,核心在于指纹规则与 POC 的对应关系,还有就是针对类似网站的识别,去掉那些重复的网站,降低干扰
4、网站爬虫阶段,收集接口信息
这个阶段主要用了两款爬虫,分别是 crawlergo 和 gospider,可以抓取到通过 ajax 异步请求的接口,还能爬取更深层是的接口。
爬虫所需的时间是做多的,资产越多,所消耗的时间则越多,所以直接下载结果是多么爽的一件事儿,最终呈现在报告中是这样的:
结果是经过去重后的,而且是带参数的,不带参数的接口,没有在收录范围内,除了带参数的接口,还关注 JS 文件,如图:
以上就是经过网络爬虫所获得的结果,有了这些数据,可以直接对接口进行安全测试,或者对一些敏感 JS,一眼看到问题。
5、swagger 信息收集阶段
这个是信息收集的扩展,因为使用 swagger 的网站还是比较多的,所以做了一个专项,针对存在 swagger 的网站进行接口提取,方便测试,如图:
总结
以上就是信息收集的完整过程,生成的报告,可以直接在信安之路的 POC 系统下载,如果你对整个收集过程感兴趣,可以前往信安之路文库或者知识星球查看文档和视频课程,欢迎你的加入: