Saltar al contenido
Portada » Blog – Laprovittera Carlos » Burp Suite Other Modules

Burp Suite Other Modules

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

Descodificador: descripción general

El módulo Decodificador de Burp Suite ofrece capacidades de manipulación de datos de usuario. Como su nombre indica, no solo decodifica los datos interceptados durante un ataque, sino que también permite codificar nuestros propios datos, preparándolos para su transmisión al objetivo. Decodificador también permite crear sumas hash de datos, además de ofrecer una función de Decodificación Inteligente, que intenta decodificar los datos proporcionados recursivamente hasta que vuelven a ser texto plano (como la función «Magic» de Cyberchef ).

Para acceder al Decodificador, navegue a la pestaña Decodificador desde el menú superior para ver las opciones disponibles:

Esta interfaz ofrece una multitud de opciones.

  1. Este cuadro sirve como espacio de trabajo para introducir o pegar datos que requieren codificación o decodificación. Al igual que con otros módulos de Burp Suite , los datos se pueden mover a esta área desde diferentes partes del framework mediante la opción «Enviar al decodificador» al hacer clic con el botón derecho.
  2. En la parte superior de la lista a la derecha, hay una opción para tratar la entrada como texto o valores de bytes hexadecimales.
  3. A medida que avanzamos por la lista, aparecen menús desplegables para codificar, decodificar o hacer hash de la entrada.
  4. La función de decodificación inteligente  , ubicada al final, intenta decodificar automáticamente la entrada.

Al introducir datos en el campo de entrada, la interfaz se replica para mostrar el resultado de nuestra operación. Podemos aplicar transformaciones adicionales con las mismas opciones:

Responda las preguntas a continuación

Descodificador: codificación/descodificación

Smart decode

Codificación y decodificación con decodificador

Ahora, examinemos en detalle las opciones de codificación y decodificación manual. Son idénticas independientemente del menú de decodificación o codificación:

  • Simple : se refiere al texto sin procesar antes de aplicar cualquier transformación.
  • URL : La codificación de URL se utiliza para garantizar la transferencia segura de datos en la URL de una solicitud web. Consiste en sustituir caracteres por su código ASCII en formato hexadecimal, precedido por un símbolo de porcentaje (%). Este método es fundamental para cualquier tipo de prueba de aplicaciones web.
    Por ejemplo, al codificar la barra diagonal ( / ), cuyo código ASCII es 47, se convierte a 2F en hexadecimal, convirtiéndose así en %2F en la codificación URL. El decodificador puede verificar esto escribiendo una barra diagonal en el cuadro de entrada y seleccionando Encode as -> URL:
  • HTML : La codificación de entidades HTML reemplaza los caracteres especiales con un símbolo &, seguido de un número hexadecimal o una referencia al carácter que se escapa, y termina con un punto y coma (;). Este método garantiza la representación segura de caracteres especiales en HTML y ayuda a prevenir ataques como XSS . La opción HTML del Decodificador permite codificar cualquier carácter en su formato HTML de escape o decodificar entidades HTML capturadas. Por ejemplo, para decodificar una comilla ya mencionada, introduzca la versión codificada y seleccione Decode as -> HTML:
  • Base64 : Base64, un método de codificación de uso común, convierte cualquier dato a un formato compatible con ASCII. El funcionamiento interno no es crucial en esta etapa; sin embargo, quienes estén interesados ​​pueden encontrar la matemática subyacente aquí .
  • ASCII Hex : Esta opción convierte datos entre representaciones ASCII y hexadecimales. Por ejemplo, la palabra «ASCII» se puede convertir al número hexadecimal «4153434949». Cada carácter se convierte de su representación numérica ASCII a hexadecimal.
  • Hexadecimal, octal y binario : estos métodos de codificación se aplican únicamente a entradas numéricas y convierten entre representaciones decimales, hexadecimales, octales (base ocho) y binarias.
  • Gzip : Gzip comprime datos, reduciendo el tamaño de los archivos y las páginas antes de la transmisión al navegador. Los tiempos de carga más rápidos son muy deseables para los desarrolladores que buscan mejorar su posicionamiento SEO y evitar inconvenientes al usuario. Decoder facilita la codificación y decodificación manual de datos gzip, aunque a menudo no son ASCII/Unicode válidos. Por ejemplo:

Estos métodos se pueden combinar. Por ejemplo, una frase (» Burp Suite Decoder») podría convertirse a ASCII hexadecimal y luego a octal:

En combinación, estos métodos nos otorgan un control sustancial sobre los datos que estamos codificando o decodificando.

Cada método de codificación/decodificación está codificado por colores, lo que permite una rápida identificación de la transformación aplicada.

Formato hexadecimal

Si bien introducir datos en formato ASCII es beneficioso, a veces es necesario editar la entrada byte a byte. Aquí es donde resulta útil la «Vista Hexadecimal», que se puede seleccionar encima de las opciones de decodificación:

Esta función nos permite ver y modificar nuestros datos en formato de bytes hexadecimales, una herramienta vital cuando trabajamos con archivos binarios u otros datos que no sean ASCII.

Decodificación inteligente

Por último, tenemos la opción de decodificación inteligente . Esta función intenta decodificar automáticamente el texto codificado. Por ejemplo, Burp Suite se reconoce automáticamente como HTML y se decodifica como corresponde:

Si bien no es perfecta, esta función puede ser una solución rápida para decodificar fragmentos de datos desconocidos.

Si bien no es perfecta, esta función puede ser una solución rápida para decodificar fragmentos de datos desconocidos.

Responda las preguntas a continuación

Codifica en Base64 la frase: Let’s Start Simple.

¿Cuál es la versión codificada en base64 de este texto?

TGV0J3MgU3RhcnQgU2ltcGxl

URL Decodifica estos datos: %4e%65%78%74%3a%20%44%65%63%6f%64%69%6e%67.

¿Cuál es el texto simple devuelto?

Next: Decoding

Utilice la decodificación inteligente para decodificar estos datos: %34%37.

¿Qué es el texto decodificado?

47

Codifique esta frase: Encoding Challenge.

Comience con la codificación base64. Convierta la salida a ASCII hexadecimal. Finalmente, codifique la cadena hexadecimal a octal .

¿Cuál es la cuerda final?

24034214a720270024142d541357471232250253552c1162d1206c

Decodificador: Hashing

HashAdemás de su funcionalidad de codificación/descodificación, Decoder también ofrece la capacidad de generar sumas hash para nuestros datos.

Teoría

El hash es un proceso unidireccional que transforma los datos en una firma única. Para que una función se considere un algoritmo hash, la salida que genera debe ser irreversible. Un algoritmo hash eficaz garantiza que cada entrada de datos genere un hash completamente único. Por ejemplo, al usar el algoritmo MD5 para generar una suma hash para el texto «MD5sum», se obtiene un resultado 4ae1a02de5bd02a5515f583f4fca5e8c. Al usar el mismo algoritmo para «MD5SUM», se obtiene un hash completamente diferente, a pesar de la gran similitud de la entrada: 13b436b09172400c9eb2f69fbd20adad. Por lo tanto, los hashes se utilizan comúnmente para verificar la integridad de archivos y documentos, ya que incluso una pequeña modificación en el archivo altera significativamente la suma hash.

Nota: El algoritmo MD5 está obsoleto y no debe utilizarse en aplicaciones contemporáneas.

Además, los hashes se utilizan para almacenar contraseñas de forma segura, ya que el proceso de hash unidireccional las hace relativamente seguras, incluso si la base de datos se ve comprometida. Cuando un usuario crea una contraseña, la aplicación la hashea y la almacena. Al iniciar sesión, la aplicación hashea la contraseña introducida y la compara con el hash almacenado; si coinciden, la contraseña es correcta. Con este método, la aplicación nunca necesita almacenar la contraseña original (texto plano).

Hashing en el decodificador

El decodificador nos permite crear sumas hash para los datos directamente en Burp Suite; funciona de forma similar a las opciones de codificación/decodificación que mencionamos anteriormente. En concreto, hacemos clic en el menú desplegable Hash y seleccionamos un algoritmo de la lista:

Nota: Esta lista es significativamente más larga que los algoritmos de codificación y decodificación; vale la pena desplazarse para ver los muchos algoritmos hash disponibles.

Siguiendo con nuestro ejemplo anterior, introduzcamos «MD5sum» en el cuadro de entrada y desplácese por la lista hasta encontrar » MD5 «. Al aplicar esto, accederemos automáticamente a la vista hexadecimal:

La salida de un algoritmo hash no genera texto ASCII/Unicode puro. Por lo tanto, se acostumbra a convertir la salida del algoritmo en una cadena hexadecimal; esta es la forma «hash» con la que quizás esté familiarizado.

Completemos esto aplicando una codificación «ASCII Hex» a la suma hash para crear la cadena hexadecimal ordenada de nuestro ejemplo inicial.

Aquí está el proceso completo:

Responda las preguntas a continuación

Usando Decoder, ¿cuál es el hashsum SHA-256 de la frase: Let’s get Hashing!?

Convierta esto en una cadena hexadecimal ASCII para obtener la respuesta a esta pregunta.

6b72350e719a8ef5af560830164b13596cb582757437e21d1879502072238abe

Generar una suma hash MD4 de la frase: Insecure Algorithms.

Codifique esto como base64 (no ASCII Hex) antes de enviar.

TcV4QGZZN7y7lwYFRMMoeA==

Veamos un ejemplo en contexto:

Primero, descargue el archivo adjunto a esta tarea.

Nota: Este archivo también se puede descargar desde la máquina virtual implementada wget http://10.10.38.233:9999/AlteredKeys.zip ;  puede resultarle útil si usa AttackBox.

Ahora lea la especificación del problema a continuación:

¡Un bromista ha manipulado mi clave SSH! Hay cuatro claves en el directorio y no tengo ni idea de cuál es la verdadera. El hashsum MD5 de mi clave es 3166226048d6ad776370dc105d40d9f8 …  ¿podrías encontrarla?

¿Cual es el nombre de clave correcto?

Key3

Comparador: descripción general

El comparador, como su nombre lo indica, nos permite comparar dos piezas de datos, ya sea por palabras ASCII o por bytes.

Primero veamos la interfaz:

La interfaz se puede dividir en tres secciones principales:

  1. A la izquierda, vemos los elementos que se van a comparar. Al cargar los datos en Comparer, aparecen como filas en estas tablas. Seleccionamos dos conjuntos de datos para comparar.
  2. En la parte superior derecha, tenemos opciones para pegar datos del portapapeles (Pegar), cargar datos desde un archivo (Cargar), eliminar la fila actual (Eliminar) y borrar todos los conjuntos de datos (Borrar).
  3. Por último, en la esquina inferior derecha, podemos comparar nuestros conjuntos de datos por palabras o bytes. No importa cuál de estos botones seleccione inicialmente, ya que puede cambiarlo más adelante. Estos son los botones que pulsamos cuando estamos listos para comparar los datos seleccionados.

Al igual que la mayoría de los módulos de Burp Suite , también podemos cargar datos en Comparer desde otros módulos haciendo clic derecho y eligiendo Enviar a Comparer .

Una vez que hemos agregado al menos 2 conjuntos de datos para comparar y presionamos en Palabras o Bytes , una ventana emergente nos muestra la comparación:

Esta ventana también tiene tres secciones distintas:

  1. Los datos comparados ocupan la mayor parte de la ventana; pueden visualizarse en formato de texto o hexadecimal. El formato inicial depende de si se eligió comparar por palabras o por bytes en la ventana anterior, pero esto puede modificarse con los botones sobre los cuadros de comparación.
  2. La clave de comparación se encuentra en la parte inferior izquierda y muestra qué colores representan datos modificados, eliminados y agregados entre los dos conjuntos de datos.
  3. La casilla de verificación Sincronizar vistas se encuentra en la parte inferior derecha de la ventana. Al seleccionarla, se garantiza que ambos conjuntos de datos se sincronicen en formato. Es decir, si cambia uno a la vista hexadecimal, el otro se ajustará para coincidir.

El título de la ventana muestra el número total de diferencias encontradas.

Comparador: Ejemplo

Ahora sabemos qué hace Comparer, pero ¿para qué nos resulta útil?

Hay muchas situaciones en las que poder comparar rápidamente dos piezas de datos (potencialmente muy grandes) puede resultar útil.

Por ejemplo, al realizar un ataque de fuerza bruta para iniciar sesión o un ataque de robo de credenciales con Intruder, es posible que desee comparar dos respuestas con diferentes longitudes para ver dónde están las diferencias y si estas indican un inicio de sesión exitoso.

Ejemplo práctico

  1. Navegar ahttp://10.10.38.233/support/login
    Intente iniciar sesión con un nombre de usuario y contraseña no válidos: capture la solicitud en Burp Proxy .
  2. Envíe la solicitud al repetidor con Ctrl + R(o equivalente en Mac) o haciendo clic derecho en la solicitud en el módulo Proxy y eligiendo Enviar al repetidor .
  3. Envíe la solicitud, luego haga clic derecho en la respuesta y elija Enviar al comparador .
  1. En la pestaña Repetidor, cambie las credenciales a:
    • Nombre de usuario:support_admin
    • Contraseña:w58ySK4W
      Envíe la solicitud nuevamente y luego pase la nueva respuesta a Comparer.

Secuenciador: descripción general

El secuenciador nos permite evaluar la entropía , o aleatoriedad, de los tokens. Los tokens son cadenas que se utilizan para identificar algo y, idealmente, deberían generarse de forma criptográficamente segura. Estos tokens podrían ser cookies de sesión o tokens de falsificación de solicitudes entre sitios ( CSRF ) utilizados para proteger el envío de formularios. Si estos tokens no se generan de forma segura, en teoría podríamos predecir los valores futuros de los tokens. Las implicaciones podrían ser considerables, por ejemplo, si el token en cuestión se utiliza para restablecer contraseñas.

Comencemos mirando la interfaz del secuenciador:

Tenemos dos formas principales de realizar análisis de tokens con Sequencer:

  • Captura en vivo : Este es el método más común y la subpestaña predeterminada de Sequencer. La captura en vivo nos permite enviar una solicitud que generará un token a Sequencer para su análisis. Por ejemplo, podríamos enviar una solicitud POST a un punto de acceso de Sequencer, sabiendo que el servidor responderá con una cookie. Con la solicitud enviada, podemos indicarle a Sequencer que inicie una captura en vivo. A continuación, realizará automáticamente la misma solicitud miles de veces, almacenando las muestras de token generadas para su análisis. Tras recopilar suficientes muestras, detenemos Sequencer y le permitimos analizar los tokens capturados.
  • Carga manual : Esto nos permite cargar una lista de muestras de tokens pregenerados directamente en Sequencer para su análisis. Usar la carga manual significa que no necesitamos realizar miles de solicitudes a nuestro objetivo, lo cual puede ser ruidoso y consumir muchos recursos. Sin embargo, requiere una lista extensa de tokens pregenerados.

En esta sala nos centraremos en las capturas en vivo.

Responda las preguntas a continuación

¿Qué nos permite evaluar Sequencer?

Entropy

Secuenciador: captura en vivo

Genial, profundicemos en el proceso de uso de la captura en vivo del secuenciador para el análisis de entropía en el token anti-fuerza bruta utilizado en el formulario de inicio de sesión de administrador.

Primero, capture una solicitud http://10.10.38.233/admin/login/en el proxy . Haga clic derecho en la solicitud y seleccione » Enviar al secuenciador» .

En la sección «Ubicación del token en la respuesta», podemos seleccionar entre Cookie , Campo de formulario y Ubicación personalizada . Dado que en este caso estamos probando el loginToken, seleccione el botón de opción «Campo de formulario» y elija loginToken en el menú desplegable:

En este caso, podemos dejar las demás opciones con sus valores predeterminados. Haga clic en el botón «Iniciar captura en vivo» .

Aparecerá una nueva ventana indicando que se está realizando una captura en vivo y mostrando el número de tokens capturados hasta el momento. Espere hasta que se capture un número suficiente de tokens (unos 10 000 deberían ser suficientes); cuantos más tokens tengamos, más preciso será nuestro análisis.

Una vez que se hayan capturado alrededor de 10 000 tokens, haga clic en Pausa y luego seleccione el botón Analizar ahora :

Es importante tener en cuenta que también podríamos haber optado por detener la captura. Sin embargo, al pausarla, conservamos la opción de reanudarla más tarde si el informe no tiene suficientes muestras para calcular con precisión la entropía del token .

Si deseábamos actualizaciones periódicas del análisis, también podríamos haber seleccionado la casilla «Autoanálisis». Esta opción indica a Burp que realice el análisis de entropía cada 2000 solicitudes, proporcionando actualizaciones frecuentes que serán cada vez más precisas a medida que se carguen más muestras en el secuenciador.

En este punto, también vale la pena señalar que podríamos optar por copiar o guardar los tokens capturados para un análisis más detallado en otro momento.

Al hacer clic en el botón Analizar ahora  , Burp analizará la entropía del token y generará un informe.

Secuenciador: Análisis

Ahora que tenemos un informe del análisis de entropía de nuestro token, ¡es hora de analizarlo!

El informe de análisis de entropía generado se divide en cuatro secciones principales. La primera de ellas es el Resumen de resultados. Este resumen ofrece lo siguiente:

  • Resultado general : Esto ofrece una evaluación general de la seguridad del mecanismo de generación de tokens. En este caso, el nivel de entropía indica que es probable que los tokens se generen de forma segura.
  • Entropía efectiva : Mide la aleatoriedad de los tokens. La entropía efectiva de 117 bits es relativamente alta, lo que indica que los tokens son suficientemente aleatorios y, por lo tanto, seguros contra predicciones o ataques de fuerza bruta.
  • Fiabilidad : El nivel de significancia del 1% implica un 99% de confianza en la precisión de los resultados. Este nivel de confianza es bastante alto, lo que garantiza la precisión de la estimación de la entropía efectiva .
  • Muestra : Proporciona detalles sobre las muestras de tokens analizadas durante el proceso de prueba de entropía , incluida la cantidad de tokens y sus características.

Si bien el informe resumido suele proporcionar suficiente información para evaluar la seguridad del proceso de generación de tokens, es importante recordar que, en algunos casos, puede ser necesaria una mayor investigación. El análisis a nivel de caracteres y bits puede proporcionar información más detallada sobre la aleatoriedad de los tokens, especialmente cuando los resultados del resumen plantean posibles inquietudes.

Si bien el informe de entropía puede proporcionar un sólido indicador de la seguridad del mecanismo de generación de tokens, se necesitan pruebas más definitivas. Otros factores también podrían afectar la seguridad de los tokens, y la naturaleza de la probabilidad y la estadística implica que siempre existe cierto grado de incertidumbre. Dicho esto, una entropía efectiva de 117 bits con un nivel de significancia del 1% sugiere un proceso de generación de tokens robustamente seguro.

Al hacer clic en el botón Analizar ahora  , Burp analizará la entropía del token y generará un informe.

Responda las preguntas a continuación

¿Cuál se estima que es la calidad general de la aleatoriedad?

Excellent

Organizador: Descripción general

El módulo Organizador de Burp Suite está diseñado para ayudarle a almacenar y anotar copias de solicitudes HTTP que desee revisar posteriormente. Esta herramienta puede ser especialmente útil para organizar su flujo de trabajo de pruebas de penetración. Estas son algunas de sus características principales:

  • Puede almacenar solicitudes que desee investigar más tarde, guardar solicitudes que ya haya identificado como interesantes o guardar solicitudes que desee agregar a un informe más tarde.
  • Puedes enviar solicitudes HTTP a Burp Organizer desde otros módulos de Burp, como Proxy o Repeater . Para ello, haz clic derecho en la solicitud y selecciona » Enviar a Organizer»  o usa la tecla de acceso rápido predeterminada Ctrl + O. Cada solicitud HTTP que envíes a Organizer es una copia de solo lectura de la solicitud original, guardada en el momento en que la enviaste.
  • Las solicitudes se almacenan en una tabla, que contiene columnas como el número de índice de la solicitud, la hora en que se realizó la solicitud, el estado del flujo de trabajo, la herramienta Burp desde la que se envió la solicitud, el método HTTP , el nombre de host del servidor, la ruta del archivo URL, la cadena de consulta URL, la cantidad de parámetros en la solicitud, el código de estado HTTP de la respuesta, la longitud de la respuesta en bytes y cualquier nota que haya realizado.

Para ver la solicitud y la respuesta:

  1. Haga clic en cualquier elemento del Organizador.
  2. Tanto la solicitud como la respuesta son de solo lectura. Puede buscar dentro de la solicitud o la respuesta, seleccionar la solicitud y usar la barra de búsqueda debajo de ella.

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 *