##
**
.
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.
* Impegni di penetration test / red teaming con un ampio scopo da enumerare.
* Wargames di cybersecurity / laboratori CTF di addestramento.
> **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.
.
📑 **Nota:** se non hai voglia di sporcarti le mani con le dipendenze sul tuo sistema operativo host, passa direttamente alla parte Docker.
wget -O masscan-master.zip
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 -O /root/.rustscan.toml
sudo eget -s linux/amd64 projectdiscovery/naabu --to /opt/naabu
sudo ln -sv /opt/naabu/naabu /usr/local/bin/naabu
sudo eget -a NimScan elddy/NimScan --to /opt/nimscan
sudo ln -sv /opt/nimscan/nimscan /usr/local/bin/nimscan
sudo eget -s linux/amd64 v-byte-cpu/sx --to /opt/sx
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+
C'è anche una release impacchettata con shiv (anche se di grandi dimensioni):
# shiv -e das.divideandscan:main -o das.pyz divideandscan
~$ wget && chmod +x das.pyz
Per scopi di debug puoi configurare un ambiente di sviluppo con poetry:
~$ git clone --recurse-submodules
📑 **Nota:** DivideAndScan usa sudo per eseguire tutti gli scanner di porte, quindi chiederà la password quando vengono invocati i comandi di scansione.
: root@kitploit:~
~$ das scan -hosts all -oA report -parallel [-proc 4]
Il formato di output viene selezionato con le opzioni `-oX`, `-oN`, `-oG` e `-oA` rispettivamente per formati XML+HTML, testo semplice, grepable e tutti i formati. Quando il modulo completa il suo lavoro, viene creata una directory `~/.das/nmap_ ` contenente i report grezzi di scansione Nmap. Inoltre, puoi ispezionare il contenuto del database con l'opzione `-show` prima di avviare effettivamente le scansioni: root@kitploit:~
Per generare un report indipendentemente dal modulo `scan`, dovresti usare il modulo `report`. Cercherà i report grezzi di scansione Nmap nella directory `~/.das/nmap_ ` e li elaborerà e unirà in base all'opzione `-hosts` o `-ports`: root@kitploit:~
~$ das report -hosts 192.168.1.0/24,10.10.13.37 -oA report1
~$ das report -hosts hosts.txt -oA report1
~$ das report -ports 22,80,443,445 -oA report2
~$ das report -ports ports.txt -oA report2
📑 **Nota:** tieni presente che il modulo `report` **non** cerca nel DB quando elabora le opzioni `-hosts` o `-ports`, ma cerca direttamente i report Nmap grezzi nella directory `~/.das/nmap_ `; ciò significa che il valore dell'argomento `-hosts 127.0.0.1` verrà risolto con successo solo se esistono file `~/.das/nmap_ /127-0-0-1.*`, e il valore dell'argomento `-ports 80` verrà risolto con successo solo se esistono file `~/.das/nmap_ /port80.*`.
Enumeriamo le porte aperte per tutte le macchine attive su Hack The Box.
1. Aggiungi le mappature "host ⇄ porte aperte" al database con Masscan. A scopo dimostrativo escluderò l'intervallo di porte dinamico per evitare cose inutili usando `-p1-49151`. Nel secondo screenshot sto rivedendo i risultati della scansione per host e per porte:
~$ das -db htb add -rm masscan '-e tun0 --rate 1000 -iL hosts.txt -p1-49151 --open'
. Nel secondo screenshot sto facendo la stessa cosa ma avviando i processi Nmap simultaneamente:
~$ das -db htb scan -hosts all -oA report
 oltre a un bel report HTML.
:
from das.parsers import IAddPortscanOutput
class AddPortscanOutput(IAddPortscanOutput):
"""Classe figlia per elaborare l'output di DUMMY_SCANNER."""
Parser dell'output grezzo di DUMMY_SCANNER.
:return: una coppia di valori (nome file output grezzo della scansione porte, numero di host aggiunti al DB)
# Implementazione del parser per DUMMY_SCANNER
usage: das [-h] [-db DB] {db,add,scan,dns,report,parse,draw,tree,help} ...
-----------------------------------------------------------------------------------------------
| ________ .__ .__ .___ _____ .____________ |
| \______ \ |__|__ _|__| __| _/____ / _ \ ____ __| _/ _____/ ____ _____ ____ |
| | | \| \ \/ / |/ __ |/ __ \ / /_\ \ / \ / __ |\_____ \_/ ___\\__ \ / \ |
| | ` \ |\ /| / /_/ \ ___// | \ | \/ /_/ |/ \ \___ / __ \| | \ |
| /_______ /__| \_/ |__\____ |\___ >____|__ /___| /\____ /_______ /\___ >____ /___| / |
| \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ |
| {@snovvcrash} { {vX.Y.Z} |
-----------------------------------------------------------------------------------------------
{db,add,scan,dns,report,parse,draw,tree,help}
db utilità per manipolazioni manuali del DB
add esegue una scansione completa delle porte e aggiunge l'output al DB
scan esegue scansioni Nmap mirate contro host e porte dal DB
dns mappa i nomi di dominio da un file di input agli indirizzi IP corrispondenti dal DB
report unisce output Nmap separati in un unico report (
parse analizza i report Nmap XML grezzi per nome del servizio e stampa le voci nel formato {servizio}://{host}:{porta}
draw visualizza i report Nmap XML (
tree mostra il contenuto della directory ~/.das/ usando tree
help mostra la finestra di aiuto integrata --help di uno scanner di porte selezionato
-h, --help mostra questo messaggio di aiuto ed esce
-db DB nome del DB con cui lavorare
Psst, ehi amico... Vuoi fare un po' di p0r7 5c4nn1n6 organizzato?
* ~~Aggiungere parser perprojectdiscovery/naabu~~
* ~~Memorizzare gli hostname (se presenti) accanto ai loro valori IP~~
* ~~Aggiungere opzione`ffuf` per automatizzare il fuzzing delle directory web~~ (aggiunto modulo `parse`)