资产收集对抗-子域名爆破
<p> <span style="font-size: 16px">子域名爆破,是发现多资产的一个很好的方法,在子域名爆破中,经常会遇到泛解析问题</span></p><p><span style="font-size: 16px"> 什么是泛解析呢(参考百度百科)?</span></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 0, 1); font-size: 16px">泛域名解析是:*.域名解析到同一IP。
域名解析是:子域名.域名解析到同一IP。</span></pre>
</div>
<p> <span style="font-size: 16px">这为我们去做子域名爆破,带来了极大的不便,以前子域名爆破常用的是layer子域名挖掘机. 不过layer子域名挖掘机,在跑具有泛解析的站的时候,就不是那么适用</span></p>
<p><span style="font-size: 16px"> 最近做漏洞挖掘的时候,发现跑的很多资产都是无效资产,解决这个问题,对信息收集很有帮助</span></p>
<p><span style="font-size: 16px"> 前几天朋友给我发了一个他自己写的子域名爆破工具,用了下,感觉不错,这里简单解读下:<br></span></p>
<p><span style="font-size: 16px"> 这里以淘宝和百度为例子:ping 一个绝对随机不可能存在的域名,他解析了,那么说明他大概率使用了泛解析</span></p>
<p><span style="font-size: 16px"> <img src="https://img2022.cnblogs.com/blog/1090320/202203/1090320-20220303113103812-1435020700.png" alt="" loading="lazy"></span></p>
<p> </p>
<p> <span style="font-size: 16px">结论:说明淘宝可能存在泛解析问题</span></p>
<p><span style="font-size: 16px"> 以百度为例子:</span></p>
<p> <img src="https://img2022.cnblogs.com/blog/1090320/202203/1090320-20220303113227996-1391781806.png" alt="" loading="lazy"></p>
<p> </p>
<p> <span style="font-size: 16px">结论:说明百度可能不存在泛解析问题</span></p>
<p> <span style="font-size: 16px">针对百度,我们可以直接使用layer子域名挖掘机等子域名爆破工具,而针对淘宝的资产,我们不能使用layer子域名挖掘机等常规工具</span></p>
<p><span style="font-size: 16px"> 那么我们需要做第一步,识别泛解析:</span></p>
<p><span style="font-size: 16px"> 这边的思路如下:</span></p>
<p><span style="font-size: 16px"> <img src="https://img2022.cnblogs.com/blog/1090320/202203/1090320-20220303113507932-1363922353.png" alt="" loading="lazy"></span></p>
<p> </p>
<p> </p>
<p> <img src="https://img2022.cnblogs.com/blog/1090320/202203/1090320-20220303113524227-185155355.png" alt="" loading="lazy"></p>
<p> </p>
<p> <span style="font-size: 16px">这里使用到的python3库:aiodns,他很强大,aiodns支持的查询类型: A, AAAA, ANY, CAA, CNAME, MX, NAPTR, NS, PTR, SOA, SRV, TXT.</span></p>
<p> <span style="font-size: 16px">五次完全A记录解析成功,认为存在泛解析,如果不存在泛解析问题,就常规子域名收集一把梭,如果检测出泛解析,就使用破泛解析的子域名爆破工具</span></p>
<p><span style="font-size: 16px"> 破泛解析实现思路:</span></p>
<p><span style="font-size: 16px"> <img src="https://img2022.cnblogs.com/blog/1090320/202203/1090320-20220303134448547-2070878323.png" alt="" loading="lazy"></span></p>
<p> </p>
<p> </p>
<p> <span style="font-size: 16px">刚刚演示了泛解析判断是否存在,仍然以资产淘宝为例子:</span></p>
<p> <span style="font-size: 16px">测试Demo:</span></p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 0, 255, 1)">import</span><span style="color: rgba(0, 0, 0, 1)"> asyncio
</span><span style="color: rgba(0, 0, 255, 1)">import</span><span style="color: rgba(0, 0, 0, 1)"> aiodns
</span><span style="color: rgba(0, 0, 255, 1)">import</span><span style="color: rgba(0, 0, 0, 1)"> sys
loop </span>=<span style="color: rgba(0, 0, 0, 1)"> asyncio.get_event_loop()
resolver </span>= aiodns.DNSResolver(loop=<span style="color: rgba(0, 0, 0, 1)">loop)
async </span><span style="color: rgba(0, 0, 255, 1)">def</span><span style="color: rgba(0, 0, 0, 1)"> query(name, query_type):
</span><span style="color: rgba(0, 0, 255, 1)">return</span><span style="color: rgba(0, 0, 0, 1)"> await resolver.query(name, query_type)
</span><span style="color: rgba(0, 0, 255, 1)">try</span><span style="color: rgba(0, 0, 0, 1)">:
coro </span>= query(str(sys.argv), <span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(128, 0, 0, 1)">CNAME</span><span style="color: rgba(128, 0, 0, 1)">'</span><span style="color: rgba(0, 0, 0, 1)">)
result </span>=<span style="color: rgba(0, 0, 0, 1)"> loop.run_until_complete(coro)
</span><span style="color: rgba(0, 0, 255, 1)">print</span><span style="color: rgba(0, 0, 0, 1)">(result)
</span><span style="color: rgba(0, 0, 255, 1)">except</span><span style="color: rgba(0, 0, 0, 1)"> Exception as e:
</span><span style="color: rgba(0, 0, 255, 1)">print</span>(e)</pre>
</div>
<p> <span style="font-size: 16px">CNAME查询几个不存在的淘宝域名,也是一样的思路,循环多次不存在的域名,如果访问不存在的域名,CNAME为shop.taobao.com</span></p>
<p> <img src="https://img2022.cnblogs.com/blog/1090320/202203/1090320-20220303134731477-1342838747.png" alt="" loading="lazy"></p>
<p> </p>
<p> </p>
<p> <img src="https://img2022.cnblogs.com/blog/1090320/202203/1090320-20220303134842822-217518019.png" alt="" loading="lazy"></p>
<p> </p>
<p> <span style="font-size: 16px">那么在子域名爆破的时候可以先判断CNAME,这里可以自己维护的特定厂商的CNAME列表</span></p>
<p><span style="font-size: 16px"> 代码实现:</span></p>
<p> <img src="https://img2022.cnblogs.com/blog/1090320/202203/1090320-20220303134920807-897377974.png" alt="" loading="lazy"></p>
<p> </p>
<p> <span style="font-size: 16px">先查询CNAME记录,如果包含shop.taobao.com就跳过</span></p>
<p> </p>
<p> <span style="font-size: 16px">同理方法3:A记录查询命中次数:</span></p>
<p><span style="font-size: 16px"> 如果A记录查询,命中相同ip>10,后续的爆破A记录解析的域名就不展示记录</span></p>
<p><span style="font-size: 16px"> <img src="https://img2022.cnblogs.com/blog/1090320/202203/1090320-20220303135236548-110916875.png" alt="" loading="lazy"></span></p>
<p> </p>
<p> </p>
<p> </p>
<p> <span style="font-size: 16px">通过这种思路,域名泛解析的问题已经可以解决了</span></p>
<p> <span style="font-size: 16px">域名深度问题:replace提取上一次的域名前缀,加入到下一次fuzz+上一次的域名前缀</span></p>
<p><span style="font-size: 16px"> <img src="https://img2022.cnblogs.com/blog/1090320/202203/1090320-20220303140022142-190392041.png" alt="" loading="lazy"></span></p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p> <img src="https://img2022.cnblogs.com/blog/1090320/202203/1090320-20220303140040801-1096793145.png" alt="" loading="lazy"></p>
<p> </p>
<p> <span style="font-size: 16px"> </span></p>
<p><span style="font-size: 16px"> 题外话: 判断是否是真实业务?</span></p>
<p><span style="font-size: 16px"> 当域名很多的时候,探测域名是否是真实业务,显得很重要,现在很多网站上门户跳转了,点击任意子域名都会走sso/portal,防止仍然存在泛解析问题:</span></p>
<p><span style="font-size: 16px"> 思路如下:</span></p>
<p><span style="font-size: 16px"> <img src="https://img2022.cnblogs.com/blog/1090320/202203/1090320-20220303135654924-1896211756.png" alt="" loading="lazy"></span></p>
<p> </p>
<p> </p>
<p> </p>
<p> <span style="font-size: 16px">效果如下:</span></p>
<p> <img src="https://img2022.cnblogs.com/blog/1090320/202203/1090320-20220303135749200-2102402764.png" alt="" loading="lazy"> </p>
<p> </p>
<p> 参考:</p>
<p> (1)常用域名记录参考:https://blog.51cto.com/hashlinux/1663860</p>
<p> (2)处理泛解析子域名爆破工具参考:https://github.com/ldbfpiaoran/subdns</p><br><br>
来源:https://www.cnblogs.com/piaomiaohongchen/p/15959042.html
頁:
[1]