编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

干货|攻防演练中的自动化思考

wxchong 2025-02-11 13:49:39 开源技术 8 ℃ 0 评论

欢迎搜索公众号:白帽子左一

每天分享更多黑客技能,工具及体系化视频教程


转载自:
https://forum.90sec.com/t/topic/1609

时间来到三月中旬,一年一度的全国攻防大演练就要开始了,但是自己还是觉得没准备好,想来想去不知道准备什么。


准备0day?挖不出来。准备内网乱杀?可能连边界都突破不了。


到最后,决定准备一些自动化的内容,就当给能力强的同事打助攻了。

自动化资产收集

今天跟一个同事收集某个目标的信息,发觉自己的效率实在低得可怜。


所有的IP和端口都要手工去验证一遍,FOFA搜关键字得到的链接也全都点一遍,一上午才完成了不到50个地址,并且还没发现有太大用处的信息。


对于某个目标,我们最先得知的一般都是其官网域名,后续可能会得知C段、子域等,要做到高度自动化,所收集的信息必须有较为同步的格式,不然就得花费时间和精力去整理归纳。


先来梳理一下我们需要的信息:

  • 有效子域名
  • 存活IP和开放端口
  • 网站cms版本
  • 服务组件
  • ……

那么大致的收集流程如下:


  1. 子域名爆破,验证有效性
  2. 空间搜索引擎获取相关IP和端口,验证存活和开放
  3. 可疑C段整体扫描,验证存活IP和开放端口
  4. 去重,获得整体资产


作为攻击方,我们要讲求一个效率问题,如同在2019 BCS红队行动里议题里讲的:



首先是大规模撒网,无果之后再采取手工精准测试。


子域名

子域名收集我个人喜欢使用OneForAll,每次收集到的都比较全面,速度也非常快。


关于子域名,主要关注域名本身、解析IP,还有响应码,通过这些可以快速判断是否为有效子域名。


在OneForAll的输出结果里,所需要的列有:
url、subdomain、status、title、resolver

使用脚本提取出这些列即可,最好也输出为csv文件。


之后就对这些列进行有效性验证,主要关注响应码为200、403和404的子域名,提取出来,供后面使用。


空间搜索引擎


使用FOFA这种空间搜索引擎可以获取到一些不在主域名周围的零散资产,通常有奇效,但使用手工的方式效率也太低,还需要借助脚本。


主要关注的内容也是IP和端口、响应码,以Web服务为主,生成的内容应该是类似这种的:http://192.168.1.1:8080,再借助脚本验证有效性。


可疑C段

遇到疑似目标的C段,可以使用Goby来扫描,还能顺便扫描漏洞,最后导出相关结果。


去重

需要自己写脚本完成,在这里放一个TODO,有空了尝试。


批量漏洞验证

需要验证的主要是一些被公布出来的漏洞,在某些边缘资产中有可能还没被修复。


这里主要使用xray来做漏洞验证,可以与Goby、AWVS联动使用。


在正式的演练中不建议使用这种批量方式,因为防守方大都殚精竭虑地守在设备前,已知的POC流量会造成设备报警,就算有大量的代理,也会造成防守方警觉,所以还是需要更稳妥和安静的方式。


对精准目标的自动化

有可能在一大波操作之后,还是没有能利用的公开的漏洞。别灰心,一般还会有一些目标自主开发或闭源的系统,基本都是一个登录框。

针对登录框,要做的是尽量扩大攻击面,使用各种爬虫类工具收集额外信息。

我常使用的有长亭出品的chaitin/rad
https://github.com/chaitin/rad
) ,

以及Threezh1/JSFinder
https://github.com/Threezh1/JSFinder
).

两者可以互补地从单个登录框中扒出更多信息。

Rad可以导出基本结果、完整结果和JSON,基本结果格式为:

GET http://example.com


而JSFinder导出的结果为纯URL格式,两者要做数据统一,最后再进行有效性验证,关注200、302、403、404.


其他信息自动化收集


邮箱收集


除了资产方面,我们还需要关注目标邮箱,在之后的钓鱼时用的上。


如果目标有自建的邮箱服务器,那自然是最好的,一般邮箱后缀都为目标的域名,对命名规则也要有大概的了解,可以借助自动化工具收集互联网上存在的邮箱。


有以下两款,基本都集成了通过各种接口来获取信息,需要自主配置:


GitHub - bit4woo/teemo: A Domain Name & Email Address Collection Tool

https://github.com/bit4woo/teemo)


GitHub - laramies/theHarvester: E-mails, subdomains and names Harvester - OSINT

(https://github.com/laramies/theHarvester)


获得邮箱之后,还要做有效性验证,有可能一些邮箱已被停用,


可以使用GitHub - Tzeross/verifyemail:


Python在线验证邮箱真实性,支持批量验证(
https://github.com/Tzeross/verifyemail
)


字典生成

通用的字典有时作用有限,还需要根据实际情况来生成。
特殊弱口令基本可以分为三个部分:

  • 特殊项:公司域名,姓名
  • 符号:如@、!
  • 普通弱口令:年份、admin、123456

将三者进行不同的组合,可以获得一大批特殊弱口令,爆破时更有效果,主要的工具有BaiLu-SED-Tool (
https://github.com/HongLuDianXue/BaiLu-SED-Tool
)以及pydictor (
https://github.com/LandGrey/pydictor
)


思路梳理

最后来梳理下一场演练的大致流程:

  • 收集子域、C段
  • 收集相应IP的端口和服务信息
  • 漏洞验证
  • 精准目标测试
  • 搜寻目标社工信息,生成字典
  • 钓鱼
  • ……

本文只是一次简单的思考,写出来是为了整理自己的思路,希望也能对你们有些思路上的灵感.

欢迎搜索公众号:白帽子左一

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表