
Une extension Burp Suite pour identifier les failles d'injection (LFI, RCE, SQLi), les problèmes d'authentification/autorisation et les violations d'accès HTTP 403. Elle prend en charge la génération dynamique de payloads, y compris la syntaxe BCheck, et peut générer automatiquement des scripts Bambdas. De plus, elle propose "Copy as JavaScript" pour convertir les requêtes HTTP en vue d'un test XSS renforcé.
Agartha est spécialisé dans la génération avancée de payloads et l'évaluation des contrôles d'accès. Il identifie avec précision les vulnérabilités liées aux attaques par injection et aux problèmes d'authentification/authorisation. Le générateur de payloads dynamique crée des wordlists étendues pour divers vecteurs d'injection, notamment l'injection SQL, l'inclusion de fichiers locaux (LFI) et l'exécution de code à distance (RCE). De plus, l'extension construit une matrice d'accès utilisateur complète, révélant les violations d'accès potentielles et les chemins d'escalade de privilèges. Elle aide également à effectuer des vérifications de contournement HTTP 403, mettant en lumière les erreurs de configuration d'authentification. De plus, elle peut convertir des requêtes HTTP en code JavaScript pour aider à creuser davantage les problèmes XSS.
En résumé :
Voici un petit tutoriel sur la façon d'utiliser.
Vous devez d'abord télécharger le fichier 'Jython' et configurer votre environnement :
Vous pouvez installer Agartha via le magasin officiel :
Ou pour une installation manuelle :
Ensuite, vous verrez l'onglet 'Agartha' dans la fenêtre principale et il sera également enregistré dans le clic droit, sous :
'Auth Matrix'
'403 Bypass'
'Copy as JavaScript'
Il prend en charge les syntaxes de fichiers Unix et Windows, permettant la génération dynamique de wordlists pour tout chemin souhaité. De plus, il peut tenter de contourner les implémentations de pare-feu d'applications Web (WAF), avec divers encodages et autres techniques.

Il génère dynamiquement des wordlists pour l'exécution de commandes en fonction de la commande fournie. Il combine divers séparateurs et terminateurs pour les environnements Unix et Windows.

Il génère des payloads pour divers types d'attaques par injection SQL, y compris les requêtes empilées, les attaques booléennes, les attaques basées sur UNION et les attaques temporelles. Il n'exige aucune entrée utilisateur ; il vous suffit de sélectionner les types d'attaques SQL et les bases de données souhaités, et il génère une wordlist avec différentes combinaisons.

BCheck est le framework de Burp Suite pour créer et importer des vérifications de scan personnalisées. Ces vérifications définies par l'utilisateur s'exécutent parallèlement aux routines intégrées de Burp Scanner, vous permettant d'adapter les scans à des vulnérabilités ou besoins de test spécifiques. En utilisant BChecks, vous pouvez étendre les capacités de scan de Burp et rationaliser votre flux de travail pour des évaluations plus ciblées et efficaces. Vous pouvez maintenant générer le code automatiquement :
Veuillez noter que plus le script Bambdas est grand, plus il peut causer des problèmes de performance, en particulier lors des scans. Les scripts plus grands peuvent ralentir la réactivité, augmenter l'utilisation de la mémoire et entraîner des retards dans l'exécution des tâches.
Après avoir cliqué sur le bouton "Generate payloads for BCheck", le code BCheck sera automatiquement copié dans votre presse-papiers.
Ensuite, allez dans 'Extensions > BChecks > New > Blank' depuis le menu de Burp Suite, et collez simplement le code généré.
Vos payloads sont maintenant intégrés dans un BCheck. Vous pouvez soit envoyer ou scanner manuellement des requêtes HTTP, soit lancer un scan Burp qui intègre les contrôles BCheck pour tester automatiquement les payloads d'injection générés par l'outil.
Conseils d'affinage : Le code généré sert de modèle et peut nécessiter quelques ajustements, car le comportement peut varier entre différentes applications et serveurs.
Affiner les filtres—tels que les codes de réponse HTTP ou les mots-clés dans les réponses—peut aider à réduire les faux positifs et à rendre les résultats plus précis et moins bruyants.
Cette partie se concentre sur l'analyse des sessions utilisateur et des relations URL pour identifier les violations d'accès. L'outil visite systématiquement toutes les URL associées aux sessions utilisateur prédéfinies et remplit un tableau avec les réponses HTTP. Essentiellement, il crée une matrice d'accès, qui aide à identifier les problèmes d'authentification et d'autorisation. Finalement, ce processus révèle quels utilisateurs peuvent accéder à quels contenus de page.
Un peu plus de détails :
Veuillez noter que les terminateurs de session potentiels (tels que logoff, déconnexion, etc.) et certains types de fichiers (tels que CSS, images, JavaScript, etc.) seront filtrés à la fois du 'Spider' et de la liste d'URL de l'utilisateur.
Après avoir cliqué sur 'RUN', l'outil remplira la matrice utilisateur et URL avec différentes couleurs. En plus des couleurs spécifiques à l'utilisateur, vous verrez des cellules rouges, oranges et jaunes indiquant des problèmes d'accès possibles.
La tâche implique un traitement en masse, et il convient de mentionner quelles méthodes de requête HTTP seront utilisées. L'outil propose trois options différentes pour effectuer des appels HTTP :
Le code de statut HTTP 403 Forbidden indique que le serveur comprend la requête mais refuse de l'autoriser. Essentiellement, cela signifie : « Je reconnais qui vous êtes, mais vous n'avez pas la permission d'accéder à cette ressource. » Ce statut indique souvent des problèmes tels que « autorisations insuffisantes », « authentification requise », « restrictions IP », etc.
L'outil traite l'erreur d'accès interdit courante en employant diverses techniques, telles que la manipulation d'URL et la modification des en-têtes de requête. Ces stratégies visent à contourner les restrictions d'accès et à récupérer le contenu souhaité.
Il convient de mentionner deux cas d'utilisation différents :
Il existe 2 façons d'envoyer des requêtes HTTP à l'outil.
La page que nous souhaitons accéder appartient à un groupe d'utilisateurs privilégiés, et nous conservons nos identifiants de session pour vérifier si une escalade de privilèges est possible.
Il suffit de cliquer sur le bouton 'RUN' pour exécuter la tâche.
La figure ci-dessous illustre qu'une URL peut avoir un problème d'accès, la couleur 'Rouge' indiquant un avertissement.
Veuillez noter que le nombre de tentatives dépend de l'URL cible spécifique.
Cette fonctionnalité permet de convertir des requêtes HTTP en code JavaScript, ce qui peut être particulièrement utile pour aller au-delà des vulnérabilités XSS et contourner les restrictions d'en-tête.
Pour utiliser cette fonctionnalité, faites simplement un clic droit sur n'importe quelle requête HTTP et sélectionnez 'Extensions > Agartha > Copy as JavaScript'.
Il sera automatiquement enregistré dans votre presse-papiers, avec quelques remarques supplémentaires pour votre référence. Par exemple :``` Http request with minimal parameters:
Http request with header fields:
Veuillez noter que le code JavaScript s'exécutera dans la session utilisateur d'origine, avec de nombreux champs d'en-tête automatiquement renseignés par le navigateur. Cependant, dans certains cas, le serveur peut exiger des champs d'en-tête obligatoires spécifiques. Par exemple, certaines requêtes peuvent échouer si le 'Content-Type' est incorrect. Par conséquent, vous devrez peut-être ajuster le code pour assurer la compatibilité avec les exigences du serveur.
<br/><br/>
## Générateur de code Bambdas
Les Bambdas sont des scripts légers qui s'exécutent directement dans Burp Suite, permettant aux utilisateurs de personnaliser et d'automatiser rapidement diverses tâches. Ils peuvent être utilisés pour définir des règles de correspondance et remplacement personnalisées, ajouter des colonnes dynamiques aux tableaux, appliquer des filtres et adapter l'interface pour mieux répondre à des flux de travail de test spécifiques.
<img width="1000" alt="Bambdas Code Generator" src="https://assets.kitploit.com/production/public/readmes/5162/1f24e30531216aea02630b65422c79753e12e44148338735a51450ba4d42be03.png">
Explications, un peu plus de détails :
1. Concernant l'interface graphique de création de scripts, vous pouvez sélectionner les paramètres généraux ici. Par exemple :
- Traiter uniquement les adresses dans le périmètre ou toutes les adresses de domaine.
- Masquer ou non des extensions de fichier spécifiques.
- Couleurs pour les URL définies dans la section de périmètre, situées dans la première partie du Groupe 3.
- Couleurs pour les URL déjà testées, situées dans la deuxième partie du Groupe 3.
- Couleurs pour les filtres définis principalement dans le Groupe 2.
- Nombre de jours passés à afficher.
- Nombre de jours passés à traiter par le script.
2. Les options dans la deuxième section concernent principalement le traitement des requêtes et réponses HTTP :
- Fournit des options pour spécifier si les critères de recherche doivent être appliqués à l'URL, à la requête ou à la réponse. La sélection de l'une d'elles activera les options correspondantes ci-dessous. Par exemple, si vous souhaitez rechercher des 'Fonctions JavaScript vulnérables', cela ne sera possible que dans les réponses HTTP.
- Option pour masquer des méthodes HTTP spécifiques.
- "Rechercher les commentaires HTML", "Extensions de fichier téléchargeables" et "Fonctions JS vulnérables" sont généralement recherchées dans les réponses HTTP.
- Les recherches de "Mots-clés précieux" peuvent être appliquées aux URL, aux requêtes et aux réponses.
- "Identifiants suspects SQLi, identifiants suspects XSS, identifiants suspects LFI, identifiants suspects SSRF, identifiants suspects Open Redirect et identifiants suspects RCE" peuvent être recherchés dans les URL ou les requêtes. Contrairement aux "Mots-clés précieux" qui recherchent du texte libre, ces options détectent spécifiquement les paramètres.
3. Les options de la troisième section sont principalement pour définir le périmètre, les URL déjà testées et les URL que vous souhaitez masquer.
- Vous pouvez définir les URL à tester dans la section "Définition du périmètre de test". Si vous entrez /, l'ensemble de l'application sera considéré comme dans le périmètre ; si vous ajoutez un chemin spécifique comme /users, seuls ce répertoire et son contenu seront dans le périmètre. L'option "Couleur pour le périmètre de test" s'applique à cette section.
- La section "URL déjà testées" contient la liste des URL qui ont déjà été testées. L'option "Couleur pour les éléments testés" s'applique ici.
- La section "URL sur liste noire" contient les URL que vous souhaitez masquer de l'historique du proxy.
**Exemples de définitions :**
- /
- Chemin racine — inclut tout.
Remarque : En plus des définitions de périmètre de test et testé, il peut également être appliqué dans la section URL sur liste noire, où il exclut tout sauf si un critère de correspondance est défini.
- /portal/users
- Inclut spécifiquement ce chemin et ses sous-chemins, par exemple :
- /portal/users?id=1
- /portal/users/?id=1
- /portal/users/dashboard
- /admin/\*/users/\*/class
- L'astérisque (*) agit comme un espace réservé pour les ID, UUID, etc., et le reste du chemin sera inclus.
- /api/v\*/user
- L'astérisque (*) agit comme un caractère générique qui correspond à toute séquence de caractères suivant **v**, jusqu'au prochain '/', par exemple :
- /api/v1/user
- /api/v2/user
- /health-check
- Inclut spécifiquement ce chemin et ses sous-chemins, par exemple :
- /health-check
- /health-check/Monitor
- /health-check/?Level=Info
4. Enfin, la quatrième section est l'endroit où le script généré en cliquant sur le bouton "Exécuter" est affiché, et le script est maintenant prêt à être utilisé. En général, ce script peut être ajouté de deux manières différentes :
- Temporaire (basé sur le projet) : Depuis le menu de l'application, allez dans Proxy > HTTP History > Bambda Mode > Apply & Close.
- Permanent (à l'échelle de l'application) : Depuis le menu de l'application, allez dans Extensions > Bambda Library > New > Blank > View filter + HTTP history > Save & Close.
**Veuillez noter** : L'activation de toutes les options, en particulier pour les grands projets, peut entraîner une utilisation importante des ressources système et un temps de traitement accru. Si le script que vous avez créé ne se termine pas dans un délai raisonnable, il peut être bénéfique de le réviser.
<img width="1000" alt="Bambdas Code Generator" src="https://assets.kitploit.com/production/public/readmes/5162/cb116ad18bc53ebf770b5bc1cb2b920cc9ef3a4569fab9b12d5fb9979823a58c.png">
**Priorité des options** : La priorité la plus élevée est 'Couleur pour les éléments testés', suivie de 'Couleur pour le périmètre de test', et enfin 'Couleur pour les paramètres/mots-clés'.
La figure ci-dessus illustre ce qui suit :
- **Rose** indique le périmètre de test (la première partie du groupe 3).
- **Jaune** représente le périmètre testé (la deuxième partie du groupe 3).
- **Cyan** met en évidence les correspondances pour les critères de recherche (Groupe 2). De plus, vous pouvez voir quel critère a correspondu dans la section 'Notes' de chaque appel HTTP.
Si vous mettez à jour ou modifiez ultérieurement un script qui a déjà été créé, il y a quelques points importants à garder à l'esprit :
- Si vous définissez votre script comme Permanent (à l'échelle de l'application), vous devrez le recharger en suivant ces étapes :
Bambda Script mode > Load
<img width="800" alt="Bambdas Code Generator" src="https://assets.kitploit.com/production/public/readmes/5162/5a840779ef9b2df5ac22e94d8ebf6771a677d5d45d49f35cae6f4b3a2e820cd2.png">
- Si vous utilisez votre script comme Temporaire (basé sur le projet), vous avez généralement deux options :
1. Si vous souhaitez que le script modifié soit actif à partir de ce moment, aucune étape supplémentaire n'est nécessaire — cliquez simplement sur Apply.
2. Si vous souhaitez que le script modifié traite tout l'historique du proxy, vous devez soit réactiver le mode Bambda, soit basculer le paramètre booléen resetScreen dans le script :
```
// 'true' efface les couleurs/notes
// 'false' exécute le 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/>
[Un autre lien de tutoriel](https://www.linkedin.com/pulse/agartha-lfi-rce-auth-sqli-http-js-volkan-dindar)