HTTP-Enumeration und Directory Traversal

LinuxBeginner
Jetzt üben

Einführung

Willkommen zu diesem Lab über Webserver-Enumeration und grundlegenden Dateizugriff. In dieser Übung lernen Sie grundlegende Web-Aufklärungstechniken kennen, die zur Entdeckung und Interaktion mit Webdiensten verwendet werden.

In diesem Lab simulieren Sie ein grundlegendes Web-Aufklärungsszenario. Sie beginnen mit der Aufklärung eines Zielsystems, um zu bestätigen, dass es online ist und laufende Dienste zu identifizieren. Mit dem Tool nmap entdecken Sie einen Webserver und enumerieren dessen Version. Anschließend verwenden Sie den Befehl curl, um auf eine Flag-Datei zuzugreifen, die auf dem Webserver platziert wurde.

Nach Abschluss werden Sie verstehen, wie Sie:

  • Netzwerkverbindungen mit ping überprüfen.
  • nmap zum Scannen von Webdiensten und zur Durchführung von Enumeration verwenden.
  • Grundlegende Web-Aufklärungstechniken verstehen.
  • curl zum Zugriff auf Dateien auf einem Webserver und zum Abrufen einer Flag verwenden.

Lassen Sie uns beginnen.

Konnektivität zum Ziel mit Ping überprüfen

In diesem Schritt beginnen Sie damit, zu bestätigen, dass das Zielsystem von Ihrem Rechner aus erreichbar ist. Der Befehl ping ist ein Standardwerkzeug zum Testen der Netzwerkverbindung. Er sendet ICMP Echo Request-Pakete an einen Host und wartet auf Antworten. Dies ist der erste und grundlegendste Schritt bei jeder Netzwerkaufklärungsaufgabe.

Ihre Umgebung umfasst ein Zielsystem, das unter dem Hostnamen target erreichbar ist.

Führen Sie den folgenden Befehl im Terminal aus, um vier Pakete an target zu senden:

ping -c 4 target

Sie sollten eine Ausgabe sehen, die bestätigt, dass vier Pakete gesendet und vier empfangen wurden, was auf eine stabile Verbindung hindeutet. Die IP-Adresse kann abweichen, aber das Ergebnis sollte 0 % Paketverlust anzeigen.

PING target (172.17.0.2) 56(84) bytes of data.
64 bytes from target (172.17.0.2): icmp_seq=1 ttl=64 time=0.105 ms
64 bytes from target (172.17.0.2): icmp_seq=2 ttl=64 time=0.069 ms
64 bytes from target (172.17.0.2): icmp_seq=3 ttl=64 time=0.068 ms
64 bytes from target (172.17.0.2): icmp_seq=4 ttl=64 time=0.067 ms

--- target ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3075ms
rtt min/avg/max/mdev = 0.067/0.077/0.105/0.016 ms

Nachdem die Konnektivität bestätigt wurde, sind Sie bereit, mit dem Scannen des Ziels fortzufahren.

Offene Ports mit Nmap scannen

In diesem Schritt verwenden Sie nmap, um den Zielhost nach offenen Ports zu scannen und die darauf laufenden Dienste zu identifizieren. Nmap ist ein leistungsstarkes Werkzeug für die Netzwerkerkundung und Sicherheitsüberprüfung. Dieser Scan hilft Ihnen, potenzielle Eintrittspunkte wie einen Webserver zu finden.

Wir führen einen gezielten Scan auf Port 80 durch, dem Standardport für HTTP-Verkehr. Wir werden auch Skripte verwenden, um weitere Informationen über den Dienst zu sammeln.

Führen Sie den folgenden nmap-Befehl in Ihrem Terminal aus:

nmap -sV -p 80 --script http-enum target

Lassen Sie uns diesen Befehl aufschlüsseln:

  • -sV: Aktiviert die Versionserkennung, die versucht, die Version des auf dem Port laufenden Dienstes zu ermitteln.
  • -p 80: Gibt an, dass wir nur Port 80 scannen möchten.
  • --script http-enum: Führt ein Skript aus, das Verzeichnisse und Dateien auf dem Webserver enumeriert.
  • target: Der Hostname unseres Zielrechners.

Die Ausgabe wird in etwa wie folgt aussehen:

Starting Nmap 7.80 ( https://nmap.org ) at 2025-09-18 09:40 CST
Nmap scan report for target (172.17.0.2)
Host is up (0.00018s latency).

PORT   STATE SERVICE VERSION
80/tcp open  http    Apache httpd 2.4.41 ((Unix))
|_http-server-header: Apache/2.4.41 (Unix)

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 7.32 seconds

Die Scanergebnisse bestätigen, dass Port 80/tcp offen ist und Apache httpd 2.4.41 läuft. Dieser Webserver hostet Dateien, auf die wir im nächsten Schritt zugreifen können.

Verbindung zum Ziel über HTTP

In diesem Schritt interagieren Sie mit dem Webserver mithilfe von curl, um auf Dateien zuzugreifen. curl ist ein Befehlszeilenwerkzeug für die Datenübertragung mit URLs.

Zuerst machen wir eine Standardanfrage an die Hauptseite des Webservers, um zu sehen, wie sie aussieht.

curl http://target

Der Server sollte mit dem Standardinhalt der Apache-Seite antworten.

<html>
  <body>
    <h1>It works!</h1>
  </body>
</html>

Nun greifen wir auf die Flag-Datei zu, die im Stammverzeichnis des Webservers platziert wurde. Obwohl die Datei in dieser Konfiguration direkt zugänglich ist, zeigen wir hier, wie Sie normalerweise darauf zugreifen würden:

curl http://target/flag.txt

Dieser Befehl ruft die Flag-Datei direkt aus dem Dokumentenstammverzeichnis des Webservers ab.

Zielsystem erkunden und Flagge finden

In diesem letzten Schritt rufen Sie die Flagge ab und zeigen sie an. Die Ausgabe des vorherigen curl-Befehls sollte die Flagge direkt in Ihrem Terminal angezeigt haben.

Die erwartete Ausgabe des Befehls ist der Inhalt der Flag-Datei:

labex{p4th_tr4v3rs4l_w1zardry}

Wenn die Ausgabe lang ist oder Sie sie für später speichern möchten, können Sie die Ausgabe des curl-Befehls in eine Datei umleiten. Dies ist eine gängige Praxis beim Umgang mit größeren Dateien.

Führen Sie den Befehl erneut aus, aber speichern Sie diesmal das Ergebnis in einer Datei namens flag.txt:

curl http://target/flag.txt > flag.txt

Nun können Sie den Inhalt der heruntergeladenen Datei mit dem cat-Befehl anzeigen:

cat flag.txt

Das Terminal zeigt die Flagge an:

labex{p4th_tr4v3rs4l_w1zardry}

Herzlichen Glückwunsch! Sie haben erfolgreich einen Webserver identifiziert, auf die Flag-Datei zugegriffen und die Flagge erfasst. Kopieren Sie den Flag-Wert, um das Lab abzuschließen.

Zusammenfassung

In diesem Lab haben Sie eine grundlegende Web-Reconnaissance-Übung erfolgreich abgeschlossen. Sie haben die folgenden Fähigkeiten gelernt und geübt:

  • Reconnaissance (Aufklärung): Sie haben ping verwendet, um zu überprüfen, ob das Ziel online und erreichbar war.
  • Enumeration (Aufzählung): Sie haben nmap mit Version-Scanning (-sV) und Skripten (--script http-enum) verwendet, um einen offenen HTTP-Port und die spezifische Version des Apache-Webservers zu identifizieren.
  • Dateizugriff: Sie haben curl verwendet, um auf Dateien auf dem Webserver zuzugreifen.
  • Flaggenabruf: Sie haben die Flag-Datei erfolgreich vom Webserver abgerufen.

Diese Übung demonstriert grundlegende Web-Reconnaissance-Techniken, die für das Verständnis der Funktionsweise von Webservern und der programmatischen Interaktion mit ihnen unerlässlich sind. Diese Fähigkeiten sind für die Webentwicklung, die Systemadministration und Sicherheitstests von grundlegender Bedeutung.