
Сканируйте только один раз по IP-адресу и сократите время сканирования с помощью Nmap для больших объемов данных.
Сканируйте только один раз по IP-адресу и сокращайте время сканирования с помощью Nmap для больших объёмов данных. Unimap — это сокращение от «Unique Nmap Scan». Инструмент работает в Linux, OSX, Windows или Android (Termux) без проблем.
Если вы планируете запустить Nmap против целой организации, вам нужно учитывать, что наверняка десятки, сотни или даже тысячи поддоменов будут указывать на один и тот же IP-адрес, и наступит момент, когда продолжать сканирование станет практически невозможно. Кроме того, ваш IP-адрес может быть заблокирован из-за множественных сканирований одного и того же удалённого хоста, среди прочего.
Unimap использует собственную технологию для первоначального разрешения IP-адресов всех поддоменов. После завершения этого процесса он создаёт вектор с уникальными IP-адресами и запускает параллельное сканирование с помощью Nmap в соответствии с количеством потоков, настроенных пользователем. Одновременно он анализирует данные из файлов, созданных Nmap, чтобы выяснить, какая информация соответствует каждому IP-адресу. Наконец, Unimap связывает информацию каждого из IP-адресов, связанных с поддоменами. Так, например, если у вас есть 50 поддоменов, указывающих на один и тот же IP-адрес, вы выполните только одно сканирование Nmap, но при этом получите все данные, связанные с каждым из поддоменов одновременно. При крупномасштабном сканировании это экономит дни или недели.
Вам понадобятся Rust (1.88 или новее) и Nmap, установленные на вашем компьютере, затем выполните:
1. git clone https://github.com/Edu4rdSHL/unimap.git && cd unimap
# В качестве альтернативы вы можете скачать релиз с https://github.com/Edu4rdSHL/unimap/releases/latest
# распаковать его и перейти к следующему шагу.
2. cargo build --release
# Теперь бинарный файл находится в ./target/release/unimap
# Следующая команда работает только в Linux и MacOS. Пользователям Windows необходимо указать целевой путь в переменной окружения
3. cp ./target/release/unimap /usr/local/bin
# Теперь вы можете использовать команду `unimap` отовсюду.
Образ edu4rdshl/unimap публикуется для linux/amd64 и linux/arm64
при каждом релизе, под тегами latest и версией релиза:
docker pull edu4rdshl/unimap:latest
docker run --rm edu4rdshl/unimap:latest -t hackerone.com --fast-scan
# Сохраните CSV и XML-файлы Nmap: смонтируйте каталог в /opt/unimap
docker run --rm -v "$(pwd):/opt/unimap" edu4rdshl/unimap:latest -f targets.txt --fast-scan -u results.csv
См. docker/README.md, чтобы собрать образ самостоятельно.
Скачайте последнюю версию для вашей ОС и используйте её.
unimap можно установить из доступных пакетов AUR с помощью AUR-хелпера. Например,
$ paru -S unimap
Если хотите, вы можете клонировать пакеты AUR и затем скомпилировать их с помощью makepkg. Например,
git clone https://aur.archlinux.org/unimap.git && cd unimap && makepkg -si
Для запуска TCP SYN (Stealth) сканирования Nmap Unimap требуются права root/администратора; мы используем его из соображений точности и производительности. Если вы работаете в Linux или на базе Linux, просто используйте root-оболочку или запустите инструмент с помощью sudo. В Windows вы можете открыть командную строку (CMD) от имени администратора и запускать инструмент как обычно.
unimap -f targets.txt -u log.csv выполняет полное сканирование и записывает вывод в log.csv.unimap -f targets.txt --fast-scan -o выполняет быстрое сканирование и сохраняет файл журнала в папку logs/.sudo unimap -f targets.txt --ports "1-1000" --min-rate 5000 сканирует порты с 1 по 1000 с определением служб и версий (если нужно быстрое сканирование, используйте флаг --fast-scan) с min-rate 5000.--threads и --min-rate (последний наиболее важен).Запустите модульные и интеграционные тесты (не требуются сеть, root или Nmap):
cargo test
Запустите короткую сквозную проверку, которая собирает Docker-образ и запускает реальные сканирования
против scanme.nmap.org (требуются Docker и доступ в интернет):
scripts/container-test.sh
Откройте issue.