與核心實(shí)現(xiàn)原理)
Bluto 源碼解析DNS 偵察工具的模塊化架構(gòu)與核心實(shí)現(xiàn)原理【免費(fèi)下載鏈接】BlutoDNS Recon | Brute Forcer | DNS Zone Transfer | DNS Wild Card Checks | DNS Wild Card Brute Forcer | Email Enumeration | Staff Enumeration | Compromised Account Checking項(xiàng)目地址: https://gitcode.com/gh_mirrors/bl/BlutoBluto 是一款開源的DNS 偵察工具DNS Recon Tool它把子域名暴力枚舉、DNS 區(qū)域傳送Zone Transfer、通配符檢測、郵箱枚舉、員工信息收集與泄露賬戶核查等功能整合在一個(gè)命令行工具中。本文將從源碼角度拆解 Bluto 的模塊化架構(gòu)帶新手看懂這套 DNS 偵察核心代碼的實(shí)現(xiàn)原理幫助你理解安全測試工具的設(shè)計(jì)思路。?? 提示Bluto 基于 Python 2.7 開發(fā)適合安全研究人員在授權(quán)范圍內(nèi)進(jìn)行信息收集學(xué)習(xí)。一、Bluto 是什么核心功能一覽Bluto 的目標(biāo)很簡單盡可能多地收集目標(biāo)域名的信息。它的能力清單包括DNS 偵察查詢 NS、MX 記錄子域名暴力枚舉基于 Top 20000 子域名列表DNS 區(qū)域傳送檢測判斷 NS 是否配置錯(cuò)誤通配符檢測與繞過識(shí)別*.domain通配記錄郵箱枚舉Google / Bing / LinkedIn / EmailHunter泄露賬戶核查對接 HaveIBeenPwned API文檔元數(shù)據(jù)挖掘從公開文檔提取用戶名、軟件版本二、模塊化架構(gòu)總覽一目了然的代碼組織Bluto 的代碼目錄結(jié)構(gòu)非常清晰modules/目錄下每個(gè)文件只負(fù)責(zé)一類職責(zé)這是它最值得學(xué)習(xí)的架構(gòu)設(shè)計(jì)文件職責(zé)bluto主入口命令行解析與任務(wù)調(diào)度Bluto/modules/get_dns.pyDNS 偵察核心查詢、枚舉、區(qū)域傳送Bluto/modules/search.py搜索引擎與 API 信息收集Bluto/modules/general.pywhois、國家識(shí)別、域名校驗(yàn)Bluto/modules/get_file.py讀取字典文件與 User-Agent 列表Bluto/modules/output.py結(jié)果輸出與 HTML 證據(jù)報(bào)告Bluto/modules/data_mine.py文檔元數(shù)據(jù)挖掘Bluto/modules/bluto_logging.py本地日志記錄Bluto/modules/update.py版本更新檢查這種一個(gè)模塊一個(gè)職責(zé)的拆分方式讓后續(xù)擴(kuò)展新功能如新增搜索引擎時(shí)無需改動(dòng)主流程。三、主入口調(diào)度原理多線程并行任務(wù)編排打開主文件 bluto你會(huì)看到 Bluto 的調(diào)度邏輯非常清晰。它先用 docopt 解析命令行參數(shù)-d指定域名、-e使用大字典、-api填入 EmailHunter 密鑰然后依次執(zhí)行域名合法性校驗(yàn)whois 查詢獲取公司名DNS 詳情收集NS / MXNetCraft 被動(dòng)子域名收集區(qū)域傳送漏洞檢測最巧妙的是Bluto 用Python 多線程 Queue 隊(duì)列并行執(zhí)行 Google、Bing、LinkedIn 搜索和文檔挖掘任務(wù)例如t1 threading.Thread(targetaction_google, args(domain, userCountry, userServer, q1, user_agents, prox)) t2 threading.Thread(targetaction_bing_true, args(domain, q2, user_agents, prox)) t3 threading.Thread(targetaction_linkedin, args(domain, userCountry, q3, company, user_agents, prox))四個(gè)任務(wù)同時(shí)跑各自把結(jié)果放進(jìn)獨(dú)立隊(duì)列最后統(tǒng)一匯總?cè)ブ亍@就是 Bluto 速度快的原因之一。四、DNS 偵察核心代碼get_dns.py 深度拆解get_dns.py 是整款工具的靈魂實(shí)現(xiàn)了四個(gè)關(guān)鍵算法1. NS/MX 記錄查詢偵察第一步get_dns_details()使用 dnspython 庫查詢目標(biāo)域名的 NS 和 MX 記錄并將每條記錄解析出 IP 地址。它捕獲了 5 種異常NoNameservers、NoAnswer、NXDOMAIN、Timeout 等保證單個(gè)查詢失敗不影響整個(gè)流程。2. 通配符檢測隨機(jī)域名探測法action_wild_cards()的原理非常聰明生成一個(gè) 15 位隨機(jī)字符串如A3K9X...查詢隨機(jī)串.目標(biāo)域名的 DNS 記錄。如果返回 NXDOMAIN 說明沒有通配符如果返回了解析結(jié)果說明該域名配置了*.domain通配記錄所有子域名都會(huì)解析到同一個(gè) IP。3. 子域名暴力枚舉8 線程并行爆破action_brute_start()使用multiprocessing.dummy的 ThreadPool 開啟 8 個(gè)線程對字典中的每個(gè)子域名并發(fā)發(fā)起 DNS 查詢命中就記錄子域名 IP的格式。面對通配符時(shí)action_brute_wild()會(huì)先生成 10 個(gè)隨機(jī)子域名收集所有通配返回的 IP 集合再過濾掉解析到這些假 IP的枚舉結(jié)果——實(shí)現(xiàn)通配符欺騙的自動(dòng)繞過這也是 Bluto 應(yīng)對通配符場景的核心技巧。4. DNS 區(qū)域傳送檢測最危險(xiǎn)的配置錯(cuò)誤action_zone_transfer()對每個(gè) NS 服務(wù)器嘗試 AXFR 請求。若dns.zone.from_xfr()成功說明該 NS 存在區(qū)域傳送漏洞攻擊者可獲得整份 DNS 區(qū)域數(shù)據(jù)所有主機(jī)記錄。源碼中會(huì) dump 全部記錄并排序去重輸出為Raw Zone Dump。五、被動(dòng)信息收集search.py 與情報(bào)聚合search.py 實(shí)現(xiàn)了被動(dòng)收集層NetCraft 被動(dòng)收集爬取 searchdns.netcraft.com 的公開子域名記錄Google / Bing 郵箱枚舉用域名語法搜索正則提取郵箱LinkedIn 員工枚舉按公司名搜索員工信息EmailHunter API傳-api參數(shù)可獲得更多郵箱來源HaveIBeenPwned 核查action_pwned()對每個(gè)郵箱查詢泄露記錄值得留意的是所有請求都會(huì)從 user_agents.txt 中隨機(jī)選取 User-Agent并通過 countries.txt 匹配就近的 Google 服務(wù)器降低被驗(yàn)證碼攔截的概率。六、結(jié)果輸出與 HTML 證據(jù)報(bào)告output.py 負(fù)責(zé)把分散的數(shù)據(jù)匯總為一份證據(jù)鏈去重合并所有郵箱與來源 URL統(tǒng)計(jì)主機(jī)數(shù)、郵箱數(shù)、員工數(shù)、泄露賬戶數(shù)調(diào)用write_html()生成Bluto-Evidence-域名.html證據(jù)報(bào)告包含郵箱證據(jù)表、LinkedIn 資料、泄露賬戶詳情和元數(shù)據(jù)挖掘結(jié)果七、上手體驗(yàn)與總結(jié)想體驗(yàn)這套 DNS 偵察工具可以克隆倉庫后運(yùn)行g(shù)it clone https://gitcode.com/gh_mirrors/bl/BlutoBluto 的源碼價(jià)值在于它演示了一條完整的被動(dòng) 主動(dòng)偵察流水線先被動(dòng)收集NetCraft、搜索引擎再主動(dòng)驗(yàn)證枚舉、區(qū)域傳送最后交叉去重并輸出證據(jù)報(bào)告。對安全初學(xué)者而言讀懂 get_dns.py 的通配符繞過算法和 bluto 的多線程調(diào)度就等于掌握了 DNS 信息收集工具的核心設(shè)計(jì)思想。 提醒DNS 偵察與枚舉工具請務(wù)必僅用于自己擁有或已獲授權(quán)的目標(biāo)合法合規(guī)地使用技術(shù)能力。【免費(fèi)下載鏈接】BlutoDNS Recon | Brute Forcer | DNS Zone Transfer | DNS Wild Card Checks | DNS Wild Card Brute Forcer | Email Enumeration | Staff Enumeration | Compromised Account Checking項(xiàng)目地址: https://gitcode.com/gh_mirrors/bl/Bluto創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考