我们已经准备好了,你呢?

2024我们与您携手共赢,为您的企业形象保驾护航!

免责声明:本文首发,首发链接为:/vuls/.html 概述

在渗透测试或者SRC漏洞挖掘的时候,安全测试人员通常会被给予一些域名资产。 为了更好地进行渗透测试,通常需要子域收集

为什么我们需要收集子域名

扩大资产范围可以增加漏洞发现的概率。 众所周知,一般情况下,主站点的安全性可能比较高,但一些不常用的子站点或最近上线的站点可能没有周全的安全考虑,可能会成为目标系统的漏洞。同一组织很可能使用同一个应用程序来构建多个服务,并且补丁可能大致相同。 因此,出现相同漏洞的概率非常高。

子域名收集通常分为两种方式,即被动收集和主动收集。

被动采集是指通过第三方进行采集,不与目标系统交互。 这种方法具有明显的优点。 由于它不需要与目标系统进行交互,因此不会对目标系统产生任何影响,也不会触发安全产品的任何警报。

如何收集被动子域名:

主动收集是指通过与目标系统交互来收集子域名。 由于需要与目标系统进行交互,容易出现高频访问,存在违反安全产品报警的风险。

主动收集子域名的方式:被动收集子域名信息泄露给搜索引擎

常用的搜索引擎有百度和Baidu。 基本搜索语法:

site:*.baidu.com

一般作为工具集合的补充,也可以编写批量操作的脚本。

网络资产搜索引擎常见的空间映射引擎:

使用语法直接在搜索框中搜索。 基本语法:

domain=Your_domain

您还可以使用API​​进行搜索

 echo 'domain="baidu.com"' | base64 - | xargs -I{} curl "https://fofa.info/api/v1/search/all?email=${Your_Mail}&key=${Your_Key}&page=1&qbase64={}"

然后编写一个脚本对返回的数据进行简单处理,获取子域名列表。

import requests
from base64 import b64encode
import json


# 配置信息
domain = 'domain="baidu.com"'
domain = str(b64encode(domain.encode("utf-8")), "utf-8")
email = "Your_email"
key = "Your_key"
# end
url = "https://fofa.info/api/v1/search/all?email={email}&key={key}&qbase64={domain}".format(email=email, key=key, domain=domain) + "&page={page}"
page = 1
subdomain = list()

while True:
    url = url.format(page=str(page))
    req = requests.get(url=url).text
    result = json.loads(req)['results']
    if result:
        tmp = [i[0] for i in result]
        subdomain += tmp
    else:
        break
    page += 1
print(set(subdomain))       # 去重

注:这里的代码仅展示处理逻辑,尚未考虑优化处理。 ,第三方DNS服务会运行DNS复制功能,并通过存储用户访问URL时执行的DNS解析来构建数据库。

其他在线DNS工具总结:

证书透明度 常见证书透明度查询网站

使用起来也比较简单,直接搜索主域名即可。 由于该方法的原理是收集日志信息,只增不减,所以可能会出现一些无效的子域名。

ASNAS 编号有助于识别属于某个组织的网络块,并且该网络块可能具有有效的域查找 ASN

使用nmap查找

nmap -- -asn ---args -asn.asn=> .txt

fofa 等网络空间地图引擎也支持 ASN 查找

存储网络

SAN(名称)是 SSL 标准 x509 中定义的扩展。 使用SAN字段的SSL证书可以扩展该证书支持的域名,使得一张证书可以支持多个不同域名的解析。

安全证书中允许使用字段将各种值与证书相关联,称为主题备用名称。 名称可以包括:IP 地址、DNS 名称等。

这里我们以火狐浏览器为例:

您还可以使用提供的 shell 脚本:

sed -ne 's/^\( *\)Subject:/\1/p;/X509v3 Subject Alternative Name/{
  N;s/^.*\n//;:a;s/^\( *\)\(.*\), /\1\2\n\1/;ta;p;q; }' < <(
  openssl x509 -noout -text -in <(
      openssl s_client -ign_eof 2>/dev/null <<<$'HEAD / HTTP/1.0\r\n\r' \
          -connect baidu.com:443 ) )

公共数据集

利用现有的公共扫描数据集收集子域名信息。 推荐两个常用的:

scans.io/study/sonar./

通常这些数据集都比较大,可以使用命令快速查找

wget https://scans.io/data/rapid7/sonar.fdns_v2/20170417-fdns.json.gz
cat 20170417-fdns.json.gz | pigz -dc | grep ".Your_Target.org" | jq

活动子域集合字典枚举

字典枚举利用常见的子域名字典进行暴力破解,最终获取有效的子域名。 这种方法有比较大的局限性。 可以收集的子域数量取决于字典的覆盖范围。 它还有一个致命的缺点,那就是会造成大量的流量,可能会导致目标系统的安全产品产生报警。

常用工具:

有些工具可能已经很久没有更新了,词典也可能比较旧。 您可以根据自己的需要修改为自己的词典替换扫描。

利用已知域名/子域名的排列组合来识别新的子域名,使词典更有针对性,提高准确性。

比较常用的工具有(具体工具使用见下一节)

域名转移漏洞

DNS 区域传输是将 DNS 数据库或 DNS 记录从主名称服务器复制到辅助名称服务器的过程。 如果DNS服务器配置不严格,收到AXFR请求后立即进行域名转移,就会出现该漏洞。 在域名转移过程中,除了子域名外,转移的信息还包括电子邮件地址、电子邮件服务器等信息,这些信息可用于钓鱼攻击。 事实上,域名转移漏洞本身就是一个高危漏洞。

域名转移漏洞常见验证方法:

# 1.nslookup命令进入交互式shell
$ nslookup
​
# 2.server命令 参数设定查询将要使用的DNS服务器
$ server xxx.com
​
# 3.如果漏洞存在的话,可以使用ls命令列出所有域名
$ ls
​
# 4.退出
$ exit

在Linux下,可以使用dig命令发送DNS请求。 这里只需要发送axfr类型的DNS请求即可。 如果存在此漏洞,将返回所有解析记录。

dig @Target_DNS_Server_IP axfr 查询的域名

对于Kali中已经预装的工具,需要注意的是,必须使用域名的完整形式,即. 不能省略。

dnswalk your_domain.

地图

namap中还有一个域名转移漏洞的检测脚本:

nmap --script dns-zone-transfer --script-args dns-zone-transfer.domain=Your_domain -p 53 -Pn dns.xxx.yyy.com

,即域名系统安全扩展,其主要功能是通过建立信任链来保护DNS中数据的完整性和真实性。由于不存在域名的处理方式,可以迭代一个域并枚举该域中的所有域名

常用工具:

DNS缓存

在常见的企业网络中,通常会配置DNS服务器,为网络中的主机提供域名解析服务。 DNS服务器除了解析私有域名外,还会采用递归的方式向公网DNS服务器请求解析第三方域名。 为了提高性能,缓存记录通常用来记录解析的域名,尤其是第三方域名。 域名缓存检测(DNS Cache)技术就是向这些服务器发送域名解析请求,但不需要采用递归模式。 这样,DNS就只能解析私有域名和缓存中保存的域名。 通过这项技术,渗透测试人员可以知道请求了哪些域名。

./dnsrecon.py -t snoop -n Sever -D 

自动化工具是一个比较全面的子域名扫描工具。 它有多个扫描模块和接口。 收集完整的子域名信息,包括子域名、子域名IP、子域名公共端口、子域名Title、子域名、子域名。 状态等。是一款无状态子域名爆破工具,支持在/Linux/Mac上使用。 它将快速执行 DNS 爆破。 Mac、Linux 下理论最大发包速度为 30w/s,Linux 下理论最大发包速度为 160w/s。 。

TIPS:在Linux下,还需要安装-dev。 您需要在Linux下安装它。 Mac下可以直接使用。 使用许多搜索引擎(例如 Yahoo、Bing、Baidu 和 Ask)进行子域检测。

还使用 、 、 和 进行子域检测。 它是一个使用排列扫描技术的子域名发现工具,可以帮助我们找到与某些排列或替换相匹配的子域名。 接受该域下的子域中可能存在的单词(例如测试、开发、登台),并获取您了解的子域列表。

用户只需要提供两个输入列表,就可以为我们生成并保存大量可能的潜在子域。 这些保存的子域列表是用作 DNS 爆破字典的不错选择。

当然,还有很多优秀的工具。 这里仅介绍几种我个人认为比较常用的使用方法。 只有合理使用工具,才能发挥工具的最大潜力。 常用工具包括:

总结

在渗透测试中,大多数测试人员使用自动化工具在项目周期中收集数据。 不过,当你对已经收集到的资产无能为力时,尝试各种方法进一步扩大资产范围也是一个好主意。 因此,本文系统地整理了一些常用的采集方法,希望对各位高手有所帮助~

后记

安全团队热衷于分享网络安全相关技术,希望与各位高手共同成长。 后续更新将在公众号持续更新。 欢迎关注、交流~

二维码
扫一扫在手机端查看

本文链接:https://by928.com/267.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线