資訊收集利器|一款功能強大的子域收集工具

皮仔發表於2024-08-23

01工具介紹 (下載地址見最後)

在hw等攻防演練中,資訊收集做為演練廚師階段最重要的步驟,方式方法尤為重要,好的工具達到事半功倍的效果。OneForAll是一款集百家之長,功能強大的全面快速子域收集終極神器。

解決以下痛點:

在滲透測試中資訊收集的重要性不言而喻,子域收集是資訊收集中必不可少且非常重要的一環,目前網上也開源了許多子域收集的工具,但是總是存在以下部分問題:

  • 不夠強大,子域收集的介面不夠多,不能做到對批次子域自動收集,沒有自動子域解析,驗證,FUZZ以及資訊擴充等功能。

  • 不夠友好,固然命令列模組比較方便,但是當可選的引數很多,要實現的操作複雜,用命令列模式就有點不夠友好,如果有互動良好,高可操作的前端那麼使用體驗就會好很多。

  • 缺少維護,很多工具幾年沒有更新過一次,issues和PR是啥,不存在的。

  • 效率問題,沒有利用多程序,多執行緒以及非同步協程技術,速度較慢。

02 功能特性

  • 收集能力強大,詳細模組請閱讀收集模組說明。

    1. 利用證書透明度收集子域(目前有6個模組:censys_apicertspottercrtshentrustgooglespyse_api

    2. 常規檢查收集子域(目前有4個模組:域傳送漏洞利用axfr,檢查跨域策略檔案cdx,檢查HTTPS證書cert,檢查內容安全策略csp,檢查robots檔案robots,檢查sitemap檔案sitemap,利用NSEC記錄遍歷DNS域dnssec,後續會新增NSEC3記錄等模組)

    3. 利用網上爬蟲檔案收集子域(目前有2個模組:archivecrawlcommoncrawl,此模組還在除錯,該模組還有待新增和完善)

    4. 利用DNS資料集收集子域(目前有24個模組:bevigil_api, binaryedge_api, bufferover, cebaidu, chinaz, chinaz_api, circl_api, cloudflare, 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,並綜合判斷子域存活情況。

  • 支援子域爬取,根據已有的子域,請求子域響應體以及響應體裡的JS,從中再次發現新的子域。

  • 支援子域置換,根據已有的子域,使用子域替換技術再次發現新的子域。

  • 支援子域接管,預設開啟子域接管風險檢查,支援子域自動接管(目前只有Github,有待完善),支援批次檢查。

  • 處理功能強大,發現的子域結果支援自動去除,自動DNS解析,HTTP請求探測,自動篩選出有效子域,擴充子域的Banner資訊,最終支援的匯出格式有txt, csv, json

  • 速度極快,收集模組使用多執行緒呼叫,爆破模組使用massdns,DNS解析速度每秒可解析350000以上個域名,子域驗證中DNS解析和HTTP請求使用非同步多協程,多執行緒檢查子域接管風險。

  • 體驗良好,各模組都有進度條,非同步儲存各模組結果。

03 使用演示

python3 oneforall.py --target example.com runpython3 oneforall.py --targets ./example.txt run

04 結果說明

我們以python3 oneforall.py --target example.com run命令為例,OneForAll在預設引數正常執行完畢會在results目錄生成相應結果:

example.com.csv是每個主域下的子域收集結果。

all_subdomain_result_1583034493.csv是每次執行OneForAll收集到子域的彙總結果,包含example.com.csv,方便在批次收集場景中獲取全部結果。

result.sqlite3是存放每次執行OneForAll收集到子域的SQLite3結果資料庫,其資料庫結構

其中類似example_com_origin_result表存放每個模組最初子域收集結果。

其中類似example_com_resolve_result表存放對子域進行解析後的結果。

其中類似example_com_last_result表存放上一次子域收集結果(需要收集兩次以上才會生成)。

其中類似example_com_now_result表存放現在子域收集結果,一般情況關注這張表就可以了。

工具作者:shmilylty 專案地址:

https://github.com/shmilylty/OneForAll/releases/tag/v0.4.5

網盤下載:

OneForAll-0.4.5.zip」連結:https://pan.quark.cn/s/f7efe03e125e

相關文章