
Утилита для сканирования исходного IP-адреса, разработанная с помощью ChatGPT
chaos — это сканер «исходных» IP-адресов, разработанный RST в сотрудничестве с ChatGPT. Это узкоспециализированная утилита, предназначенная в основном для пентестеров и баг-хантеров.
«Origin-IP» (исходный IP) — это термин, описывающий конечный публичный IP-адрес, на котором размещаются веб-сайты, обслуживаемые через сторонние сервисы. Если вы хотите узнать больше о том, почему кто-то может интересоваться Origin-IP, ознакомьтесь с нашим блогом.
chaos был быстро спроектирован — от идеи до работающего прототипа менее чем за 24 часа — с использованием наших принципов DevOps и ChatGPT.
usage: chaos.py [-h] -f FQDN -i IP [-a AGENT] [-C] [-D] [-j JITTER] [-o OUTPUT] [-p PORTS] [-P] [-r] [-s SLEEP] [-t TIMEOUT] [-T] [-v] [-x]
_..._
.-'` `'-.
__|___________|__
\ /
`._ CHAOS _.'
`-------`
/ \\
/ \\
/ \\
/ \\
/ \\
/ \\
/ \\
/ \\
/ \\
/_____________________\\
CHAtgpt Origin-ip Scanner
_______ _______ _______ _______ _______
|\\ /|\\ /|\\ /|\\ /|\\/|
| +---+ | +---+ | +---+ | +---+ | +---+ |
| |H | | |U | | |M | | |A | | |N | |
| |U | | |S | | |A | | |N | | |C | |
| |M | | |E | | |N | | |C | | |O | |
| |A | | |R | | |C | | | | | |L | |
| +---+ | +---+ | +---+ | +---+ | +---+ |
|/_____|\\_____|\\_____|\\_____|\\_____\\
Сканер исходных IP-адресов, разработанный с помощью ChatGPT
cha*os (n): полный хаос и неразбериха
(ver: 0.9.4)

cd path/to/chaospip3 install -U pip setuptools virtualenvvirtualenv envsource env/bin/activate(env) pip3 install -U -r ./requirements.txt(env) ./chaos.py -h-h, --help показать это сообщение и выйти
-f FQDN, --fqdn FQDN Путь к файлу с FQDN (по одному FQDN на строку)
-i IP, --ip IP IP-адрес(а) для HTTP-запросов (IP-адреса через запятую, IP-сети и/или файлы с IP/сетью на строку)
-a AGENT, --agent AGENT
Значение заголовка User-Agent для запросов
-C, --csv Добавить вывод в формате CSV в файл OUTPUT_FILE.csv
-D, --dns Выполнять прямые/обратные DNS-запросы для FQDN/IP перед отправкой запроса; не влияет на очередь тестирования
-j JITTER, --jitter JITTER
Добавить случайную задержку от 0 до N секунд к значению sleep
-o OUTPUT, --output OUTPUT
Добавить вывод консоли в ФАЙЛ
-p PORTS, --ports PORTS
Список TCP-портов через запятую (по умолчанию: "80,443")
-P, --no-prep Не выполнять предварительное сканирование каждого IP/порта с `GET /` и заголовком `Host: {IP:Port}` для исключения неотвечающих хостов
-r, --randomize Рандомизировать (примерно) порядок проверки IP/портов
-s SLEEP, --sleep SLEEP
Добавить N секунд перед завершением потока
-t TIMEOUT, --timeout TIMEOUT
Ждать N секунд ответа от неотвечающего хоста
-T, --test Режим тестирования; не отправлять запросы
-v, --verbose Включить подробный вывод
-x, --singlethread Однопоточное выполнение; для систем с 1-2 ядрами; по умолчанию количество потоков = (число ядер - 1), если ядер > 2
Запустите HTTP-сервер Python
% python3 -u -m http.server 8001
Serving HTTP on :: port 8001 (http://[::]:8001/) ...
Запустите ncat как HTTP на порту, определяемом как SSL; используйте цикл, так как --keep-open может зависнуть
% 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
Также запустите ncat как SSL на порту, который по умолчанию будет определяться как HTTP
% 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
Подготовьте файл с FQDN:
% cat ../test_localhost_fqdn.txt
www.example.com
localhost.example.com
localhost.local
localhost
notreally.arealdomain
Подготовьте файл / список IP:
% cat ../test_localhost_ips.txt
127.0.0.1
127.0.0.0/29
not_an_ip_addr
-6.a
=4.2
::1
Запустите сканирование
-p указывает порты, которые мы слушаем-x для однопоточного запуска, чтобы дать ncat-серверам время на перезапуск-s0.2 короткая задержка для перезапуска ncat-серверов-t1 тайм-аут в 1 секунду