1.4.1 Port Scan

Bevor Angriffe begonnen werden, wird versucht möglichst viele Informationen über das Opfer zu erlangen. Das Überprüfen offener Ports geht fast immer einem größeren Angriff voraus. Es gibt verschiedene Wege offene Ports zu erkennen:

  • Mit dem TCPTransmission Control Protocol Connect Scan wird eine vollständige TCP-Verbindung zum Opfer aufgebaut. Das kann das Opfer leicht erkennen, besonders, wenn in kurzen Abständen nacheinander Ports in aufsteigender Reihenfolge gescannt werden. Wenn Ports allerdings in zufälliger Reihenfolge in zufälligen Zeitabständen gescannt werden, ist dieser Angriff erheblich schwieriger festzustellen.
  • Beim TCP SYNSynchronize Scan wird nur ein SYN-Paket zum Opfer gesendet. Wenn ein SYN/ACKAcknowledgement-Paket zurückgesendet wird, ist das ein Zeichen dafür, dass der gescannte Port im LISTEN-Zustand ist. Der Angreifer sendet nun ein RSTReset-Paket an das Opfer, um keine vollständige Verbindung zustande kommen zu lassen. Diese Technik fällt viel weniger auf und wird u.U. vom Opfer nicht protokolliert.
  • Mit einem TCP SYN ACK Scan kann eine statische Firewall durchdrungen werden, der bei einkommenden Paketen nur das ACK-Flag überprüft.
  • Beim TCP FIN Scan wird nur ein FIN-Paket übertragen. Daraufhin sollte ein RST-Paket zurückgesendet werden, wenn der Port nicht geöffnet ist.
  • Beim TCP Xmas Tree Scan werden im TCP-Header das FIN-, URG- und das PSH-Flag gesetzt. Daraufhin sollte ein RST-Paket zurückgesendet werden, wenn der Port nicht geöffnet ist.
  • Beim TCP Null Scan werden dagegen alle Flags ausgeschaltet. Daraufhin sollte ein RST-Paket zurückgesendet werden, wenn der Port nicht geöffnet ist. Dieser Test liefert manchmal Ergebnisse, wo andere Scan-Techniken versagen.
  • Mit einem UDPUser Datagram Protocol Scan wird ein UDP-Paket an einen Port gesendet. Wenn die ICMPInternet Control Message Protocol-Nachricht "Port Unreachable" zurückgesendet wird, kann man davon ausgehen, dass der entsprechende Port nicht aktiv ist. Im Umkehrschluss kann man u.U. davon ausgehen, dass der Port aktiv ist, wenn keine ICMP-Nachricht zurückgesendet wird. diese Schlussfolgerung ist allerdings unzuverlässig, da UDP-Pakete aus vielen Gründen verloren gehen können.
  • Normalerweise ist es für einen Angreifer bei einem Port Scan nicht möglich seine Identität durch Fälschen der IPInternet Protocol Adresse zu verheimlichen, denn er würde dann keine Antwort des angegriffenen Systems erhalten. Es gibt Programme, die deshalb viele Scans mit gefälschten Adressen durchführen und nur einen Scan mit der echten Adresse, was zur Verwirrung des Zielsystems führen soll. Allerdings gibt es auch die Möglichkeit einen gespooften Scan durchzuführen, bei dem das Opfer nicht die Adresse des Angreifers erkennen kann. Dazu wird ein dritter Host benötigt, der keine aktiven Netzwerkverbindungen hat. Dieser Scan nutzt die Eigenart des IP-Protokolls aus, dass das Identifikations-Feld im IP-Header, das eigentlich nur bei der Fragmentierung benötigt wird, bei bestimmten Betriebssystemen bei jedem gesendeten IP-Paket um eins erhöht wird. Beim Scan laufen folgende Schritte ab: Der Angreifer sendet an den dritten Host in regelmässigen Abständen SYN-Pakete, die dieser mit SYN/ACK-Paketen beantwortet, wobei das Identifikations-Feld jeweils um eins inkrementiert wird. Nun werden vom Angreifer SYN-Pakete an das Opfer gesendet, in denen als Absender die Adresse des dritten Host eingetragen ist – als gespoofte IP-Adresse. Wenn der Port beim Opfer offen ist, schickt das Opfer ein SYN/ACK-Paket an den dritten Host, das dieser mit einem RST-Paket beantwortet und dabei das Identifikations-Feld inkrementiert. Wenn jetzt der Angreifer an den dritten Host ein SYN-Paket sendet, wird er ein SYN/ACK-Paket als Antwort erhalten, in dem das Identifikations-Feld um mehr als eins erhöht wurde. Dadurch erkennt der Angreifer einen offenen Port beim Opfer. Falls der gescannte Port beim Opfer nicht aktiv ist, wird das Opfer ein RST-Paket an den dritten Host senden, der wiederum das Paket nicht beantwortet und insbesondere das Identifikations-Feld dabei nicht erhöht.
  • Es sind noch weitere Scan-Techniken möglich, die auch spezielle Eigenschaften der Implementationen ausnutzen.



SpoofedScan.png

G05510 1.gif
Der Angreifer will einen Port Scan beim Opfer durchführen, aber seine eigene IP-Adresse nicht bekanntgeben. Für die erfolgreiche Durchführung wird ein dritter Host benötigt.
G05510 2.gif
Der Angreifer sendet ein SYN-Paket an den dritten Host, das dieser mit einem SYN/ACK-Paket beantwortet, wobei die Identifikationsnummer im IP-Header gesetzt ist.
G05510 3.gif
Der Angreifer sendet ein weiteres SYN-Paket an den dritten Host, das dieser wieder mit einem SYN/ACK-Paket beantwortet, wobei die Identifikationsnummer im IP-Header inkrementiert wird.
G05510 4.gif
Jetzt sendet der Angreifer ein Paket an das Opfer, um festzustellen, ob der gewünschte Port aktiv ist. Dabei gibt er als Absender die IP-Adresse des dritten Host an.
G05510 5.gif
Wenn der Port aktiv ist, sendet das Opfer ein SYN/ACK-Paket an den dritten Host.
G05510 6.gif
Der dritte Host kann mit diesem Paket nichts anfangen und sendet ein RST-Paket an das Opfer wobei er die Identifikationsnummer inkrementiert.
G05510 7.gif
Wenn der Angreifer nun an den dritten Host ein SYN-Paket sendet, erhält er ein Paket, in dem die Identifikationsnummer um zwei erhöht wurde. Daraus schliesst der Angreifer, dass der untersuchte Port beim Opfer aktiv ist.
G05510 8.gif

Bei Port Scans ist es wichtig bemerken, dass es nicht nur die Situationen geben kann, in der ein Port entweder offen oder geschlossen ist. Es kann auch sein, dass eine Firewall zwischendrin das IP-Paket des Angreifers verwirft. Deshalb unterscheidet beispielsweise der Test von Heise.de, mit man seinen eigenen Netzwerkanschluss testen kann, zwischen den Resultaten "open", "closed" und "filtered".

Frage
Ist es Sicht des Angreifers unterscheidbar, ob ein Port geschlossen ist oder der Zugriff von einer Firewall verhindert wurde?