Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
DivideAndScan — Разделите результаты полного сканирования портов и используйте их для целевых запусков Nmap. | Kitploit
Инструменты/GitHubGitHub/snovvcrash/divideandscan
Сканеры уязвимостейКартирование сетиСканирование портовСкриптинг и автоматизацияТестирование на Проникновение
GitHubsnovvcrash/divideandscan

DivideAndScan

Разделите результаты полного сканирования портов и используйте их для целевых запусков Nmap.

Репозиторий
333492 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

DivideAndScan

Divide Et Impera And Scan (и также объединяем результаты сканирования)

version python codacy pypi docker

Рекомендуемые проекты

NixOSNixOSoffsec.tools
NixOSoffsec.tools

DivideAndScan используется для эффективной автоматизации рутинного сканирования портов путём разделения процесса на 3 фазы:

  1. Обнаружение открытых портов для набора целей.
  2. Запуск Nmap индивидуально для каждой цели с определением версий и NSE-действиями.
  3. Объединение результатов в единый отчёт Nmap (доступны разные форматы).

Для 1-й фазы предполагается использование быстрого сканера портов*, вывод которого парсится и сохраняется в единую файловую базу данных (TinyDB). Затем, во время 2-й фазы, для каждой цели с её набором открытых портов запускаются индивидуальные сканирования Nmap (поддерживается многопроцессорность) на основе данных из базы. Наконец, на 3-й фазе отдельные выводы Nmap объединяются в единый отчёт в различных форматах (XML / HTML / простой текст / grepable) с помощью nMap_Merger. Визуализация обеспечивается DrawNmap.

Варианты использования:

  • Участие в пентестах / red teaming с большим объёмом для перечисления.
  • Кибербезопасные wargames / тренировочные CTF-лаборатории.
  • Сертификационный экзамен OSCP.

* Доступные сканеры портов:

  • Nmap
  • Masscan
  • RustScan
  • Naabu
  • NimScan
  • sx

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ. Вся информация, содержащаяся в этом репозитории, предоставлена только в образовательных и исследовательских целях. Автор не несет ответственности за любое незаконное использование этого инструмента.

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

how-it-works.png

Как установить

Предварительные требования

Чтобы успешно разделять и сканировать, нам понадобятся хорошие инструменты для сканирования портов (в примерах ниже релизы с GitHub получаются через eget).

📑 Примечание: если вы не хотите возиться с зависимостями в вашей хост-ОС, переходите к разделу Docker.

Nmap

root@kitploit:~
sudo apt install nmap xsltproc -y
sudo nmap --script-updatedb

Masscan

root@kitploit:~
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*

RustScan

root@kitploit:~
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

Naabu

root@kitploit:~
sudo mkdir /opt/naabu
sudo eget -s linux/amd64 projectdiscovery/naabu --to /opt/naabu
sudo ln -sv /opt/naabu/naabu /usr/local/bin/naabu

NimScan

root@kitploit:~
sudo mkdir /opt/nimscan
sudo eget -a NimScan elddy/NimScan --to /opt/nimscan
sudo ln -sv /opt/nimscan/nimscan /usr/local/bin/nimscan

sx

root@kitploit:~
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

dnsx

root@kitploit:~
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, чтобы всегда иметь последнюю версию:

root@kitploit:~
~$ pipx install -f "git+https://github.com/snovvcrash/DivideAndScan.git"
~$ das

Также доступен релиз, упакованный с помощью shiv (хотя размер файла большой):

root@kitploit:~
# 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:

root@kitploit:~
~$ git clone --recurse-submodules https://github.com/snovvcrash/DivideAndScan
~$ cd DivideAndScan
~$ poetry install
~$ poetry run das

📑 Примечание: DivideAndScan использует sudo для запуска всех сканеров портов, поэтому при вызове команд сканирования будет запрошен пароль.

Использование из Docker

dockeri.co

Вы можете запустить DivideAndScan в Docker-контейнере следующим образом:

root@kitploit:~
~$ docker run --rm -it --name das -v ~/.das:/root/.das -v `pwd`:/app -p 8050:8050 snovvcrash/divideandscan

Поскольку инструменту требуются входные данные и он производит выходные данные, вы должны указать вашу текущую рабочую директорию как точку монтирования в /app внутри контейнера. Также публикация порта 8050 на хосте позволяет получить доступ к приложению Dash, используемому для визуализации отчётов Nmap.

Вы можете установить алиас, чтобы сократить базовую команду:

root@kitploit:~
~$ alias das='docker run --rm -it --name das -v ~/.das:/root/.das -v `pwd`:/app -p 8050:8050 snovvcrash/divideandscan'
~$ das

Как использовать

how-to-use.png

1. Заполнение БД

2. Целевое сканирование

3 (Опционально). Объединение отчётов

🔥 Пример 🔥

Давайте перечислим открытые порты для всех живых машин на Hack The Box.

  1. Добавляем отображения "хост ⇄ открытые порты" в базу данных с помощью Masscan. Для демонстрации я исключу динамический диапазон портов, чтобы избежать лишнего, используя -p1-49151. На втором скриншоте я просматриваю результаты сканирования по хостам и по портам:
root@kitploit:~
~$ das -db htb add -rm masscan '-e tun0 --rate 1000 -iL hosts.txt -p1-49151 --open'

example-1.png

root@kitploit:~
~$ das -db htb scan -hosts all -show
~$ das -db htb scan -ports all -show

example-2.png

  1. Запускаем процессы Nmap для каждого целевого хоста, чтобы перечислить только те порты, которые нас интересуют (открытые порты). На втором скриншоте я делаю то же самое, но запускаю процессы Nmap одновременно:
root@kitploit:~
~$ das -db htb scan -hosts all -oA report

example-3.png

root@kitploit:~
~$ das -db htb scan -hosts all -oA report -nmap '-Pn -sVC -O' -parallel

Принеси свой собственный сканер!

Вы можете подключить свой любимый сканер портов к DivideAndScan, реализовав единственный метод parse для его вывода в das/parsers/DUMMY_SCANNER.py (см. пример для masscan):

root@kitploit:~
from das.parsers import IAddPortscanOutput


class AddPortscanOutput(IAddPortscanOutput):
    """Дочерний класс для обработки вывода DUMMY_SCANNER."""

    def parse(self):
        """
        Парсер необработанного вывода DUMMY_SCANNER.

        :return: пара значений (имя файла необработанного вывода сканера, количество хостов, добавленных в БД)
        :rtype: tuple
        """
        hosts = set()
        for line in self.portscan_raw:
            # Реализация парсера DUMMY_SCANNER
            pass

        return (self.portscan_out, len(hosts))

Справка

root@kitploit:~
usage: das [-h] [-db DB] {db,add,scan,dns,report,parse,draw,tree,help} ...

 -----------------------------------------------------------------------------------------------
|  ________  .__      .__    .___        _____              .____________                       |
|  \______ \ |__|__  _|__| __| _/____   /  _  \   ____    __| _/   _____/ ____ _____    ____    |
|   |    |  \|  \  \/ /  |/ __ |/ __ \ /  /_\  \ /    \  / __ |\_____  \_/ ___\\__  \  /    \   |
|   |    `   \  |\   /|  / /_/ \  ___//    |    \   |  \/ /_/ |/        \  \___ / __ \|   |  \  |
|  /_______  /__| \_/ |__\____ |\___  >____|__  /___|  /\____ /_______  /\___  >____  /___|  /  |
|          \/                 \/    \/        \/     \/      \/       \/     \/     \/     \/   |
|  {@snovvcrash}            {https://github.com/snovvcrash/DivideAndScan}             {vX.Y.Z}  |
 -----------------------------------------------------------------------------------------------

positional arguments:
  {db,add,scan,dns,report,parse,draw,tree,help}
    db                  утилиты для ручных манипуляций с БД
    add                 выполнить полное сканирование портов и добавить вывод в БД
    scan                запустить целевые сканирования Nmap против хостов и портов из БД
    dns                 сопоставить доменные имена из входного файла с соответствующими IP-адресами из БД
    report              объединить отдельные выводы Nmap в единый отчёт (https://github.com/CBHue/nMap_Merger)
    parse               парсить необработанные Nmap XML-отчёты по именам сервисов и выводить записи в формате {service}://{host}:{port}
    draw                визуализировать Nmap XML-отчёты (https://github.com/jor6PS/DrawNmap)
    tree                показать содержимое каталога ~/.das/ с помощью tree
    help                показать встроенный диалог --help выбранного сканера портов

options:
  -h, --help            показать это справочное сообщение и выйти
  -db DB                имя БД для работы

Psst, hey buddy... Wanna do some organized p0r7 5c4nn1n6?

ToDo

  • Добавить парсер projectdiscovery/naabu
  • Добавить парсер elddy/NimScan
  • Добавить парсер sx
  • Добавить парсер ZMap
  • Хранить имена хостов (если имеются) рядом с их IP-значениями
  • Добавить переключатель fuff для автоматизации фаззинга веб-каталогов (добавлен модуль parse)
Скачать инструмент

Укажите модулю add команду для быстрого сканера портов, чтобы обнаружить открытые порты в нужном диапазоне.

⚠️ Предупреждение: пожалуйста, убедитесь, что вы понимаете, что делаете, потому что почти все инструменты сканирования портов могут повредить тестируемую систему при неправильном использовании.

root@kitploit:~
# Nmap, флаг -v обязателен для корректного парсинга!
~$ das add nmap '-v -n -Pn -e eth0 --min-rate 1000 -T4 -iL hosts.txt -p1-65535 --open'
# Masscan
~$ das add masscan '--rate 1000 -iL hosts.txt -p1-65535 --open'
# RustScan
~$ das add rustscan '-b 1000 -t 2000 -u 5000 -a hosts.txt -r 1-65535 -g --no-config'
# Naabu
~$ das add naabu '-rate 1000 -iL hosts.txt -p - -silent -s s'
# NimScan
~$ das add nimscan '192.168.1.0/24 -vi -p:1-65535 -f:500'
# sx
~$ sudo sx arp -i eth0 192.168.1.0/24 --json | tee arp.cache
~$ das add sx 'tcp syn -a arp.cache -i eth0 --rate 1000/s 192.168.1.0/24 -p 445,3389'

Когда модуль начинает работу, создается каталог ~/.das/db, в котором будут находиться файл базы данных и необработанные результаты сканирования после завершения работы модуля.

Запустите целевые сканирования Nmap с помощью модуля scan. Вы можете настроить поверхность сканирования с помощью опций -hosts или -ports:

root@kitploit:~
# Сканирование по хостам
~$ das scan -hosts all -oA report1
~$ das scan -hosts 192.168.1.0/24,10.10.13.37 -oA report1
~$ das scan -hosts hosts.txt -oA report1
# Сканирование по портам
~$ das scan -ports all -oA report2
~$ das scan -ports 22,80,443,445 -oA report2
~$ das scan -ports ports.txt -oA report2

Чтобы запустить Nmap одновременно в нескольких процессах, укажите переключатель -parallel и установите количество рабочих процессов с помощью опции -proc (если значение не указано, оно будет по умолчанию равно количеству процессоров на машине):

root@kitploit:~
~$ das scan -hosts all -oA report -parallel [-proc 4]

Формат вывода выбирается с помощью опций -oX, -oN, -oG и -oA для форматов XML+HTML, простого текста, grepable и всех форматов соответственно. Когда модуль завершает работу, создается каталог ~/.das/nmap_<DB_NAME>, содержащий необработанные отчёты сканирования Nmap.

Также вы можете просмотреть содержимое базы данных с помощью опции -show перед фактическим запуском сканирования:

root@kitploit:~
~$ das scan -hosts all -show

Чтобы сгенерировать отчёт независимо от модуля scan, следует использовать модуль report. Он будет искать необработанные отчёты сканирования Nmap в каталоге ~/.das/nmap_<DB_NAME> и обрабатывать и объединять их на основе опции -hosts или -ports:

root@kitploit:~
# Объединение результатов по хостам
~$ das report -hosts all -oA report1
~$ das report -hosts 192.168.1.0/24,10.10.13.37 -oA report1
~$ das report -hosts hosts.txt -oA report1
# Объединение результатов по портам
~$ das report -ports all -oA report2
~$ das report -ports 22,80,443,445 -oA report2
~$ das report -ports ports.txt -oA report2

📑 Примечание: имейте в виду, что модуль report не ищет в БД при обработке опций -hosts или -ports, а вместо этого ищет необработанные отчёты Nmap непосредственно в каталоге ~/.das/nmap_<DB_NAME>; это означает, что значение аргумента -hosts 127.0.0.1 будет успешно обработано только в том случае, если существуют файлы ~/.das/nmap_<DB_NAME>/127-0-0-1.*, а значение аргумента -ports 80 — только если существуют файлы ~/.das/nmap_<DB_NAME>/port80.*.

example-4.png

  1. В результате мы теперь имеем единый отчёт во всех знакомых форматах Nmap (простой текст, grepable, XML), а также красивый HTML-отчёт.

example-5.png