Tool-Vorstellung: nmap
Zur Identifikation der erreichbaren Server in einem Netzbereich kann nmap mittels ICMP einen Ping-Sweep durchführen. Hierbei wird an jede IP-Adresse im Netz das ICMP-Paket Echo Request versendet und auf den Echo Reply des Servers gewartet. Selbstverständlich bleiben bei diesem Vorgehen alle Server unentdeckt, welche Ping deaktiviert haben. Mittels der folgenden Befehlszeile kann beispielsweise ein Netzbereich nach erreichbaren Hosts gescannt werden:
nmap -sn ${Netzbereich}
Die einzelnen IP-Adressen können wir dann nach erreichbaren Diensten über einen Port-Scan absuchen: Bei TCP geschieht ein erfolgreicher Verbindungsaufbau in drei Schritten (Three-Way-Handshake). Dabei sendet der Client als initiale Verbindungsanfrage ein Syn-Paket an den offenen Port des Servers und der Server bestätigt die Anfrage mit einem Syn/Ack-Paket. Im abschließenden dritten Schritt muss der Client für einen erfolgreichen Verbindungsaufbau ebenfalls nur noch mit einem Ack-Paket antworten. Wir können nmap über die Option -sT mitteilen, den Three-Way-Handshake für einen Port durchzuspielen.
Natürlich werden nicht alle Ports auf einem Zielsystem offen sein, sodass wir von nmap im Normalfall einen der drei Zustände open, closed oder filtered angezeigt bekommen. Am Beispiel des TCP-Three-Way-Handshake können wir jeden dieser Zustände nachvollziehen:
- Port ist open: Der Server sendete im zweiten Schritt des Three-Way-Handshakes ein Syn/Ack-Paket und akzeptiert daher die Verbindung.
- Port ist closed: Der Server sendete im zweiten Schritt des Three-Way-Handshakes ein RST-Paket, da der Port geschlossen ist.
- Port ist filtered: Der Server sendete im zweiten Schritt des Three-Way-Handshakes überhaupt kein Paket, da bspw. eine Firewall vorgeschaltet ist, die den Verbindungsaufbau ablehnt.
Im Gegensatz zu TCP ist UDP verbindungslos, wodurch sich ein Port-Scan von UDP-Ports schwierig gestaltet. Bei UDP werden wir auf ein versandtes Datagramm nur eine Antwort erhalten, wenn ein Dienst auf dem Port lauscht, das Datagramm sein Ziel erreicht hat, von der Gegenseite verstanden wurde und eine Antwort dafür vorgesehen ist. Die Ergebnisse bei einem UDP-Scan sind somit grundsätzlich unzuverlässiger. Sofern wir aber keine Antwort vom Server erhalten haben, können wir auf eventuell vorhandene ICMP-Nachrichten vom Server zurückgreifen. Im Falle eines geschlossenen UDP-Ports wird der Server beispielsweise mit der ICMP-Nachricht port unreachable antworten. Über die Option -sU können wir bei nmap einen UDP-Port-Scan veranlassen.
Im Allgemeinen bietet nmap eine Vielzahl von Scan-Techniken, welche über die Optionen gesteuert werden können. Eine detaillierte Auskunft über den Funktionsumfang von nmap liefert dessen Manpage (→man nmap). Beispielsweise versucht der nmap-Befehl nmap -p22 -sTV 10.13.53.32, eine vollständige TCP-Verbindung mit dem Zielsystem 10.13.53.32 und dem Port 22 aufzubauen. Sofern dies erfolgreich war und ein Dienst antwortet, soll nmap über seine Versionserkennung versuchen, die Softwareversion des lauschenden Dienstes zu identifizieren.
Der folgende nmap-Befehl scannt zum Beispiel den angegebenen Host so schnell wie möglich nach allen UDP-Ports. Neben der offiziellen Erklärung der verwendeten Parameter sind die nützlichsten auch unten aufgeführt:
nmap -Pn -sU -p- --open --max-rtt-timeout 300ms --min-rtt-timeout 50ms --initial-rtt-timeout 250ms --max-retries 2 api.dubius-payment.com
-Pn: Treat all hosts as online -- skip host discovery
-T5 <0-5>: Set timing template (higher is faster)
-sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon scans
-sU: UDP Scan
-p- scan all ports (1 - 65535) or e.g. -p 80,443
--script=${Lua scripts}: Enable script scanning
-sV: Probe open ports to determine service/version info
-O: Enable OS detection
-6: Enable IPv6 scanning
Grundsätzlich kann Ping auf den Zielsystemen deaktiviert sein, weswegen ein Portscan gegen jede IP-Adresse durchgeführt werden sollte. Infolgedessen sollte immer die nmap-Option '-Pn' bei Portscans gesetzt werden. Zudem ist es empfehlenswert, immer einzelne Portscans von IP-Adressen durchzuführen, da es zeitlich ineffiziet ist, auf die Ausgabe eines Portscans gegen ein Netzbereich zu warten. Ein Ansatz wäre es, alle IP-Adressen eines Netzbereichs in eine Datei mittels des folgenden Befehls zu schreiben:
nmap -sL -n ${network}> | grep "Nmap scan" | cut -d" " -f5 > targets.txt
Im Anschluss könnten die Portscans gegen die Zielsysteme wie folgt iteriert werden:
for ip in $(cat targets.txt); do ${nmap command} >> $ip-[slow|fast]-[default|full]-[tcp|udp].txt; done
Im obigen Beispiel werden die Zielsysteme aus einer Liste gelesen. Demnach könnten auch mehrere Portscans von verschiedenen IT-Systemen parrallel ausgeführt werden, wenn die nmap-Befehle die IP-Adressen aus verschiedenen Dateien beziehen. Zum Beispiel unterteilt der folgende Befehl eine Liste in 10er-Pakete auf:
split -l 10 -d targets.txt segment
Pentest Training
Werfen Sie einen Blick auf die Kapitel vom Pentest Training und lernen Sie Pentesting:
- Vorwort
- Einführung
- Rechtliche Rahmenbedingungen
- Hacking vs. Penetration-Testing
- Klassifizierung
- Aussagekraft von Penetrationstest
- Penetration-Testing-Standards
- Der Hacking-Leitfaden
- Hacking I: Scannen von Netzwerken
- Hacking II: Passwortangriffe
- Hacking III: Webanwendungsangriffe
- Hacking IV: Privilegienausweitung
- Hacking V: Tunnel-Techniken
- Hacking VI: Vulnerability-Scanner und Penetration-Testing-Frameworks
- Vorführung eines Pentests
- Risikobewertung von identifizierten Schwachstellen
- Aufbau Dokumentation und Berichterstellung
- Plauderei aus dem Nähkästchen: Insights von Dubius Payment Ltd.
binsec academy GmbH – Professionelles Pentest Training Lab
Die binsec academy GmbH bietet mit ihrem Pentest Training Lab eine hochgradig praxisorientierte Online-Plattform für realistisches Penetration Testing. In isolierten Laborumgebungen simulieren wir komplexe Unternehmensnetzwerke und moderne Angriffsvektoren, um die praktischen Fähigkeiten angehender und professioneller Penetrationstester zu schärfen. Durch das Bestehen unserer anspruchsvollen, rein praktischen Prüfung erlangen Teilnehmer das anerkannte Zertifikat zum Binsec Academy Certified Pentest Professional (BACPP) – der fundierte Nachweis für die Fähigkeit, kritische Sicherheitslücken in IT-Infrastrukturen methodisch zu identifizieren.
Das Pentest Training Lab entdecken
binsec GmbH – Experten für Penetrationstests
Als operativer Pentesting-Kern der binsec group bietet die binsec GmbH seit 2013 hochwertige, von Experten durchgeführte Penetrationstests. Wir verzichten bewusst auf automatisierte Scans: Unsere festangestellten, zertifizierten Senior-Pentest-Experten liefern manuelle Deep-Dive-Analysen von Webanwendungen, APIs, mobilen Apps, komplexen Netzwerkinfrastrukturen, Cloud-Umgebungen und hochentwickelten Red-Team-Simulationen. Spezialisiert auf stark regulierte Sektoren wie Payment, Banking und Healthcare, bieten wir klare Risikobewertungen und handlungsorientierte Berichte, um Ihre geschäftskritischen Systeme effektiv zu bewerten.
Professionelle manuelle Penetrationstests anfordern