Einleitung
In diesem Lab werden Sie eine der Angriffstypen von Burp Suite Intruder erkunden: den Battering Ram. Burp Intruder ist ein leistungsstarkes Werkzeug zur Automatisierung angepasster Angriffe auf Webanwendungen. Der Angriffstyp Battering Ram ist speziell für Situationen konzipiert, in denen derselbe Payload an mehreren Positionen innerhalb einer HTTP-Anfrage eingefügt werden muss.
Ein häufiger Anwendungsfall für diesen Angriff ist das Testen von Anmeldeformularen auf schwache Anmeldeinformationen, bei denen Benutzername und Passwort identisch sein könnten (z. B. admin/admin). In diesem Lab lernen Sie, wie Sie eine Anmeldeanfrage erfassen, Payload-Marker konfigurieren, den Angriffstyp Battering Ram auswählen, eine Payload-Liste einrichten und schließlich den Angriff starten, um die Ergebnisse zu analysieren.
Am Ende dieses Labs werden Sie ein praktisches Verständnis dafür haben, wie und wann Sie den Battering Ram-Angriff in Ihrem Workflow für Sicherheitstests von Webanwendungen einsetzen können.
Senden einer Login-Anfrage an Intruder
In diesem Schritt starten Sie die notwendigen Werkzeuge und erfassen eine Beispiel-Login-Anfrage, um sie an Burp Intruder zur Angriffskonfiguration zu senden.
Öffnen Sie zunächst ein Terminal, um Burp Suite zu starten. Sie finden es normalerweise im Anwendungsmenü oder starten es über die Befehlszeile. Für dieses Lab gehen wir davon aus, dass es startbereit ist.
Öffnen Sie als Nächstes den im Lab-Umfeld bereitgestellten Webbrowser Firefox.
Konfigurieren wir nun Burp Suite, um den Webverkehr abzufangen.
- Gehen Sie in Burp Suite zum Tab Proxy und dann zum Unter-Tab Intercept. Stellen Sie sicher, dass das Abfangen aktiviert ist (der Button sollte "Intercept is on" anzeigen).
- Konfigurieren Sie in Firefox den Browser so, dass er den Proxy von Burp verwendet. Gehen Sie zu Einstellungen -> Netzwerkeinstellungen und stellen Sie die manuelle Proxy-Konfiguration so ein, dass
127.0.0.1als HTTP-Proxy und8080als Port verwendet wird. - Navigieren Sie in der Adressleiste von Firefox zur Anmeldeseite unserer Testanwendung:
http://127.0.0.1:5000/login. - Geben Sie
testfür den Benutzernamen undtestfür das Passwort ein und klicken Sie dann auf die Schaltfläche "Login".
Die Anfrage wird im Tab Proxy -> Intercept von Burp Suite erfasst. Der Bildschirm zeigt die rohe HTTP-Anfrage an.
Senden Sie diese erfasste Anfrage schließlich an Intruder. Klicken Sie mit der rechten Maustaste irgendwo in das Anfragefenster und wählen Sie im Kontextmenü Send to Intruder aus. Sie können auch die Tastenkombination Strg+I verwenden.
Sie können nun zum Tab Intruder wechseln, wo Sie die geladene Anfrage sehen, die zur Konfiguration bereit ist.
An Positionen, Payload-Marker zu den Feldern Benutzername und Passwort hinzufügen
In diesem Schritt definieren Sie die Positionen in der HTTP-Anfrage, an denen Burp Intruder seine Payloads platzieren soll. Für einen Battering Ram-Angriff markieren wir sowohl die Felder für Benutzername als auch für Passwort.
Navigieren Sie zum Tab Intruder und dann zum Unter-Tab Positions. Sie sehen die Anfrage, die Sie vom Proxy-Tab gesendet haben. Burp Suite fügt automatisch Payload-Marker (hervorgehoben mit §-Symbolen) zu den Teilen der Anfrage hinzu, die es für interessant hält.
Für diesen spezifischen Angriff möchten wir die Payload-Positionen präzise steuern.
- Klicken Sie zuerst auf die Schaltfläche Clear § auf der rechten Seite. Dadurch werden alle automatisch generierten Payload-Marker entfernt.
- Suchen Sie nun die Zeile im Anfragekörper, die den Benutzernamen und das Passwort enthält, welche wie folgt aussehen sollte:
username=test&password=test. - Markieren Sie den Wert
testfür den Parameterusernamemit Ihrer Maus. - Klicken Sie auf die Schaltfläche Add §. Die Zeile sollte nun wie folgt aussehen:
username=§test§&password=test. - Markieren Sie als Nächstes den Wert
testfür den Parameterpassword. - Klicken Sie erneut auf die Schaltfläche Add §.
Nach Abschluss dieser Schritte sollte Ihr Anfragekörper Payload-Marker um beide Werte für Benutzername und Passwort haben, wie folgt:
username=§test§&password=§test§
Diese Konfiguration weist Intruder an, Payloads an diese beiden spezifischen Stellen einzufügen.
Angriffstyp auf 'Battering Ram' setzen
In diesem Schritt wählen Sie den geeigneten Angriffstyp für unser Szenario aus. Burp Intruder bietet vier verschiedene Angriffstypen, die jeweils einem bestimmten Zweck dienen.
- Sniper: Verwendet einen einzelnen Payload-Satz und zielt nacheinander auf eine Position.
- Battering ram: Verwendet einen einzelnen Payload-Satz und platziert denselben Payload gleichzeitig in allen markierten Positionen.
- Pitchfork: Verwendet mehrere Payload-Sätze und platziert jeweils einen Payload aus jedem Satz in entsprechende Positionen.
- Cluster bomb: Verwendet mehrere Payload-Sätze und testet jede mögliche Kombination von Payloads.
Für unser Ziel, zu testen, ob Benutzername und Passwort identisch sind, ist der Battering ram-Angriff die perfekte Wahl. Er nimmt eine einzelne Liste potenzieller Anmeldedaten und versucht, jede davon sowohl für den Benutzernamen als auch für das Passwort in derselben Anfrage zu verwenden.
Im Tab Intruder -> Positions finden Sie oben auf dem Bildschirm das Dropdown-Menü Attack type. Standardmäßig ist es auf "Sniper" eingestellt. Klicken Sie auf das Dropdown-Menü und wählen Sie Battering ram aus.
Nach der Auswahl ist Burp Intruder nun so konfiguriert, dass die Battering Ram-Angriffslogik verwendet wird.
Konfigurieren einer einfachen Payload-Liste (z. B. test, guest)
In diesem Schritt stellen Sie die Liste der Payloads bereit, die Intruder für den Angriff verwenden wird. Da wir den Angriffstyp Battering Ram verwenden, müssen wir nur einen Payload-Satz konfigurieren.
- Navigieren Sie zum Tab Intruder -> Payloads.
- Der Abschnitt "Payload Sets" sollte "Payload set: 1" und "Payload type: Simple list" anzeigen. Dies ist die Standardeinstellung und für unsere Zwecke korrekt.
- Im Abschnitt "Payload Options" darunter befindet sich ein Textfeld zum Hinzufügen Ihrer Payloads. Sie können Payloads einzeln hinzufügen, indem Sie sie eingeben und auf die Schaltfläche Add klicken, oder Sie können eine Liste direkt in das Feld einfügen.
Fügen wir für dieses Lab einige gängige Standard- oder schwache Anmeldedaten hinzu. Löschen Sie alle vorhandenen Payloads in der Liste und fügen Sie die folgenden hinzu:
testguestadminpassworduser
Ihre Liste "Payload Options" sollte nun wie folgt aussehen:
test
guest
admin
password
user
Mit dieser Konfiguration wird Intruder diese Liste durchlaufen. Für jeden Eintrag wird dieser Wert sowohl in die Felder username als auch password eingefügt, die wir in Schritt 2 markiert haben.
Angriff ausführen und analysieren, wie derselbe Payload in beiden Positionen verwendet wird
In diesem letzten Schritt starten Sie den Angriff und analysieren die Ergebnisse, um zu verstehen, wie der Battering Ram-Angriff funktioniert.
- Stellen Sie sicher, dass alle Ihre Konfigurationen in den Tabs "Positions" und "Payloads" korrekt sind.
- Klicken Sie in der oberen rechten Ecke des Intruder-Fensters auf die Schaltfläche Start attack.
Ein neues Fenster "Intruder attack" wird geöffnet und der Angriff beginnt sofort. Sie sehen eine Ergebnistabelle, die sich füllt, sobald jede Anfrage gesendet wird.
Analysieren wir die Ergebnisse:
- Ergebnistabelle: Beachten Sie die Spalten "Payload", "Status" und "Length". Die Spalte "Payload" zeigt den Wert aus Ihrer Payload-Liste für diese spezifische Anfrage an.
- Request/Response Tabs: Klicken Sie auf eine beliebige Zeile in der Ergebnistabelle (z. B. die Zeile mit dem Payload
guest). Am unteren Rand des Fensters können Sie die Request und Response für diesen Versuch untersuchen.- Im Tab Request sehen Sie, dass der Payload
guestsowohl in denusername- als auch in diepassword-Parameter eingefügt wurde:username=guest&password=guest. Dies bestätigt das Verhalten des Battering Ram. - Im Tab Response können Sie die Antwort des Servers sehen.
- Im Tab Request sehen Sie, dass der Payload
Suchen Sie nach Anomalien in den Ergebnissen. Eine erfolgreiche Anmeldung hat wahrscheinlich einen anderen Statuscode oder eine andere Antwortlänge. In unserem Fall sollte der Payload test zu einer erfolgreichen Anmeldung führen. Sie können ihn identifizieren, indem Sie nach der Meldung "Login successful!" im Antwortkörper suchen oder die Ergebnisse nach "Length" sortieren, um zu sehen, welche Antwort sich unterscheidet.
Diese Analyse zeigt, wie der Battering Ram-Angriff effizient Fälle testet, in denen eine einzelne Eingabe in mehreren Parametern verwendet wird, was ein gängiges Szenario beim Testen von Anmeldedaten ist.
Zusammenfassung
In diesem Lab haben Sie erfolgreich einen Battering Ram-Angriff mit Burp Suite Intruder konfiguriert und ausgeführt.
Sie haben gelernt, wie Sie:
- Eine HTTP-Anfrage mit Burp Proxy erfassen und an Intruder senden.
- Standard-Payload-Markierungen löschen und benutzerdefinierte Payload-Positionen präzise definieren.
- Den Angriffstyp Battering Ram auswählen und dessen spezifischen Anwendungsfall verstehen.
- Eine einfache Payload-Liste für den Angriff konfigurieren.
- Den Angriff starten und die Ergebnisse analysieren, um zu bestätigen, dass derselbe Payload für jede Anfrage in allen angegebenen Positionen verwendet wurde.
Der Battering Ram ist ein wertvolles Werkzeug im Arsenal eines Penetration Testers, insbesondere zum Testen von Anmeldeformularen und anderen Funktionen, bei denen ein einzelnes Datenelement als mehrere Parameter verwendet werden könnte. Die Beherrschung dieser Technik wird die Effizienz und Wirksamkeit Ihrer Sicherheitsbewertungen von Webanwendungen verbessern.
