关于攻防场景下资产探测扫描的加速策略

之前做了个“大改小改ARL”,但是最近发现它虽然很省资源,但是扫描的速度太慢了;仔细研究发现是在扫CDN的时候,扫描的速度会很慢;大概是因为CDN会出现一个域名解析到多个IP地址的情况,而且开放端口又很多;从而导致端口扫描、服务识别这些速度很慢

网上查了点资料之后发现,一个域名解析到多个IP地址是一个典型的基于DNS的负载均衡实现

1717832843993.png

一般这种情况是CDN才会出现,不过也不排除会有甲方公司自己搞这种DNS负载均衡的服务,如果这几个IP是甲方公司自己拿来组负载均衡的,那这几个IP运行的服务可能不完全一样。从资产收集的角度,稳妥起见,还是全都进行端口扫描会更好

但是如果这几个IP是CDN的IP,那就惨了,CDN开放的端口数量通常都很多,如果nmap再开个系统识别和服务识别,那这几个的扫描IP可能要跑半个小时甚至更久,如果目标单位比较富,所有资产都套个云waf、cdn,那就基本不可能扫得完

斗象原版的ARL比较吃资源,但是我的“大改小改ARL”就是冲着省资源设计的,

所以我到楼下罗森便利店买了几台镀锌方钢外壳4U服务器,再找同事借几个膨胀螺丝,把服务器牢牢固定在机架上,结实耐用一万年

1717840006298.png

然后直接启动“大改小改ARL”,开启16线程大功率模式,ping一下爱国防火墙,1.26ms响应的高性能启示我还能再多开几个线程

算了,看着大伙努力干活的样子,我不敢把防火墙干丢包,16线程也够快了;看了一下进程列表,发现因为很多目标域名用的同一个CDN,所以16个nmap对着相同的几个IP在狂扫

第二天一看,1000个站跑完了,帅!果然还得是力大砖飞

攻防结束之后我在地铁上看着前面的人的手机上的番茄小说陷入沉思,力大砖飞固然好,但是用膨胀螺丝固定的服务器也不是长久之策,因为这次的探测扫描之前我们没有任何的外网打点行为,所以打了防守方一个措手不及,没有封我们;如果我们已经暴露,出口IP被封,必须使用云服务器才能有效打点,但是云服务器性能不足,力不大,飞不起来;这该怎么办呢

1717840275823.jpg

也许力大砖飞不是万能的,想要提高自己,还是要学会“化劲”

回到家,打开电脑,显卡向我抱怨它很累,我骂他:“你渲染完图像之后不会自己记住吗?你记住这些图像之后不就不用重复渲染了!”,骂完之后我打了自己一巴掌,原来我是在骂我自己,原来这就是所谓“化劲”!

缓存!也许是解决软弱无力的灵丹妙药,我可以把扫描结果存起来,万一以后有用,就不用再扫了!

可行性分析

端口扫描

我认为是完全可行的!一般情况下大伙不会天天没事就开个新端口玩,所以端口扫描结果可以缓存1天,期间所有命中缓存的任务直接返回之前的扫描结果!

站点识别

个人感觉站点识别结果是无法使用缓存的,因为站点识别是通过域名+端口做的,只要域名不重复,站点信息就存在不重复的可能性;但是站点识别阶段需要识别端口的协议,也许这个端口协议的识别结果可以做到缓存里;避免重复发包识别

这个操作可能不会节省多少时间,但也许会降低扫描器的动静,但是用宝贵的内存资源换这个“降低动静”,好像不太值

服务识别

做什么缓存?这个功能我直接砍了,平时也很少用到服务识别,直接删除这个功能还省心省事

数据泄露扫描

这个主要是跟着站点走的,好像没什么缓存好做

一通分析下来,好像只有端口扫描和站点识别阶段可以做缓存,端口扫描结果缓存的价值是最大的!

于是我操作了一下,把端口缓存做好了,跑一下edusrc看看效果,然后正好试试绿盟那个ez扫描器,比较一下看看端口缓存会不会影响资产收集结果