Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
sx — :vulcan_salute: Schneller, moderner, benutzerfreundlicher Netzwerkscanner | Kitploit
Tools/GitHubGitHub/v-byte-cpu/sx
AufklärungNetzwerkkartierungPort-ScanningInformationsbeschaffungPenetrationstests
GitHubv-byte-cpu/sx

sx

🖖 Schneller, moderner, benutzerfreundlicher Netzwerkscanner

Repository anzeigen
1.6k10862vor 27 TagenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

sx

License Build Status GoReportCard Status Platform

sx ist der Kommandozeilen-Netzwerkscanner, der der UNIX-Philosophie folgt.

Ziel dieses Projekts ist es, den schnellsten Netzwerkscanner mit sauberem und einfachem Code zu erstellen.

📖 Inhaltsverzeichnis

  • Funktionen
  • Installation
  • Aus Quellcode erstellen
  • Schnellstart
  • Referenzen
  • Mitwirken
  • Danksagungen
  • Lizenz

✨ Funktionen

  • ⚡ 30-mal schneller als nmap
  • ARP-Scan: Durchsuchen Sie Ihre lokalen Netzwerke, um aktive Geräte zu erkennen
  • ICMP-Scan: Nutzen Sie fortgeschrittene ICMP-Scan-Techniken, um aktive Hosts und Firewall-Regeln zu erkennen
  • TCP-SYN-Scan: Traditioneller Half-Open-Scan zum Auffinden offener TCP-Ports
  • TCP-FIN-/NULL-/Xmas-Scans: Scan-Techniken zur Umgehung einiger Firewall-Regeln
  • Benutzerdefinierte TCP-Scans mit beliebigen TCP-Flags: Senden Sie beliebige exotische Pakete und erhalten Sie ein Ergebnis mit allen im Antwortpaket gesetzten TCP-Flags
  • UDP-Scan: Scannen Sie UDP-Ports und erhalten Sie vollständige ICMP-Antworten, um offene Ports oder Firewall-Regeln zu erkennen
  • Anwendungs-Scans:
    • SOCKS5-Scan: Erkennen Sie aktive SOCKS5-Proxys durch Scannen eines IP-Bereichs oder einer Liste von IP/Port-Paaren aus einer Datei
  • Randomisierte Iteration über IP-Adressen mittels endlicher zyklischer multiplikativer Gruppen
  • JSON-Ausgabeunterstützung: sx ist speziell für die bequeme automatische Verarbeitung von Ergebnissen ausgelegt

📦 Installation

Der einfachste Weg ist, von GitHub Releases herunterzuladen und die ausführbare Datei in Ihrem PATH zu platzieren.

🛠 Aus Quellcode erstellen

Voraussetzungen:

  • Go 1.25 oder neuer
  • libpcap (bereits installiert, wenn Sie wireshark verwenden)

Installieren Sie unter macOS zuerst die Xcode Command Line Tools, damit CGO gegen die systemeigene libpcap linken kann:

root@kitploit:~
xcode-select --install

Führen Sie im Wurzelverzeichnis des Quellbaums Folgendes aus:

root@kitploit:~
go build

🚀 Schnellstart

Hier sind kurze Beispiele, wie Sie Netzwerke mit sx scannen können.

ARP-Scan

Durchsuchen Sie Ihr lokales Netzwerk und zeigen Sie die IP-Adresse, MAC-Adresse und den zugehörigen Hardware-Hersteller der verbundenen Geräte an:

root@kitploit:~
sx arp 192.168.0.1/24

Beispielausgabe:

root@kitploit:~
192.168.0.1          b0:be:76:40:05:8d    TP-LINK TECHNOLOGIES CO.,LTD.
192.168.0.111        80:c5:f2:0b:02:e3    AzureWave Technology Inc.
192.168.0.171        88:53:95:2d:3c:af    Apple, Inc.

mit JSON-Ausgabe:

root@kitploit:~
sx arp --json 192.168.0.1/24

Beispielausgabe:

root@kitploit:~
{"ip":"192.168.0.1","mac":"b0:be:76:40:05:8d","vendor":"TP-LINK TECHNOLOGIES CO.,LTD."}
{"ip":"192.168.0.111","mac":"80:c5:f2:0b:02:e3","vendor":"AzureWave Technology Inc."}
{"ip":"192.168.0.171","mac":"88:53:95:2d:3c:af","vendor":"Apple, Inc."}

5 Sekunden vor dem Beenden warten, um verzögerte Antwortpakete zu empfangen; standardmäßig wartet sx 300 Millisekunden:

root@kitploit:~
sx arp --exit-delay 5s 192.168.0.1/24

Live-Scan-Modus, der das Netzwerk alle 10 Sekunden erneut scannt:

root@kitploit:~
sx arp 192.168.0.1/24 --live 10s

TCP-Scan

Im Gegensatz zu nmap und anderen Scannern, die vor dem eigentlichen Scan implizit ARP-Anfragen durchführen, um IP-Adressen in MAC-Adressen aufzulösen, verwendet sx explizit das ARP-Cache-Konzept. Eine ARP-Cache-Datei ist eine einfache Textdatei, die pro Zeile einen JSON-String enthält (JSONL-Datei), mit denselben JSON-Feldern wie die oben beschriebene ARP-Scan-JSON-Ausgabe. Scans von Protokollen höherer Ebene wie TCP und UDP lesen die ARP-Cache-Datei von der Standardeingabe und starten dann den eigentlichen Scan.

Dies vereinfacht nicht nur das Design des Programms, sondern beschleunigt auch den Scanvorgang, da nicht jedes Mal ein ARP-Scan durchgeführt werden muss.

Nehmen wir an, dass der aktuelle ARP-Cache in der Datei arp.cache ist. Wir können ihn manuell erstellen oder den ARP-Scan wie unten gezeigt verwenden:

root@kitploit:~
sx arp 192.168.0.1/24 --json | tee arp.cache

Sobald wir die ARP-Cache-Datei haben, können wir Scans von Protokollen höherer Ebene wie den TCP-SYN-Scan ausführen:

root@kitploit:~
cat arp.cache | sx tcp -p 1-65535 192.168.0.171

Beispielausgabe:

root@kitploit:~
192.168.0.171        22
192.168.0.171        443

In diesem Fall stellen wir fest, dass die Ports 22 und 443 offen sind.

Wenn während großer Scans send: No buffer space available erscheint, bedeutet dies in der Regel, dass der Sender die Kernel/Raw-Socket-Puffer überläuft. Die erste Abhilfe besteht darin, --rate hinzuzufügen und den Sendeburst zu verringern, z. B. -r 100000/s oder bei Bedarf niedriger. Auf manchen Systemen kann auch die Anpassung der OS-Socket/Puffergrenzen helfen, aber Ratenbegrenzung ist die primäre Lösung.

Scan mit JSON-Ausgabe:

root@kitploit:~
cat arp.cache | sx tcp  --json -p 1-65535 192.168.0.171

Beispielausgabe:

root@kitploit:~
{"scan":"tcpsyn","ip":"192.168.0.171","port":22}
{"scan":"tcpsyn","ip":"192.168.0.171","port":443}

Mehrere Portbereiche scannen:

root@kitploit:~
cat arp.cache | sx tcp -p 1-23,25-443 192.168.0.171

oder einzelne Ports:

root@kitploit:~
cat arp.cache | sx tcp -p 22,443 192.168.0.171

oder die Option --ports-file verwenden, um eine Datei mit Ports oder Portbereichen (einer pro Zeile) zum Scannen anzugeben.

IP/Port-Paare aus einer Datei mit JSON-Ausgabe scannen:

root@kitploit:~
cat arp.cache | sx tcp --json -f ip_ports_file.jsonl

Jede Zeile der Eingabedatei ist ein JSON-String, der die Felder ip und port enthalten muss.

Beispiel für eine Eingabedatei:

root@kitploit:~
{"ip":"10.0.1.1","port":1080}
{"ip":"10.0.2.2","port":1081}

Es ist möglich, die ARP-Cache-Datei mit den Optionen -a oder --arp-cache anzugeben:

root@kitploit:~
sx tcp -a arp.cache -p 22,443 192.168.0.171

oder per stdin-Umleitung:

root@kitploit:~
sx tcp -p 22,443 192.168.0.171 < arp.cache

Sie können auch den Unterbefehl tcp syn anstelle von tcp verwenden:

root@kitploit:~
cat arp.cache | sx tcp syn -p 22 192.168.0.171

Der Unterbefehl tcp ist nur eine Kurzform für tcp syn, sofern nicht die Option --flags übergeben wird (siehe unten).

VPN-Schnittstellen

sx unterstützt das Scannen mit virtuellen Netzwerkschnittstellen (WireGuard, OpenVPN usw.). In diesem Fall ist die Verwendung des ARP-Caches nicht erforderlich, da diese Schnittstellen rohe IP-Pakete anstelle von Ethernet-Frames als Eingabe benötigen. Beispielsweise das Scannen einer IP-Adresse in einem VPN-Netzwerk:

root@kitploit:~
sx tcp 10.1.27.1 -p 80 --json

TCP-FIN-Scan

Die meisten Netzwerkscanner versuchen, die Scanergebnisse zu interpretieren. Sie sagen zum Beispiel „dieser Port ist geschlossen“, anstatt „ich habe ein RST empfangen“. Manchmal haben sie recht. Manchmal nicht. Für Anfänger ist das einfacher, aber wenn man weiß, was man tut, versucht man ständig, aus der Interpretation des Programms abzuleiten, was wirklich passiert ist – insbesondere bei fortgeschritteneren Scantechniken.

sx versucht, diese Probleme zu überwinden. Es gibt Informationen über alle Antwortpakete für TCP-FIN-, NULL-, Xmas- und benutzerdefinierte TCP-Scans zurück. Die Informationen enthalten IP-Adresse, TCP-Port und alle im Antwortpaket gesetzten TCP-Flags.

Der TCP-FIN-Scan und seine anderen Varianten (NULL und Xmas) nutzen RFC793 Abschnitt 3.9:

SEGMENT ARRIVES

If the state is CLOSED (i.e., TCB does not exist) then

root@kitploit:~
 all data in the incoming segment is discarded.  An incoming
 segment containing a RST is discarded.  An incoming segment not
 containing a RST causes a RST to be sent in response.  The
 acknowledgment and sequence field values are selected to make the
 reset sequence acceptable to the TCP that sent the offending
 segment.

Ein geschlossener Port sollte also ein Paket mit RST-Flag zurückgeben.

Dieser Abschnitt stellt auch fest:

If the state is LISTEN then

...

Any other control or text-bearing segment (not containing SYN) must have an ACK and thus would be discarded by the ACK processing. An incoming RST segment could not be valid, since it could not have been sent in response to anything sent by this incarnation of the connection. So you are unlikely to get here, but if you do, drop the segment, and return.

Der entscheidende Satz hier: drop the segment, und return. Ein offener Port auf den meisten Betriebssystemen wird also das TCP-Paket verwerfen, das außer SYN, ACK und RST beliebige Flags enthält.

Lassen Sie uns einen geschlossenen Port mit dem TCP-FIN-Scan scannen:

root@kitploit:~
cat arp.cache | sx tcp fin --json -p 23 192.168.0.171

Beispielausgabe:

root@kitploit:~
{"scan":"tcpfin","ip":"192.168.0.171","port":23,"flags":"ar"}

Das Feld flags enthält alle TCP-Flags im Antwortpaket, wobei jeder Buchstabe für eines der TCP-Flags steht:

  • s – SYN-Flag
  • a – ACK-Flag
  • f – FIN-Flag
  • r – RST-Flag
  • p – PSH-Flag
  • u – URG-Flag
  • e – ECE-Flag
  • c – CWR-Flag
  • n – NS-Flag

In diesem Fall stellen wir fest, dass Port 23 ein Antwortpaket mit gesetzten ACK- und RST-Flags gesendet hat (typische Antwort für einen geschlossenen Port gemäß RFC793).

Wenn wir einen offenen Port scannen, erhalten wir keine Antwort (es sei denn, die Firewall täuscht die Antworten vor).

Andere Arten von TCP-Scans können analog durchgeführt werden.

TCP-NULL-Scan:

root@kitploit:~
cat arp.cache | sx tcp null --json -p 23 192.168.0.171

TCP-Xmas-Scan:

root@kitploit:~
cat arp.cache | sx tcp xmas --json -p 23 192.168.0.171

Benutzerdefinierte TCP-Scans

Es ist möglich, TCP-Pakete mit benutzerdefinierten TCP-Flags zu senden, indem die Option --flags verwendet wird.

Senden wir ein TCP-Paket mit gesetzten SYN-, FIN- und ACK-Flags, um das entfernte Betriebssystem zu identifizieren:

root@kitploit:~
cat arp.cache | sx tcp --flags syn,fin,ack --json -p 23 192.168.0.171

Windows und MacOS werden nicht auf dieses Paket antworten, aber Linux sendet ein Antwortpaket mit RST-Flag.

Mögliche Argumente für die Option --flags:

  • syn – SYN-Flag
  • ack – ACK-Flag
  • fin – FIN-Flag
  • rst – RST-Flag
  • psh – PSH-Flag
  • urg – URG-Flag
  • ece – ECE-Flag
  • cwr – CWR-Flag
  • ns – NS-Flag

UDP-Scan

sx kann bei der Untersuchung offener UDP-Ports helfen. Der UDP-Scan nutzt RFC1122 Abschnitt 4.1.3.1:

If a datagram arrives addressed to a UDP port for which there is no pending LISTEN call, UDP SHOULD send an ICMP Port Unreachable message.

Ähnlich wie bei TCP-Scans gibt sx Informationen über alle ICMP-Antwortpakete für den UDP-Scan zurück. Die Informationen enthalten IP-Adresse, ICMP-Pakettyp und -Code, die im Antwortpaket gesetzt sind.

Um beispielsweise einen DNS-Server auf einem Host zu erkennen, führen Sie Folgendes aus:

root@kitploit:~
cat arp.cache | sx udp --json -p 53 192.168.0.171

Beispielausgabe:

root@kitploit:~
{"scan":"udp","ip":"192.168.0.171","icmp":{"type":3,"code":3}}

In diesem Fall stellen wir fest, dass der Host ein ICMP-Antwortpaket mit dem Typ Destination Unreachable und dem Code Port Unreachable gesendet hat (typische Antwort für einen geschlossenen Port gemäß RFC1122).

Firewalls setzen normalerweise einen ICMP-Code, der sich von Port Unreachable unterscheidet, und können so leicht erkannt werden.

Ratenbegrenzung

Manchmal muss die Geschwindigkeit begrenzt werden, mit der generierte Pakete gesendet werden. Dies kann mit der Option --rate erfolgen.

Beispielsweise um die Geschwindigkeit auf 1 Paket pro 5 Sekunden zu begrenzen:

root@kitploit:~
cat arp.cache | sx tcp --rate 1/5s --json -p 22,80,443 192.168.0.171

Subnetze ausschließen

Manchmal müssen einige IP-Adressen und Subnetze vom Scannen ausgeschlossen werden. Dies kann mit der Option --exclude erfolgen. Sie gibt eine Datei mit IPs oder Subnetzen in CIDR-Notation an, die ausgeschlossen werden sollen, eine pro Zeile.

Um beispielsweise RFC-1918-Adressen auszuschließen, erstellen Sie eine Datei ips.txt mit folgendem Inhalt:

root@kitploit:~
10.0.0.0/8
172.16.0.0/16
192.168.0.0/16

Sie können auch Kommentare und Leerzeilen einfügen:

root@kitploit:~
# exclude RFC 1918 addresses
10.0.0.0/8 # comment 1
172.16.0.0/12 # comment 2
192.168.0.0/16 # comment 3

0.0.0.0/8 # used in initialization procedures (RFC 6890)

# exclude RFC 5735 addresses
127.0.0.0/8 # loopback address
192.0.0.0/24 # reserved block for IETF protocol assignments
224.0.0.0/4 # allocated for use in IPv4 multicast address assignments
240.0.0.0/4 # reserved for future use

# exclude Amazon network
3.0.0.0/8

# ip addresses are valid as well
1.1.1.1

und führen Sie einen Scan mit der Option --exclude ips.txt durch.

Live-LAN-TCP-SYN-Scanner

Als Beispiel für die Zusammensetzung von Scans können Sie ARP- und TCP-SYN-Scans kombinieren, um einen Live-TCP-Portscanner zu erstellen, der periodisch das gesamte LAN-Netzwerk scannt.

Starten Sie einen Live-ARP-Scan und speichern Sie die Ergebnisse in der Datei arp.cache:

root@kitploit:~
sx arp 192.168.0.1/24 --live 10s --json | tee arp.cache

Starten Sie in einem anderen Terminal einen TCP-SYN-Scan:

root@kitploit:~
while true; do sx tcp -p 1-65535 -a arp.cache -f arp.cache; sleep 30; done

SOCKS5-Scan

sx kann aktive SOCKS5-Proxys erkennen. Zum Scannen müssen Sie einen IP-Bereich oder eine JSONL-Datei mit IP/Port-Paaren angeben.

Zum Beispiel ein IP-Bereich-Scan:

root@kitploit:~
sx socks -p 1080 10.0.0.1/16

IP/Port-Paare aus einer Datei mit JSON-Ausgabe scannen:

root@kitploit:~
sx socks --json -f ip_ports_file.jsonl 

Jede Zeile der Eingabedatei ist ein JSON-String, der die Felder ip und port enthalten muss.

Beispiel für eine Eingabedatei:

root@kitploit:~
{"ip":"10.0.1.1","port":1080}
{"ip":"10.0.2.2","port":1081}

Sie können auch einen Bereich von Ports zum Scannen angeben:

root@kitploit:~
sx socks -p 1080-4567 -f ips_file.jsonl

In diesem Fall werden nur IP-Adressen aus der Datei übernommen, und das Feld port ist nicht mehr erforderlich.

Hilfe zur Verwendung

root@kitploit:~
sx help

📜 Referenzen

  • Network Security Assessment: Know Your Network 1st Edition von Chris McNab
  • ICMP Usage in Scanning - The Complete Know-How von Ofir Arkin
  • Transmission Control Protocol ( rfc793 )
  • User Datagram Protocol ( rfc768 )
  • Requirements for Internet Hosts -- Communication Layers ( rfc1122 )
  • SOCKS Protocol Version 5 ( rfc1928 )
  • Internet Control Message Protocol ( rfc792 )

🤝 Mitwirken

Beiträge, Probleme und Funktionswünsche sind willkommen.

💎 Danksagungen

Das Logo wurde von mikhailtsoy.com entworfen.

Lizenz

Dieses Projekt ist unter der MIT-Lizenz lizenziert. Siehe die Datei LICENSE für den vollständigen Lizenztext.

Tool herunterladen