日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

子域名收集利器——oneforall

發布時間:2023/12/31 综合教程 37 生活家
生活随笔 收集整理的這篇文章主要介紹了 子域名收集利器——oneforall 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

0X00 簡介:

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

  * 不夠強大,子域收集的接口不夠多,不能做到對批量子域自動收集,沒有自動子域解析,驗證,FUZZ以及信息拓展等功能。
  * 不夠友好,固然命令行模塊比較方便,但是當可選的參數很多,要實現的操作復雜,用命令行模式就有點不夠友好,如果有交互良好,高可操作的前端那么使用體驗就會好很多。
  * 缺少維護,很多工具幾年沒有更新過一次,issues和PR是啥,不存在的。
  * 效率問題,沒有利用多進程,多線程以及異步協程技術,速度較慢。

0X01 功能特性:

  1)收集能力強大:

1 利用證書透明度收集子域(目前有6個模塊:censys_api,spyse_api,certspotter,crtsh,entrust,google)
2 常規檢查收集子域(目前有4個模塊:域傳送漏洞利用axfr,檢查跨域策略文件cdx,檢查HTTPS證書cert,檢查內容安全策略csp,檢查robots文件robots,檢查sitemap文件sitemap,后續會添加檢查NSEC記錄,NSEC3記錄等模塊)
3 利用網上爬蟲檔案收集子域(目前有2個模塊:archivecrawl,commoncrawl,此模塊還在調試,該模塊還有待添加和完善)
4 利用DNS數據集收集子域(目前有21個模塊:ip138, ximcx, CeBaidu, binaryedge_api, circl_api, hackertarget, riddler, bufferover, dnsdb, ipv4info, robtex, chinaz, dnsdb_api, netcraft, securitytrails_api, chinaz_api, dnsdumpster, passivedns_api, ptrarchive, sitedossier,threatcrowd)
5 利用DNS查詢收集子域(目前有1個模塊:通過枚舉常見的SRV記錄并做查詢來收集子域srv,該模塊還有待添加和完善)
6 利用威脅情報平臺數據收集子域(目前有6個模塊:alienvault, riskiq_api,threatbook_api,threatminer,virustotal,virustotal_api該模塊還有待添加和完善)
7 利用搜索引擎發現子域(目前有17個模塊:ask, bing_api, fofa_api, shodan_api, yahoo, baidu, duckduckgo, gitee,github, google, so, yandex, bing, exalead, google_api, sogou, zoomeye_api),在搜索模塊中除特殊搜索引擎,通用的搜索引擎都支持自動排除搜索,全量搜索,遞歸搜索。

  2)支持子域爆破:該模塊有常規的字典爆破,也有自定義的fuzz模式,支持批量爆破和遞歸爆破,自動判斷泛解析并處理。

3)支持子域驗證:默認開啟子域驗證,自動解析子域DNS,自動請求子域獲取title和banner,并綜合判斷子域存活情況。
4)支持子域接管:默認開啟子域接管風險檢查,支持子域自動接管(目前只有Github,有待完善),支持批量檢查。
5)處理能力強大:發現的子域結果支持自動去除,自動DNS解析,HTTP請求探測,自動篩選出有效子域,拓展子域的Banner信息,最終支持的導出格式有txt, rst, csv, tsv, json, yaml, html, xls, xlsx, dbf, latex, ods。
6)速度極快:收集模塊使用多線程調用,爆破模塊使用異步多進程多協程,子域驗證中DNS解析和HTTP請求使用異步多協程,多線程檢查子域接管風險。
7)體驗良好: 日志和終端輸出全使用中文,各模塊都有進度條,異步保存各模塊結果。

0X02 安裝:

1、下載:git clone https://gitee.com/shmilylty/OneForAll.git
2、安裝:
   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
3、更新:
   git fetch --all
   git reset --hard origin/master
   git pull

0X03 使用:

  基礎使用:

1 通過pip安裝:
2     python3 oneforall.py --target example.com run
3 通過pipenv安裝:
4     pipenv run python oneforall.py --target example.com run

   進階使用:

    命令行參數只提供了一些常用參數,更多詳細的參數配置請見config.py。由于眾所周知的原因,如果要使用一些被墻的收集接口請先到config.py配置代理,有些收集模塊需要提供API(大多都是可以注冊賬號免費獲取),如果需要使用請到config.py配置API信息,如果不使用請忽略有關報錯提示。

   oneforall.py是主程序入口,oneforall.py可以調用aiobrute.py,takerover.py及dbexport.py等模塊,為了方便進行子域爆破獨立出了aiobrute.py,為了方便進行子域接管風險檢查獨立出了takerover.py,為了方便數據庫導出獨立出了dbexport.py,這些模塊都可以單獨運行,并且所接受參數要更豐富一點。
  OneForAll命令行界面基于Fire實現,有關Fire更高級使用方法請參閱使用Fire CLI。https://github.com/google/python-fire/blob/master/docs/using-cli.md
   當你使用的過程中遇到一些問題或者疑惑的時候,先到lssues里使用搜索找找答案,還可以參閱常見問題與回答:https://github.com/shmilylty/OneForAll/blob/master/docs/Q%26A.md

   四個主要模塊的使用幫助:

  1 1、oneforall.py:
  2 NAME
  3     oneforall.py - OneForAll是一款功能強大的子域收集工具
  4 SYNOPSIS
  5     oneforall.py --target=TARGET <flags>
  6 DESCRIPTION
  7     Version: 0.0.4
  8     Project: https://git.io/fjHT1
  9     Example:
 10         python3 oneforall.py --target example.com run
 11         python3 oneforall.py --target ./domains.txt run
 12         python3 oneforall.py --target example.com --brute True run
 13         python3 oneforall.py --target example.com --verify False run
 14         python3 oneforall.py --target example.com --valid None run
 15         python3 oneforall.py --target example.com --port medium run
 16         python3 oneforall.py --target example.com --format csv run
 17         python3 oneforall.py --target example.com --show True run
 18     Note:
 19         參數valid可選值1,0,None分別表示導出有效,無效,全部子域
 20         參數verify為True會嘗試解析和請求子域并根據結果給子域有效性打上標簽
 21         參數port可選值有'small', 'medium', 'large', 'xlarge',詳見config.py配置
 22         參數format可選格式有'csv', 'tsv', 'json', 'yaml', 'html', 'xls', 'xlsx',
 23                           'dbf', 'latex', 'ods'
 24         參數path為None會根據format參數和域名名稱在項目結果目錄生成相應文件
 25 ARGUMENTS
 26     TARGET
 27         單個域名或者每行一個域名的文件路徑(必需參數)
 28 FLAGS
 29     --brute=BRUTE
 30         使用爆破模塊(默認False)
 31     --verify=VERIFY
 32         驗證子域有效性(默認True)
 33     --port=PORT
 34         請求驗證的端口范圍(默認medium)
 35     --valid=VALID
 36         導出子域的有效性(默認1)
 37     --path=PATH
 38         導出路徑(默認None)
 39     --format=FORMAT
 40         導出格式(默認xlsx)
 41     --show=SHOW
 42         終端顯示導出數據(默認False)
 43 
 44 
 45 2、aiobrute.py:
 46 NAME
 47     aiobrute.py - OneForAll多進程多協程異步子域爆破模塊
 48 
 49 
 50 SYNOPSIS
 51     aiobrute.py --target=TARGET <flags>
 52 
 53 
 54 DESCRIPTION
 55     Example:
 56         python3 aiobrute.py --target example.com run
 57         python3 aiobrute.py --target ./domains.txt run
 58         python3 aiobrute.py --target example.com --process 4 --coroutine 64 run
 59         python3 aiobrute.py --target example.com --wordlist subdomains.txt run
 60         python3 aiobrute.py --target example.com --recursive True --depth 2 run
 61         python3 aiobrute.py --target m.{fuzz}.a.bz --fuzz True --rule [a-z] run
 62 
 63 
 64     Note:
 65         參數segment的設置受CPU性能,網絡帶寬,運營商限制等問題影響,默認設置500個子域為任務組,
 66         當你覺得你的環境不受以上因素影響,當前爆破速度較慢,那么強烈建議根據字典大小調整大小:
 67         十萬字典建議設置為5000,百萬字典設置為50000
 68         參數valid可選值1,0,None,分別表示導出有效,無效,全部子域
 69         參數format可選格式:'csv', 'tsv', 'json', 'yaml', 'html', 'xls', 'xlsx',
 70                           'dbf', 'latex', 'ods'
 71         參數path為None會根據format參數和域名名稱在項目結果目錄生成相應文件
 72 
 73 
 74 ARGUMENTS
 75     TARGET
 76         單個域名或者每行一個域名的文件路徑
 77 
 78 
 79 FLAGS
 80     --process=PROCESS
 81         爆破的進程數(默認CPU核心數)
 82     --coroutine=COROUTINE
 83         每個爆破進程下的協程數(默認64)
 84     --wordlist=WORDLIST
 85         指定爆破所使用的字典路徑(默認使用config.py配置)
 86     --segment=SEGMENT
 87         爆破任務分割(默認500)
 88     --recursive=RECURSIVE
 89         是否使用遞歸爆破(默認False)
 90     --depth=DEPTH
 91         遞歸爆破的深度(默認2)
 92     --namelist=NAMELIST
 93         指定遞歸爆破所使用的字典路徑(默認使用config.py配置)
 94     --fuzz=FUZZ
 95         是否使用fuzz模式進行爆破(默認False,開啟須指定fuzz正則規則)
 96     --rule=RULE
 97         fuzz模式使用的正則規則(默認使用config.py配置)
 98     --export=EXPORT
 99         是否導出爆破結果(默認True)
100     --valid=VALID
101         導出子域的有效性(默認None)
102     --format=FORMAT
103         導出格式(默認xlsx)
104     --path=PATH
105         導出路徑(默認None)
106     --show=SHOW
107         終端顯示導出數據(默認False)
108 
109 3、takeover.py:
110 NAME
111 takeover.py - OneForAll多線程子域接管風險檢查模塊
112 
113 
114 
115 
116 
117 
118 
119 
120 SYNOPSIS
121      takeover.py COMMAND | --target=TARGET <flags>
122 
123 
124 
125 
126 DESCRIPTION
127      Example:
128          python3 takeover.py --target www.example.com  --format csv run
129          python3 takeover.py --target ./subdomains.txt --thread 10 run
130 
131 
132 
133 
134      Note:
135          參數format可選格式有'txt', 'rst', 'csv', 'tsv', 'json', 'yaml', 'html',
136                            'jira', 'xls', 'xlsx', 'dbf', 'latex', 'ods'
137          參數dpath為None默認使用OneForAll結果目錄
138 
139 
140 
141 
142 ARGUMENTS
143      TARGET
144          單個子域或者每行一個子域的文件路徑(必需參數)
145 
146 
147 
148 
149 FLAGS
150      --thread=THREAD
151          線程數(默認100)
152      --dpath=DPATH
153          導出目錄(默認None)
154      --format=FORMAT
155          導出格式(默認xls)
156 
157 
158 4、dbexport.py:
159 NAME
160     dbexport.py - OneForAll數據庫導出模塊
161 
162 
163 
164 
165 SYNOPSIS
166     dbexport.py TABLE <flags>
167 
168 
169 
170 
171 DESCRIPTION
172     Example:
173         python3 dbexport.py --table name --format csv --path= ./result.csv
174         python3 dbexport.py --db result.db --table name --show False
175 
176 
177 
178 
179     Note:
180         參數port可選值有'small', 'medium', 'large', 'xlarge',詳見config.py配置
181         參數format可選格式有'csv', 'tsv', 'json', 'yaml', 'html', 'xls', 'xlsx',
182                           'dbf', 'latex', 'ods'
183         參數path為None會根據format參數和域名名稱在項目結果目錄生成相應文件
184 
185 
186 
187 
188 POSITIONAL ARGUMENTS
189     TABLE
190         要導出的表
191 
192 
193 
194 
195 FLAGS
196     --db=DB
197         要導出的數據庫路徑(默認為results/result.sqlite3)
198     --valid=VALID
199         導出子域的有效性(默認None)
200     --path=PATH
201         導出路徑(默認None)
202     --format=FORMAT
203         導出格式(默認xlsx)
204     --show=SHOW
205         終端顯示導出數據(默認False)

  

0X04 主要框架:

1 aiodns - 簡單DNS異步解析庫。
2 aiohttp - 異步http客戶端/服務器框架
3 aiomultiprocess - 將Python代碼提升到更高的性能水平(multiprocessing和asyncio結合,實現異步多進程多協程)
4 beautifulsoup4 - 可以輕松從HTML或XML文件中提取數據的Python庫
5 fire - Python Fire是一個純粹根據任何Python對象自動生成命令行界面(CLI)的庫
6 loguru - 旨在帶來愉快的日志記錄Python庫
7 records - Records是一個非常簡單但功能強大的庫,用于對大多數關系數據庫進行最原始SQL查詢。
8 requests - Requests 唯一的一個非轉基因的 Python HTTP 庫,人類可以安全享用。
9 tqdm - 適用于Python和CLI的快速,可擴展的進度條庫

0X05 目錄結構:

 1 D:.
 2 |
 3 +---.github
 4 +---docs
 5 |       collection_modules.md 收集模塊說明
 6 +---images
 7 ---oneforall
 8     |   aiobrute.py   異步多進程多協程子域爆破模塊,可以單獨運行
 9     |   collect.py    各個收集模塊上層調用
10     |   config.py     配置文件
11     |   dbexport.py   數據庫導出模塊,可以單獨運行
12     |   domains.txt   要批量爆破的域名列表
13     |   oneforall.py  OneForAll主入口,可以單獨運行
14     |   __init__.py
15     |
16     +---common 公共調用模塊
17     +---data   存放一些所需數據
18     |       next_subdomains.txt     下一層子域字典
19     |       public_suffix_list.dat  頂級域名后綴
20     |       srv_names.json          常見SRV記錄前綴名
21     |       subdomains.txt          子域爆破常見字典
22     |
23     ---modules
24         +---certificates     利用證書透明度收集子域模塊
25         +---check            常規檢查收集子域模塊
26         +---crawl            利用網上爬蟲檔案收集子域模塊
27         +---datasets         利用DNS數據集收集子域模塊
28         +---dnsquery         利用DNS查詢收集子域模塊
29         +---intelligence     利用威脅情報平臺數據收集子域模塊
30         ---search           利用搜索引擎發現子域模塊

0X06 總結:

  這個工具是在vulkey_chen師傅的介紹下入坑的,感覺挺好用的。采用模塊化的方式開發,其中的構成雖然很多,但是在仔細了解以后絲毫不會讓你覺得混亂。這篇文章是為了幫助大家更好的使用該工具,上面已經寫得很詳盡了。如果還有什么不懂地方或者奇怪的報錯,可以在開發群中提出建議以及給開發者發送郵件。

  反饋群:824414244,加群驗證,我的英雄學院。

  開發者郵箱:admin@hackfun.org

 

總結

以上是生活随笔為你收集整理的子域名收集利器——oneforall的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。