
Разделите результаты полного сканирования портов и используйте их для целевых запусков Nmap.
Divide Et Impera And Scan (и также объединяем результаты сканирования)
NixOS![]() | ![]() |
|---|---|
| NixOS | offsec.tools |
DivideAndScan используется для эффективной автоматизации рутинного сканирования портов путём разделения процесса на 3 фазы:
Для 1-й фазы предполагается использование быстрого сканера портов*, вывод которого парсится и сохраняется в единую файловую базу данных (TinyDB). Затем, во время 2-й фазы, для каждой цели с её набором открытых портов запускаются индивидуальные сканирования Nmap (поддерживается многопроцессорность) на основе данных из базы. Наконец, на 3-й фазе отдельные выводы Nmap объединяются в единый отчёт в различных форматах (XML / HTML / простой текст / grepable) с помощью nMap_Merger. Визуализация обеспечивается DrawNmap.
Варианты использования:
* Доступные сканеры портов:
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ. Вся информация, содержащаяся в этом репозитории, предоставлена только в образовательных и исследовательских целях. Автор не несет ответственности за любое незаконное использование этого инструмента.

Чтобы успешно разделять и сканировать, нам понадобятся хорошие инструменты для сканирования портов (в примерах ниже релизы с GitHub получаются через eget).
📑 Примечание: если вы не хотите возиться с зависимостями в вашей хост-ОС, переходите к разделу Docker.
sudo apt install nmap xsltproc -y
sudo nmap --script-updatedb
pushd /tmp
wget https://github.com/ivre/masscan/archive/refs/heads/master.zip -O masscan-master.zip
unzip masscan-master.zip
cd masscan-master
make
sudo make install
popd && rm -rf /tmp/masscan-master*
eget -t 2.0.1 -a amd64 RustScan/RustScan --to /tmp/rustscan.deb
sudo dpkg -i /tmp/rustscan.deb && rm /tmp/rustscan.deb
sudo wget https://gist.github.com/snovvcrash/8b85b900bd928493cd1ae33b2df318d8/raw/fe8628396616c4bf7a3e25f2c9d1acc2f36af0c0/rustscan-ports-top1000.toml -O /root/.rustscan.toml
sudo mkdir /opt/naabu
sudo eget -s linux/amd64 projectdiscovery/naabu --to /opt/naabu
sudo ln -sv /opt/naabu/naabu /usr/local/bin/naabu
sudo mkdir /opt/nimscan
sudo eget -a NimScan elddy/NimScan --to /opt/nimscan
sudo ln -sv /opt/nimscan/nimscan /usr/local/bin/nimscan
sudo mkdir /opt/sx
sudo eget -s linux/amd64 v-byte-cpu/sx --to /opt/sx
sudo ln -sv /opt/sx/sx /usr/local/bin/sx
sudo mkdir /opt/pd
sudo eget -s linux/amd64 projectdiscovery/dnsx --to /opt/pd
sudo ln -sv /opt/pd/dnsx /usr/local/bin/dnsx
DivideAndScan доступен на PyPI как divideandscan, хотя я рекомендую устанавливать его из GitHub с помощью pipx, чтобы всегда иметь последнюю версию:
~$ pipx install -f "git+https://github.com/snovvcrash/DivideAndScan.git"
~$ das
Также доступен релиз, упакованный с помощью shiv (хотя размер файла большой):
# shiv -e das.divideandscan:main -o das.pyz divideandscan
~$ wget https://github.com/snovvcrash/DivideAndScan/releases/latest/download/das.pyz && chmod +x das.pyz
~$ ./das.pyz
Для отладки можно настроить среду разработки с помощью poetry:
~$ git clone --recurse-submodules https://github.com/snovvcrash/DivideAndScan
~$ cd DivideAndScan
~$ poetry install
~$ poetry run das
📑 Примечание: DivideAndScan использует sudo для запуска всех сканеров портов, поэтому при вызове команд сканирования будет запрошен пароль.
Вы можете запустить DivideAndScan в Docker-контейнере следующим образом:
~$ docker run --rm -it --name das -v ~/.das:/root/.das -v `pwd`:/app -p 8050:8050 snovvcrash/divideandscan
Поскольку инструменту требуются входные данные и он производит выходные данные, вы должны указать вашу текущую рабочую директорию как точку монтирования в /app внутри контейнера. Также публикация порта 8050 на хосте позволяет получить доступ к приложению Dash, используемому для визуализации отчётов Nmap.
Вы можете установить алиас, чтобы сократить базовую команду:
~$ alias das='docker run --rm -it --name das -v ~/.das:/root/.das -v `pwd`:/app -p 8050:8050 snovvcrash/divideandscan'
~$ das