chaos:一款整合了ChatGPT的源IP掃描工具
關(guān)于chaos
chaos是一款功能強(qiáng)大的源IP地址掃描工具,該工具整合了ChatGPT的功能,主要面向的是安全滲透測(cè)試人員和漏洞Hunter。
這里所說(shuō)的源IP,指的是通過(guò)第三方公開(kāi)服務(wù)托管的網(wǎng)站所使用的最終公共IP目的地址。
功能介紹
1、支持多線程以實(shí)現(xiàn)高性能運(yùn)行;
2、實(shí)時(shí)狀態(tài)更新和進(jìn)度條,適用于大規(guī)模掃描;
3、針對(duì)各種場(chǎng)景和限制設(shè)置了靈活的用戶參數(shù)選項(xiàng);
4、減少數(shù)據(jù)集以縮短掃描時(shí)間;
5、易于使用;
6、支持CSV格式輸出;
工具安裝
由于該工具基于純Python 3開(kāi)發(fā),因此我們首先需要在本地設(shè)備上安裝并配置好Python 3環(huán)境。接下來(lái),廣大研究人員可以使用下列命令將該項(xiàng)目源碼克隆至本地:
git clone https://github.com/r57-labs/chaos.git
然后切換到項(xiàng)目目錄中,使用pip3命令安裝該工具所需的其他依賴組件,并激活虛擬環(huán)境:
pip3 install -U pip setuptools virtualenv
virtualenv env
source env/bin/activate
(env) pip3 install -U -r ./requirements.txt
最后,運(yùn)行下列命令即可開(kāi)始使用chaos:
(env) ./chaos.py -h
工具參數(shù)選項(xiàng)
-h, --help 顯示工具幫助信息和退出
-f FQDN, --fqdn FQDN FQDN文件路徑,每一個(gè)FQDN單獨(dú)一行
-i IP, --ip IP HTTP請(qǐng)求的IP地址,逗號(hào)分隔
-a AGENT, --agent AGENT 請(qǐng)求的User-Agent Header值
-C, --csv 將CSV輸出追加到OUTPUT_FILE.csv
-D, --dns 在請(qǐng)求之前對(duì)FQDN/IP值執(zhí)行fwd/rev DNS查詢
-j JITTER, --jitter JITTER 設(shè)置隨機(jī)延遲間隔,單位為秒
-o OUTPUT, --output OUTPUT 將控制臺(tái)輸出追加到文件中
-p PORTS, --ports PORTS 要使用的TCP端口列表,逗號(hào)分隔,默認(rèn)為"80,443"
-P, --no-prep 不使用`GET /`對(duì)每一個(gè)IP/端口執(zhí)行預(yù)掃描,使用`Host: {IP:Port}` Header執(zhí)行預(yù)掃描以去除無(wú)響應(yīng)的主機(jī)
-r, --randomize 隨機(jī)化要測(cè)試的IP/端口列表
-s SLEEP, --sleep SLEEP 在線程執(zhí)行完后要休眠的時(shí)間,單位為秒
-t TIMEOUT, --timeout TIMEOUT 等待未響應(yīng)主機(jī)的時(shí)間,單位為秒
-T, --test 測(cè)試模式,不發(fā)送任何請(qǐng)求
-v, --verbose 啟用Verbose模式輸出
-x, --singlethread 單線程執(zhí)行,針對(duì)1-2個(gè)核心的系統(tǒng),默認(rèn)線程數(shù)=核心數(shù)-1
工具使用樣例
本地主機(jī)測(cè)試
啟用Python HTTP服務(wù)器:
% python3 -u -m http.server 8001
Serving HTTP on :: port 8001 (http://[::]:8001/) ...
啟動(dòng)ncat(HTTP檢測(cè)為SSL),使用循環(huán)執(zhí)行檢測(cè):
% while true; do ncat -lvp 8443 -c 'printf "HTTP/1.0 204 Plaintext OK\n\n<html></html>\n"'; done
Ncat: Version 7.94 ( https://nmap.org/ncat )
Ncat: Listening on [::]:8443
Ncat: Listening on 0.0.0.0:8443
以SSL啟動(dòng)ncat:
% while true; do ncat --ssl -lvp 8444 -c 'printf "HTTP/1.0 202 OK\n\n<html></html>\n"'; done
Ncat: Version 7.94 ( https://nmap.org/ncat )
Ncat: Generating a temporary 2048-bit RSA key. Use --ssl-key and --ssl-cert to use a permanent one.
Ncat: SHA-1 fingerprint: 0208 1991 FA0D 65F0 608A 9DAB A793 78CB A6EC 27B8
Ncat: Listening on [::]:8444
Ncat: Listening on 0.0.0.0:8444
準(zhǔn)備一個(gè)FQDN文件:
% cat ../test_localhost_fqdn.txt
www.example.com
localhost.example.com
localhost.local
localhost
notreally.arealdomain
準(zhǔn)備一個(gè)IP文件/列表:
% cat ../test_localhost_ips.txt
127.0.0.1
127.0.0.0/29
not_an_ip_addr
-6.a
=4.2
::1
執(zhí)行掃描:
% ./chaos.py -f ../test_localhost_fqdn.txt -i ../test_localhost_ips.txt,::1/126 -p 8001,8443,8444 -x -s0.2 -t1
2023-06-21 12:48:33 [WARN] Ignoring invalid FQDN value: localhost.local
2023-06-21 12:48:33 [WARN] Ignoring invalid FQDN value: localhost
2023-06-21 12:48:33 [WARN] Ignoring invalid FQDN value: notreally.arealdomain
2023-06-21 12:48:33 [WARN] Error: invalid IP address or CIDR block =4.2
2023-06-21 12:48:33 [WARN] Error: invalid IP address or CIDR block -6.a
2023-06-21 12:48:33 [WARN] Error: invalid IP address or CIDR block not_an_ip_addr
2023-06-21 12:48:33 [INFO] * ---- <META> ---- *
2023-06-21 12:48:33 [INFO] * Version: 0.9.4
2023-06-21 12:48:33 [INFO] * FQDN file: ../test_localhost_fqdn.txt
2023-06-21 12:48:33 [INFO] * FQDNs loaded: ['www.example.com', 'localhost.example.com']
2023-06-21 12:48:33 [INFO] * IP input value(s): ../test_localhost_ips.txt,::1/126
2023-06-21 12:48:33 [INFO] * Addresses parsed from IP inputs: 12
2023-06-21 12:48:33 [INFO] * Port(s): 8001,8443,8444
2023-06-21 12:48:33 [INFO] * Thread(s): 1
2023-06-21 12:48:33 [INFO] * Sleep value: 0.2
2023-06-21 12:48:33 [INFO] * Timeout: 1.0
2023-06-21 12:48:33 [INFO] * User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36 ch4*0s/0.9.4
2023-06-21 12:48:33 [INFO] * ---- </META> ---- *
2023-06-21 12:48:33 [INFO] 36 unique address/port addresses for testing
Prep Tests: 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 36/36 [00:29<00:00, 1.20it/s]
2023-06-21 12:49:03 [INFO] 9 IP/ports verified, reducing test dataset from 72 entries
2023-06-21 12:49:03 [INFO] 18 pending tests remain after pre-testing
2023-06-21 12:49:03 [INFO] Queuing 18 threads
++RCVD++ (200 OK) www.example.com @ :::8001
++RCVD++ (204 Plaintext OK) www.example.com @ :::8443
++RCVD++ (202 OK) www.example.com @ :::8444
++RCVD++ (200 OK) www.example.com @ ::1:8001
++RCVD++ (204 Plaintext OK) www.example.com @ ::1:8443
++RCVD++ (202 OK) www.example.com @ ::1:8444
++RCVD++ (200 OK) www.example.com @ 127.0.0.1:8001
++RCVD++ (204 Plaintext OK) www.example.com @ 127.0.0.1:8443
++RCVD++ (202 OK) www.example.com @ 127.0.0.1:8444
++RCVD++ (200 OK) localhost.example.com @ :::8001
++RCVD++ (204 Plaintext OK) localhost.example.com @ :::8443
++RCVD++ (202 OK) localhost.example.com @ :::8444
++RCVD++ (200 OK) localhost.example.com @ ::1:8001
++RCVD++ (204 Plaintext OK) localhost.example.com @ ::1:8443
++RCVD++ (202 OK) localhost.example.com @ ::1:8444
++RCVD++ (200 OK) localhost.example.com @ 127.0.0.1:8001
++RCVD++ (204 Plaintext OK) localhost.example.com @ 127.0.0.1:8443
++RCVD++ (202 OK) localhost.example.com @ 127.0.0.1:8444
Origin Scan: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 18/18 [00:06<00:00, 2.76it/s]
2023-06-21 12:49:09 [RSLT] Results from 5 FQDNs:
::1
::1:8444 => (202 / OK)
::1:8443 => (204 / Plaintext OK)
::1:8001 => (200 / OK)
127.0.0.1
127.0.0.1:8001 => (200 / OK)
127.0.0.1:8443 => (204 / Plaintext OK)
127.0.0.1:8444 => (202 / OK)
::
:::8001 => (200 / OK)
:::8443 => (204 / Plaintext OK)
:::8444 => (202 / OK)
www.example.com
:::8001 => (200 / OK)
:::8443 => (204 / Plaintext OK)
:::8444 => (202 / OK)
::1:8001 => (200 / OK)
::1:8443 => (204 / Plaintext OK)
::1:8444 => (202 / OK)
127.0.0.1:8001 => (200 / OK)
127.0.0.1:8443 => (204 / Plaintext OK)
127.0.0.1:8444 => (202 / OK)
localhost.example.com
:::8001 => (200 / OK)
:::8443 => (204 / Plaintext OK)
:::8444 => (202 / OK)
::1:8001 => (200 / OK)
::1:8443 => (204 / Plaintext OK)
::1:8444 => (202 / OK)
127.0.0.1:8001 => (200 / OK)
127.0.0.1:8443 => (204 / Plaintext OK)
127.0.0.1:8444 => (202 / OK)
rst@r57 chaos %
工具運(yùn)行截圖
許可證協(xié)議
本項(xiàng)目的開(kāi)發(fā)與發(fā)布遵循GPL-3.0開(kāi)源許可證協(xié)議。
項(xiàng)目地址
chaos:【GitHub傳送門(mén)】
參考資料
https://r57labs.com/labs_chaos
本文作者:Alpha_h4ck, 轉(zhuǎn)載請(qǐng)注明來(lái)自FreeBuf.COM