
作者简介:二哥,国内著名安全团队1937cn重要成员,现任国内某安全公司渗透测试专家,OWASP山西区域重要技术成员,曾就职于启明星辰,君立华域等公司。
Web应用打点的第一步是进行资产收集,目的是为了增加攻击面。比如在护网或其他攻防活动,组织方一般会提供目标的“目标名称”、“IP或域名”、“标靶系统”等相关信息。在活动初期,根据组织方提供的内容找到相关目标的更多资产,增加攻击面以方便进行外围打点。攻击面越广,打点成功率越高,找到漏洞的几率越大。
01 资产收集
资产收集的第一步是收集目标公司信息,因为一般接触的目标都是大型企业或国有单位,可以使用爱企查、天眼查这类工具对目标进行信息收集,包括知识产权、股权穿透图、备案号、域名等。比如,通过股权穿透图可以查看目标公司的上级控股公司,或目标公司控股的公司,对于这些控股公司也可以纳入攻击范围之内。
通过收集目标公司的信息,已经有了一些初步资产,由于攻防竞赛的时间一般较短,先拿分的优势特别大,因此为了追求效率,要使用一些在线收集工具对已经收集到的资产进行拓展。另外,还可以查询DNS、HTTPS信息来收集相关资产。除在线信息收集之外,还可以利用工具对目标域名进行收集,如果实际时间比较充裕可以使用子域名*破爆**之类的工具对子域名做更深层次的挖掘。收集完子域名之后,还可以通过在线的旁C查询工具继续拓展攻击范围。
有一点需要注意,所获取到的C段不一定全都属于目标的资产。目标在购买IP时,可能不是整个C段一起购买,这时可以通过查旁站的方式去看是否存在目标相关的子域名。通过这几种方式会收集到大量的资产,下一步就是寻找薄弱点。
02 寻找薄弱点
寻找薄弱点的主要目的是对收集的资产进行批量探测,在短时间内找到入口点。收集到足够的资产后,开始对资产进行剖析。为了效率考虑,需要用到一些快速寻找薄弱点的办法,可能直接可以拿到权限的漏洞,也有可能就是一个信息。这里着重需要注意四点:端口信息、Web存活检测与截图、Web高危组件探测和漏洞利用。
端口信息
选出几款常用的端口信息探测工具Nmap、RapidScanner、Masscan、Goby,对它们进行对比。

Nmap工具的扫描速度比较慢,但在特定的情况下只能使用Nmap进行端口探测,除非有一定的开发能力去自定义端口扫描工具,如目标存在ids、waf等防护设备的情况下,可以使用-f、-mtu 8、-g等参数来绕过。除此之外,Nmap的IP地址伪造功能可以自动生成多个IP,用来欺骗防火墙。
RapidScanner这款工具的整体优势在于全面且速度较快,适合针对单个目标使用。但是它有一个很明显的限制,就是实际测试线程为500时结果是准确的,超过500可能会出现扫描结果不全等问题。
Masscan这款国外神器比较出名,但实测时扫描结果并不很准确,所以现在有很多脚本是将Masscan与Nmap结合起来使用,如ScanCannon、Masmap等。这类型工具结合了Masscan扫描速度快与Nmap扫描结果准确性的优势。
Goby是由白帽汇自主研发的一款渗透测试框架,在做端口探测时也可以用。Goby在扫描大量IP时,扫描速度很慢但准确性很高,而且还会自动探测一些漏洞,其中自带大量的漏洞payload可以直接在端口探测阶段就能找到可利用的点。另外,它还有Web检测功能,可以快速找到存活资产和可利用点。
除上述方法之外,还可以在探测大量IP时使用fofa等搜索引擎。当使用端口扫描工具扫描C段全端口时,可能需要1天或更长时间,在有时间限制的攻防演练中耗费较长时间拿结果是不合理的,所以可以用搜索引擎快速整理整个C段端口信息。当然,这种方式获取的端口信息可能因为资产更新,fofa没有探测到等情况,导致信息不准确,但这是最快的方式。
另外,由于fofa获取的信息有时效性,其中很多端口可能已经关闭,为了快速找到存活目标,可以利用Goby的插件、小米范存活探测之类的工具进行存活探测。探测完端口信息后,开始探测指纹信息,指纹信息是拿到入口点最快速的方式。可以采用Ehole(棱洞)指纹识别工具对收集到的资产进行指纹识别,它的优势在于可以通过内部的指纹库,对本地的资产列表或fofa收集到的信息作出判断,高亮显示出重点资产,方便直接进行渗透。
自动化漏洞检测
除了通过指纹识别外,还可以通过传统漏洞获取入口点。漏洞挖掘可以利用一些自动化工具,比如主动漏洞扫描工具有Awvs、Goby,被动漏洞扫描工具有xray、burp插件,轻量级漏洞扫描工具有AppSpider等等。
主动式漏洞扫描工具Awvs,主要对单个目标扫描,可以结合Acuneitx Web vulnerability scanner 13 plus这款工具进行批量扫描,它的优势在于可以给awvs批量添加任务,如配合vps使用的话,可以在攻防演练晚上离场之前批量添加扫描任务,第二天直接可以利用。当然,它调用的仍然是awvs的接口,所以有些Web应用扫起来会特别吃力。
被动式漏洞扫描工具xray,在面对大量资产时可以配合使用爬虫工具,比如rad。使用“xray+rad”扫描速度非常快,因为xray结合了多个插件,可以在短时间内拿到入口点。另外,也可以使用多种burp的插件组合起来对大量目标进行扫描,如专门对shiro反序列化漏洞进行扫描的shiro scanner,专门对fastjson漏洞进行扫描的fastjson scan,还有burp官方提供的插件software vulnerabllity scanner等。
轻量级漏洞扫描工具AppSpider,可以支撑上万个以上目标批量进行扫描,而且扫描大量目标时速度优于“xray+rad”组合,同时还会直接列出漏洞。
扫描漏洞总是绕不过封IP的问题,这种情况可以采用动态IP的方式进行扫描,可以秒级定时随机切换IP,让防火墙不会封禁IP,常见的工具有飞鱼IP等。
03 第三方打点
当无法从目标拿到权限时,可以考虑从第三方入手。第三方打点的第一步就是收集一些Web应用相关的第三方信息,如开发商、供应商、IDC等,可以通过中国招标与采购网获取相关信息,这类攻击手段需提前与组织方确认是否为可利用的攻击途径,否则不建议使用。
开发商信息,可以通过网站底部的技术支撑栏或HTML源代码获取,有的还会出现在GitHub上开源组件的介绍文件中。找到开发商的目的有两点,一是可以尝试获取源代码然后进行代码审计,如果短期内没办法审计的话,可以尝试在公网上寻找类似的站点。比如,当目标存在waf等设备,且没有动态IP时,可以尝试找到同源码的站点进行扫描,并在目标站点上直接进行利用。二是可以直接对开发商发起攻击,因为开发商可能会存储目标服务器的一些账号信息、运维表、更新记录等,可以拿来利用。
供应商这里指的是软件供应商,如某厂家提供的财务软件等。可以直接对供应商发起攻击,比如在更新中加入恶意代码,也可以伪造为供应商软件对目标内部发起钓鱼攻击,这里只对Web应用的入口点进行阐述。
IDC机房的信息可以通过查询IP或旁站来获取,当遇到小型IDC机房时,可以直接对IDC机房发起攻击。根据获取到的不同信息进行不同的方式移动到目标主机,如存在FTP管理,可以直接通过FTP对目标的Web应用进行管理,当然还有可能获取到数据库、服务器账号密码等信息,都可以直接移动到目标主机。
- End -