【hw必备】信息收集中三级子域名发现方式
2022-8-5 10:49:35 Author: 戟星安全实验室(查看原文) 阅读量:45 收藏

戟星安全实验室

    忆享科技旗下高端的网络安全攻防服务团队.安服内容包括渗透测试、代码审计、应急响应、漏洞研究、威胁情报、安全运维、攻防演练等

本文约2718字,阅读约需7分钟。

0x00 前言
某次攻防项目中,发现友商是从一个(https)三级子域名打点进入系统,而我们的信息收集却没有发现
授权目标及其关联公司,总资产数是3k+
0x01 常规收集方式

先说常用的子域名收集方式

  • fofa

其实fofa更偏向于资产收集,不适合拿来做子域名收集对比

使用子域名语法发现bing资产2259条

使用证书序列号发现资产1336条,因为只有https的

  • zoomeye

使用zoomeye的子域名查询功能,支持单次免费导出2w,完全够用

速度快,存活率较高,适合攻防时人手不够,又需要抢速度拿分的情况

搜索子域名bing发现子域名13561条,毕竟老牌引擎确实给力,不过对少数小厂商的资产收集效果没这么好

对批量查询需求,我以前写了个小脚本,自用

https://github.com/moyuwa/zoomeye-subdomianapi
  • oneforall

oneforall作为一个综合信息收集工具,常规项目中表现一直不错,目前用它作为一个补充,用于合并去重

不连网的情况

python3 oneforall.py --target bing.com run

新环境使用报错了,不管了

Counting IP cname appeartimes File "C:\tools\Subdomains\OneForAll-master\venv\lib\site-packages\fire\core.py", line 466,in _Fire
component,remaining_args = _CallAndUpdateTrace( File"C:\tools\Subdomains\OneForAll-master\venv\lib\site-packages\fire\core.py", line 681,in _CallAndUpdateTrace component =fn(*varargs, **kwargs) File"oneforall.py", line 254, in run self.main() File"oneforall.py", line 171, in main brute.run() File"C:\tools\Sub domains\OneForAll-master\brute.py", line 477, in run valid_subdomains = self.main(self.domain) File"C:\tools\Sub domains\OneForAll-master\brute.py", line 450, in main appear_times= stat_appear_times(output_path) File"C:\tools\Sub domains\OneForAll-master\brute.py", line 204, instat_appear_times withopen(result_path) as fd:FileNotFoundError: [Errno 2] No such file ordirectory: 'C:\\tools\\Sub domains\\OneForAll-master\\results\\temp\\resolved_result_bing.com_20220520_155653.json'
  • subfinder

subfinder是已经配置了第三方接口的apikey的,子域名发现数量也比较满意

一般用它来收集第三方平台来源的子域名,存活率比其他方式要高一些,速更快

subfinder.exe -d bing.com -o bing.txt

无代理网络,windows本地运行(推荐香港云服务器上运行),花费31秒,发现1561个子域名

  • 子域名爆破

这种方式已经被我压箱底了,只有部分域名收集较少时会进行爆破,作为一个补充,速度慢而且没法发现多级子域名和云资产域名

Sublist3r、子域名挖掘机等工具,一般都是爆破一级、二级子域名

其成功数量取决于字典,而字典基本都是常见单词、拼音组合,我们平常用的是 灯塔+xray+github 的域名字典合集爆破

因此不可能发现这个三级的子域名

  • 又快又好

之前团队内部有过一次子域名收集测试,小厂资产仅供参考,不接受反驳

以发现总数、存活总数进行对比,只需要subfinder+zoomeye的组合就可以快速收集大量域名,当然依旧会有一丢丢遗漏

0x02 两级证书发现子域名

再来分析目标子域名,样式中abc部分均是长度不一且不同的拼音首字母,test是目标根域单词

abc.abc-abc.abc.test.biz

在fofa、subfinder、zoomeye都没收集到的情况下,第一时间去搜索引擎找了关键字abc.test.biz,依旧没有发现

第一时间猜测只可能由证书发现,如图,在证书的使用者可选名称部分,我们可以看到一些子域(为了演示效果,以下用百度举例)

发现目标属于*.bce.baidu.com这个子域,这时可以直接爆破或者根据证书收集,我选择先去crt.sh查一下看看

https://crt.sh/?q=bce.baidu.com

对通过查询到的二级子域去访问测试,一般挑证书信息不同的去看

查看二级子域的证书信息,在查看了几个域名的证书,成功发现了我们未收集到的三级子域名

ps:截图只是演示过程,最终的域名样式为glxt.bjdq-yhgl.bce.baidu.com(管理系统.北京地区-用户管理.bce.baidu.com)

最后猜测应该是最近新增加的资产,不然资产测绘引擎不应该遗漏的

0x03 fofa的拓展测试

在研究过程中发现一个新姿势

比起使用证书序列号查询,使用 证书使有者 或颁发者 查询资产更多

查组织为百度

cert.subject="Beijing Baidu Netcom Science Technology Co., Ltd"

百万资产尽在掌控!

对bing这种,查颁发者,如果全称太少,就只看关键字

五个百万!

虽然看着量很大,但这种方式只适用于目标授权范围包含全部资产的情况,hw中防守方更需要它,可能 

 声明

    由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,戟星安全实验室及文章作者不为此承担任何责任。

    戟星安全实验室拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经戟星安全实验室允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。

戟星安全实验室

# 长按二维码 关注我们 #


文章来源: http://mp.weixin.qq.com/s?__biz=MzkzMDMwNzk2Ng==&mid=2247499375&idx=1&sn=5ed1aa6418a40974439b84eb3de4a5e7&chksm=c27ef47ef5097d6878b9206cbcca0db24ad4b870d52129ea0dc4dc05c49ca0bd719f9122a56d#rd
如有侵权请联系:admin#unsafe.sh