Ein einfacher SYN-Scanner für Linux

Dieser Portscanner arbeitet mit halb-offenen Verbindungen, d.h. es werden keine vollständigen Verindungen mit dem Zielsystem aufgebaut. Dies hat den "Vorteil", daß die nicht zustandegekommenen Verbindungen nicht in den Logdateien der jeweiligen Dienste auftauchen. Aus diesem Grund nennt man solche Scanner oft auch Stealth-Scanner.

Das Programm versendet TCP-Datagramme mit gesetztem SYN-Flag. Dies ist die Ankündigung, eine Verbindung aufbauen zu wollen. Dieser erste Schritt im 3-Wege-Handshake des TCP wird vom Zielsystem bei offenem Port mit einem SYN/ACK-Datagramm beantwortet, dem zweiten Schritt des Handshakes. Wenn der Port auf dem Zielsystem nicht offen ist, wird entweder ein RST-Datagramm verschickt, oder es erfolgt beim Einsatz von Filtersoftware gar keine Antwort.

Zum Senden der TCP-Datagramme wird ein Raw Socket für IPPROTO_TCP eingesetzt. In der ersten Version des Scanners wurden auch die IP-Header generiert (Socket-Option IP_HDRINCL). Dies ist nicht notwendig, wenn der sendto-Befehl genutzt wird, und keine speziellen Manipulationen am IP-Header erfolgen müssen. Aus diesem Grund verzichtet die zweite Version auch darauf, die IP-Header selbst zu erzeugen. Das Programm funktioniert in dieser Form ausschließlich unter Linux. Obwohl es beispielsweise unter FreeBSD anstandslos compiliert funktioniert es nicht. Raw Sockets unter *BSD können TCP und UDP Datagramme nur senden, nicht jedoch empfangen. Dies ist jedoch für den Einsatzzweck den ich vorsehe notwendig. Um einen solchen Portscanner unter *BSD zu implementieren, muß eine Art Netzwerk-Sniffer mit den Funktionen des Berkeley Packet Filter (bpf) geschrieben werden.

Rechtlicher Hinweis: die Legalität von Portscans ist umstritten. Während der Einsatz auf eigenen Computersystemen legal ist, werden Portscans an fremden Systemen oft als erste Vorbereitung eines (unbestreitbar illegalen) Einbruchs gewertet. Da durch die leichte Zweckentfremdung des TCP-Mechanismus manche Systeme möglicherweise gestört werden können, besteht bei geeigneter Wahrnehmungsverzerrung der Verdacht auf Computersabotage, was auch strafbar ist. Portscanner fallen nicht unter den "Hackerparagraph" 202c StGB.
Fazit: handelt nach eigenem Ermessen, und sagt nicht ihr seid nicht gewarnt worden.

Downloads

Version Datum Änderungen Datei Beschreibung
2.0 2010-05-23 Neuimplementierung mit parallel laufenden Paketen synscan-2.0.tar.gz Quellcode
1.0 2002-05-12 Erstes Release synscan-1.0.tar.gz Quellcode