Scan4all — швейцарский нож для пентеста, который заменяет десяток инструментов
Репозиторий давно не обновлялся
Последнее обновление было 2 года назад.
Представьте ситуацию: вам нужно быстро просканировать периметр, проверить сотню веб-сервисов на уязвимости, прогнать брутфорс по стандартным паролям и при этом не запутаться в десятках разных CLI-утилит. Обычно это превращается в жонглирование терминалами, где в одном крутится nmap, в другом — nuclei, а в третьем вы судорожно пытаетесь вспомнить синтаксис subfinder. Разработчики из GhostTroops решили, что пора с этим завязывать, и собрали scan4all.
Это не просто очередной сканер. Это комбайн на Go, который объединяет под капотом топовые инструменты вроде nuclei, vscan, ksubdomain и subfinder. Самое приятное, что авторы не просто «склеили» бинарники, а переписали часть модулей и оптимизировали параметры на уровне кода, чтобы всё это работало быстро и не «вешало» сеть.
Что он умеет на самом деле
Если коротко — почти всё, что нужно для первичной разведки и поиска векторов атаки. Проект закрывает сразу несколько этапов аудита безопасности.
Поиск уязвимостей и PoC
Инструмент тянет за собой базу из 15 000+ PoC. Сюда входят шаблоны nuclei и наработки vscan (включая xray 2.0). Проверка идет на всё: от банальных XSS и LFI до свежих CVE в WordPress и корпоративном софте. Кстати, авторы добавили умную логику для работы с SSL: сканер вытаскивает домены из сертификатов и автоматически добавляет их в очередь на проверку.
Брутфорс «из коробки»
Scan4all поддерживает перебор паролей для 23 протоколов. В списке есть классика вроде SSH, RDP, MySQL, Redis и даже такие вещи, как RouterOS или WinRM. Интересная деталь: HTTP-брутфорс включается автоматически, как только сканер натыкается на страницу с авторизацией. Вам не нужно вручную указывать «здесь надо подобрать пароль».
Сканирование портов и отпечатки
Вместо того чтобы изобретать велосипед, проект использует возможности nmap и naabu. Он распознает 146 протоколов и знает около 90 000 правил сканирования портов. При этом реализована защита от «медовых ловушек» (honeypots) — если инструмент понимает, что перед ним приманка, он просто пропустит этот хост.
Как это устроено внутри
Проект написан на Go, что делает его кроссплатформенным и довольно легким в плане потребления ресурсов. Архитектура построена по принципу водопада: сначала идет сбор данных и распознавание целей, затем — глубокое сканирование и применение PoC.
Одной из крутых фишек я бы назвал интеграцию с Elasticsearch. Если вы работаете с большими объемами данных, стандартные текстовые логи превращаются в кошмар. Scan4all умеет складывать результаты в ES, что позволяет потом строить удобные дашборды или просто быстро искать нужную информацию через Kibana.
Практические сценарии
Как это использовать в реальной жизни? Вот пара примеров:
- Быстрый аудит инфраструктуры. У вас есть список IP или доменов компании. Одной командой вы запускаете поиск поддоменов, сканирование портов, определение веб-пальчиков и проверку на критические уязвимости.
- Bug Bounty. Благодаря интеграции с subfinder и ksubdomain, инструмент отлично подходит для поиска забытых «хвостов» в больших организациях.
- Проверка на слабые пароли. Если в сети поднято много инстансов Redis, MongoDB или FTP без должной настройки, scan4all подсветит их быстрее, чем вы успеете проверить их вручную.
Пример запуска для списка целей:
# Точное сканирование списка URL
UrlPrecise=true ./scan4all -l targets.txt
Если nmap в системе не установлен или вы не хотите его использовать, можно переключиться на встроенный naabu:
priorityNmap=false ./scan4all -tp http -list targets.txt -v
Нюансы и ограничения
Несмотря на крутость, у проекта есть свои особенности. README местами выглядит хаотично, а документация на английском иногда перемешивается с китайским. Также стоит учитывать, что nmap-сканирование требует прав root, поэтому придется прокидывать пароль через переменную окружения PPSSWWDD.
Еще один момент: инструмент очень шумный. Если вы планируете использовать его для скрытного аудита, это плохая идея. Он генерирует огромное количество трафика и запросов, что моментально подсветит вас в любой системе мониторинга (IDS/IPS).
Стоит ли пробовать
Если вы занимаетесь пентестом, участвуете в HW (Red Teaming) или просто отвечаете за безопасность в своей компании — однозначно да. Scan4all экономит кучу времени на рутине. Вместо настройки связок из пяти разных утилит вы получаете готовый пайплайн.
Конечно, он не заменит голову и ручной анализ, но как инструмент для быстрой «прожарки» периметра он чертовски хорош. Проект активно обновляется: например, недавно добавили поддержку последних версий nuclei и улучшили алгоритмы поиска дубликатов IP, чтобы не сканировать одно и то же по несколько раз.
Начать можно с простого скачивания бинарника из релизов на GitHub, благо зависимостей минимум. Только не забудьте сначала развернуть Elasticsearch, если планируете серьезно копаться в результатах.
