Полный скан всех 65535 TCP-портов с Nmap занимает от нескольких минут до получаса. RustScan делает то же самое за 3-5 секунд. Это не преувеличение — инструмент написан на Rust, работает асинхронно и передаёт найденные открытые порты сразу в Nmap для детального анализа.

Как это работает

RustScan сначала быстро находит все открытые порты (только факт открытости, без деталей), а затем автоматически передаёт их в Nmap командой типа:

nmap -vvv -p 22,80,443,8080 192.168.1.1

Таким образом Nmap обрабатывает только реально открытые порты, экономя огромное количество времени.

Установка

wget https://github.com/RustScan/RustScan/releases/latest/download/rustscan_amd64.deb
sudo dpkg -i rustscan_amd64.deb

Или через Docker:

docker pull rustscan/rustscan:latest
alias rustscan='docker run -it --rm rustscan/rustscan:latest'

Базовое использование

rustscan -a 192.168.1.1

RustScan найдёт открытые порты и автоматически запустит Nmap. Для передачи флагов в Nmap используйте двойное тире:

rustscan -a 192.168.1.1 -- -sV -sC

Скан подсети:

rustscan -a 192.168.1.0/24 -- -sV

Управление скоростью

-b (batch size) — количество одновременно открытых сокетов. По умолчанию 4500.

--timeout — таймаут в миллисекундах (по умолчанию 1500):

rustscan -a 192.168.1.1 -b 1000 --timeout 2000

Для нестабильных сетей уменьшайте batch size и увеличивайте таймаут.

Диапазоны портов

Конкретные порты:

rustscan -a 192.168.1.1 -p 22,80,443,8080

Диапазон:

rustscan -a 192.168.1.1 -r 1-10000

Без ограничения — все 65535 портов (поведение по умолчанию):

rustscan -a 192.168.1.1

Интеграция с Nmap: типовой сценарий

В реальных проектах я использую такой pipeline:

rustscan -a 192.168.1.1 --ulimit 5000 -- -sV -sC -oA scan_results

Это даёт полный вывод Nmap со скоростью RustScan. Флаг --ulimit устанавливает лимит открытых файлов ОС для максимальной скорости.

Почему не просто Nmap

На CTF и быстрых пентестах экономия времени на сканировании — это реальная ценность. Разница между 30-секундным и 20-минутным сканом ощущается очень конкретно, когда работаешь с ограниченным временным окном. RustScan стал для меня стандартным первым шагом разведки вместо nmap -p-.