子域名搜集原理与子域名爆破工具

优采云 发布时间: 2020-08-10 04:46

  子域名搜集是渗透测试中,前期信息搜集必不可少的一个阶段。域名是一个站点的入口,如果一个站点无法渗透,可以尝试从它的子域名或则同一台服务器上的另外一个站点作为突破口,从而进行较为隐秘的渗透测试。

  最原创的子域名查询,就是在 Web 页面中输入域名,检测相关网页是否存在。后来衍射了各种各样的方式,进行子域名的查询。也有众多工具,可以进行子域名的暴力破解,爆破的原理似乎是通过枚举的方法来实现的(爆破域名顾名思义就是枚举的意思)枚举域名的A记录。本文先介绍子域名查询的几种典型方式,再给出几个典型工具,每个工具各有特色,差距不大,选择容易上手的即可。

  0x10 子域名搜集技巧0x11 查询 DNS 解析记录

  如 MX CNAME 记录,使用 nslookup 命令就可以查询这种信息。查询DNS记录的方式,通过域名的NS服务器可以用"ls "的方法查询所有域名相关记录,但是可惜,现在的DNS服务器大都禁用了这个功能以提升安全性。

  

  0x12 爬虫提取子域名

  这类工具有很多,例如 burpsuite、appscan、awvs 都有爬虫的功能

  

  0x13 搜索引擎

  搜索引擎提供了一些中级搜索指令,site 就可以查询相关的域名,其实搜索导致收录的网页也是通过爬虫来爬取的。

  

  0x14 站点配置文件

  crossdomain.xml,跨域策略配置文件

  

  robots.txt,反爬虫配置文件,Robots 协议拿来告知搜索引擎什么页面能被抓取,哪些页面不能被抓取

  

  0x20 常用工具

  爆破的原理似乎是通过枚举的方法来实现的(爆破域名顾名思义就是枚举的意思)枚举域名的A记录。例如,如果要爆破 的子域名

  首先的访问一个随机并不存在的域 取得A记录后保存开始枚举a-z0-9,比如、 、之类的。接下来的步骤就分为两种形式了。

  第一种:直接获取 的A记录,有 A 记录则表示存在也是可行的,但是假如遇见泛解析则该方式失效。

  第二种,在泛解析的下也可以使用,把这种枚举的域名 A 记录与之前的A记录做对比,不同的则是存在A记录的域名,也就是在用的域名。0x21 subDomainsBrute

  项目地址:

  依赖

  pip2 install dnspython gevent

  用法

  Usage: subDomainsBrute.py [options] target.com

Options:

--version show program's version number and exit

-h, --help show this help message and exit

-f FILE File contains new line delimited subs, default is

subnames.txt.

--full Full scan, NAMES FILE subnames_full.txt will be used

to brute

-i, --ignore-intranet

Ignore domains pointed to private IPs

-t THREADS, --threads=THREADS

Num of scan threads, 200 by default

-p PROCESS, --process=PROCESS

Num of scan Process, 6 by default

-o OUTPUT, --output=OUTPUT

Output file name. default is {target}.txt

  举例(该工具只支持 python2)

  

  0x22 subdomain3

  项目地址:

  部分参数说明

  -h, –help show this help message and exit

-s , –speed 三种速度模式,low,medium和high,默认是medium。

-d , –domain 要爆破的域名例如:test.com

-l , –level 爆破的域名级数,如test.test.com是1,test.test.test.com是二级

  安装

  git clone https://github.com/yanxiu0614/subdomain3.git

pip install -r requirement.txt

python2/3 brutedns.py -d tagetdomain -s high -l 5

  0x23 OneForAll

  项目地址:

  采集能力强悍,详细模块请阅读搜集模块说明。

  利用证书透明度搜集子域(目前有6个模块:censys_api,certspotter,crtsh,entrust,google,spyse_api)

  常规检测搜集子域(目前有4个模块:域传送漏洞借助axfr,检查跨域策略文件cdx,检查HTTPS证书cert,检查内容安全策略csp,检查robots文件robots,检查sitemap文件sitemap,后续会添加检测NSEC记录,NSEC3记录等模块)

  利用网上爬虫档案搜集子域(目前有2个模块:archivecrawl,commoncrawl,此模块还在调试,该模块还有待添加和建立)

  利用DNS数据集搜集子域(目前有23个模块:binaryedge_api, bufferover, cebaidu, chinaz, chinaz_api, circl_api, dnsdb_api, dnsdumpster, hackertarget, ip138, ipv4info_api, netcraft, passivedns_api, ptrarchive, qianxun, rapiddns, riddler, robtex, securitytrails_api, sitedossier, threatcrowd, wzpc, ximcx)

  利用DNS查询搜集子域(目前有5个模块:通过枚举常见的SRV记录并做查询来搜集子域srv,以及通过查询域名的DNS记录中的MX,NS,SOA,TXT记录来搜集子域)

  利用恐吓情报平台数据搜集子域(目前有6个模块:alienvault, riskiq_api,threatbook_api,threatminer,virustotal,virustotal_api该模块还有待添加和建立)

  利用搜索引擎发觉子域(目前有18个模块:ask, baidu, bing, bing_api, duckduckgo, exalead, fofa_api, gitee, github, github_api, google, google_api, shodan_api, so, sogou, yahoo, yandex, zoomeye_api),在搜索模块中除特殊搜索引擎,通用的搜索引擎都支持手动排除搜索,全量搜索,递归搜索。

  支持子域爆破,该模块有常规的字典爆破,也有自定义的fuzz模式,支持批量爆破和递归爆破,自动判定泛解析并处理。支持子域验证,默认开启子域验证,自动解析子域DNS,自动恳求子域获取title和banner,并综合判定子域存活情况。支持子域接管,默认开启子域接管风险检测,支持子域手动接管(目前只有Github,有待建立),支持批量检测。处理功能强悍,发现的子域结果支持手动清除,自动DNS解析,HTTP恳求侦测,自动筛选出有效子域,拓展子域的Banner信息,最终支持的导入格式有rst, csv, tsv, json, yaml, html, xls, xlsx, dbf, latex, ods。速度极快,采集模块使用多线程调用,爆破模块使用massdns,默认配置下速率最少能达到10000pps,子域验证中DNS解析和HTTP请求使用异步多解释器,多线程检测子域接管风险。体验良好,日志和终端输出全使用英文,各模块都有进度条,异步保存各模块结果。

  安装

  git clone https://github.com/shmilylty/OneForAll.git

cd OneForAll/

python -m pip install -U pip setuptools wheel -i https://mirrors.aliyun.com/pypi/simple/

pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/

cd oneforall/

python oneforall.py --help

  示例

  

  0x24 子域名挖掘机

  Windows 环境下挺好用的一款子域名挖掘工具,提供可视化界面,容易上手。但是 bug 很多,且容易崩溃

  

  0x25 在线扫描平台

  在线平台一部分是穷举,此类跟本地的工具疗效是一样的;另外一类是搜索引擎,通过 Alexa 和 Google 搜索,简单快捷,缺点是可能会缺乏个别浏览量较低的域名,不是非常全面。在线平台非常多,在此举几个事例

  暴力破解

  搜索引擎收录

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线