什么是网络空间测绘
测绘大家都知道,那么什么又是网络空间测绘呢?通俗来讲就是对网络进行测绘,也许大家会觉得我说的是废话,其实不然,网络空间十分庞大,毫不夸张的讲比我们现实世界还要庞大,我们日常使用的网络仅仅是网络世界的冰山一角,除了大家能够通过Google,yahoo搜索到的网页之外,还有90%的网络是游离在搜索引擎之外的,我们称之为深网,当然讲到这里扯远了,举这个例子呢,是告诉大家网络很庞大,所以我们需要测绘。
对于一个企业来说,特别是像腾讯,阿里,百度这种网络巨无霸,在互联网上的资产可以用数以万计来形容,可能有几千万个ip,可能有几万个域名,如何管理维护好这些单靠人工录入,管理系统管理是不可能的,总有因为口口相传从而丢失的,所以资产测绘便应运而生。
网络测绘自提出到如今也过去了数年,在这数年间产生了无数优秀的网络测绘引擎:FOFA,ZooEye,360天擎,Shodan等便是其中的代表。
如何进行网络空间测绘
关于如何做好网络空间测绘这一直是各大安全公司关注的话题,我讲通过本文简单讲述一下网络空间测绘的思路。
绘制测绘路线图
要想做好测绘,那就必须清楚我们需要的资产是什么,是IP?是指纹?是漏洞?是服务?需要的资产不同我们的手段也略有不同,下面我绘制了一个流程图,关于如何搭建一个网络空间测绘服务。
上述流程图便是实现了一个简单的网络空间测绘能力。
数据输入
这里输入的数据可以是域名,可以是IP,可以是公司名,可以是人名,此处就比较挑战开发者对于资产发现的能力了,单纯的域名和IP还好,涉及到公司和人名如何确保收集数据的可靠性就尤为重要,这里开发者可以参考的工具有:天眼查,爱企查,企查查等。
子域名发现
当发现到了足够多的资产之后,我们就需要对资产进行进一步丰富,比如域名如何找到子域名,这里推荐使用子域名爆破工具:OneForALL,amass这两个工具来采集,当然如果财力雄厚还可以采购114.114.114.114等DNS服务商所对外销售的数据以此来丰富子域名。
IP资产发现
这个就比较考验能力和技术底蕴了,单纯的子域 → DNS → IP是远远不够的,因为不是所有资产都会绑定IP,这里就比较难了,如何找到准确的IP资产一直以来都是业内比较头疼的问题,当然这个问题也一直困扰着作者本人,目前笔者能想到的办法就是c段扫描丰富IP资产的量,但是这么做有一个问题,如果遇到是云服务商的资产很容易就出现打偏的情况。
服务识别
服务识别这里就没啥好多探讨的了无非就是使用nmap或者第三方自研工具(这里指的是实现一个类似nmap效果的工具),二者各有各的优势,nmap技术成熟不用做过多的介绍,不过用nmap有一个很大的问题就是容易被各大安全软件识别并封禁,毕竟这是个开源软件,业内早已经对齐做了充分的识别。
笔者这里比较推荐的是自研扫描工具在端口识别过后用同一份流量完整协议识别,避免多次请求触发目标的安全防护。
Nmap的指纹规则就在此处:raw.githubusercontent.com/nmap/nmap/m...
指纹识别与Poc识别
接下来的指纹识别和POC识别算是资产发现的附带功能吧,指纹可以从github上扒各种开源的使用,然后POC比较推荐使用Nuclei或者Pocsuite(Python),这里涉及到定制化的功能,我就在此不多赘述。
最后
上面我所谈的只是网络空间的测绘的一小部分其中有很多更深入的技术值得我们去研究,比如如何发现更多的资产,如何确保资产的可靠性,再或者如果提交资产的发现效率,避免别各种引擎封禁,这些都是需要去探索的,当然笔者也会根据自己的经验去实现一个测绘引擎来完成实践。