
Возьмите список доменов/поддоменов и проверьте на наличие работающего http/https сервера.
FProbe — быстрый HTTP-пробник
GO111MODULE=on go get -u github.com/theblackturtle/fprobe
Status Code, Content Type, Location.Usage of fprobe:
-c int
Количество потоков (по умолчанию 50)
-cidr
Генерировать IP-адреса из CIDR
-i string
Входной файл (по умолчанию stdin) (по умолчанию "-")
-l Использовать порты в той же строке (google.com,2087,2086)
-p value
Добавить дополнительный пробник (протокол:порт)
-prefer-https
Пробовать обычный HTTP только если HTTPS не работает
-s Пропустить стандартные пробники (http:80 и https:443)
-t int
Таймаут (секунды) (по умолчанию 9)
-v Включить подробный вывод
Ввод через stdin
❯ cat domains.txt | fprobe
Ввод из файла
❯ fprobe -i domains.txt
❯ cat domains.txt | fprobe -c 200
Если нужно указать отдельные порты для каждого домена, используйте флаг -l. Вы можете обработать вывод Nmap/Masscan и переформатировать его для этой функции.
Ввод (domains.txt)
google.com,2087,2086,8880,2082,443,80,2052,2096,2083,8080,8443,2095,2053
yahoo.com,2087,2086,8880,2082,443,80,2052,2096,2083,8080,8443,2095,2053
sport.yahoo.com,2086,443,2096,2053,8080,2082,80,2083,8443,2052,2087,2095,8880
Команда
❯ cat domains.txt | fprobe -l
❯ cat domains.txt | fprobe -t 10
❯ cat domains.txt | fprobe -p http:8080 -p https:8443
❯ echo 'https://google.com/path1?param=1' | fprobe
https://google.com/path1?param=1
❯ echo '192.168.1.1/24' | fprobe -cidr
❯ cat domains.txt | fprobe -p medium/large/xlarge
Если не нужно проверять HTTP на порту 80 или HTTPS на порту 443, используйте флаг -s.
❯ cat domains.txt | fprobe -s
Подробный вывод будет в формате JSON с дополнительными заголовками, такими как Status Code, Content Type, Location.
❯ cat domains.txt | fprobe -v
{"site":"http://google.com","status_code":301,"server":"gws","content_type":"text/html; charset=UTF-8","location":"http://www.google.com/"}
{"site":"https://google.com","status_code":301,"server":"gws","content_type":"text/html; charset=UTF-8","location":"https://www.google.com/"}
Этот инструмент заимствует идею и некоторые строки кода из httprobe от @tomnomnom.