<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    域名資產收集整理實踐篇

    VSole2023-02-06 10:28:07
    多工具組合收集子域名

    主要完成以下工作:

    1、使用 Oneforall、amass、ksubdomain 針對目標進行域名收集 

    2、將所有結果進行匯總,然后提取所有目標到對應的文件中 

    3、使用 dnsgen 基于收集到的域名列表,生成新的字典,然后使用 ksubdomain 進行驗證 

    4、最后將所有存活的域名和IP對應列表整理出來,輸出文件

    其中涉及開源工具以及自定義腳本實現數據的整合處理。

    第一步:使用 Onefoall 實現子域名收集

    使用命令(只進行域名收集,不做存活驗證):

    python3 oneforall.py --target xazlsec.com --req False run

    結果格式如下:

    cat results/xazlsec.com.csv

    第二步:使用 amass 實現子域名收集

    使用命令(被動+枚舉):

    amass enum -v -src -ip -brute -d xazlsec.com -o xazlsec-amass.txt

    結果格式如下:

    第三步:使用 ksubdomain 實現子域名收集

    提前準備字典(針對泛解析域名,效果一般,需要手動去掉與泛解析結果相同的域名),命令:

    ksubdomain enum -d xazlsec.com -f dns.txt -o xazlsec-ksub.txt

    結果如圖:

    針對大文件做 dns 枚舉存在丟包的情況

    1、可以使用自定義腳本或者 split 對大文件進行分割

    split -l 1000 subdomain.txt subs/

    分割后的文件保存至目錄 subs 中

    2、簡單寫一個腳本,生成一個 bash 腳本


    import os
    for item in os.listdir('subs/'):    print("./ksubdomain v --dns-type a -f subs/{} -o a/{}".format(item, item))
    
    python3 gen.py > scana.sh

    最后執行:

    bash scana.sh

    第四步:編寫腳本,實現數據整合

    首先將三個工具的結果文件放置在相同目錄下,方便調用,也可以不用,編寫腳本時,指定路徑即可,以上三種工具的結果分別是:

    Oneforall: /usr/src/github/OneForAll/results/xazlsec.com.csv Amass: /root/xazlsec-amass.txt ksubdomain: /root/xazlsec-ksub.txt

    下面是一個簡單腳本,將三個文件中的域名提取出來進行去重匯總;


    #!/usr/bin/env python3#-*- coding: utf-8 -*-
    Oneforall="/usr/src/github/OneForAll/results/xazlsec.com.csv"Amass="/root/xazlsec-amass.txt"ksubdomain="/root/xazlsec-ksub.txt"
    #讀取 Oneforall 的結果#id,alive,request,resolve,url,subdomain,level,cname,ip,public,cdn,port,status,reason,title,banner,cidr,asn,org,addr,isp,sourcedef readOneforall(filename):    domain2ip = {}    for item in open(filename):        sub = item.strip().split(',')[5]        ip = item.strip().split(',')[8]        if sub != "subdomain":            domain2ip[sub] = ip    return domain2ip
    #讀取 amass 的結果def readAmass(filename):    domain2ip = {}    for item in open(filename):        sub = item.strip().split(' ')[-2]        ip = item.strip().split(' ')[-1]        domain2ip[sub] = ip    return domain2ip
    #讀取 ksubdomain 的結果def readKsubdomain(filename):    domain2ip = {}    for item in open(filename):        sub = item.strip().split('=>')[0]        ip = item.strip().split('=>')[-1]        domain2ip[sub] = ip    return domain2ip
    #保存結果def saveResults(domain2ip):    obj = open("results.txt", 'a+', encoding='utf-8')    for sub in domain2ip:        ip = domain2ip[sub]        obj.writelines(sub+'')    obj.close()
    if __name__=="__main__":    o = readOneforall(Oneforall)    a = readAmass(Amass)    k = readKsubdomain(ksubdomain)    domain2ip = o    for sub in a:        ip = a[sub]        domain2ip[sub] = ip    for sub in k:        ip = k[sub]        domain2ip[sub] = ip    saveResults(domain2ip)
    

    使用方法也很簡單,將你本地的文件路徑進行替換,然后執行該腳本,最后結果保存至文件 results.txt 中:

    第五步:使用 dnsgen 基于已知域名生成新的字典

    需要將所有子域名保存至文件中,不包含 IP 地址的純子域列表,然后使用命令:

    dnsgen results.txt -w word.txt > newdns.txt

    為了方便,可以將之前收集的域名一起放在這個新域名列表中,最終解析的結果就是一個比較全面的結果,只需提取其中的域名和IP即可:

    cat results.txt >> newdns.txt

    最后使用 ksubdomain 進行最后的解析操作:

    ksubdomain verify -f newdns.txt -o newsub.txt

    最后的 newsub.txt 就是之前所有步驟中收集的所有子域名列表,為后續的操作提供數據支持。

    第六步:排除泛解析域名

    排除思路,首先判斷域名是否存在泛解析,如果存在則啟動排除泛解析的程序,排除方法的話,可以保留與泛解析 IP 一致的結果中的三個,其余的都進行刪除。這個操作最好只針對暴力枚舉階段的結果進行排除,也就是針對 ksubdomain 產生的結果。

    實現上面功能的腳本,如下:


    #!/usr/bin/env python3#-*- coding: utf-8 -*-
    import sysimport randomimport stringimport dns.resolver
    #讀取 ksubdomain 的結果def readKsubdomain(filename):    domain2ip = {}    for item in open(filename):        sub = item.strip().split('=>')[0]        ip = item.strip().split('=>')[-1]        domain2ip[sub] = ip    return domain2ip
    #判斷域名是否存在泛解析def judgeWildcard(domain):    randstr = ''.join(random.choices(string.ascii_letters + string.digits, k=32))    try:        answer = dns.resolver.Resolver().resolve(randstr + "." +domain)        for a in answer:            return str(a)    except:        return False
    #保存結果def saveResults(domain2ip):    obj = open("ksubresults.txt", 'a+', encoding='utf-8')    for sub in domain2ip:        ip = domain2ip[sub]        obj.writelines(sub+"\t"+ip+'')    obj.close()
    if __name__=="__main__":    domain = sys.argv[1]    wildcard = judgeWildcard(domain)    if not wildcard:        print("[-]不存在泛解析,程序退出")    filename = sys.argv[2]    d2i = readKsubdomain(filename)    newd2i = {}    i = 0    for sub in d2i:        ip = d2i[sub]        if ip == wildcard:            i = i + 1            if i > 3:                continue        newd2i[sub] = ip
        saveResults(newd2i)    print('[+]存在泛解析,結果保存至:ksubresults.txt')
    

    其他部分內容

    今天分享是是整個過程中的第一階段,如何從主域名到子域名列表的跨越,其余四階段分別為:

    • 從 IP 到端口到網站鏈接的跨越
    • 從網站鏈接到網站信息的跨越,包括存活驗證、去重、指紋識別、waf 識別、網站截圖等技術
    • 從存活網站到 URL 列表的跨越,包括帶參數 url 去重
    • 從網站信息到漏洞發現的跨越,包括漏掃工具的組合

    以上部分內容均已更新至信安之路 wiki,均以實驗操作步驟的方式提供,大大減少操作難度,讓你完整體驗整個過程,歡迎注冊體驗。

    域名sub
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    近日,一個名為“SubdoMailing”的大規模廣告欺詐活動正在使用8000多個合法互聯網域名和1.3萬個子域名大量發送垃圾郵件,每天發送量高達500萬封電子郵件,用于詐騙和惡意廣告盈利。
    0x01 工具介紹信息收集過程中,大型目標收集到的子域名和解析IP的關系錯綜復雜,肉眼分析起來費時又費力。cobweb 蛛網 將關聯數據進行可視化顯示,方便快速定位目標資產。
    Komo集成了oneforall,subfinder,ksubdomain,amass,ctfr,emailall,httpx,naabu,TxPortMap,ehole,goon3,crawlergo,rad,hakrawler,gau,gospider,URLfinder,vscan,nuclei,afrog,vulmap,SweetBabyScan,xray等20多款工具,全自動化、智能化工具。本工具依托各工具特色,進行模塊化構建。配置配置文件config/config.yaml部分配置講解修改有runtime字段的工具的runtime字段,設置工具的運行時間,如果超時則kill掉,推薦設置600-1200scrawlergo:
    一個既可以滿足安服仔日常滲透工作也可以批量刷洞的工具盒子。集合了常見的域名收集、目錄掃描、ip掃描、指紋掃描、PoC驗證等常用工具,方便安服仔快速展開滲透測試。
    集合了常見的域名收集、目錄掃描、ip掃描、指紋掃描、PoC驗證等常用工具,方便安服仔快速展開滲透測試。且支持TAB鍵關鍵字自動補全。smap:s0md3v/Smap: a drop-in replacement for Nmap powered by shodan.io
    集合了常見的域名收集、目錄掃描、ip掃描、指紋掃描、PoC驗證等常用工具,方便安服仔快速展開滲透測試。且支持TAB鍵關鍵字自動補全。smap:s0md3v/Smap: a drop-in replacement for Nmap powered by shodan.io
    現在只對常讀和星標的公眾號才展示大圖推送,建議大家把betasec“設為星標”,否則可能看不到了!平臺介紹這是一款自動化信息收集的一個簡單平臺,通過收集經常使用的信息收集工具和技術,現對內網及互聯網資產信息的自動收集,提高隱匿排查和透測測試的工作效率。
    HW紅隊作戰工具
    2022-06-19 06:13:20
    本列表,收集一些在服務器上運行的一些工具,組建自動化,服務器長期掛跑項目 歡迎提issues,來豐富工作流程,比如自己挖洞時候的一些簡易流程,工具+調用命令, 在我的日常滲透中,我發現我重復調用幾個工具,但是不同的調用組合滲透的工作流程,有時候調用命令會忘記,所以有了這個列表,來達到幫助我記憶一些流程命令的文檔,未來還會細化過程,腳本小子福音了
    所以只能退而求其次,選用cmder工具。當然,終端cmd僅是為了美化,看起來好看一些,除Cmder之外還有很多更好用的代替工具,娛樂之余,僅供參考。即可新開cmd窗口,除collect_subdomain之外,其余工具均可無需等待當前命令執行結束直接執行下一條命令。所以定位就是滲透盒子,輔助工具。但通過將subfinder、ksubdomain、finger整合,通過一條命令也可做到資產收集驗證指紋掃描,結合PoC掃描驗證也可進行批量刷洞。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类