
Smap v1.0.0-beta
Ein direkter Ersatz für Nmap, betrieben von shodan.io
nmap-Alternative, unterstützt durch shodan.io

Smap ist ein passiver Portscanner, der mit der kostenlosen API von shodan.io erstellt wurde. Er akzeptiert dieselben Befehlszeilenargumente wie Nmap und erzeugt dieselbe Ausgabe, was ihn zu einem direkten Ersatz für Nmap macht.
Funktionen
- Scannt 200 Hosts pro Sekunde
- Benötigt kein Konto und keinen API-Schlüssel
- Schwachstellenerkennung
- Unterstützt die Ausgabeformate von nmap
- Service- und Versions-Fingerprinting
- Nimmt im passiven Modus keinen Kontakt zu den Zielen auf
- Optionale nmap-Beschleunigung mithilfe der von Shodan gemeldeten Ports
Installation
Binärdateien
Du kannst eine vorgefertigte Binärdatei von hier herunterladen und sofort verwenden.
Manuell
go install -v github.com/s0md3v/smap/cmd/smap@latest
Verwirrt oder funktioniert etwas nicht? Detailliertere Anweisungen findest du hier
AUR-Paket
Smap ist auf AUR als smap-git (aus dem Quellcode erstellt) und smap-bin (vorgefertigte Binärdatei) verfügbar.
Homebrew/Mac
Smap ist auch auf Homebrew verfügbar.
brew update
brew install smap
Verwendung
Smap akzeptiert dieselben Argumente wie Nmap, aber Optionen außer -p, -h, -V, -o*, -iL, --concurrency und --append-output werden im passiven Modus ignoriert. Verwende --nmap, um Nmap-Optionen nach der passiven Port-Erkennung an einen echten Nmap-Scan weiterzugeben. Wenn du mit Nmap nicht vertraut bist, erfährst du hier, wie du Smap verwendest.
Ziele angeben
smap 127.0.0.1 127.0.0.2
Du kannst auch eine Liste von Zielen verwenden, die durch Zeilenumbrüche getrennt sind.
smap -iL targets.txt
Unterstützte Formate
1.1.1.1 // IPv4 address
example.com // hostname
178.23.56.0/8 // CIDR
1.1.1.1-20 // IPv4 range
Ausgabe
Smap unterstützt 7 Ausgabeformate, die wie folgt mit -o* verwendet werden können:
smap example.com -oX output.xml
Wenn du die Ausgabe auf dem Terminal ausgeben möchtest, verwende als Dateinamen einen Bindestrich (-).
Unterstützte Formate
oX // nmap's xml format
oG // nmap's greppable format
oN // nmap's default format
oA // output in all 3 formats above at once
oP // IP:PORT pairs separated by newlines
oS // custom smap format
oJ // json
Hinweis: Da Nmap keine Schwachstellen und Tags scannt bzw. anzeigt, sind diese Daten in den nmap-Formaten nicht verfügbar. Verwende
-oS, um diese Informationen anzuzeigen.
Ports angeben
Smap scannt standardmäßig diese ~4000 Ports. Wenn du Ergebnisse für bestimmte Ports anzeigen möchtest, verwende die Option -p.
smap -p21-30,80,443 -iL targets.txt
Nmap-Beschleunigung
Verwende --nmap, um einen Scan mit deinem lokalen nmap einzuschränken. Smap sammelt zuerst die Vereinigung der von Shodan gemeldeten Ports und führt dann Nmap einmal mit diesem kleineren Portbereich gegen die ursprünglichen Ziele aus.
smap --nmap -Pn -sV --version-light 1.1.1.1
Mit Ausnahme von --nmap und --concurrency werden die angegebenen Argumente an Nmap übergeben. Smap ersetzt den Portbereich durch die Shodan-Kandidaten; wenn du -p angibst, begrenzt es die Kandidaten zunächst auf diesen Bereich. Nmap übernimmt den Scan und die Ausgabe direkt, sodass sich seine Optionen und Ausgabeformate normal verhalten. Nur-Host-Operationen wie -sL und -sn werden ohne passive Port-Erkennung durchgereicht.
Die benutzerdefinierten Ausgabeformate von Smap sind Funktionen des passiven Modus; mit --nmap haben die Ausgabeoptionen ihre normalen Nmap-Bedeutungen. Wenn Shodan keine Kandidaten-Ports meldet, wird Nmap nicht ausgeführt.
Das kann Zeit sparen, wenn die passiven Daten für deinen Anwendungsfall ausreichen.
Parallelität steuern
Smap verwendet standardmäßig 3 Worker, um Shodan nicht zu stark zu belasten. Du kannst das mit --concurrency ändern.
smap --concurrency 5 -iL targets.txt
Überlegungen
Da Smap einfach vorhandene Portdaten von shodan.io abruft, ist es extrem schnell, aber es gibt noch mehr zu beachten. Du solltest Smap verwenden, wenn:
Du möchtest
- Schwachstellenerkennung
- einen extrem schnellen Portscanner
- keine Verbindungen zu den Zielen aufgebaut werden sollen
Du bist damit einverstanden
- keine IPv6-Adressen scannen zu können
- dass Ergebnisse bis zu 7 Tage alt sind
- dass die Software-Erkennung im passiven Modus in seltenen Fällen unzuverlässig ist
Hinweis: Wenn du
--nmapverwendest, führt Smapnmapgegen das Ziel aus und stellt aktive Verbindungen her. Da Shodans Daten veraltet oder unvollständig sein können, kann die Verwendung als Portfilter offene Ports übersehen.
