
Teile die Ergebnisse eines vollständigen Portscans auf und verwende sie für gezielte Nmap-Durchläufe
Divide Et Impera And Scan (und auch die Scan-Ergebnisse zusammenführen)
DivideAndScan wird verwendet, um die Port-Scanning-Routine effizient zu automatisieren, indem sie in 3 Phasen aufgeteilt wird:
Für die 1. Phase ist ein schneller Port-Scanner* vorgesehen, dessen Ausgabe geparst und in einer einzigen Datei-Datenbank (TinyDB) gespeichert wird. In der 2. Phase werden dann für jedes Ziel mit seinen offenen Ports individuelle Nmap-Scans gestartet (Multiprocessing wird unterstützt), basierend auf den Daten der Datenbank. Schließlich werden in der 3. Phase die einzelnen Nmap-Ausgaben mit nMap_Merger zu einem einzigen Bericht in verschiedenen Formaten (XML / HTML / einfacher Text / grepable) zusammengeführt. Die Visualisierung wird von DrawNmap bereitgestellt.
Mögliche Anwendungsfälle:
* Verfügbare Port-Scanner:
HAFTUNGSAUSSCHLUSS. Alle in diesem Repository enthaltenen Informationen dienen ausschließlich Bildungs- und Forschungszwecken. Der Autor ist nicht verantwortlich für jegliche illegale Nutzung dieses Tools.

Um erfolgreich zu teilen und zu scannen, benötigen wir einige gute Port-Scanning-Tools (in den Beispielen unten werden GitHub-Releases über eget heruntergeladen).
📑 Hinweis: Wenn Sie keine Lust haben, sich mit Abhängigkeiten auf Ihrem Host-Betriebssystem herumzuschlagen, springen Sie zum Docker-Teil.
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 ist auf PyPI als divideandscan verfügbar, obwohl ich empfehle, es von GitHub mit pipx zu installieren, um immer die aktuellste Version zu haben:
~$ pipx install -f "git+https://github.com/snovvcrash/DivideAndScan.git"
~$ das
Es gibt auch ein Release, das mit shiv gepackt ist (allerdings große Dateigröße):
# 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
Für Debugging-Zwecke können Sie eine Entwicklungsumgebung mit poetry einrichten:
~$ git clone --recurse-submodules https://github.com/snovvcrash/DivideAndScan
~$ cd DivideAndScan
~$ poetry install
~$ poetry run das
📑 Hinweis: DivideAndScan verwendet sudo, um alle Port-Scanner auszuführen. Daher wird bei der Ausführung von Scan-Befehlen das Passwort abgefragt.
Sie können DivideAndScan in einem Docker-Container wie folgt ausführen:
~$ docker run --rm -it --name das -v ~/.das:/root/.das -v `pwd`:/app -p 8050:8050 snovvcrash/divideandscan
Da das Tool einige Eingabedaten benötigt und Ausgabedaten erzeugt, sollten Sie Ihr aktuelles Arbeitsverzeichnis als Mount-Punkt unter /app im Container angeben. Das Veröffentlichen von Port 8050 auf dem Host ermöglicht den Zugriff auf die Dash-App, die zur Visualisierung von Nmap-Berichten verwendet wird.
Sie können einen Alias setzen, um den Basisbefehl zu verkürzen:
~$ alias das='docker run --rm -it --name das -v ~/.das:/root/.das -v `pwd`:/app -p 8050:8050 snovvcrash/divideandscan'
~$ das

Lassen Sie uns offene Ports für alle aktiven Maschinen auf Hack The Box enumerieren.
-p1-49151 verwende. Auf dem zweiten Screenshot sehe ich mir die Scan-Ergebnisse nach Hosts und nach Ports an:~$ das -db htb add -rm masscan '-e tun0 --rate 1000 -iL hosts.txt -p1-49151 --open'
~$ das -db htb scan -hosts all -show
~$ das -db htb scan -ports all -show
~$ das -db htb scan -hosts all -oA report
~$ das -db htb scan -hosts all -oA report -nmap '-Pn -sVC -O' -parallel
Sie können Ihren Lieblings-Port-Scanner mit DivideAndScan kombinieren, indem Sie eine einzige parse-Methode für dessen Ausgabe in das/parsers/DUMMY_SCANNER.py implementieren (siehe Beispiel für masscan):
from das.parsers import IAddPortscanOutput
class AddPortscanOutput(IAddPortscanOutput):
"""Child class for processing DUMMY_SCANNER output."""
def parse(self):
"""
DUMMY_SCANNER raw output parser.
:return: a pair of values (portscan raw output filename, number of hosts added to DB)
:rtype: tuple
"""
hosts = set()
for line in self.portscan_raw:
# DUMMY_SCANNER parser implementation
pass
return (self.portscan_out, len(hosts))
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 utilities for manual DB manipulations
add run a full port scan and add the output to DB
scan run targeted Nmap scans against hosts and ports from DB
dns map domain names from an input file to corresponding IP addresses from the DB
report merge separate Nmap outputs into a single report (https://github.com/CBHue/nMap_Merger)
parse parse raw Nmap XML reports by service names and print entries in format {service}://{host}:{port}}
draw visualize Nmap XML reports (https://github.com/jor6PS/DrawNmap)
tree show contents of the ~/.das/ directory using tree
help show builtin --help dialog of a selected port scanner
options:
-h, --help show this help message and exit
-db DB DB name to work with
Psst, hey buddy... Wanna do some organized p0r7 5c4nn1n6?
fuff switch to automate web directory fuzzingparse module)![]() |
|---|
| NixOS | offsec.tools |
|
Geben Sie dem ⚠️ Warnung: Bitte stellen Sie sicher, dass Sie verstehen, was Sie tun, da fast alle Port-Scanning-Tools das getestete System beschädigen können, wenn sie unsachgemäß verwendet werden. Wenn das Modul seine Arbeit aufnimmt, wird ein Verzeichnis |
|
Starten Sie gezielte Nmap-Scans mit dem Um Nmap gleichzeitig in mehreren Prozessen zu starten, geben Sie den Schalter Das Ausgabeformat wird mit den Optionen Sie können den Inhalt der Datenbank auch mit der Option |
|
Um einen Bericht unabhängig vom 📑 Hinweis: Beachten Sie, dass das |