
Eine Burp Suite-Erweiterung zur Identifizierung von Injection-Schwachstellen (LFI, RCE, SQLi), Authentifizierungs-/Autorisierungsproblemen und HTTP-403-Zugriffsverletzungen. Sie unterstützt dynamische Payload-Generierung, einschließlich BCheck-Syntax, und kann automatisch Bambdas-Skripte generieren. Zusätzlich bietet sie "Copy as JavaScript" zum Konvertieren von HTTP-Anfragen für verbesserte XSS-Tests.
Agartha ist spezialisiert auf fortschrittliche Payload-Generierung und Bewertung der Zugriffskontrolle. Es identifiziert geschickt Schwachstellen im Zusammenhang mit Injection-Angriffen und Authentifizierungs-/Autorisierungsproblemen. Der dynamische Payload-Generator erstellt umfangreiche Wortlisten für verschiedene Injection-Vektoren, darunter SQL Injection, Local File Inclusion (LFI) und Remote Code Execution (RCE). Darüber hinaus erstellt die Erweiterung eine umfassende Benutzerzugriffsmatrix, die potenzielle Zugriffsverletzungen und Privilegieneskalationspfade aufdeckt. Sie unterstützt auch bei der Durchführung von HTTP-403-Bypass-Prüfungen und deckt Authentifizierungsfehlkonfigurationen auf. Zudem kann sie HTTP-Anfragen in JavaScript-Code umwandeln, um das Auffinden von XSS-Schwachstellen zu erleichtern.
Zusammengefasst:
Hier ist eine kleine Anleitung zur Nutzung.
Sie sollten die 'Jython'-Datei herunterladen und zuerst Ihre Umgebung einrichten:
Sie können Agartha über den offiziellen Store installieren:
Oder für die manuelle Installation:
Schließlich sehen Sie den Reiter 'Agartha' im Hauptfenster und es wird auch im Rechtsklick registriert, unter:
'Auth Matrix'
'403 Bypass'
'Copy as JavaScript'
Es unterstützt sowohl Unix- als auch Windows-Dateisyntaxen und ermöglicht die dynamische Wortlistengenerierung für jeden gewünschten Pfad. Zusätzlich kann es versuchen, Web Application Firewall (WAF)-Implementierungen mit verschiedenen Kodierungen und anderen Techniken zu umgehen.

Es erstellt dynamische Wortlisten für die Befehlsausführung basierend auf dem bereitgestellten Befehl. Es kombiniert verschiedene Trenn- und Abschlusszeichen für Unix- und Windows-Umgebungen.

Es erzeugt Payloads für verschiedene Arten von SQL-Injection-Angriffen, einschließlich Stacked Queries, Boolean-Based, Union-Based und Time-Based. Es erfordert keine Benutzereingaben; Sie wählen einfach die gewünschten SQL-Angriffstypen und Datenbanken aus, und es wird eine Wortliste mit verschiedenen Kombinationen generiert.

BCheck ist das Framework von Burp Suite zum Erstellen und Importieren benutzerdefinierter Scan-Prüfungen. Diese benutzerdefinierten Prüfungen laufen parallel zu den integrierten Routinen von Burp Scanner und ermöglichen es Ihnen, Scans auf bestimmte Schwachstellen oder Testanforderungen zuzuschneiden. Durch die Verwendung von BChecks können Sie die Scan-Fähigkeiten von Burp erweitern und Ihren Workflow für gezieltere und effizientere Bewertungen optimieren. Jetzt können Sie den Code automatisch generieren:
Bitte beachten Sie, dass eine zunehmende Größe des Bambdas-Skripts Leistungsprobleme verursachen kann, insbesondere während des Scans. Größere Skripte können die Reaktionsfähigkeit verlangsamen, den Speicherverbrauch erhöhen und zu Verzögerungen bei der Ausführung von Aufgaben führen.
Nach dem Klicken auf die Schaltfläche „Generate payloads for BCheck“ wird der BCheck-Code automatisch in Ihre Zwischenablage kopiert.
Gehen Sie als Nächstes zu 'Extensions > BChecks > New > Blank' im Burp Suite-Menü und fügen Sie den generierten Code einfach ein.
Ihre Payloads sind jetzt in einen BCheck integriert. Sie können HTTP-Anfragen manuell senden oder scannen oder einen Burp-Scan starten, der BCheck-Kontrollen einbezieht, um die vom Tool generierten Injection-Payloads automatisch zu testen.
Ratschläge zur Feinabstimmung: Der generierte Code dient als Vorlage und kann Anpassungen erfordern, da das Verhalten zwischen verschiedenen Anwendungen und Servern variieren kann.
Die Verfeinerung von Filtern – wie die Angabe von HTTP-Antwortcodes oder Schlüsselwörtern in Antworten – kann helfen, Fehlalarme zu reduzieren und die Ergebnisse präziser und weniger störanfällig zu machen.
Dieser Teil konzentriert sich auf die Analyse der Benutzersitzung und URL-Beziehungen, um Zugriffsverletzungen zu identifizieren. Das Tool besucht systematisch alle URLs, die mit vordefinierten Benutzersitzungen verknüpft sind, und füllt eine Tabelle mit HTTP-Antworten. Im Wesentlichen wird eine Zugriffsmatrix erstellt, die bei der Identifizierung von Authentifizierungs- und Autorisierungsproblemen hilft. Letztendlich zeigt dieser Prozess, welche Benutzer auf welche Seiteninhalte zugreifen können.
Ein paar weitere Details:
Bitte beachten Sie, dass potenzielle Sitzungsbeendiger (wie Abmelden, Ausloggen usw.) und bestimmte Dateitypen (wie CSS, Bilder, JavaScript usw.) sowohl aus dem 'Spider' als auch aus der Benutzer-URL-Liste gefiltert werden.
Nach dem Klicken auf 'RUN' wird das Tool die Benutzer- und URL-Matrix mit verschiedenen Farben füllen. Zusätzlich zu den benutzerspezifischen Farben sehen Sie rote, orange und gelbe Zellen, die auf mögliche Zugriffsprobleme hinweisen.
Die Aufgabe umfasst einen Batch-Prozess, und es ist erwähnenswert, welche HTTP-Anfragemethoden verwendet werden. Das Tool bietet drei verschiedene Optionen für HTTP-Aufrufe:
Der HTTP-403-Forbidden-Statuscode zeigt an, dass der Server die Anfrage versteht, sich aber weigert, sie zu autorisieren. Im Wesentlichen bedeutet dies: "Ich erkenne Sie, aber Sie haben keine Berechtigung, auf diese Ressource zuzugreifen." Dieser Status weist oft auf Probleme wie "unzureichende Berechtigungen", "Authentifizierung erforderlich", "IP-Einschränkungen" usw. hin.
Das Tool adressiert den häufigen Zugriffsverweigerungsfehler durch verschiedene Techniken wie URL-Manipulation und Änderung von Anfrage-Headern. Diese Strategien zielen darauf ab, Zugriffsbeschränkungen zu umgehen und die gewünschten Inhalte abzurufen.
Es sind zwei verschiedene Anwendungsfälle zu erwähnen:
Es gibt 2 Möglichkeiten, HTTP-Anfragen an das Tool zu senden:
Die Seite, auf die wir zugreifen möchten, gehört einer privilegierten Benutzergruppe, und wir behalten unsere Sitzungsidentifikatoren bei, um zu überprüfen, ob eine Privilege Escalation möglich ist.
Einfach auf die Schaltfläche 'RUN' klicken, um die Aufgabe auszuführen.
Die folgende Abbildung zeigt, dass eine URL ein Zugriffsproblem haben kann, wobei die Farbe 'Rot' eine Warnung anzeigt.
Bitte beachten Sie, dass die Anzahl der Versuche von der jeweiligen Ziel-URL abhängt.
Die Funktion ermöglicht die Konvertierung von HTTP-Anfragen in JavaScript-Code, was besonders nützlich sein kann, um über XSS-Schwachstellen hinauszugehen und Header-Beschränkungen zu umgehen.
Um diese Funktion zu nutzen, klicken Sie einfach mit der rechten Maustaste auf eine beliebige HTTP-Anfrage und wählen Sie 'Extensions > Agartha > Copy as JavaScript'.
Es wird automatisch in Ihrer Zwischenablage gespeichert, einschließlich einiger zusätzlicher Hinweise zu Ihrer Referenz. Zum Beispiel:``` Http request with minimal parameters:
Http request with header fields:
Bitte beachten Sie, dass der JavaScript-Code innerhalb der ursprünglichen Benutzersitzung ausgeführt wird, wobei viele Header-Felder automatisch vom Browser ausgefüllt werden. In einigen Fällen kann der Server jedoch bestimmte obligatorische Header-Felder verlangen. Beispielsweise können bestimmte Anfragen fehlschlagen, wenn der 'Content-Type' falsch ist. Daher müssen Sie den Code möglicherweise anpassen, um die Kompatibilität mit den Anforderungen des Servers sicherzustellen.
<br/><br/>
## Bambdas Code Generator
Bambdas sind leichtgewichtige Skripte, die direkt in Burp Suite ausgeführt werden und es Benutzern ermöglichen, verschiedene Aufgaben schnell anzupassen und zu automatisieren. Sie können verwendet werden, um benutzerdefinierte Match-and-Replace-Regeln zu definieren, dynamische Tabellenspalten hinzuzufügen, Filter anzuwenden und die Oberfläche besser an spezifische Test-Workflows anzupassen.
<img width="1000" alt="Bambdas Code Generator" src="https://assets.kitploit.com/production/public/readmes/5162/1f24e30531216aea02630b65422c79753e12e44148338735a51450ba4d42be03.png">
Erklärungen, etwas detaillierter:
1. Bezüglich der GUI zur Skripterstellung können Sie hier allgemeine Einstellungen auswählen. Zum Beispiel:
- Nur Adressen im Geltungsbereich (in-scope) oder alle Domain-Adressen verarbeiten.
- Bestimmte Dateierweiterungen ausblenden oder nicht.
- Farben für URLs, die im Geltungsbereichs-Abschnitt definiert sind, befinden sich im ersten Teil von Gruppe 3.
- Farben für bereits getestete URLs, befinden sich im zweiten Teil von Gruppe 3.
- Farben für Filter, die hauptsächlich in Gruppe 2 definiert sind.
- Anzahl der vergangenen Tage zur Anzeige.
- Anzahl der vergangenen Tage, die vom Skript verarbeitet werden sollen.
2. Die Optionen im zweiten Abschnitt beziehen sich hauptsächlich auf die Verarbeitung von HTTP-Anfragen und -Antworten:
- Bietet Optionen, um anzugeben, ob die Suchkriterien auf die URL, die Anfrage oder die Antwort angewendet werden sollen. Die Auswahl einer dieser Optionen aktiviert die entsprechenden Optionen darunter. Wenn Sie beispielsweise nach 'Vulnerable JavaScript Functions' suchen möchten, ist dies nur in HTTP-Antworten möglich.
- Option zum Ausblenden bestimmter HTTP-Methoden.
- "HTML-Kommentare suchen", "Herunterladbare Dateierweiterungen" und "Verwundbare JS-Funktionen" werden im Allgemeinen in HTTP-Antworten durchsucht.
- "Wertvolle Schlüsselwörter"-Suchen können auf URLs, Anfragen und Antworten angewendet werden.
- "Verdächtige SQLi-Identifikatoren, verdächtige XSS-Identifikatoren, verdächtige LFI-Identifikatoren, verdächtige SSRF-Identifikatoren, verdächtige Open-Redirect-Identifikatoren und verdächtige RCE-Identifikatoren" können in URLs oder Anfragen gesucht werden. Im Gegensatz zu "Wertvollen Schlüsselwörtern", die Freitext durchsuchen, erkennen diese Optionen spezifisch Parameter.
3. Die Optionen im dritten Abschnitt dienen hauptsächlich der Definition des Geltungsbereichs, bereits getesteter URLs und URLs, die Sie ausblenden möchten.
- Sie können die zu testenden URLs im Abschnitt 'Definition des Testgeltungsbereichs' definieren. Wenn Sie / eingeben, wird die gesamte Anwendung als geltender Bereich betrachtet; wenn Sie einen bestimmten Pfad wie /users hinzufügen, werden nur dieses Verzeichnis und seine Inhalte einbezogen. Die Option 'Farbe für Testgeltungsbereich' gilt für diesen Abschnitt.
- Der Abschnitt 'Bereits getestete URLs' enthält die Liste der bereits getesteten URLs. Die Option 'Farbe für getestete Elemente' gilt hier.
- Der Abschnitt 'Black-Listed URLs' enthält URLs, die Sie aus dem Proxy-Verlauf ausblenden möchten.
**Beispiele für Definitionen**:
- /
- Stammpfad — umfasst alles.
Hinweis: Zusätzlich zu den Definitionen von Test- und getestetem Geltungsbereich kann es auch im Abschnitt 'Black-Listed URLs' angewendet werden, wo es alles ausschließt, es sei denn, ein Übereinstimmungskriterium ist definiert.
- /portal/users
- Enthält spezifisch diesen Pfad und seine Unterpfade, zum Beispiel:
- /portal/users?id=1
- /portal/users/?id=1
- /portal/users/dashboard
- /admin/\*/users/\*/class
- Der Stern (*) fungiert als Platzhalter für IDs, UUIDs usw., und der Rest des Pfades wird einbezogen.
- /api/v\*/user
- Der Stern (*) fungiert als Wildcard, die jede Zeichenfolge nach **v** bis zum nächsten '/' matcht, zum Beispiel:
- /api/v1/user
- /api/v2/user
- /health-check
- Enthält spezifisch diesen Pfad und seine Unterpfade, zum Beispiel:
- /health-check
- /health-check/Monitor
- /health-check/?Level=Info
4. Schließlich wird im vierten Abschnitt das durch Klicken auf die Schaltfläche 'Run' generierte Skript angezeigt, und das Skript ist nun einsatzbereit. Im Allgemeinen kann dieses Skript auf zwei verschiedene Arten hinzugefügt werden:
- Vorübergehend (projektbasiert): Gehen Sie im Anwendungsmenü zu Proxy > HTTP History > Bambda Mode > Apply & Close.
- Dauerhaft (anwendungsweit): Gehen Sie im Anwendungsmenü zu Extensions > Bambda Library > New > Blank > View filter + HTTP history > Save & Close.
**Bitte beachten Sie**: Das Aktivieren aller Optionen, insbesondere bei großen Projekten, kann zu erheblicher Systemressourcennutzung und erhöhter Verarbeitungszeit führen. Wenn das von Ihnen erstellte Skript nicht innerhalb einer angemessenen Zeit abgeschlossen wird, kann es vorteilhaft sein, es zu überarbeiten.
<img width="1000" alt="Bambdas Code Generator" src="https://assets.kitploit.com/production/public/readmes/5162/cb116ad18bc53ebf770b5bc1cb2b920cc9ef3a4569fab9b12d5fb9979823a58c.png">
**Optionspriorität**: Die höchste Priorität hat 'Farbe für getestete Elemente', gefolgt von 'Farbe für Testgeltungsbereich' und schließlich 'Farbe für Parameter/Schlüsselwörter'.
Die obige Abbildung veranschaulicht Folgendes:
- **Pink** zeigt den Testgeltungsbereich an (der erste Teil von Gruppe 3).
- **Gelb** repräsentiert den getesteten Geltungsbereich (der zweite Teil von Gruppe 3).
- **Cyan** hebt Übereinstimmungen mit den Suchkriterien hervor (Gruppe 2). Zusätzlich können Sie sehen, welches Kriterium im Abschnitt 'Notes' jedes HTTP-Aufrufs übereinstimmt.
Wenn Sie später ein bereits erstelltes Skript aktualisieren oder ändern, gibt es einige wichtige Punkte zu beachten:
- Wenn Sie Ihr Skript als dauerhaft (anwendungsweit) festlegen, müssen Sie es durch die folgenden Schritte neu laden:
Bambda Script mode > Load
<img width="800" alt="Bambdas Code Generator" src="https://assets.kitploit.com/production/public/readmes/5162/5a840779ef9b2df5ac22e94d8ebf6771a677d5d45d49f35cae6f4b3a2e820cd2.png">
- Wenn Sie Ihr Skript als vorübergehend (projektbasiert) verwenden, haben Sie im Allgemeinen zwei Optionen:
1. Wenn das geänderte Skript ab diesem Zeitpunkt aktiv sein soll, sind keine weiteren Schritte erforderlich – klicken Sie einfach auf Apply.
2. Wenn das geänderte Skript den gesamten Proxy-Verlauf verarbeiten soll, müssen Sie entweder den Bambda-Modus erneut aktivieren oder den booleschen Parameter resetScreen im Skript umschalten:
```
// 'true' clears colors/notes
// 'false' executes the script
boolean resetScreen = false; // or true
```
<img width="800" alt="Bambdas Code Generator" src="https://assets.kitploit.com/production/public/readmes/5162/cf2dac03f0dd6f1db5d8950b0162eda9e18862b1fb9da7a57f4cc119ec233c57.png">
<br/><br/>
[Ein weiteres Tutorial](https://www.linkedin.com/pulse/agartha-lfi-rce-auth-sqli-http-js-volkan-dindar)