
Una extensión de Burp Suite para identificar vulnerabilidades de inyección (LFI, RCE, SQLi), problemas de autenticación/autorización y violaciones de acceso HTTP 403. Admite generación dinámica de payloads, incluida la sintaxis BCheck, y puede generar automáticamente scripts Bambdas. Además, ofrece "Copy as JavaScript" para convertir solicitudes HTTP y mejorar las pruebas XSS.
Agartha se especializa en la generación avanzada de cargas útiles y la evaluación de control de acceso. Identifica hábilmente vulnerabilidades relacionadas con ataques de inyección y problemas de autenticación/autorización. El generador dinámico de cargas útiles crea listas de palabras exhaustivas para varios vectores de inyección, incluyendo Inyección SQL, Inclusión de Archivos Locales (LFI) y Ejecución Remota de Código (RCE). Además, la extensión construye una matriz de acceso de usuario completa, revelando posibles violaciones de acceso y rutas de escalada de privilegios. También ayuda a realizar comprobaciones de omisión de HTTP 403, arrojando luz sobre configuraciones erróneas de autenticación. Adicionalmente, puede convertir solicitudes HTTP en código JavaScript para ayudar a descubrir problemas XSS más a fondo.
En resumen:
Aquí hay un pequeño tutorial sobre cómo usar.
Debe descargar el archivo 'Jython' y configurar su entorno primero:
Puede instalar Agartha a través de la tienda oficial:
O para instalación manual:
Después de todo, verá la pestaña 'Agartha' en la ventana principal y también se registrará en el clic derecho, bajo:
'Matriz de Autenticación'
'Omisión de 403'
'Copiar como JavaScript'
Soporta tanto la sintaxis de archivos Unix como Windows, permitiendo la generación dinámica de listas de palabras para cualquier ruta deseada. Además, puede intentar eludir implementaciones de Firewall de Aplicaciones Web (WAF), con varias codificaciones y otras técnicas.

Genera listas de palabras dinámicas para ejecución de comandos basadas en el comando suministrado. Combina varios separadores y terminadores para entornos Unix y Windows.

Genera cargas útiles para varios tipos de ataques de inyección SQL, incluyendo Consultas Apiladas, Basada en Booleanos, Basada en Unión y Basada en Tiempo. No requiere entrada del usuario; simplemente selecciona los tipos de ataque SQL y bases de datos deseados, y genera una lista de palabras con diferentes combinaciones.

BCheck es el marco de Burp Suite para crear e importar comprobaciones de escaneo personalizadas. Estas comprobaciones definidas por el usuario se ejecutan junto con las rutinas integradas de Burp Scanner, lo que le permite adaptar los escaneos a vulnerabilidades o necesidades de prueba específicas. Al usar BChecks, puede extender las capacidades de escaneo de Burp y optimizar su flujo de trabajo para evaluaciones más específicas y eficientes. Ahora puede generar el código automáticamente:
Tenga en cuenta que a medida que el script Bambdas aumenta de tamaño, puede causar problemas de rendimiento, especialmente durante el escaneo. Los scripts más grandes pueden ralentizar la capacidad de respuesta, aumentar el uso de memoria y provocar retrasos en la ejecución de tareas.
Después de hacer clic en el botón "Generate payloads for BCheck", el código BCheck se copiará automáticamente a su portapapeles.
A continuación, vaya a 'Extensiones > BChecks > Nuevo > En blanco' desde el menú de Burp Suite, y simplemente pegue el código generado.
Sus cargas útiles ahora están integradas en un BCheck. Puede enviar o escanear solicitudes HTTP manualmente, o iniciar un escaneo de Burp que incorpore controles BCheck para probar automáticamente las cargas útiles de inyección generadas por la herramienta.
Consejos de ajuste fino: El código generado sirve como plantilla y puede requerir algunos ajustes, ya que el comportamiento puede variar entre diferentes aplicaciones y servidores.
Refinar filtros, como especificar códigos de respuesta HTTP o palabras clave dentro de las respuestas, puede ayudar a reducir los falsos positivos y hacer que los resultados sean más precisos y menos ruidosos.
Esta parte se centra en analizar la sesión del usuario y las relaciones de URL para identificar violaciones de acceso. La herramienta visita sistemáticamente todas las URLs asociadas con sesiones de usuario predefinidas y llena una tabla con respuestas HTTP. Esencialmente, crea una matriz de acceso, que ayuda a identificar problemas de autenticación y autorización. En última instancia, este proceso revela qué usuarios pueden acceder a contenidos de página específicos.
Un poco más de detalles:
Tenga en cuenta que los posibles terminadores de sesión (como cerrar sesión, salir, etc.) y tipos de archivo específicos (como CSS, imágenes, JavaScript, etc.) se filtrarán tanto del 'Spider' como de la lista de URLs del usuario.
Después de hacer clic en 'EJECUTAR', la herramienta completará la matriz de usuario y URL con diferentes colores. Además de los colores específicos del usuario, verá celdas rojas, naranjas y amarillas que indican posibles problemas de acceso.
La tarea implica un proceso masivo, y vale la pena mencionar qué métodos de solicitud HTTP se utilizarán. La herramienta proporciona tres opciones diferentes para realizar llamadas HTTP:
El código de estado HTTP 403 Prohibido indica que el servidor entiende la solicitud pero se niega a autorizarla. Esencialmente, significa: ‘Reconozco quién eres, pero no tienes permiso para acceder a este recurso.’ Este estado a menudo apunta a problemas como ‘permisos insuficientes’, ‘autenticación requerida’, ‘restricciones de IP’, etc.
La herramienta aborda el error común de acceso prohibido empleando varias técnicas, como manipulación de URL y modificación de cabeceras de solicitud. Estas estrategias tienen como objetivo eludir las restricciones de acceso y recuperar el contenido deseado.
Vale la pena mencionar dos casos de uso diferentes:
Hay 2 formas de enviar solicitudes HTTP a la herramienta.
La página a la que intentamos acceder pertenece a un grupo de usuarios privilegiados, y conservamos nuestros identificadores de sesión para verificar si la Escalada de Privilegios es factible.
Simplemente haciendo clic en el botón 'EJECUTAR' se ejecutará la tarea.
La siguiente figura ilustra que una URL puede tener un problema de acceso, con el color ‘Rojo’ indicando una advertencia.
Tenga en cuenta que el número de intentos depende de la URL de destino específica.
La función permite convertir solicitudes HTTP en código JavaScript, lo que puede ser particularmente útil para ir más allá de las vulnerabilidades XSS y eludir restricciones de cabecera.
Para usar esta función, simplemente haga clic derecho en cualquier solicitud HTTP y seleccione 'Extensiones > Agartha > Copiar como JavaScript'.
Se guardará automáticamente en su portapapeles, incluyendo algunos comentarios adicionales para su referencia. Por ejemplo:``` Http request with minimal parameters:
Http request with header fields:
Tenga en cuenta que el código JavaScript se ejecutará dentro de la sesión original del usuario, con muchos campos de encabezado completados automáticamente por el navegador. Sin embargo, en algunos casos, el servidor puede requerir campos de encabezado obligatorios específicos. Por ejemplo, ciertas solicitudes pueden fallar si el 'Content-Type' es incorrecto. Por lo tanto, es posible que deba ajustar el código para garantizar la compatibilidad con los requisitos del servidor.
<br/><br/>
## Bambdas Code Generator
Los Bambdas son scripts ligeros que se ejecutan directamente dentro de Burp Suite, lo que permite a los usuarios personalizar y automatizar rápidamente varias tareas. Se pueden usar para definir reglas personalizadas de buscar y reemplazar, agregar columnas de tabla dinámicas, aplicar filtros y adaptar la interfaz para que se ajuste mejor a flujos de trabajo de prueba específicos.
<img width="1000" alt="Generador de Código Bambdas" src="https://assets.kitploit.com/production/public/readmes/5162/1f24e30531216aea02630b65422c79753e12e44148338735a51450ba4d42be03.png">
Explicaciones, un poco más de detalle:
1. En cuanto a la GUI de creación de scripts, puede seleccionar la configuración general aquí. Por ejemplo:
- Procesar solo direcciones dentro del alcance o todas las direcciones de dominio.
- Ocultar extensiones de archivo específicas o no.
- Colores para las URL definidas en la sección de alcance, ubicada en la primera parte del Grupo 3.
- Colores para las URL que ya se han probado, ubicadas en la segunda parte del Grupo 3.
- Colores para los filtros definidos principalmente en el Grupo 2.
- Número de días pasados a mostrar.
- Número de días pasados a procesar por el script.
2. Las opciones en la segunda sección están relacionadas principalmente con el procesamiento de solicitudes y respuestas HTTP:
- Proporciona opciones para especificar si los criterios de búsqueda deben aplicarse a la URL, la solicitud o la respuesta. Seleccionar cualquiera de estas activará las opciones correspondientes a continuación. Por ejemplo, si desea buscar 'Funciones JavaScript vulnerables', esto solo será posible en las respuestas HTTP.
- Opción para ocultar métodos HTTP específicos.
- "Buscar comentarios HTML", "Extensiones de archivo descargables" y "Funciones JS vulnerables" generalmente se buscan dentro de las respuestas HTTP.
- "Palabras clave valiosas" se pueden buscar en URL, solicitudes y respuestas.
- "Identificadores sospechosos de SQLi, identificadores sospechosos de XSS, identificadores sospechosos de LFI, identificadores sospechosos de SSRF, identificadores sospechosos de Open Redirect e identificadores sospechosos de RCE" se pueden buscar en URL o solicitudes. A diferencia de "Palabras clave valiosas", que busca texto libre, estas opciones detectan parámetros específicamente.
3. Las opciones en la tercera sección son principalmente para definir el alcance, las URL ya probadas y las URL que desea ocultar.
- Puede definir las URL a probar en la sección "Definición del alcance de prueba". Si ingresa /, toda la aplicación se considerará dentro del alcance; si agrega una ruta específica como /users, solo ese directorio y su contenido estarán dentro del alcance. La opción "Color para el alcance de prueba" se aplica a esta sección.
- La sección "URL ya probadas" contiene la lista de URL que ya se han probado. La opción "Color para elementos probados" se aplica aquí.
- La sección "URL en lista negra" contiene las URL que desea ocultar del historial del proxy.
**Ejemplos de definiciones**:
- /
- Ruta raíz: incluye todo.
Nota: Además de las definiciones de alcance de prueba y probado, también se puede aplicar en la sección de URL en lista negra, donde excluye todo a menos que se defina un criterio coincidente.
- /portal/users
- Incluye específicamente esta ruta y sus subrutas, por ejemplo:
- /portal/users?id=1
- /portal/users/?id=1
- /portal/users/dashboard
- /admin/\*/users/\*/class
- El asterisco (*) actúa como marcador de posición para ID, UUID, etc., y el resto de la ruta se incluirá.
- /api/v\*/user
- El asterisco (*) actúa como comodín que coincide con cualquier secuencia de caracteres después de **v**, hasta el siguiente '/', por ejemplo:
- /api/v1/user
- /api/v2/user
- /health-check
- Incluye específicamente esta ruta y sus subrutas, por ejemplo:
- /health-check
- /health-check/Monitor
- /health-check/?Level=Info
4. Finalmente, la cuarta sección es donde se muestra el script generado al hacer clic en el botón "Ejecutar", y el script ahora está listo para usar. En general, este script se puede agregar de dos maneras diferentes:
- Temporal (basado en proyecto): desde el menú de la aplicación, vaya a Proxy > HTTP History > Bambda Mode > Apply & Close.
- Permanente (para toda la aplicación): desde el menú de la aplicación, vaya a Extensions > Bambda Library > New > Blank > View filter + HTTP history > Save & Close.
**Tenga en cuenta**: Habilitar todas las opciones, especialmente para proyectos grandes, puede resultar en un uso significativo de los recursos del sistema y un aumento en el tiempo de procesamiento. Si el script que ha creado no se completa en un tiempo razonable, puede ser beneficioso revisarlo.
<img width="1000" alt="Generador de Código Bambdas" src="https://assets.kitploit.com/production/public/readmes/5162/cb116ad18bc53ebf770b5bc1cb2b920cc9ef3a4569fab9b12d5fb9979823a58c.png">
**Prioridad de opciones**: La prioridad más alta es 'Color para elementos probados', seguida de 'Color para el alcance de prueba' y, finalmente, 'Color para parámetros/palabras clave'.
La figura anterior ilustra lo siguiente:
- **Rosa** indica el alcance de prueba (la primera parte del grupo 3).
- **Amarillo** representa el alcance probado (la segunda parte del grupo 3).
- **Cian** resalta las coincidencias con los criterios de búsqueda (Grupo 2). Además, puede ver qué criterio coincidió en la sección 'Notas' de cada llamada HTTP.
Si más adelante actualiza o modifica un script que ya se ha creado, hay algunos puntos importantes a tener en cuenta:
- Si configuró su script como Permanente (para toda la aplicación), deberá recargarlo siguiendo estos pasos:
Modo de script Bambda > Cargar
<img width="800" alt="Generador de Código Bambdas" src="https://assets.kitploit.com/production/public/readmes/5162/5a840779ef9b2df5ac22e94d8ebf6771a677d5d45d49f35cae6f4b3a2e820cd2.png">
- Si usa su script como Temporal (basado en proyecto), generalmente tiene dos opciones:
1. Si desea que el script modificado esté activo a partir de ese momento, no se requieren pasos adicionales; simplemente haga clic en Apply.
2. Si desea que el script modificado procese todo el historial del proxy, debe volver a habilitar el modo Bambda o alternar el parámetro booleano resetScreen dentro del script:
```java
// 'true' borra colores/notas
// 'false' ejecuta el script
boolean resetScreen = false; // o true
```
<img width="800" alt="Generador de Código Bambdas" src="https://assets.kitploit.com/production/public/readmes/5162/cf2dac03f0dd6f1db5d8950b0162eda9e18862b1fb9da7a57f4cc119ec233c57.png">
<br/><br/>
[Otro enlace de tutorial](https://www.linkedin.com/pulse/agartha-lfi-rce-auth-sqli-http-js-volkan-dindar)