Pentesting Aplicaciones Web (Burp suite)
Burp Suite es una herramienta mas que conocida por los pentester, en estos dias estaba haciendo uso de ellas en auditoria de aplicaciones web y recordé que no había realizado un post de esta increíble herramienta. la cual para mi gusto es mas que buena y me ahorra tiempo a la hora de realizar Script. claro esta en la versión Pro. ya que la versión free es limitada sobre todo en la velocidad de procesar los ataques.
Burp Suite es una aplicación desarrollada en java la cual podemos encontrar en versiones gratis y de paga. es una herramienta desarrollada explicitamente para pruebas de seguridad en aplicaciones web.
Los componentes de Burp Suite mas destacados son:
- Proxy: Actua como un proxy haciendo como un man in the middle, lo que le permite interceptar las peticiones al navegador, y asi inspeccionar y modificar el tráfico entre el navegador y la aplicación de destino.
- Spider: con reconocimiento de aplicaciones, para el rastreo de contenido y funcionalidad.
- Scáner: Disponible en la versión de paga, escanea el sitio en busca de vulnerabilidades.
- Intuder Tool: Con este componente podemos realizar ataques personalizados y automatizados para explotar vulnerabilidades.
- Repeater: El repetidor es una herramienta sencilla la cual se puede utilizar para modificar las solicitudes al servidor y volver a enviar.
Vamos a poner a prueba esta herramienta con los 4 desafíos gratuitos de pentesting-academy
Challenge 1: Form Bruteforcing Solutions
En el primer reto del Web-Lab nos encontramos con un login, en el cual nos dan pista para el ataque nos dicen que:
- El dominio es: PentesterAcademy.com
- Los usuarios posibles son: jack, admin
- Y de que la posible contraseña es de 5 caracteres y solo contiene las letras x,y,z en minúscula
Bueno ya teniendo esta información nos vamos a Burp Suite, en mi caso estoy realizando las pruebas en Kali Linux, El cual ya trae integrada la herramienta en su versión gratuita.
En la pestaña Proxy de Burp Suite podemos observar que trabaja en localhost (127.0.0.1) a través del puerto 8080. estos datos los configuramos en nuestro navegador.
Una vez ya configurado podemos captar la comunicación de nuestro navegador. Burp suite intercepta antes de enviar los datos entre el navegador y la aplicación web. ya interceptada puedes validar datos, modificar o simplemente hacer clic en Forward. para que Burp Suite permita seguir la comunicación.
Para el primer laboratorio digitare en el login un nombre de usuario de los que nos dan que seria admin@PentesterAcademy.com y contraseña cualquier cosa solo como prueba.
Una vez interceptada la comunicación esta la podemos observar en la pestaña intercept de burp suite.
Como ven en la imagen la petición se hace a través del método GET y muestra en texto plano lo enviado. esta información la envió al componente intruder.
En este componente nos encontraremos las siguientes pestañas:
Target: Nos muestra información del objetivo y nos permite modificar dominio y puerto
Positions: Nos permite configurar las variables ha tener en cuenta en el Payloads.
Payloads: Nos permite configurar la transmisión de los datos a proporcionar a la aplicación.
Option: Permite realizar ajustes que controlan si intruder actualiza los encabezados de solicitud configurados durante los ataques.
Nos vamos a la pestaña Positions. selecciono el valor del campo password y hago clic en el botón add$ esto con el propósito que solo cambien los valores de la contraseña ya que conocemos el usuario. y el tipo de ataque seleccionamos sniper.
Ahora en Payload. configuremos nuestros datos a enviar.
En Payload Type seleccionamos Bruter Forcer ya que lo que vamos a realizar para este caso es un ataque de fuerza bruta. introducimos nuestros tres caracteres a permutar (x,y,z) con un mínimo y máximo de 5 caracteres. una vez configurado nos vamos al menú intruder --> Start Attack.
Una vez comienza el ataque probara las 243 permutaciones posibles de nuestros caracteres. en este caso todas los estados seran de 200 asi que nos guiaremos por la longitud (length).
como ven el length de esta varia hacemos doble clic y en response-->render nos muestra que hemos entrado con exito con las credenciales:
username: admin@PentesterAcademy.com
password: zzzxy
Challenge 2: HTTP Form Attacks Reloaded
En el segundo desafió tenemos que pasar por alto dos tipos de autenticacion uno va por GET y el otro es HTTP Basic Authentication.
Al igual que el anterior nos dan pista, el mismo domino que el anterior, los usarios son admin y nick, la complejidad de la contraseña es de 5 caracteres en los cuales solo incluye a,s,d.
Usernames: nick, admin
Si caemos en el error y empezamos el ataque con fuerza bruta configurando todo los parámetros como lo hicimos anteriormente notaremos, que el metodo GET no funcionara por la recarga y validación del formulario HTTP Basic Authentication. y no podemos usar el metodo POST el cual usa el segundo método de autenticación. ya que el primero no lo permitira. asi que optamos por usar el metodo de cabecera HEAD. y asi realizar un Bypass al reload login.
Challenge 3: HTTP Basic Authentication Attack (Easy)
En esta ocasión la autenticacion del reto esta basada por el método POST. A traves de HTTP Basic Authentication.
lo primero que podemos notar es que las credenciales viajan codificadas, (No Cifradas) en Base64, .
Enviamos lo captado a intruder, y dentro seleccionamos el texto y haciendo clic derecho Convert Selection --> Base64 --> Base64 decode. podemos decodificar el texto y podemos observar lo digitado anteriormente.
Aun teniendo el texto seleccionado hacemos clic al boton Add$ dado que en esta ocacion tanto la clave como el usuario viajan como un solo texto Observando : que son divididos por ":" para su identificación.
Nos dirigimos a Payloads y configuramos nuestros parámetros de la siguiente manera:
Seleccionamos Bruter force como tipo de ataque nuestra permutaciones que nos dan como pista. Y añadimos como reglas un prefijo "admin:" que seria el usuario con los dos puntos de division de campos. igualmente como vimos que esto viajaba codificado en Base64. debemos igualmente enviarlo codificado de la misma manera, para eso lo añadiremos como regla de Encode.
Y en Payload Encoding. quitaremos el símbolo = ya que no es usado por Base64. Y por ultimo lanzamos nuestro ataque con Burp Suite. dándonos como resultado lo siguiente:
Donde nos arroja un Status 200 El cual en HTTP es un estado de OK. seleccionamos todo el texto en Authorization Basic, hacemos clic derecho y lo enviamos a decoder para decodificarlo en Base64 y obtener el texto plano.
Success, nuestras credenciales de acceso serian admin, aaddd
Success, nuestras credenciales de acceso serian admin, aaddd
Challenge 4: Basic Authentication and Form Bruteforcing (Intermediate)
En este reto existen dos tipos de autenticacion y tenemos como pista los usuarios nick y admin.
Para la autenticacion html form nos encontramos con 5 caracteres y hacen solo uso de los caracteres m,n,o en cuanto a la otra autenticacion contiene los caracteres v,i,e de igual tamaño. ambos en minúscula.
Comenzamos a capturar y lo primero que notamos en la cabecera es que primero se valida el HTTP Basic y luego HTML Form. así que el orden a atacar seria primero el HTTP Basic en Base64 guardar/recordar las credenciales y luego ir por el HTML Form.
Ya teniendo esta analogía apliquemosla en Burp Suite. Nos vamos a Payloads y configuramos nuestro primer ataque para el HTTP Basic. asi que debemos configurar como en el Challenge 3. una vez ya configurado efectuamos el ataque.
aplicando el decoder Base64 podemos observar que nuestras primeras credenciales son: nick:vivvv
Para la autenticacion html form nos encontramos con 5 caracteres y hacen solo uso de los caracteres m,n,o en cuanto a la otra autenticacion contiene los caracteres v,i,e de igual tamaño. ambos en minúscula.
Comenzamos a capturar y lo primero que notamos en la cabecera es que primero se valida el HTTP Basic y luego HTML Form. así que el orden a atacar seria primero el HTTP Basic en Base64 guardar/recordar las credenciales y luego ir por el HTML Form.
Ya teniendo esta analogía apliquemosla en Burp Suite. Nos vamos a Payloads y configuramos nuestro primer ataque para el HTTP Basic. asi que debemos configurar como en el Challenge 3. una vez ya configurado efectuamos el ataque.
aplicando el decoder Base64 podemos observar que nuestras primeras credenciales son: nick:vivvv
Una vez ya tengamos nuestras primeras credenciales, las quemamos en la cabecera y proseguimos a por la segunda donde todas nos arrojaran Status 200, debido al OK de la primera.
Efectuamos el ataque y Eureka!
Nuestras segundas credenciales son:
email: admin@pentesteracademy.com
password: nnomm
como ven nuevamente las identifique por la longitud (length) debido al estatus OK de todas. ya con esto hemos pasado todos nuestros Challenge gratis de pentesteracademy con tan solo una herramienta.
Espero que les haya gustado hasta otra ocasión.
Nuestras segundas credenciales son:
email: admin@pentesteracademy.com
password: nnomm
como ven nuevamente las identifique por la longitud (length) debido al estatus OK de todas. ya con esto hemos pasado todos nuestros Challenge gratis de pentesteracademy con tan solo una herramienta.
Espero que les haya gustado hasta otra ocasión.
0 comentarios :
Comentarios en GooglePlus
Reacciones en G+