
замена Nmap «как есть» на основе shodan.io

Smap — это пассивный сканер портов, построенный на бесплатном API shodan.io. Он принимает те же аргументы командной строки, что и Nmap, и выдаёт тот же вывод, что делает его готовой заменой Nmap.
Вы можете скачать готовый бинарный файл здесь и использовать его сразу.
go install -v github.com/s0md3v/smap/cmd/smap@latest
Запутались или что-то не работает? Более подробные инструкции — здесь
Smap доступен в AUR как smap-git (сборка из исходников) и smap-bin (готовый бинарный файл).
Smap также доступен в Homebrew.
brew update
brew install smap
Smap принимает те же аргументы, что и Nmap, но параметры, отличные от -p, -h, -V, -o*, -iL, --concurrency и --append-output, в пассивном режиме игнорируются. Используйте --nmap, чтобы передать параметры Nmap для реального сканирования после пассивного обнаружения портов. Если вы не знакомы с Nmap, вот как использовать Smap.
smap 127.0.0.1 127.0.0.2
Вы также можете использовать список целей, разделённых переводами строк.
smap -iL targets.txt
Поддерживаемые форматы
1.1.1.1 // IPv4 address
example.com // hostname
178.23.56.0/8 // CIDR
1.1.1.1-20 // IPv4 range
Smap поддерживает 7 форматов вывода, которые можно использовать с -o* следующим образом:
smap example.com -oX output.xml
Если вы хотите вывести результат в терминал, используйте дефис (-) в качестве имени файла.
Поддерживаемые форматы
oX // nmap's xml format
oG // nmap's greppable format
oN // nmap's default format
oA // output in all 3 formats above at once
oP // IP:PORT pairs separated by newlines
oS // custom smap format
oJ // json
Примечание: поскольку Nmap не сканирует и не отображает уязвимости и теги, эти данные недоступны в форматах nmap. Используйте
-oS, чтобы просмотреть эту информацию.
По умолчанию Smap сканирует эти ~4000 портов. Если вы хотите отобразить результаты для определённых портов, используйте параметр -p.
smap -p21-30,80,443 -iL targets.txt
Используйте --nmap, чтобы сузить область сканирования с помощью вашего локального nmap. Smap сначала собирает объединение портов, сообщённых Shodan, а затем один раз запускает Nmap против исходных целей с уменьшенным диапазоном портов.
smap --nmap -Pn -sV --version-light 1.1.1.1
За исключением --nmap и --concurrency, переданные аргументы передаются Nmap. Smap заменяет диапазон портов кандидатами Shodan; если вы укажете -p, он сначала ограничивает кандидатов этим диапазоном. Nmap сам обрабатывает сканирование и вывод, поэтому его параметры и форматы вывода работают как обычно. Операции только с хостами, такие как -sL и -sn, выполняются без пассивного обнаружения портов.
Собственные форматы вывода Smap — это функции пассивного режима; при использовании --nmap параметры вывода имеют обычные значения Nmap. Если Shodan не сообщает ни одного кандидатного порта, Nmap не запускается.
Это может сэкономить время, если пассивных данных достаточно для вашего сценария использования.
По умолчанию Smap использует 3 рабочих потока, чтобы не слишком нагружать Shodan. Вы можете изменить это с помощью --concurrency.
smap --concurrency 5 -iL targets.txt
Поскольку Smap просто получает существующие данные о портах с shodan.io, он очень быстр, но это ещё не всё. Вам стоит использовать Smap, если:
Примечание: если вы используете
--nmap, Smap запуститnmapпротив цели и установит активные соединения. Поскольку данные Shodan могут быть устаревшими или неполными, использование их в качестве фильтра портов может пропустить открытые порты.