Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
DivideAndScan — Divisez les résultats d'un scan complet de ports et utilisez-les pour des exécutions ciblées de Nmap. | Kitploit
Outils/GitHubGitHub/snovvcrash/divideandscan
Scanners de VulnérabilitésCartographie RéseauScan de PortsScripting et AutomatisationTests d'Intrusion
GitHubsnovvcrash/divideandscan

DivideAndScan

Divisez les résultats d'un scan complet de ports et utilisez-les pour des exécutions ciblées de Nmap.

Voir le dépôt
33349il y a 2 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

DivideAndScan

Diviser Et Impera Et Scanner (et aussi fusionner les résultats des scans)

version python codacy pypi docker

Projets en vedette

NixOSNixOSoffsec.tools
NixOSoffsec.tools

DiviseEtScan (DivideAndScan) est utilisé pour automatiser efficacement la routine de scan de ports en la divisant en 3 phases :

  1. Découvrir les ports ouverts pour un ensemble de cibles.
  2. Exécuter Nmap individuellement pour chaque cible avec la récupération de version et les actions NSE.
  3. Fusionner les résultats en un seul rapport Nmap (plusieurs formats disponibles).

Pour la 1ère phase, un scanner de ports rapide est prévu, dont la sortie est analysée et stockée dans une base de données fichier unique (TinyDB). Ensuite, pendant la 2ème phase, des scans Nmap individuels sont lancés pour chaque cible avec son ensemble de ports ouverts (le multiprocessing est supporté) selon les données de la base. Enfin, lors de la 3ème phase, les sorties Nmap séparées sont fusionnées en un seul rapport dans différents formats (XML / HTML / texte simple / grepable) avec nMap_Merger. La partie visualisation est assurée par DrawNmap.

Cas d'utilisation potentiels :

  • Engagements de pentest / red teaming avec un large périmètre à énumérer.
  • Wargames de cybersécurité / labs CTF d'entraînement.
  • Examen de certification OSCP.

* Scanners de ports disponibles :

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

AVERTISSEMENT. Toutes les informations contenues dans ce dépôt sont fournies à des fins éducatives et de recherche uniquement. L'auteur n'est pas responsable de toute utilisation illégale de cet outil.

Comment ça marche

how-it-works.png

Comment installer

Prérequis

Pour diviser et scanner avec succès, nous avons besoin de bons outils de scan de ports (dans les exemples ci-dessous, les versions GitHub sont récupérées via eget).

📑 Note : si vous ne souhaitez pas gérer les dépendances sur votre système d'exploitation hôte, passez directement à la section 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

Installation

DivideAndScan est disponible sur PyPI sous le nom divideandscan, mais je recommande de l'installer depuis GitHub avec pipx afin d'avoir toujours la version la plus récente :

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

Il existe aussi une version empaquetée avec shiv (bien que volumineuse) :

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

Pour le débogage, vous pouvez configurer un environnement de développement avec poetry :

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

📑 Note : DivideAndScan utilise sudo pour exécuter tous les scanners de ports, il demandera donc le mot de passe lorsque les commandes de scan seront lancées.

Utilisation avec Docker

dockeri.co

Vous pouvez exécuter DivideAndScan dans un conteneur Docker comme suit :

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

Étant donné que l'outil nécessite des données d'entrée et produit des données de sortie, vous devez monter votre répertoire de travail actuel sur /app dans le conteneur. La publication du port 8050 sur l'hôte permet également d'accéder à l'application Dash utilisée pour la visualisation des rapports Nmap.

Vous pouvez définir un alias pour raccourcir la commande de base :

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

Comment utiliser

how-to-use.png

1. Remplir la base de données

2. Scan ciblé

3 (Optionnel). Fusionner les rapports

🔥 Exemple 🔥

Énumérons les ports ouverts pour toutes les machines actives sur Hack The Box.

  1. Ajoutez les correspondances "hôte ⇄ ports ouverts" dans la base de données avec Masscan. Pour des raisons de démonstration, j'exclurai la plage de ports dynamiques pour éviter les éléments inutiles en utilisant -p1-49151. Sur la deuxième capture d'écran, je consulte les résultats du scan par hôtes et par ports :
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. Lancez les processus Nmap pour chaque cible afin de n'énumérer que les ports qui nous intéressent (les ports ouverts). Sur la deuxième capture d'écran, je fais la même chose mais en lançant les processus Nmap simultanément :
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

Apportez votre propre scanner !

Vous pouvez associer votre scanner de ports préféré à DivideAndScan en implémentant une seule méthode parse pour sa sortie dans das/parsers/DUMMY_SCANNER.py (voir exemple pour masscan) :

root@kitploit:~
from das.parsers import IAddPortscanOutput


class AddPortscanOutput(IAddPortscanOutput):
    """Classe fille pour le traitement de la sortie de DUMMY_SCANNER."""

    def parse(self):
        """
        Analyseur de sortie brute de DUMMY_SCANNER.

        :return: une paire de valeurs (nom du fichier de sortie brute du scan, nombre d'hôtes ajoutés à la base)
        :rtype: tuple
        """
        hosts = set()
        for line in self.portscan_raw:
            # Implémentation de l'analyseur DUMMY_SCANNER
            pass

        return (self.portscan_out, len(hosts))

Aide

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                  utilitaires pour manipulations manuelles de la base de données
    add                 lancer un scan de ports complet et ajouter la sortie à la base
    scan                lancer des scans Nmap ciblés contre les hôtes et ports de la base
    dns                 mapper les noms de domaine d'un fichier d'entrée vers les adresses IP correspondantes de la base
    report              fusionner les sorties Nmap séparées en un seul rapport (https://github.com/CBHue/nMap_Merger)
    parse               analyser les rapports Nmap bruts XML par nom de service et afficher les entrées au format {service}://{hôte}:{port}
    draw                visualiser les rapports Nmap XML (https://github.com/jor6PS/DrawNmap)
    tree                afficher le contenu du répertoire ~/.das/ à l'aide de tree
    help                afficher le dialogue --aide intégré d'un scanner de ports sélectionné

options:
  -h, --help            afficher ce message d'aide et quitter
  -db DB                nom de la base de données avec laquelle travailler

Psst, hé mon pote... Tu veux faire du p0r7 5c4nn1n6 organisé ?

À faire

  • Ajouter l'analyseur pour projectdiscovery/naabu
  • Ajouter l'analyseur pour elddy/NimScan
  • Ajouter l'analyseur pour sx
  • Ajouter l'analyseur pour ZMap
  • Stocker les noms d'hôte (s'il y en a) à côté de leurs adresses IP
  • Ajouter un commutateur fuff pour automatiser le fuzzing de répertoires web (module parse ajouté)
Télécharger l’outil

Fournissez au module add une commande pour un scanner de ports rapide afin de découvrir les ports ouverts dans une plage souhaitée.

⚠️ Avertissement : assurez-vous de bien comprendre ce que vous faites, car presque tous les outils de scan de ports peuvent endommager le système testé s'ils sont mal utilisés.

root@kitploit:~
# Nmap, l'option -v est toujours requise pour une analyse correcte !
~$ 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'

Lorsque le module commence son travail, un répertoire ~/.das/db est créé où le fichier de base de données et les résultats bruts du scan seront placés une fois la routine du module terminée.

Lancez des scans Nmap ciblés avec le module scan. Vous pouvez ajuster la surface de scan avec l'option -hosts ou -ports :

root@kitploit:~
# Scan par hôtes
~$ 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
# Scan par ports
~$ das scan -ports all -oA report2
~$ das scan -ports 22,80,443,445 -oA report2
~$ das scan -ports ports.txt -oA report2

Pour lancer Nmap simultanément dans plusieurs processus, utilisez l'option -parallel et définissez le nombre de travailleurs avec l'option -proc (si aucune valeur n'est fournie, elle prendra par défaut le nombre de processeurs de la machine) :

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

Le format de sortie est sélectionné avec les options -oX, -oN, -oG et -oA pour les formats XML+HTML, texte simple, format grepable et tous les formats respectivement. Lorsque le module termine son travail, un répertoire ~/.das/nmap_<NOM_BDD> est créé contenant les rapports bruts des scans Nmap.

Vous pouvez également inspecter le contenu de la base de données avec l'option -show avant de lancer les scans :

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

Pour générer un rapport indépendamment du module scan, vous devez utiliser le module report. Il recherchera les rapports bruts des scans Nmap dans le répertoire ~/.das/nmap_<NOM_BDD> et les traitera et les fusionnera en fonction de l'option -hosts ou -ports :

root@kitploit:~
# Fusionner les sorties par hôtes
~$ 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
# Fusionner les sorties par ports
~$ das report -ports all -oA report2
~$ das report -ports 22,80,443,445 -oA report2
~$ das report -ports ports.txt -oA report2

📑 Note : gardez à l'esprit que le module report ne recherche pas dans la base de données lors du traitement des options -hosts ou -ports, mais cherche directement les rapports Nmap bruts dans le répertoire ~/.das/nmap_<NOM_BDD> ; cela signifie que l'argument -hosts 127.0.0.1 ne sera résolu avec succès que si les fichiers ~/.das/nmap_<NOM_BDD>/127-0-0-1.* existent, et l'argument -ports 80 ne sera résolu avec succès que si les fichiers ~/.das/nmap_<NOM_BDD>/port80.* existent.

example-4.png

  1. En conséquence, nous avons maintenant un rapport unique dans tous les formats Nmap familiers (texte simple, grepable, XML) ainsi qu'un joli rapport HTML.

example-5.png