Inicio | Seguridad de Aplicaciones | Tutorial Burp Suite - Intruso Tool versión 2Burp Suite Tutorial - versión de Intruder Herramienta 2 2 DE ABRIL, 2010 | ESCRITO POR NINJA DE SEGURIDAD | SOLICITUD DE SEGURIDAD | 4 COMENTARIOS Hola a todos, Mis Burp Suite entradas del blog de tutoría parecen ser un poco como los autobuses, le tomó mucho tiempo para mí para hacer el primero y ahora estoy escribiendo la tercera! Yo estaba pensando en escribir un tutorial para el secuenciador y las herramientas de decodificación de esta semana hasta el Puerto Swigger lanzado una nueva versión de la Suite de eructar . La nueva versión de la Suite Haga eructar incluye muchas mejoras en la herramienta de intrusión, incluyendo algunas nuevas características que me encanta! Yo no estaba muy seguro de cómo estructurar esta entrada del blog porque hice un tutorial herramienta de intrusión hace tres semanas. Voy a volver a utilizar una gran parte del contenido de la entrada en el blog original, pero voy a ser la sustitución de las capturas de pantalla con versiones actualizadas. Estoy usando la aplicación Damn Vulnerable Web en la entrada del blog de esta semana para demostrar la herramienta Burp Suite intrusión y esperamos que pueda presentar a la DVWA. ¿Cuál es la suite de eructar? Burp Suite es una plataforma integrada para atacar aplicaciones web. Contiene todas las herramientas para el eructo con numerosas interfaces entre ellos diseñados para facilitar y acelerar el proceso de atacar a una aplicación. Todas las herramientas de compartir el mismo marco robusto para el manejo de las peticiones HTTP, la persistencia, la autenticación, proxies aguas arriba, la tala, la alerta y la extensibilidad. Burp Suite le permite combinar técnicas manuales y automáticas para enumerar, analizar, explorar, atacar y explotar las aplicaciones web. Las diversas herramientas de Burp trabajar juntos de manera efectiva para compartir información y permitir que los hallazgos identificados en una herramienta para formar la base de un ataque con otro. Fuente: http://www.portswigger.net/suite/ La Suite Burp se compone de herramientas (las descripciones de tomar de la página web Swigger Puerto): Proxy : Proxy Burp es un servidor interactivo de HTTP / S proxy para atacar y probar aplicaciones web. Funciona como un hombre-en-el-medio entre el navegador final y el servidor de destino web, y permite al usuario para interceptar, inspeccionar y modificar el tráfico que pasa prima en ambas direcciones. Araña : Haga eructar a Spider es una herramienta para el mapeo de aplicaciones web. Utiliza diversas técnicas inteligentes para generar un inventario exhaustivo de los contenidos de una aplicación y funcionalidad. Escáner : Burp Scanner es una herramienta para realizar el descubrimiento automatizado de vulnerabilidades de seguridad en aplicaciones web. Está diseñado para ser utilizado por los probadores de penetración, y para que quepa en estrecha colaboración con sus técnicas y metodologías existentes para la realización de manuales y semi-automáticos de pruebas de penetración de las aplicaciones web. Intruso : Intruder Haga eructar es una herramienta para automatizar ataques contra aplicaciones web personalizadas. Repetidor : Repetidor eructar es una herramienta para modificar manualmente y volver a emitir las solicitudes individuales de HTTP, y el análisis de sus respuestas. Lo mejor es usarlo en conjunción con las otras herramientas de Burp Suite. Por ejemplo, puede enviar una solicitud al repetidor del mapa de sitio de destino, desde el historial de navegación Burp Proxy, o de los resultados de un ataque de intrusos Eructar y ajustar manualmente la solicitud para ajustar un ataque o una sonda en busca de vulnerabilidades. Secuenciador : Secuenciador eructar es una herramienta para analizar el grado de aleatoriedad en las credenciales de sesión de una aplicación o con otros temas cuya imprevisibilidad de la aplicación depende para su seguridad. Decoder : descodificador de eructar es una sencilla herramienta para la transformación de los datos codificados en su forma canónica, o para transformar los datos en bruto en diversas formas codificadas y hash. Es capaz de reconocer inteligentemente varios formatos de codificación que utilizan técnicas heurísticas. Comparer : Burp Comparer es una herramienta sencilla para la realización de una comparación (una representación visual "diff") entre dos elementos de datos. En el contexto de atacar a una aplicación web, este requisito general, se levantarán cuando se quiere identificar rápidamente las diferencias entre las dos respuestas de las aplicaciones (por ejemplo, entre dos respuestas recibidas en el curso de un ataque de intrusos eructar, o entre las respuestas a un inicio de sesión no utilizando los nombres de usuario válidos y no válidos), o entre dos solicitudes de aplicaciones (por ejemplo, para identificar los diferentes parámetros de la petición que dan lugar a un comportamiento diferente). Este tutorial cubre la herramienta de intrusión, se puede encontrar tutoriales sobre algunas de las otras herramientas en mayores entradas del blog de seguridad de Ninja . La razón por la que empecé a usar la herramienta de intrusión fue para automatizar las pruebas de validación de entradas. Que había creado una gran cantidad de entradas de prueba que fueron utilizados para poner a prueba las debilidades de validación de entrada (SQL Injection, inyección XPath, Cross Site Scripting, etc) en las aplicaciones web. La cantidad de entradas de prueba que había creado hace inviable las pruebas manuales, así que necesitaba una herramienta que tomar estas entradas y automáticamente hacer las 500 solicitudes que necesitaba + por punto de entrada. esperamos que pueda ser capaz de hacer lo mismo después de haber leído esta entrada del blog. Se puede ver en la siguiente imagen que he configurado Firefox para utilizar el proxy Burp Suite para todo el tráfico. pero usted puede cambiarlo si lo desea. Habilitar el Proxy Burp Suite Para empezar a utilizar la suite de eructar para probar nuestra aplicación web de ejemplo lo que tenemos que configurar nuestro navegador para poder usar la Suite Haga eructar como un proxy. haga clic en la pestaña de opciones: . Al abrir la herramienta de Burp Suite proxy y comprobar que el proxy se está ejecutando. He encontrado la Suite Haga eructar y ahora utilice la herramienta de intrusión que me ayude a realizar estas pruebas.El proxy Burp Suite usará el puerto 8080 por defecto. Se puede ver que el proxy se utiliza el puerto por defecto: . Muchos de estos artículos están fuera del lado del alcance de este tutorial. La Suite Haga eructar ahora iniciar el registro de las solicitudes y respuestas que pasan a través del proxy.La representación está en funcionamiento y listo para usar. Hemos navegado a la página de inicio de sesión y el servidor proxy DVWA Burp Suite ha capturado la solicitud y la respuesta: . Se puede ver que la pestaña de opciones proxy tiene un buen número de artículos que se pueden configurar para satisfacer nuestras necesidades de pruebas. . Vamos a utilizar el ejemplo de inyección SQL en el DVWA para el resto de este tutorial. Se puede ver en la imagen de abajo que el ejemplo de inyección de SQL es bastante simple para nosotros para probar: . Para ello debemos asegurarnos de que el proxy Burp Suite está configurado para interceptar nuestras peticiones: .Tenemos que capturar la solicitud de ID de usuario después de que haga clic en el botón de enviar y reemplazar el valor de ID de usuario con las entradas de nuestras pruebas. Con la intercepción permitió que se presentara la solicitud de identificación del usuario y enviarla al intruso como se puede ver a continuación: . . Usted puede ver la solicitud en la herramienta de intrusión a continuación: .La Suite Haga eructar a nuestra solicitud se enviará a la herramienta de intrusión para que podamos empezar nuestras pruebas. Usted puede modificar este comportamiento dando instrucciones a la Suite Haga eructar a para añadir automáticamente tus comentarios a la original en lugar de reemplazarlo como lo hemos hecho en el ejemplo anterior.La herramienta se crea automáticamente las posiciones de carga útil para nosotros. Encomendar a la Suite Haga eructar a colocar automáticamente sus marcadores de carga útil para añadir datos a la entrada en lugar de reemplazarlo es necesario hacer clic en "añadir al valor de la base de parámetros": . el intruso sustituir el valor entre dos § personajes con una de las entradas de nuestras pruebas. Las posiciones de la carga útil se definen mediante el carácter §. net/intruder/help. y se inserta la misma carga útil en todas las posiciones definidas a la vez. Las posiciones que no están dirigidos durante una petición dada no se ven afectados . Hay un conjunto de carga útil diferente para cada posición definida (hasta un máximo de 8). Se repite a través de las cargas.La ficha de posiciones que se muestra en la imagen de arriba tiene cuatro tipos de ataque diferentes para que usted elija (definición tomada de: http://www. Ariete : Este sistema utiliza un único conjunto de cargas. El ataque se repite a través de . un nombre de usuario dentro de la cabecera Cookie y en el cuerpo del mensaje).los marcadores de posición se eliminan y el texto que aparece entre ellos en la plantilla se mantiene sin cambios. cross-site scripting). Este tipo de ataque es útil para probar una serie de campos de datos de forma individual para una vulnerabilidad común (por ejemplo. Este tipo de ataque es útil en caso de un ataque requiere la misma entrada que se insertará en varios lugares dentro de la petición HTTP (por ejemplo. El número total de peticiones generadas en el ataque es el producto del número de posiciones y el número de cargas útiles en el conjunto de carga útil.portswigger.html ): Sniper : Este sistema utiliza un único conjunto de cargas. Se dirige a cada posición. a su vez. y se inserta cada carga útil en esa posición a su vez. Pitchfork : Este sistema utiliza varios conjuntos de carga útil. El número total de peticiones generadas en el ataque es el número de cargas útiles en el conjunto de carga útil. un usuario en un parámetro. y una contraseña desconocida en otro parámetro). etc Este tipo de ataque es útil en caso de un ataque requiere diferentes pero relacionados entre sí de entrada a ser insertada en varios lugares dentro de la solicitud HTTP (por ejemplo. Es decir. a su vez. El número total de peticiones generadas por el ataque es el número de cargas útiles en el conjunto más pequeño de carga útil. un usuario en un campo de datos. Bomba de racimo : Este sistema utiliza varios conjuntos de carga útil.esto puede ser extremadamente grande. En este tutorial vamos a utilizar el tipo de ataque de francotirador para probar el campo ID de usuario. y se inserta una carga útil en cada posición definida. y recorrer todos los cargas en la carga útil set 2 en la posición 2. Hay un conjunto de carga útil diferente para cada posición definida (hasta un máximo de 8). El número total de peticiones generadas por el ataque es el producto del número de cargas útiles en todos los conjuntos de carga útil definidos . si hay dos posiciones de carga útil. la primera solicitud se inserta la primera carga de la carga útil de un conjunto en la posición 1 y la primera carga útil de carga de serie 2 en la posición 2. y recorrer todos las cargas útiles de carga que figuran dos en la posición 2. El ataque se repite a través de cada conjunto de carga útil. Es decir. de modo que todas las permutaciones de las combinaciones de carga útil se prueban. Hemos realizado una búsqueda a continuación de la palabra "seguridad": . Este tipo de ataque es útil cuando un ataque requiere de entrada diferente y no relacionados que se insertará en varios lugares dentro de la solicitud HTTP (por ejemplo.toda la carga útil se establece al mismo tiempo. y un número de identificación conocido correspondiente a ese usuario en otro campo de datos). que luego se colocará la carga de la segunda carga de establecer una en la la posición 1. Puede realizar una búsqueda rápida en la pestaña de posiciones para identificar los valores de interés. la segunda solicitud se inserte el segundo de la carga útil de carga de establecer una en la posición 1 y la carga del segundo conjunto de carga 2 en la posición 2. el ataque se coloque la primera carga de la carga de establecer una en la posición 1. clic con el botón del menú de "convertir a la selección". Si desea codificar o decodificar cualquiera de los valores en su petición (o "nada" en la solicitud) se puede resaltar y haga clic derecho.La ficha de datos ofrece varias posiciones de codificación / decodificación de opciones. Esto nos permite codificar / decodificar los valores en la ficha de posiciones. He seleccionado nuestro valor ID de usuario de abajo para mostrar la forma de codificar un valor de: . He codificado el valor de ID de usuario utilizando la codificación URL: . Podemos convertir nuestros valores en 4 tipos principales diferentes. el RFC indica que entre otras cosas. el carácter reservado se utilizan como separadores en las URL. " y "representa el + signo. " " "representa la " marca. las referencias de caracteres comunes entidad se muestran a continuación (hay alrededor de 250 referencias a entidades de caracteres ): " < "representa el < signo. Los caracteres que se permiten en las direcciones URL se define como reservados o sin reservas en el RFC 3986 .Vamos a utilizar codificación HTML para representar los caracteres que pueden tener un significado especial como un carácter literal. HTML Encoding: En mi opinión codificación HTML es mucho más simple que la codificación URL. cada uno se explica a continuación: Codificación URL : codificación URL (también conocido como codificación por ciento) se utiliza para codificar los datos que serán incluidos en un URL. " > "representa la > señal. Usamos referencias entidades de caracteres para reemplazar estos caracteres potencialmente peligrosos con un nombre simbólico. Los caracteres reservados se definen como los personajes que a veces pueden tener un significado especial en las direcciones URL. . Puede crear Javascript. lo envió a la herramienta de intrusión y marcado nuestras posiciones de carga útil. capturó una solicitud.Base 64 : Base 64 es un término genérico para cualquier número de esquemas de codificación similares que codifica los datos binarios de su tratamiento numérico y traducirla en una representación en base 64. Oracle y MySQL cadenas construidas. He incluido una captura de pantalla por debajo del cual se muestra un corchete angular (<) codificado con todos los tipos de codificación diferentes: Selección de una carga útil Hasta ahora. hemos habilitado el proxy Burp Suite. Construido cadena: La opción de la cadena construida le permite transformar sus valores en una cadena que podría ser útil en los ataques de inyección de código. Microsoft SQL. Ahora tenemos que decirle a la herramienta de intrusión cuáles son los valores para insertar en las posiciones. Para definir las cargas que tenga que hacer clic en la pestaña de cargas dentro de la herramienta de intrusión: . Una carga se lee cada línea del archivo. El menú desplegable al lado del número del sistema de carga útil permite realizar muchos tipos diferentes de pruebas de la manipulación de datos / como se puede ver a continuación (las definiciones tomadas de: http://www. Esto es útil cuando una lista muy grande de cargas predefinidos que se necesita. para evitar la celebración de toda la lista en la memoria. Iterador personalizado : Esta fuente de carga proporciona una forma eficaz para generar permutaciones personalizadas de caracteres u otros elementos de acuerdo a una plantilla determinada. por lo tanto. y se configura una lista preestablecida de los elementos de carga útil Archivo de tiempo de ejecución : Esta fuente de carga se configura un archivo de texto externo desde el que las cargas útiles serán leídos en tiempo de ejecución. una aplicación de pago que puede identificar a los individuos que utilizan un número de personal de la forma AB/12. Por ejemplo. .net/intruder/help.html ): Preestablecido lista : Esta es la fuente más simple carga. las cargas útiles que no puede contener caracteres de nueva línea. puede que tenga que recorrer todos los posibles números de personal para obtener los detalles de todos los individuos.Vamos a utilizar el tipo de ataque de francotiradores en este ejemplo por lo que sólo tienen un conjunto de carga útil.portswigger. La sustitución de caracteres : Esta fuente se carga una lista preestablecida de los elementos de carga útil. Esta fuente de carga útil puede ser útil en los ataques de adivinación de contraseña. la pesca de arrastre una cartera de pedidos de entradas colocadas en diferentes días) o ataques de fuerza bruta (por ejemplo. Cargas nulas : Esta fuente de carga genera "NULL". El "extracto grep" función capta una porción de una respuesta del servidor después de una expresión coincidente ordinario. y produce varias cargas de cada elemento mediante la sustitución de los caracteres individuales en el tema con diferentes personajes. el texto capturado de la respuesta del servidor anterior se utiliza como carga para la solicitud posterior. para la producción de las variaciones comunes en las palabras del diccionario. por ejemplo. \ \ y secuencias. Con "recursivas grep" cargas útiles. de acuerdo con reglas personalizables. en un intervalo especificado. Ilegal unicode : Esta fuente se carga una lista preestablecida de los elementos de carga útil. y produce una serie de cargas de cada elemento mediante la sustitución de un carácter especificado dentro de cada elemento con Unicode ilegales de la codificación de un carácter especificado. Se puede generar un número especificado de cargas útiles nulos. para producir variaciones de caso sobre las palabras del diccionario. . Se permite que las cargas útiles que se genere de forma recursiva sobre la base de las respuestas a las solicitudes anteriores. Forzador bruta : Esta fuente de carga genera un conjunto de cargas útiles de longitudes específicas que contienen todas las posibles permutaciones de un conjunto de caracteres especificado. por ejemplo. en un formato especificado. en un formato especificado. Esta fuente de carga útil puede ser útil durante la minería de datos (por ejemplo. y produce una o más cargas de cada elemento ajustando el caso de caracteres dentro de cada elemento. ya sea secuencial o al azar. por ejemplo. es decir cargas de cadenas de longitud cero. o continuar indefinidamente. / . Fechas : Este código genera carga de fechas entre un rango especificado. Esta fuente de carga útil puede ser útil en el intento de eludir la validación de entrada sobre la base de comparación de patrones. Esta fuente de carga es útil en los ataques de adivinación de contraseña. Grep recursivo : Este conjunto de carga trabaja en conjunto con la función grep extracto. Números : Esta fuente de carga genera números.. Caso de sustitución : Esta fuente de carga útil toma una lista preestablecida de elementos de carga útil. adivinar la fecha de nacimiento del componente de credenciales de un usuario). Puede ser útil en la detección de desbordamiento de búfer y vulnerabilidades de otras condiciones de contorno en el software que se ejecuta en un nativo (no administrado) el contexto. defensas contra ataques de recorrido de rutas que coinciden sobre las codificaciones de los esperados .. Bloques de caracteres : Esta fuente de carga genera bloques de caracteres de tamaños específicos utilizando una cadena de entrada. pero donde se necesita un control más preciso. mover de un tirón a su vez. Vamos a utilizar una lista predefinida de insumos para nuestras pruebas: . Aleta de bits : Este opera sobre el valor base existente de cada posición de carga. Que completa un ciclo a través de la cadena de base de un carácter a la vez. y entender si la solicitud puede ser vulnerable. o en una cadena especificada. puede utilizar la fuente de la aleta de carga útil de bits para determinar los efectos de la modificación de los bits individuales dentro del valor cifrado. partes de las credenciales de sesión complejos). o en una cadena especificada. incrementando el código ASCII de ese carácter por uno. En esta situación. cada bit. Por ejemplo. Esta fuente de carga útil puede ser útil en situaciones similares a la frobber carácter. y genera nombres de usuario potenciales utilizando varios esquemas comunes.Char frobber : Esta opera en el valor de la base existente en cada posición de carga. Nombre de usuario del generador : Esta fuente de carga lleva los nombres de humanos como de entrada. si las credenciales de sesión u otros valores de parámetros contienen datos significativos cifrados con una cifra de bloque en modo CBC. Que completa un ciclo a través de la cadena de base de un carácter a la vez. Puede configurar la aleta poco ya sea para operar en el valor de la base literal. puede ser posible cambiar partes de los datos descifrados de forma sistemática mediante la modificación de los bits dentro del bloque cifrado anterior. o para tratar el valor de la base como una cadena ASCII hexadecimal. Puede configurar qué partes van a dar la vuelta. Esta fuente de carga es útil cuando se está probando que partes de valores de los parámetros tienen un efecto sobre la respuesta de la aplicación (por ejemplo. Base64. Base64 y ASCII hexadecimal Hash: Crear un algoritmo de hash. pero ajustado a partir del final de la carga útil Modificar el caso: mismas opciones que para el caso de la fuente de carga de sustitución Codificar: Como URL. HTML. Subcadena : Desde un desplazamiento especificado y hasta una longitud especificada Invertir subcadena: Como subcadena. Las reglas que se pueden aplicar a las cargas útiles son: (definiciones tomadas de: http://www. ASCII hexadecimal y cuerdas construidas para varias plataformas Decode : Como URL.portswigger. etc MD5) Añadir capacidad de carga en bruto : esto puede ser útil si es necesario incluir la misma carga útil en forma cruda y hash .net ): Agregar el prefijo: añade un valor de prefijo a la carga Agregue el sufijo: Agrega un valor sufijo a la carga Crónica / reemplazar: Definir una expresión regular y un valor a sustituir las coincidencias de expresiones regulares con el. HTML. hash múltiples disponibles (SHA-512. Las reglas de procesamiento de carga útil de casi necesita una entrada de blog a sí mismos así que me animo a probar por ti mismo.Las cargas se pueden modificar mediante las reglas de procesamiento en el procesamiento de carga útil sección de las reglas de la ficha de carga útil. Para este ejemplo vamos a la función grep para realizar una comparación de patrones simples. También puede indicar la Suite Burp para hacer una petición sin ningún valor siendo modificado que se utiliza una solicitud de referencia. La Suite Haga eructar le proporcionará una lista predeterminada de palabras para que coincida en contra. pero podemos salvar nuestra configuración de ataque. El campo ID de usuario que nos proporcione se entró en una consulta SQL. Si la aplicación no puede validar de forma segura este valor una vulnerabilidad de inyección SQL podría existir. lo que permite un modo de DOS y de decidir cómo quiere que la suite para manejar las redirecciones Burp 3xx. Esto nos permitirá identificar fácilmente los errores de SQL causados por las entradas de nuestras pruebas: Guardar la configuración de nuestro ataque La prueba de que hemos configurado en este tutorial sólo se puede utilizar una vez. así que puede repetir esta prueba en el . Queremos que la herramienta de intrusión para llevar a cabo una comparación de patrones sobre la base de esta cadena: "sintaxis SQL". incluida una función grep.Configuración de las opciones de intrusos La pestaña de opciones en la herramienta de intrusión te permite configurar los parámetros de prueba adicionales. Esta solicitud de referencia se utiliza para comparar las solicitudes de ataque en contra. pero vamos a eliminar estos y añadir la nuestra para esta prueba. futuro. Puede guardar sus pruebas con o sin las posiciones de carga útil: . Puede guardar la configuración de su ataque haciendo clic en el elemento de menú de intrusos y seleccionando "Guardar configuración ataque". Para iniciar la herramienta de intrusión debe hacer clic en el punto Intruder menú y luego haga clic en "ataque inicial": .Como se puede ver en la imagen superior también cargar las configuraciones de ataque haciendo clic en el elemento de menú de intrusos. Ejecución de las pruebas Lo único que nos queda por hacer ahora es ejecutar nuestras pruebas. la carga utilizada. el código de estado.Una nueva ventana se abrirá el cual le mostrará cada prueba. la longitud y en nuestro caso las pruebas que coinciden con nuestra sintaxis SQL coincidencia de patrón: . Vamos a revisar 13 solicitud que entró en una comilla simple (') en el campo ID de usuario: . Para revisar la solicitud y la respuesta para cada prueba que usted puede hacer clic en cualquiera de las solicitudes que aparecen en la ventana de ataque.Se puede ver que algunas de las pruebas coincide con nuestra palabra coincidencia de patrón mirando a las casillas de verificación en la columna de la sintaxis SQL. La solicitud y respuesta para la prueba se muestra en la mitad inferior de la ventana de ataque de un intruso. Esta cita única provocó un error de MySQL para ser lanzado por la aplicación: . hemos utilizado la herramienta de Burp Suite intrusos para identificar a un potencial de vulnerabilidad de inyección SQL. SN . Espero que hayan encontrado esta entrada del blog útil y siempre estoy interesado en escuchar cualquier comentario que tenga.Así como usted puede ver.