Saltar al contenido
Portada » Blog – Laprovittera Carlos » TryHackMe Burp Suite Intruder

TryHackMe Burp Suite Intruder

Hola hacketones! Bienvenidos a un nuevo CTF de la ruta completa de Web Fundamentals, en este capítulo veremos:  TryHackMe Burp Suite Intruder

Qué es Intruder?

Intruder es la herramienta de fuzzing integrada de Burp Suite que permite la modificación automatizada de solicitudes y la realización de pruebas repetitivas con variaciones en los valores de entrada. Al usar una solicitud capturada (generalmente del módulo Proxy ), Intruder puede enviar múltiples solicitudes con valores ligeramente modificados según las configuraciones definidas por el usuario. Sirve para diversos fines, como el ataque de fuerza bruta a formularios de inicio de sesión sustituyendo los campos de nombre de usuario y contraseña con valores de una lista de palabras, o la realización de ataques de fuzzing utilizando listas de palabras para probar subdirectorios, endpoints o hosts virtuales. La funcionalidad de Intruder es comparable a la de herramientas de línea de comandos como Wfuzz o ffuf .

Sin embargo, es importante tener en cuenta que, si bien Intruder se puede usar con Burp Community Edition, tiene una velocidad limitada, lo que reduce significativamente su velocidad en comparación con Burp Professional. Esta limitación suele llevar a los profesionales de seguridad a recurrir a otras herramientas para fuzzing y fuerza bruta. No obstante, Intruder sigue siendo una herramienta valiosa y vale la pena aprender a usarla eficazmente.

Exploremos la interfaz de Intruder:

La vista inicial de Intruder presenta una interfaz sencilla donde podemos seleccionar nuestro objetivo. Este campo ya estará rellenado si se ha enviado una solicitud desde el proxy (usando Ctrl + Io haciendo clic derecho y seleccionando «Enviar a Intruder»).

Hay cuatro subpestañas dentro de Intruder:

  • Posiciones : Esta pestaña nos permite seleccionar un tipo de ataque (que cubriremos en una tarea futura) y configurar dónde queremos insertar nuestras cargas útiles en la plantilla de solicitud.
  • Cargas útiles : Aquí podemos seleccionar valores para insertar en las posiciones definidas en la pestaña «Posiciones» . Disponemos de varias opciones de carga útil, como cargar elementos de una lista de palabras. La forma en que se insertan estas cargas útiles en la plantilla depende del tipo de ataque seleccionado en la pestaña » Posiciones» . La pestaña «Cargas útiles» también permite modificar el comportamiento de Intruder con respecto a las cargas útiles, como definir reglas de preprocesamiento para cada una (p. ej., añadir un prefijo o sufijo, realizar coincidencias y reemplazos, u omitir cargas útiles según una expresión regular definida).
  • Fondo de recursos : Esta pestaña no es especialmente útil en Burp Community Edition. Permite asignar recursos entre diversas tareas automatizadas en Burp Professional. Sin acceso a estas tareas automatizadas, esta pestaña tiene poca importancia.
  • Configuración : Esta pestaña permite configurar el comportamiento del ataque. Se centra principalmente en cómo Burp gestiona los resultados y el ataque en sí. Por ejemplo, podemos marcar solicitudes que contengan texto específico o definir la respuesta de Burp para redirigir las respuestas (3xx).

Nota: El término «fuzzing» se refiere al proceso de probar la funcionalidad o existencia aplicando un conjunto de datos a un parámetro. Por ejemplo, el fuzzing para endpoints en una aplicación web implica tomar cada palabra de una lista de palabras y añadirla a una URL de solicitud (p. ej., http ://MACHINE_IP/WORD_GOES_HERE) para observar la respuesta del servidor.

Responda las preguntas a continuación

¿En qué pestaña de Intruso podemos definir el «Tipo de ataque» para nuestro ataque planificado?

Positions

Posiciones

Al usar Burp Suite Intruder para ejecutar un ataque, el primer paso es examinar las posiciones dentro de la solicitud donde queremos insertar nuestras cargas útiles. Estas posiciones informan a Intruder sobre las ubicaciones donde se introducirán nuestras cargas útiles (como exploraremos en próximas tareas).

Naveguemos a la pestaña Posiciones:

Observe que Burp Suite intenta identificar automáticamente las posiciones más probables donde se pueden insertar las cargas útiles. Estas posiciones están resaltadas en verde y delimitadas por marcas de sección ( §).

En el lado derecho de la interfaz, encontramos los siguientes botones: Add §, Clear §, y Auto §:

  • El Add §botón nos permite definir nuevas posiciones manualmente resaltándolas dentro del editor de solicitudes y luego haciendo clic en el botón.
  • El Clear §botón elimina todas las posiciones definidas, proporcionando un lienzo en blanco donde podemos definir nuestras propias posiciones.
  • El Auto §botón intenta identificar automáticamente las posiciones más probables según la solicitud. Esta función es útil si previamente borramos las posiciones predeterminadas y queremos recuperarlas.

El siguiente GIF demuestra el proceso de agregar, borrar y volver a seleccionar posiciones automáticamente:

Tómese un tiempo para familiarizarse con la adición, limpieza y selección automática de posiciones utilizando la interfaz de Burp Suite Intruder.

Responda las preguntas a continuación

¿Qué símbolo define el inicio y el final de una posición de carga útil?

§

Cargas útiles

En la  pestaña Cargas útiles de Burp Suite Intruder, podemos crear, asignar y configurar cargas útiles para nuestro ataque. Esta subpestaña se divide en cuatro secciones:

  1. Conjuntos de carga útil :
    • Esta sección nos permite elegir la posición para la cual queremos configurar un conjunto de payload y seleccionar el tipo de payload que queremos utilizar.
    • Al utilizar tipos de ataque que solo permiten un único conjunto de carga útil (francotirador o ariete ), el menú desplegable «Conjunto de carga útil» tendrá solo una opción, independientemente de la cantidad de posiciones definidas.
    • Si utilizamos tipos de ataque que requieren múltiples conjuntos de carga útil (Pitchfork o Cluster Bomb), habrá un elemento en el menú desplegable para cada posición.
    • Nota: Al asignar números en el menú desplegable «Conjunto de carga útil» para varias posiciones, siga el orden de arriba a abajo y de izquierda a derecha. Por ejemplo, con dos posiciones ( username=§pentester§&password=§Expl01ted§), el primer elemento del menú desplegable «Conjunto de carga útil» se referiría al campo de nombre de usuario y el segundo, al campo de contraseña.
  2. Configuración de carga útil :
    • Esta sección proporciona opciones específicas para el tipo de carga útil seleccionado para el conjunto de carga útil actual.
    • Por ejemplo, al usar el tipo de carga útil «Lista simple», podemos agregar o eliminar manualmente cargas útiles del conjunto mediante el cuadro Agregar texto, Pegar líneas o Cargar cargas útiles desde un archivo. El botón Eliminar elimina la línea seleccionada y el botón Borrar borra toda la lista. Tenga cuidado al cargar listas muy largas, ya que Burp podría fallar.
    • Cada tipo de carga útil tendrá su propio conjunto de opciones y funcionalidades. Explore las opciones disponibles para comprender el abanico de posibilidades.
  1. Procesamiento de carga útil :
    • En esta sección, podemos definir reglas que se aplicarán a cada carga útil del conjunto antes de que se envíe al destino.
    • Por ejemplo, podemos poner en mayúscula cada palabra, omitir cargas que coincidan con un patrón de expresión regular o aplicar otras transformaciones o filtros.
    • Si bien es posible que no uses esta sección con frecuencia, puede ser muy valiosa cuando se requiere un procesamiento de carga útil específico para tu ataque.
  2. Codificación de carga útil :
    • Esta sección nos permite personalizar las opciones de codificación para nuestras cargas útiles.
    • De forma predeterminada, Burp Suite aplica codificación URL para garantizar la transmisión segura de las cargas útiles. Sin embargo, en algunos casos, es posible que queramos ajustar el comportamiento de la codificación.
    • Podemos anular las opciones de codificación de URL predeterminadas modificando la lista de caracteres a codificar o desmarcando la casilla de verificación «Codificar estos caracteres en URL».

Al aprovechar estas secciones, podemos crear y personalizar conjuntos de cargas útiles para adaptarlos a los requisitos específicos de nuestros ataques. Este nivel de control nos permite ajustar con precisión nuestras cargas útiles para realizar pruebas y explotarlas eficazmente.

Responda las preguntas a continuación

¿Qué regla de procesamiento de carga útil podríamos utilizar para agregar caracteres al final de cada carga útil del conjunto?

Add suffix

Introducción a los tipos de ataque

La  pestaña «Posiciones» de Burp Suite Intruder cuenta con un menú desplegable para seleccionar el tipo de ataque. Intruder ofrece cuatro tipos de ataque, cada uno con una finalidad específica. Analicemos cada uno:

  1. Francotirador : El tipo de ataque Francotirador es la opción predeterminada y la más utilizada. Recorre las cargas útiles, insertándolas una a la vez en cada posición definida en la solicitud. Los ataques Francotirador iteran linealmente entre todas las cargas útiles, lo que permite realizar pruebas precisas y específicas.
  2. Ariete : El tipo de ataque de ariete se diferencia del francotirador en que envía todas las cargas simultáneamente, cada una insertada en su posición correspondiente. Este tipo de ataque es útil para probar condiciones de carrera o cuando es necesario enviar cargas simultáneamente.
  3. Pitchfork : El tipo de ataque Pitchfork permite la prueba simultánea de múltiples posiciones con diferentes cargas útiles. Permite al evaluador definir múltiples conjuntos de cargas útiles, cada uno asociado a una posición específica en la solicitud. Los ataques Pitchfork son eficaces cuando existen distintos parámetros que requieren pruebas independientes.
  4. Bomba de racimo : Este tipo de ataque combina los métodos de francotirador y tridente. Realiza un ataque similar al de un francotirador en cada posición, pero prueba simultáneamente todas las cargas útiles de cada conjunto. Este tipo de ataque es útil cuando varias posiciones tienen diferentes cargas útiles y queremos probarlas todas juntas.

Cada tipo de ataque tiene sus ventajas y es adecuado para diferentes escenarios de prueba. Comprender sus diferencias nos ayuda a seleccionar el tipo de ataque adecuado según los objetivos de la prueba.

Responda las preguntas a continuación

¿Qué tipo de ataque recorre las cargas útiles insertando una a la vez en cada posición definida en la solicitud?

Sniper

Francotirador

El tipo de ataque Sniper es el predeterminado y el más usado en Burp Suite Intruder. Es especialmente efectivo para ataques de una sola posición, como la fuerza bruta de contraseñas o el fuzzing para endpoints de API . En un ataque Sniper, proporcionamos un conjunto de cargas útiles, que pueden ser una lista de palabras o un rango de números, e Intruder inserta cada carga útil en cada posición definida en la solicitud.

Veamos nuestra plantilla de ejemplo anterior:

En este ejemplo, tenemos dos posiciones definidas para los parámetros » usernamey» y password»body». En un ataque de francotirador, el intruso toma cada carga del conjunto y la sustituye en cada posición definida, una por una.

Suponiendo que tenemos una lista de palabras con tres palabras: burp, suite, y intruder, Intruder generaría seis solicitudes:

Número de solicitudCuerpo de la solicitud
1username=burp&password=Expl01ted
2username=suite&password=Expl01ted
3username=intruder&password=Expl01ted
4username=pentester&password=burp
5username=pentester&password=suite
6username=pentester&password=intruder

Observe cómo Intruder comienza en la primera posición ( username) y sustituye cada carga útil en ella, luego pasa a la segunda posición ( password) y realiza la misma sustitución con las cargas útiles. El número total de solicitudes realizadas por Intruder Sniper se puede calcular como requests = numberOfWords * numberOfPositions.

El tipo de ataque Francotirador resulta beneficioso cuando se realizan pruebas con ataques de una sola posición, utilizando diferentes cargas útiles para cada posición. Permite realizar pruebas y análisis precisos de diferentes variaciones de carga útil.

Responda las preguntas a continuación

Si estuviera usando Sniper para distorsionar tres parámetros en una solicitud con una lista de palabras que contiene 100 palabras, ¿cuántas solicitudes necesitaría enviar Burp Suite para completar el ataque?

300

¿Cuántos juegos de cargas útiles aceptará Sniper para realizar un ataque?

1

Ariete

El tipo de ataque de ariete en Burp Suite Intruder se diferencia de Sniper en que coloca la misma carga útil en cada posición simultáneamente, en lugar de sustituir cada carga útil en cada posición por turno.

Volvamos a nuestra plantilla de ejemplo anterior:

Usando el tipo de ataque Battering Ram con la misma lista de palabras de antes ( burp, suite, y intruder), Intruder generaría tres solicitudes:

Número de solicitudCuerpo de la solicitud
1username=burp&password=burp
2username=suite&password=suite
3username=intruder&password=intruder

Como se muestra en la tabla, cada carga útil de la lista de palabras se inserta en cada posición para cada solicitud realizada. En un ataque de ariete , la misma carga útil se lanza simultáneamente a cada posición definida, lo que proporciona un enfoque de prueba similar a la fuerza bruta.

El tipo de ataque Battering Ram es útil cuando queremos probar la misma carga útil contra múltiples posiciones a la vez sin la necesidad de sustitución secuencial.

En las próximas tareas, exploraremos más configuraciones y ajustes relacionados con el tipo de ataque Battering Ram de Intruder y examinaremos sus aplicaciones en diferentes escenarios.

Responda las preguntas a continuación

Como pregunta hipotética: debes realizar un ataque de intrusión de ariete en la solicitud de ejemplo anterior.

Si tiene una lista de palabras con dos palabras ( adminy Guest) y las posiciones en la plantilla de solicitud se ven así:

username=§pentester§&password=§Expl01ted§

¿Cuáles serían los parámetros del cuerpo de la primera solicitud que envía Burp Suite?

username=admin&password=admin

Horca

El tipo de ataque Pitchfork en Burp Suite Intruder es similar a tener varios ataques Sniper ejecutándose simultáneamente. Mientras que Sniper usa un conjunto de cargas útiles para probar todas las posiciones simultáneamente, Pitchfork usa un conjunto de cargas útiles por posición (hasta un máximo de 20) y las itera todas simultáneamente.

Para entender mejor Pitchfork, volvamos a nuestro ejemplo de fuerza bruta, pero esta vez con dos listas de palabras:

  1. La primera lista de palabras contiene los nombres de usuario: joel, harriet, y alex.
  2. La segunda lista de palabras contiene las contraseñas: J03l, Emma1815, y Sk1ll.

Podemos usar estas dos listas para ejecutar un ataque Pitchfork en el formulario de inicio de sesión. Cada solicitud realizada durante el ataque se vería así:

Número de solicitudCuerpo de la solicitud
1username=joel&password=J03l
2username=harriet&password=Emma1815
3username=alex&password=Sk1ll

Como se muestra en la tabla, Pitchfork toma el primer elemento de cada lista y lo sustituye en la solicitud, uno por posición. Luego, repite este proceso para la siguiente solicitud, tomando el segundo elemento de cada lista y sustituyéndolo en la plantilla. Intruder continúa esta iteración hasta que una o todas las listas se quedan sin elementos. Es importante tener en cuenta que Intruder detiene las pruebas en cuanto una de las listas se completa. Por lo tanto, en los ataques de Pitchfork, lo ideal es que los conjuntos de cargas útiles tengan la misma longitud. Si las longitudes de los conjuntos de cargas útiles difieren, Intruder solo realizará solicitudes hasta que se agote la lista más corta, y los elementos restantes de la lista más larga no se probarán.

El tipo de ataque Pitchfork es especialmente útil al realizar ataques de relleno de credenciales o cuando varias posiciones requieren conjuntos de cargas útiles independientes. Permite realizar pruebas simultáneas de varias posiciones con diferentes cargas útiles.

En las próximas tareas, exploraremos más configuraciones y ajustes relacionados con el tipo de ataque Pitchfork de Intruder y exploraremos sus aplicaciones en diferentes escenarios, incluidos los ataques de relleno de credenciales.

Responda las preguntas a continuación

¿Cuál es el número máximo de conjuntos de carga útil que podemos cargar en Intruder en modo Pitchfork?

20

Bomba de racimo

El tipo de ataque con bomba de racimo en Burp Suite Intruder permite elegir varios conjuntos de cargas útiles, uno por posición (hasta un máximo de 20). A diferencia de Pitchfork, donde todos los conjuntos de cargas útiles se prueban simultáneamente, la bomba de racimo itera cada conjunto individualmente, garantizando que se prueben todas las combinaciones posibles.

Para ilustrar el tipo de ataque con bombas de racimo, utilicemos las mismas listas de palabras que antes:

  • Nombres de usuario: joel, harriet, y alex.
  • Contraseñas: J03l, Emma1815, y Sk1ll.

En este ejemplo, supongamos que desconocemos qué contraseña corresponde a cada usuario. Tenemos tres usuarios y tres contraseñas, pero desconocemos sus asignaciones. En este caso, podemos usar un ataque con bombas de racimo para probar todas las combinaciones de valores. La tabla de solicitudes para las posiciones de nuestro nombre de usuario y contraseña se vería así:

Número de solicitudCuerpo de la solicitud
1username=joel&password=J03l
2username=harriet&password=J03l
3username=alex&password=J03l
4username=joel&password=Emma1815
5username=harriet&password=Emma1815
6username=alex&password=Emma1815
7username=joel&password=Sk1ll
8username=harriet&password=Sk1ll
9username=alex&password=Sk1ll

Como se muestra en la tabla, el tipo de ataque «bomba de racimo» itera sobre cada combinación de los conjuntos de cargas útiles proporcionados. Prueba cada posibilidad sustituyendo cada valor de cada conjunto de cargas útiles en la posición correspondiente en la solicitud.

Los ataques con bombas de racimo pueden generar una cantidad significativa de tráfico, ya que prueban cada combinación. El número de solicitudes realizadas por un ataque con bombas de racimo se puede calcular multiplicando el número de líneas de cada conjunto de carga útil. Es importante ser cauteloso al usar este tipo de ataque, especialmente al trabajar con conjuntos de carga útiles grandes. Además, al usar Burp Community y su limitación de velocidad de intrusos, la ejecución de un ataque con bombas de racimo con un conjunto de carga útil de tamaño moderado puede tardar mucho más.

El tipo de ataque con bomba de racimo es particularmente útil para escenarios de fuerza bruta de credenciales donde se desconoce la correspondencia entre nombres de usuario y contraseñas.

En las próximas tareas, exploraremos más configuraciones y ajustes relacionados con el tipo de ataque con bombas de racimo de Intruder y examinaremos sus aplicaciones en diferentes escenarios.

Responda las preguntas a continuación

Disponemos de tres conjuntos de carga útil. El primero contiene 100 líneas, el segundo, 2 líneas y el tercero, 30 líneas.

¿Cuántas solicitudes realizará Intruder utilizando estos conjuntos de carga útil en un ataque con bombas de racimo?

6000

Ejemplo práctico

Para poner en práctica nuestros conocimientos teóricos, intentaremos acceder al portal de soporte ubicado en [nombre del sitio] http://MACHINE_IP/support/login. Este portal sigue una estructura de inicio de sesión típica y, al revisar su código fuente, descubrimos que no se han implementado medidas de protección.

Dada la falta de medidas de protección, disponemos de múltiples opciones para explotar este formulario, incluyendo un ataque con bombas de racimo para obtener las credenciales por fuerza bruta. Sin embargo, disponemos de un enfoque más sencillo.

Hace aproximadamente tres meses, Bastion Hosting fue víctima de un ciberataque que comprometió los nombres de usuario, las direcciones de correo electrónico y las contraseñas de texto plano de sus empleados. Si bien se les indicó a los empleados afectados que cambiaran sus contraseñas de inmediato, es posible que algunos hicieran caso omiso de esta recomendación.

Como disponemos de una lista de nombres de usuario conocidos, cada uno acompañado de su contraseña correspondiente, podemos usar un ataque de robo de credenciales en lugar de un ataque directo de fuerza bruta. Este método resulta ventajoso y significativamente más rápido, especialmente al utilizar la versión de Intruder con límite de velocidad. Para acceder a las credenciales filtradas, descargue el archivo del equipo objetivo con el siguiente comando en AttackBox: wget http://MACHINE_IP:9999/Credentials/BastionHostingCreds.zip

Tutorial

Para resolver este ejemplo, siga estos pasos para realizar un ataque de relleno de credenciales con Burp Macros:

  1. Descargar y preparar listas de palabras:
    • Descargue y extraiga el archivo BastionHostingCreds.zip.
    • Dentro de la carpeta extraída, busque las siguientes listas de palabras:
      • correos electrónicos.txt
      • nombresdeusuario.txt
      • contraseñas.txt
      • combinado.txt
        Estas contienen listas de correos electrónicos, nombres de usuario y contraseñas filtrados, respectivamente. La última lista contiene las listas combinadas de correos electrónicos y contraseñas. Usaremos las listas usernames.txty .passwords.txt
  2. Acceda a [ en su navegador]. Active el proxyhttp://MACHINE_IP/support/login Burp e intente iniciar sesión, capturando la solicitud en su proxy . Tenga en cuenta que cualquier credencial será suficiente para este paso.
  3. Envíe la solicitud capturada desde el Proxy al Intruso haciendo clic derecho y seleccionando «Enviar al Intruso» o usando Ctrl + I.
  4. En la subpestaña «Posiciones», asegúrese de que solo estén seleccionados los parámetros de nombre de usuario y contraseña. Desactive cualquier selección adicional, como las cookies de sesión.
  5. Establezca el tipo de ataque en «Horca».
  1. Vaya a la subpestaña «Cargas útiles». Encontrará dos conjuntos de cargas útiles disponibles para los campos de nombre de usuario y contraseña.
  1. En el primer conjunto de carga útil (para nombres de usuario), vaya a «Opciones de carga útil», elija «Cargar» y seleccione la usernames.txtlista.
    • Repita el mismo proceso para el segundo conjunto de carga útil (para contraseñas) utilizando la passwords.txtlista.
    • El proceso completo se puede ver en la imagen GIF a continuación:
  1. Haz clic en el botón «Iniciar ataque» para iniciar el ataque de robo de credenciales. Podría aparecer una advertencia sobre la limitación de velocidad; haz clic en «Aceptar» para continuar. El ataque tardará unos minutos en completarse en Burp Community.
  2. Una vez iniciado el ataque, una nueva ventana mostrará los resultados de las solicitudes. Sin embargo, como Burp envió 100 solicitudes, necesitamos identificar cuáles fueron exitosas.
    Dado que los códigos de estado de respuesta no diferencian entre intentos exitosos y fallidos (todos son redirecciones 302), necesitamos usar la longitud de la respuesta para distinguirlos.

Haga clic en el encabezado de la columna «Longitud» para ordenar los resultados por longitud de bytes. Busque la solicitud con una longitud de respuesta más corta, lo que indica un intento de inicio de sesión exitoso.

  1. Para confirmar el intento de inicio de sesión exitoso, utilice las credenciales de la solicitud con la longitud de respuesta más corta para iniciar sesión.

Responda las preguntas a continuación

¿Qué combinación de usuario y contraseña indica un intento de inicio de sesión exitoso? El formato de respuesta es «usuario:contraseña».

m.rivera:letmein1

Desafío práctico

Habiendo obtenido acceso al sistema de soporte, ahora tenemos la oportunidad de explorar sus funcionalidades y ver qué acciones podemos realizar.

Al acceder a la interfaz de inicio, se nos presenta una tabla con varios tickets. Al hacer clic en cualquier fila, se nos redirige a una página donde podemos ver el ticket completo. Al examinar la estructura de la URL, observamos que estas páginas están numeradas con el siguiente formato:

http://MACHINE_IP/support/ticket/NUMBER

El sistema de numeración indica que a los tickets se les asignan identificadores enteros en lugar de identificadores complejos y difíciles de adivinar . Esta información es importante porque sugiere dos posibles escenarios:

  1. Control de acceso : El endpoint puede estar configurado correctamente para restringir el acceso únicamente a los tickets asignados a nuestro usuario actual. En este caso, solo podremos ver los tickets asociados a nuestra cuenta.
  2. Vulnerabilidad IDOR : Alternativamente, el endpoint podría carecer de controles de acceso adecuados, lo que genera una vulnerabilidad conocida como Referencias Directas a Objetos Inseguras ( IDOR ). En este caso, podríamos explotar el sistema y leer todos los tickets existentes, independientemente del usuario asignado.

Para investigar más a fondo, utilizaremos la herramienta Intruder para fuzzear el /support/ticket/NUMBERendpoint. Este método nos ayudará a determinar si el endpoint se ha configurado correctamente o si existe una vulnerabilidad IDOR . ¡Continuemos con el fuzzing!

Nota: Debes capturar una solicitud mientras estás conectado.

Desafío de la milla extra

En este ejercicio de alto nivel, abordaremos una variante más compleja del ataque de robo de credenciales que realizamos anteriormente. Sin embargo, esta vez se han implementado medidas adicionales para dificultar la fuerza bruta. Si se siente cómodo usando las macros Burp, puede intentar este desafío sin las instrucciones a continuación. De lo contrario, sigamos el enfoque paso a paso.

Capturando la solicitud

Comience capturando una solicitud http://MACHINE_IP/admin/login/y revisando la respuesta. A continuación, se muestra un ejemplo de la respuesta:

Responda las preguntas a continuación

¿Qué tipo de ataque es el más adecuado para esta tarea?

Sniper

Configure una posición y una carga útil adecuadas (los tickets se almacenan en valores entre 1 y 100) y luego inicie el ataque.

Deberías encontrar que al menos cinco tickets serán devueltos con un código de estado 200, lo que indica que existen.

Controlar

Ya sea utilizando la pestaña Respuesta en la ventana Resultados del ataque o mirando manualmente cada solicitud exitosa (es decir, código 200) en su navegador, busque el ticket que contiene la bandera.

¿Qué es la bandera?

THM{MTMxNTg5NTUzMWM0OWRlYzUzMDVjMzJl}

Desafío de la milla extra

En este ejercicio de alto nivel, abordaremos una variante más compleja del ataque de robo de credenciales que realizamos anteriormente. Sin embargo, esta vez se han implementado medidas adicionales para dificultar la fuerza bruta. Si se siente cómodo usando las macros de Burp, puede intentar este desafío sin las instrucciones a continuación. De lo contrario, sigamos el enfoque paso a paso.

Capturando la solicitud

Comience capturando una solicitud http://10.65.177.229/admin/login/y revisando la respuesta. A continuación, se muestra un ejemplo de la respuesta:

En esta respuesta, observamos que, junto a los campos de nombre de usuario y contraseña, ahora hay una cookie de sesión configurada, así como un token CSRF ( falsificación de solicitud entre sitios ) en el formulario como campo oculto. Al actualizar la página, se observa que tanto la cookie de sesión como el loginToken cambian con cada solicitud. Esto significa que, para cada intento de inicio de sesión, necesitamos extraer valores válidos tanto para la cookie de sesión como para el loginToken.

Para lograrlo, usaremos macros de Burp para definir un conjunto repetido de acciones (macro) que se ejecutarán antes de cada solicitud. Esta macro extraerá valores únicos para la cookie de sesión y el token de inicio de sesión, reemplazándolos en cada solicitud posterior de nuestro ataque.

Tutorial

  1. Vaya a  http://MACHINE_IP/admin/login/. Active Intercept en el módulo Proxy e intente iniciar sesión. Capture la solicitud y envíela a Intruder.
  2. Configure las posiciones de la misma manera que lo hicimos para forzar el inicio de sesión de soporte:
    • Establezca el tipo de ataque en «Horca».
    • Borre todas las posiciones predefinidas y seleccione solo los campos de formulario de nombre de usuario y contraseña. Nuestra macro gestionará las otras dos posiciones.
  1. Ahora cambie a la pestaña Cargas útiles y cargue las mismas listas de palabras de nombre de usuario y contraseña que usamos para el ataque de inicio de sesión de soporte.
    Hasta este punto, hemos configurado Intruder casi de la misma manera que nuestro ataque de robo de credenciales anterior; aquí es donde las cosas empiezan a complicarse.
  2. Con los parámetros de nombre de usuario y contraseña gestionados, necesitamos encontrar la manera de obtener el token de inicio de sesión y la cookie de sesión, que cambian constantemente. Lamentablemente, «grep recursivo» no funcionará debido a la respuesta de redirección, por lo que no podemos hacerlo completamente dentro de Intruder; necesitaremos crear una macro.
    Las macros nos permiten realizar el mismo conjunto de acciones repetidamente. En este caso, simplemente queremos enviar una solicitud GET a /admin/login/.
    Afortunadamente, configurarlo es un proceso sencillo.
    • Cambie a la pestaña principal «Configuración» en la parte superior derecha de Burp.
    • Haga clic en la categoría “Sesiones”.
    • Desplácese hasta la parte inferior de la categoría hasta la sección «Macros» y haga clic en el botón Agregar .
    • El menú que aparece mostrará nuestro historial de solicitudes. Si no hay ninguna solicitud GET  http://MACHINE_IP/admin/login/ en la lista, dirígete a esta ubicación en tu navegador y verás una solicitud adecuada.
    • Con la solicitud seleccionada, haga clic en Aceptar .
    • Por último, asigne un nombre adecuado a la macro y haga clic en Aceptar nuevamente para finalizar el proceso.
      Hay muchos pasos aquí, comparativamente hablando, por lo que el siguiente GIF muestra el proceso completo:
  1. Ahora que tenemos una macro definida, necesitamos establecer reglas de manejo de sesiones que definan cómo se debe utilizar la macro.
    • Aún en la categoría «Sesiones» de la configuración principal, desplácese hacia arriba hasta la sección «Reglas de manejo de sesiones» y elija Agregar una nueva regla.
    • Se abrirá una nueva ventana con dos pestañas: «Detalles» y «Alcance». Por defecto, estamos en la pestaña «Detalles».
  • Complete una descripción apropiada y luego cambie a la pestaña Alcance.
  • En la sección “Ámbito de herramientas”, desmarque todas las casillas de verificación excepto Intruso: no necesitamos que esta regla se aplique en ningún otro lugar.
  • En la sección «Ámbito de URL», seleccione «Usar ámbito de suite». Esto configurará la macro para que solo funcione en sitios que se hayan añadido al ámbito global (como se explicó en Fundamentos de Burp ). Si no ha definido un ámbito global, mantenga la opción «Usar ámbito personalizado» como predeterminada y añádala http://MACHINE_IP/al ámbito en esta sección.
  1. Ahora debemos volver a la pestaña Detalles y mirar la sección «Acciones de reglas».
    • Haga clic en el botón Agregar  : esto hará que aparezca un menú desplegable con una lista de acciones que podemos agregar.
    • Seleccione “Ejecutar una macro” de esta lista.
    • En la nueva ventana que aparece, seleccione la macro que creamos anteriormente.
      Actualmente, esta macro sobrescribirá todos los parámetros de nuestras solicitudes de intrusos antes de enviarlas; esto es excelente, ya que significa que los tokens de inicio de sesión y las cookies de sesión se añadirán directamente a nuestras solicitudes. Dicho esto, debemos restringir qué parámetros y cookies se actualizan antes de iniciar nuestro ataque:
    • Seleccione «Actualizar solo los siguientes parámetros y encabezados», luego haga clic en el botón Editar  junto al cuadro de entrada debajo del botón de opción.
    • En el campo de texto «Ingresar un nuevo elemento», escriba «loginToken». Pulse » Agregar» y luego «Cerrar» .
    • Seleccione “Actualizar sólo las siguientes cookies” y luego haga clic en el botón Editar correspondiente .
    • Introduce «sesión» en el campo «Introducir un nuevo elemento». Pulsa » Añadir» y luego «Cerrar» .
    • Por último pulsamos OK para confirmar nuestra acción.
      El siguiente GIF demuestra esta etapa final del proceso:
  1. Haga clic en Aceptar y ¡habremos terminado!
  2. Ahora deberías tener una macro definida que sustituirá el token CSRF y la cookie de sesión. ¡Solo queda volver a Intruder y comenzar el ataque!
    Nota: Debería recibir respuestas con el código de estado 302 por cada solicitud de este ataque. Si ve errores 403, su macro no funciona correctamente.
  3. Al igual que con el ataque de robo de credenciales de inicio de sesión de soporte que realizamos, los códigos de respuesta son todos iguales (redirecciones 302). Nuevamente, ordene sus respuestas por longitud para encontrar las credenciales válidas. Los resultados no serán tan claros como la última vez; verá respuestas con longitudes bastante diferentes. Sin embargo, la respuesta que indica un inicio de sesión exitoso debería ser significativamente más corta.
  4. Utilice las credenciales que acaba de encontrar para iniciar sesión (es posible que necesite actualizar la página de inicio de sesión antes de ingresar las credenciales).

Responda las preguntas a continuación

¿Qué combinación de usuario y contraseña indica un intento de inicio de sesión exitoso? El formato de respuesta es «usuario:contraseña».

o.bennett:bella1

Conclusión

¡Felicitaciones por completar la sala Burp Suite Intruder!

A esta altura, debería tener una comprensión sólida de cómo utilizar Intruder de manera efectiva para automatizar solicitudes y realizar varios tipos de ataques.

¡En la siguiente sala del módulo, veremos algunos de los otros módulos de Burp Suite !

Responda las preguntas a continuación

¡Puedo usar Intruder!

Sigan entrenando, Hacketones, Nos vemos en el próximo laboratorio!!!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *