子域名收集原理與子域名爆破工具

子域名收集是滲透測試中,前期信息收集必不可少的一個階段。域名是一個站點的入口,如果一個站點難以滲透,可以嘗試從它的子域名或者同一臺服務器上的另外一個站點作爲突破口,從而進行較爲隱祕的滲透測試。

最原始的子域名查詢,就是在 Web 頁面中輸入域名,檢測相關網頁是否存在。後來衍射了各種各樣的方法,進行子域名的查詢。也有諸多工具,可以進行子域名的暴力破解,爆破的原理其實是通過枚舉的方式來實現的(爆破域名顧名思義就是枚舉的意思)枚舉域名的A記錄。本文先介紹子域名查詢的幾種典型方法,再給出幾個典型工具,每個工具各有特色,差距不大,選擇容易上手的即可。

0x10 子域名收集方法

0x11 查詢 DNS 解析記錄

如 MX CNAME 記錄,使用 nslookup 命令就可以查詢這些信息。查詢DNS記錄的方法,通過域名的NS服務器可以用"ls http://domain.com"的方式查詢所有域名相關記錄,但是可惜,現在的DNS服務器大都禁用了這個功能以提高安全性。
在這裏插入圖片描述

0x12 爬蟲提取子域名

這類工具有很多,例如 burpsuite、appscan、awvs 都有爬蟲的功能
在這裏插入圖片描述

0x13 搜索引擎

搜索引擎提供了一些高級搜索指令,site 就可以查詢相關的域名,其實搜索引起收錄的網頁也是通過爬蟲來爬取的。
在這裏插入圖片描述

0x14 站點配置文件

crossdomain.xml,跨域策略配置文件
在這裏插入圖片描述

robots.txt,反爬蟲配置文件,Robots 協議用來告知搜索引擎哪些頁面能被抓取,哪些頁面不能被抓取
在這裏插入圖片描述

0x20 常用工具

爆破的原理其實是通過枚舉的方式來實現的(爆破域名顧名思義就是枚舉的意思)枚舉域名的A記錄。例如,如果要爆破 test.com 的子域名

  1. 首先的訪問一個隨機並不存在的域 abc.test.com
  2. 取得A記錄後保存
  3. 開始枚舉a-z0-9,比如1.test.com、 2.test.com 、3.test.com之類的。
  4. 接下來的步驟就分爲兩種方式了。
    第一種:直接獲取1.test.com 2.test.com 3.test.com的A記錄,有 A 記錄則表示存在也是可行的,但是如果遇到泛解析則該方法失效。
    第二種,在泛解析的下也可以使用,把這些枚舉的域名 A 記錄與之前abc.test.com的A記錄做對比,不同的則是存在A記錄的域名,也就是在用的域名。

0x21 subDomainsBrute

項目地址:https://github.com/lijiejie/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

項目地址:https://github.com/yanxiu0614/subdomain3

  • 更快:三種速度模式. 用戶也可以修改配置文件(/lib/config.py) 來獲得更高的速度
  • CDN識別支持:可以判定域名是否使用了CDN,同時新增在某些情況下自動識別是否使用CDN,而不只依賴給定的列表;
  • 標準C段支持:可以對未使用CDN的域名IP進行分類.
  • 多級域名支持:可以發現多級域名,無限制.
  • 大字典支持:可以支持百萬級字典
  • 更少的資源佔用:1個CPU/1GB內存/1Mbps帶寬 即可獲得很高速度
  • 更智能:自動發現最快的DNS服務器,並使用其進行爆破;優化泛解析策略,對抗dns污染;支持從其他渠道導入子域名,同時會將部分字段導入字典二次爆破,從而更準確。

部分參數說明

-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

項目地址:https://github.com/shmilylty/OneForAll

  • 收集能力強大,詳細模塊請閱讀收集模塊說明
    1. 利用證書透明度收集子域(目前有6個模塊:censys_apicertspottercrtshentrustgooglespyse_api

    2. 常規檢查收集子域(目前有4個模塊:域傳送漏洞利用axfr,檢查跨域策略文件cdx,檢查HTTPS證書cert,檢查內容安全策略csp,檢查robots文件robots,檢查sitemap文件sitemap,後續會添加檢查NSEC記錄,NSEC3記錄等模塊)

    3. 利用網上爬蟲檔案收集子域(目前有2個模塊:archivecrawlcommoncrawl,此模塊還在調試,該模塊還有待添加和完善)

    4. 利用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

    5. 利用DNS查詢收集子域(目前有5個模塊:通過枚舉常見的SRV記錄並做查詢來收集子域srv,以及通過查詢域名的DNS記錄中的MX,NS,SOA,TXT記錄來收集子域)

    6. 利用威脅情報平臺數據收集子域(目前有6個模塊:alienvault, riskiq_apithreatbook_apithreatminervirustotalvirustotal_api該模塊還有待添加和完善)

    7. 利用搜索引擎發現子域(目前有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 搜索,簡單快捷,缺點是可能會缺少某些瀏覽量較低的域名,不是特別全面。在線平臺特別多,在此舉幾個例子

    暴力破解
    http://z.zcjun.com/
    https://phpinfo.me/domain/
    http://tools.bugscaner.com/subdomain/

    搜索引擎收錄
    http://alexa.chinaz.com

    發表評論
    所有評論
    還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
    相關文章