文|腾讯安全平台部 彦修
Part 1. WHAT
现今很多信息搜集类工具或者文章基本停留在信息搜集的前期阶段,很多文章或者工具都在着重于拓宽信息搜集的渠道,从搜索引擎、被动DNS到爆破字典的丰富性等等,少有提到在获得这些信息之后是否需要处理以及如何处理。此外,也存在部分渗透测试人员每次信息搜集的时候把结果放到文本文件中,更有甚者每次渗透测试几乎都要进行一次全新的信息搜集过程。这种方式弊端非常明显,一是造成了比较大的时间消耗,二是搜集信息的二次利用非常繁琐,不够自动化,后期还需要大量的人工介入分析。
为了解决以上两个问题,自然而然就存在了信息搜集的后期阶段,也就是本文题目所要讨论的——信息搜集中的自动化数据分析。
提到信息搜集其实大家都不陌生,但是或许有人会有疑问信息搜集中的数据分析是什么?在讲数据分析之前我们思考一个比较常见的问题,有哪些方式来确定两个域名是同一个公司的资产,读者在公布答案之前可以先思考下这个问题,下面说下笔者的思考:
ICP备案信息
WHOIS联系信息
证书信息
DNS解析信息
WHOIS-NAMESERVER信息
网页响应信息
1-4相对比较好理解,这里具体说下5和6,由于很多大公司采用自建DNS,所以其域名基本都会指向自建DNS NAMESERVER,这个特征可以作为是否为同公司资产的标准之一,具体可以看下图qq.com的whois;网页响应信息这里则可以通过CSP的头,网页相似度、引入静态资源的域名、网站的配置文件等。通过上述这6种方式来确定是否同公司的过程就是一个数据分析的过程,我们同时也可以发现这个确认方式是可逆的,也就是说当我们知道其中一个域名,想要知道该公司其他域名的时候,那么以上方式仍然奏效。
Part 2. WHY?
要问为什么要做自动化数据分析,那么首先要知道自动化数据分析的目的。我理解的数据分析主要包括两个目的,一是扩而充之,二是去伪存真。这两个其实都是比较好理解的,扩而充之和信息搜集的原则基本一致,主要是尽可能多而全的搜集到目标信息,而去伪存真则是确认目标信息,去除无关噪音信息,以免伤及无辜的同时也避免给自己带来一些不必要的麻烦。
我们先来聊聊扩而充之的问题,针对外部测试人员来说,渗透测试目标的资产主要包括域