
Dividi i risultati della scansione completa delle porte e usali per esecuzioni mirate di Nmap
Divide Et Impera And Scan (e unisci anche i risultati della scansione)
NixOS![]() | ![]() |
|---|---|
| NixOS | offsec.tools |
DivideAndScan è usato per automatizzare in modo efficiente la routine di scansione delle porte, suddividendola in 3 fasi:
Per la 1ª fase si intende utilizzare uno scanner di porte veloce*, il cui output viene analizzato e memorizzato in un database a file singolo (TinyDB). Successivamente, durante la 2ª fase vengono avviate scansioni Nmap individuali per ogni target con il suo set di porte aperte (il multiprocessing è supportato) in base ai dati del database. Infine, nella 3ª fase gli output Nmap separati vengono uniti in un unico report in diversi formati (XML / HTML / testo semplice / grepable) con nMap_Merger. La parte di visualizzazione è fornita da DrawNmap.
Casi d'uso potenziali:
* Scanner di porte disponibili:
DICHIARAZIONE DI NON RESPONSABILITÀ. Tutte le informazioni contenute in questo repository sono fornite solo a scopo educativo e di ricerca. L'autore non è responsabile per qualsiasi uso illecito di questo strumento.

Per dividere e scansionare con successo dobbiamo procurarci dei buoni strumenti di scansione delle porte (negli esempi seguenti le release di GitHub vengono scaricate tramite eget).
📑 Nota: se non hai voglia di sporcarti le mani con le dipendenze sul tuo sistema operativo host, passa direttamente alla parte 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 è disponibile su PyPI come divideandscan, anche se consiglio di installarlo da GitHub con pipx per avere sempre la versione all'avanguardia:
~$ pipx install -f "git+https://github.com/snovvcrash/DivideAndScan.git"
~$ das
C'è anche una release impacchettata con shiv (anche se di grandi dimensioni):
# 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
Per scopi di debug puoi configurare un ambiente di sviluppo con poetry:
~$ git clone --recurse-submodules https://github.com/snovvcrash/DivideAndScan
~$ cd DivideAndScan
~$ poetry install
~$ poetry run das
📑 Nota: DivideAndScan usa sudo per eseguire tutti gli scanner di porte, quindi chiederà la password quando vengono invocati i comandi di scansione.
Puoi eseguire DivideAndScan in un container Docker nel modo seguente:
~$ docker run --rm -it --name das -v ~/.das:/root/.das -v `pwd`:/app -p 8050:8050 snovvcrash/divideandscan
Poiché lo strumento richiede alcuni dati di input e produce alcuni dati di output, dovresti specificare la tua directory di lavoro corrente come punto di mount su /app all'interno del container. Inoltre, pubblicare la porta 8050 sull'host permette di accedere all'app Dash utilizzata per la visualizzazione dei report Nmap.
Potresti voler impostare un alias per accorciare il comando base: