Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
DivideAndScan — Divide los resultados de un escaneo completo de puertos y úsalos para ejecuciones de Nmap dirigidas. | Kitploit
Herramientas/GitHubGitHub/snovvcrash/divideandscan
Escáneres de VulnerabilidadesMapeo de RedesEscaneo de PuertosScripting y AutomatizaciónPruebas de Penetración
GitHubsnovvcrash/divideandscan

DivideAndScan

Divide los resultados de un escaneo completo de puertos y úsalos para ejecuciones de Nmap dirigidas.

Ver Repositorio
33349hace 2 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

DivideAndScan

Divide Et Impera And Scan (y también fusiona los resultados del escaneo)

version python codacy pypi docker

Proyectos Destacados

NixOSNixOSoffsec.tools
NixOSoffsec.tools

DivideAndScan se utiliza para automatizar eficientemente la rutina de escaneo de puertos dividiéndola en 3 fases:

  1. Descubrir puertos abiertos para un conjunto de objetivos.
  2. Ejecutar Nmap individualmente para cada objetivo con captura de versiones y acciones NSE.
  3. Fusionar los resultados en un único informe Nmap (diferentes formatos disponibles).

Para la 1.ª fase se pretende utilizar un escáner de puertos rápido*, cuya salida se analiza y almacena en una base de datos de archivo único (TinyDB). A continuación, durante la 2.ª fase se lanzan escaneos Nmap individuales para cada objetivo con su conjunto de puertos abiertos (se admite multiprocesamiento) según los datos de la base de datos. Finalmente, en la 3.ª fase las salidas Nmap separadas se fusionan en un único informe en diferentes formatos (XML / HTML / texto simple / grepable) con nMap_Merger. La parte de visualización la proporciona DrawNmap.

Casos de uso potenciales:

  • Compromisos de pruebas de penetración / operaciones de equipo rojo con un alcance grande que enumerar.
  • Laboratorios CTF de ciberseguridad / juegos de entrenamiento.
  • Examen de certificación OSCP.

* Escáneres de puertos disponibles:

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

DESCARGO DE RESPONSABILIDAD. Toda la información contenida en este repositorio se proporciona únicamente con fines educativos y de investigación. El autor no es responsable de ningún uso ilegal de esta herramienta.

Cómo Funciona

how-it-works.png

Cómo Instalar

Requisitos Previos

Para dividir y escanear con éxito necesitamos algunas buenas herramientas de escaneo de puertos (en los ejemplos siguientes las versiones de GitHub se obtienen mediante eget).

📑 Nota: si no quieres lidiar con dependencias en tu sistema operativo anfitrión, salta a la parte de 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

Instalación

DivideAndScan está disponible en PyPI como divideandscan, aunque recomiendo instalarlo desde GitHub con pipx para tener siempre la versión más reciente:

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

También hay un release empaquetado con shiv (aunque con un tamaño de archivo grande):

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

Para fines de depuración, puedes configurar un entorno de desarrollo con poetry:

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

📑 Nota: DivideAndScan usa sudo para ejecutar todos los escáneres de puertos, por lo que pedirá la contraseña cuando se invoquen los comandos de escaneo.

Usando desde Docker

dockeri.co

Puedes ejecutar DivideAndScan en un contenedor Docker de la siguiente manera:

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

Dado que la herramienta requiere algunos datos de entrada y produce algunos datos de salida, debes especificar tu directorio de trabajo actual como punto de montaje en /app dentro del contenedor. También publicar el puerto 8050 en el host permite acceder a la aplicación Dash utilizada para la visualización de informes Nmap.

Puedes querer establecer un alias para acortar el comando base:

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

Cómo Usar

how-to-use.png

1. Llenando la BD

2. Escaneo Dirigido

3 (Opcional). Fusionando los Informes

🔥 Ejemplo 🔥

Vamos a enumerar puertos abiertos para todas las máquinas activas en Hack The Box.

  1. Añadir asignaciones "host ⇄ puertos abiertos" a la base de datos con Masscan. Con fines de demostración excluiré el rango de puertos dinámicos para evitar cosas innecesarias usando -p1-49151. En la segunda captura de pantalla estoy revisando los resultados del escaneo por hosts y por puertos:
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. Lanzar procesos Nmap para cada objetivo para enumerar solo los puertos que nos interesan (los puertos abiertos). En la segunda captura de pantalla estoy haciendo lo mismo pero iniciando procesos Nmap simultáneamente:
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

¡Trae Tu Propio Escáner!

Puedes emparejar tu escáner de puertos favorito con DivideAndScan implementando un único método parse para su salida en das/parsers/DUMMY_SCANNER.py (ver ejemplo para masscan):

root@kitploit:~
from das.parsers import IAddPortscanOutput


class AddPortscanOutput(IAddPortscanOutput):
    """Clase hija para procesar la salida de DUMMY_SCANNER."""

    def parse(self):
        """
        Analizador de salida bruta de DUMMY_SCANNER.

        :return: un par de valores (nombre del archivo de salida bruta del escaneo, número de hosts añadidos a la BD)
        :rtype: tuple
        """
        hosts = set()
        for line in self.portscan_raw:
            # Implementación del analizador DUMMY_SCANNER
            pass

        return (self.portscan_out, len(hosts))

Ayuda

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}  |
 -----------------------------------------------------------------------------------------------

argumentos posicionales:
  {db,add,scan,dns,report,parse,draw,tree,help}
    db                  utilidades para manipulaciones manuales de la BD
    add                 ejecutar un escaneo de puertos completo y añadir la salida a la BD
    scan                ejecutar escaneos Nmap dirigidos contra hosts y puertos de la BD
    dns                 mapear nombres de dominio desde un archivo de entrada a las direcciones IP correspondientes de la BD
    report              fusionar salidas Nmap separadas en un único informe (https://github.com/CBHue/nMap_Merger)
    parse               analizar informes Nmap XML brutos por nombres de servicio e imprimir entradas en formato {service}://{host}:{port}}
    draw                visualizar informes Nmap XML (https://github.com/jor6PS/DrawNmap)
    tree                mostrar el contenido del directorio ~/.das/ usando tree
    help                mostrar el diálogo de ayuda --help incorporado de un escáner de puertos seleccionado

opciones:
  -h, --help            mostrar este mensaje de ayuda y salir
  -db DB                nombre de la BD con la que trabajar

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

Por Hacer

  • Añadir analizador de projectdiscovery/naabu
  • Añadir analizador de elddy/NimScan
  • Añadir analizador de sx
  • Añadir analizador de ZMap
  • Almacenar nombres de host (si los hay) junto a sus valores IP
  • Añadir interruptor fuff para automatizar el fuzzing de directorios web (añadido módulo parse)
Descargar herramienta

Proporciona al módulo add un comando para un escáner de puertos rápido con el fin de descubrir puertos abiertos en un rango deseado.

⚠️ Advertencia: asegúrate de entender lo que estás haciendo, porque casi todas las herramientas de escaneo de puertos pueden dañar el sistema que se está probando si se usan incorrectamente.

root@kitploit:~
# Nmap, ¡el flag -v siempre es necesario para un análisis correcto!
~$ 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'

Cuando el módulo comienza su trabajo, se crea un directorio ~/.das/db donde se almacenarán el archivo de la base de datos y los resultados brutos del escaneo cuando finalice la rutina del módulo.

Lanza escaneos Nmap dirigidos con el módulo scan. Puedes ajustar la superficie de escaneo con la opción -hosts o -ports:

root@kitploit:~
# Escanear por hosts
~$ 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
# Escanear por puertos
~$ das scan -ports all -oA report2
~$ das scan -ports 22,80,443,445 -oA report2
~$ das scan -ports ports.txt -oA report2

Para iniciar Nmap simultáneamente en múltiples procesos, especifica el interruptor -parallel y establece el número de trabajadores con la opción -proc (si no se proporciona ningún valor, se establecerá por defecto al número de procesadores de la máquina):

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

El formato de salida se selecciona con las opciones -oX, -oN, -oG y -oA para formatos XML+HTML, texto simple, formato grepable y todos los formatos respectivamente. Cuando el módulo completa su trabajo, se crea un directorio ~/.das/nmap_<DB_NAME> que contiene los informes de escaneo Nmap brutos.

Además, puedes inspeccionar el contenido de la base de datos con la opción -show antes de lanzar los escaneos:

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

Para generar un informe independientemente del módulo scan, debes usar el módulo report. Buscará informes de escaneo Nmap brutos en el directorio ~/.das/nmap_<DB_NAME> y los procesará y fusionará según la opción -hosts o -ports:

root@kitploit:~
# Fusionar salidas por hosts
~$ 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
# Fusionar salidas por puertos
~$ das report -ports all -oA report2
~$ das report -ports 22,80,443,445 -oA report2
~$ das report -ports ports.txt -oA report2

📑 Nota: ten en cuenta que el módulo report no busca en la BD al procesar las opciones -hosts o -ports, sino que busca informes Nmap brutos directamente en el directorio ~/.das/nmap_<DB_NAME>; esto significa que el valor del argumento -hosts 127.0.0.1 se resolverá correctamente solo si existen archivos ~/.das/nmap_<DB_NAME>/127-0-0-1.*, y el valor del argumento -ports 80 se resolverá correctamente solo si existen archivos ~/.das/nmap_<DB_NAME>/port80.*.

example-4.png

  1. Como resultado, ahora tenemos un único informe en todos los formatos Nmap familiares (texto simple, grepable, XML) así como un informe HTML bonito.

example-5.png