Introducción
En este laboratorio, explorará uno de los tipos de ataque de Burp Suite Intruder: el Battering Ram. Burp Intruder es una herramienta potente para automatizar ataques personalizados contra aplicaciones web. El tipo de ataque Battering Ram está diseñado específicamente para situaciones en las que la misma carga útil (payload) necesita ser insertada en múltiples posiciones dentro de una solicitud HTTP.
Un caso de uso común para este ataque es probar formularios de inicio de sesión en busca de credenciales débiles, donde el nombre de usuario y la contraseña pueden ser idénticos (por ejemplo, admin/admin). A lo largo de este laboratorio, aprenderá a capturar una solicitud de inicio de sesión, configurar marcadores de carga útil (payload markers), seleccionar el tipo de ataque Battering Ram, configurar una lista de cargas útiles (payload list) y, finalmente, lanzar el ataque para analizar los resultados.
Al final de este laboratorio, tendrá una comprensión práctica de cómo y cuándo utilizar el ataque Battering Ram en su flujo de trabajo de pruebas de seguridad de aplicaciones web.
Enviar una Solicitud de Inicio de Sesión a Intruder
En este paso, lanzará las herramientas necesarias y capturará una solicitud de inicio de sesión de ejemplo para enviarla a Burp Intruder para su configuración de ataque.
Primero, abra una terminal para lanzar Burp Suite. Normalmente puede encontrarlo en el menú de aplicaciones o lanzarlo desde la línea de comandos. Para este laboratorio, asumiremos que está listo para ser lanzado.
A continuación, abra el navegador web Firefox proporcionado en el entorno del laboratorio.
Ahora, configuremos Burp Suite para interceptar el tráfico web.
- En Burp Suite, vaya a la pestaña Proxy y luego a la sub-pestaña Intercept. Asegúrese de que la interceptación esté activada (el botón debería decir "Intercept is on").
- En Firefox, configure el navegador para usar el proxy de Burp. Vaya a Configuración -> Configuración de red y establezca la configuración manual del proxy para usar
127.0.0.1como Proxy HTTP y8080como Puerto. - En la barra de direcciones de Firefox, navegue a la página de inicio de sesión de nuestra aplicación de prueba:
http://127.0.0.1:5000/login. - Introduzca
testpara el nombre de usuario ytestpara la contraseña, y luego haga clic en el botón "Login".
La solicitud será capturada en la pestaña Proxy -> Intercept de Burp Suite. La pantalla mostrará la solicitud HTTP en bruto.
Finalmente, envíe esta solicitud capturada a Intruder. Haga clic derecho en cualquier lugar de la ventana de la solicitud y seleccione Send to Intruder en el menú contextual. También puede usar el atajo de teclado Ctrl+I.
Ahora puede ir a la pestaña Intruder, donde verá la solicitud cargada y lista para su configuración.
En Posiciones, Añadir Marcadores de Carga Útil a los Campos de Nombre de Usuario y Contraseña
En este paso, definirá las posiciones en la solicitud HTTP donde Burp Intruder debe colocar sus cargas útiles (payloads). Para un ataque Battering Ram, marcaremos tanto los campos de nombre de usuario como los de contraseña.
Navegue a la pestaña Intruder y luego a la sub-pestaña Positions. Verá la solicitud que envió desde la pestaña Proxy. Burp Suite añade automáticamente marcadores de carga útil (resaltados con símbolos §) a lo que considera partes interesantes de la solicitud.
Para este ataque específico, queremos controlar las posiciones de la carga útil con precisión.
- Primero, haga clic en el botón Clear § en el lado derecho. Esto eliminará todos los marcadores de carga útil generados automáticamente.
- Ahora, localice la línea en el cuerpo de la solicitud que contiene el nombre de usuario y la contraseña, que debería parecerse a
username=test&password=test. - Resalte el valor
testpara el parámetrousernamecon el ratón. - Haga clic en el botón Add §. La línea ahora debería parecerse a
username=§test§&password=test. - A continuación, resalte el valor
testpara el parámetropassword. - Haga clic en el botón Add § de nuevo.
Después de completar estos pasos, el cuerpo de su solicitud tendrá marcadores de carga útil alrededor de los valores de nombre de usuario y contraseña, de la siguiente manera:
username=§test§&password=§test§
Esta configuración le indica a Intruder que inserte cargas útiles en estas dos ubicaciones específicas.
Establecer el Tipo de Ataque a 'Battering Ram'
En este paso, seleccionará el tipo de ataque apropiado para nuestro escenario. Burp Intruder ofrece cuatro tipos de ataque diferentes, cada uno con un propósito único.
- Sniper: Utiliza un único conjunto de cargas útiles (payloads), atacando una posición a la vez.
- Battering ram: Utiliza un único conjunto de cargas útiles, colocando la misma carga útil en todas las posiciones marcadas simultáneamente.
- Pitchfork: Utiliza múltiples conjuntos de cargas útiles, colocando una carga útil de cada conjunto en las posiciones correspondientes.
- Cluster bomb: Utiliza múltiples conjuntos de cargas útiles, probando cada combinación posible de cargas útiles.
Para nuestro objetivo de probar si el nombre de usuario y la contraseña son los mismos, el ataque Battering ram es la opción perfecta. Tomará una única lista de credenciales potenciales e intentará cada una tanto para el nombre de usuario como para la contraseña en la misma solicitud.
En la pestaña Intruder -> Positions, localice el menú desplegable Attack type en la parte superior de la pantalla. Por defecto, está configurado como "Sniper". Haga clic en el menú desplegable y seleccione Battering ram.
Una vez seleccionado, Burp Intruder ahora está configurado para usar la lógica de ataque Battering Ram.
Configurar una Lista de Cargas Útiles Simple (ej. test, guest)
En este paso, proporcionará la lista de cargas útiles (payloads) que Intruder utilizará para el ataque. Dado que estamos utilizando el tipo de ataque Battering Ram, solo necesitamos configurar un conjunto de cargas útiles.
- Navegue a la pestaña Intruder -> Payloads.
- La sección "Payload Sets" debería mostrar "Payload set: 1" y "Payload type: Simple list". Este es el valor predeterminado y es correcto para nuestras necesidades.
- En la sección "Payload Options" debajo, hay un cuadro de texto para agregar sus cargas útiles. Puede agregar cargas útiles una por una escribiéndolas y haciendo clic en el botón Add, o puede pegar una lista directamente en el cuadro.
Para este laboratorio, agreguemos algunas credenciales predeterminadas o débiles comunes. Borre cualquier carga útil existente en la lista y agregue las siguientes:
testguestadminpassworduser
Su lista de "Payload Options" ahora debería verse así:
test
guest
admin
password
user
Con esta configuración, Intruder iterará a través de esta lista. Para cada elemento, colocará ese valor tanto en los campos de username como de password que marcamos en el Paso 2.
Ejecutar el Ataque y Analizar Cómo se Utiliza la Misma Carga Útil en Ambas Posiciones
En este paso final, lanzará el ataque y analizará los resultados para comprender cómo funciona el ataque Battering Ram.
- Asegúrese de que todas sus configuraciones en las pestañas Positions y Payloads sean correctas.
- En la esquina superior derecha de la ventana de Intruder, haga clic en el botón Start attack.
Se abrirá una nueva ventana de "Intruder attack" y el ataque comenzará de inmediato. Verá una tabla de resultados que se va llenando a medida que se envía cada solicitud.
Analicemos los resultados:
- Tabla de Resultados: Observe las columnas "Payload", "Status" y "Length". La columna "Payload" muestra el valor utilizado de su lista de cargas útiles para esa solicitud específica.
- Pestañas Request/Response: Haga clic en cualquier fila de la tabla de resultados (por ejemplo, la fila con la carga útil
guest). En la parte inferior de la ventana, puede inspeccionar la Request y la Response de ese intento.- En la pestaña Request, verá que la carga útil
guestse insertó tanto en los parámetrosusernamecomo enpassword:username=guest&password=guest. Esto confirma el comportamiento de Battering Ram. - En la pestaña Response, puede ver la respuesta del servidor.
- En la pestaña Request, verá que la carga útil
Busque anomalías en los resultados. Un inicio de sesión exitoso probablemente tendrá un código de estado o una longitud de respuesta diferente. En nuestro caso, la carga útil test debería resultar en un inicio de sesión exitoso. Puede identificarlo buscando el mensaje "Login successful!" en el cuerpo de la respuesta o ordenando los resultados por "Length" para ver qué respuesta es diferente.
Este análisis demuestra cómo el ataque Battering Ram prueba eficientemente los casos en los que se utiliza una única entrada en múltiples parámetros, un escenario común en las pruebas de credenciales.
Resumen
En este laboratorio, ha configurado y ejecutado con éxito un ataque Battering Ram utilizando Burp Suite Intruder.
Ha aprendido a:
- Capturar una solicitud HTTP utilizando Burp Proxy y enviarla a Intruder.
- Borrar los marcadores de carga útil predeterminados y definir con precisión las posiciones de carga útil personalizadas.
- Seleccionar el tipo de ataque Battering Ram, comprendiendo su caso de uso específico.
- Configurar una lista de cargas útiles simple para el ataque.
- Lanzar el ataque y analizar los resultados para confirmar que la misma carga útil se utilizó en todas las posiciones especificadas para cada solicitud.
El Battering Ram es una herramienta valiosa en el arsenal de un probador de penetración, especialmente para probar formularios de inicio de sesión y otras funciones donde una sola pieza de datos podría usarse como múltiples parámetros. Dominar esta técnica mejorará la eficiencia y efectividad de sus evaluaciones de seguridad de aplicaciones web.
