Está en la página 1de 13

Introducción:

En esta práctica se resolverá el reto #3 del SANS Holliday Hack Challenge 2018
con ayuda de la herramienta Burp Suite.

● VirtualBox 6.0.4.
https://www.virtualbox.org/wiki/Downloads
● Kali Linux 2019.1a.
https://www.kali.org/downloads/
● Burp Suite Community Edition v1.7.36
https://portswigger.net/burp/communitydownload

A. Burp Suite
Es una plataforma integrada por diversas herramientas que permite evaluar la
seguridad de una aplicación web desarrollada por la empresa PortSwigger, la cual
cuenta versión gratuita y de paga, a continuación, se muestran las versiones
disponibles:
La versión gratuita (Comunitaria) cuenta con herramientas esenciales para realizar
un Pentesting de forma manual.
● Burp Proxy: permite interceptar de forma manual todas las solicitudes y
respuestas entre el navegador y la aplicación de destino, incluso cuando se
usa HTTPS, generando un certificado de CA único que puede instalar en su
navegador. Además, permite modificar automáticamente las respuestas.
Por ejemplo, mostrar formularios ocultos, eliminar validación de formularios
de JavaScript.

● Burp Decoder: ​Esta es una herramienta útil para realizar decodificación y


codificación manual o inteligente de datos de aplicaciones.

● Burp Target tool: El mapa del sitio de destino muestra todo el contenido
que se ha descubierto en los sitios que se están probando.

● Burp Intruder: es una poderosa herramienta para automatizar ataques


personalizados contra aplicaciones web. Se puede utilizar para automatizar
todo tipo de tareas que pueden surgir durante sus pruebas.

● Burp Repeater​: es una herramienta simple para manipular y reeditar


manualmente solicitudes HTTP individuales y analizar las respuestas de la
aplicación. Puede enviar una solicitud a Repeater desde cualquier lugar
dentro de Burp, modificar la solicitud y emitirla una y otra vez.
B. Resolviendo Reto 3 del SANS Holiday Hack Challenge 2018

Para resolver este reto debes obtener el código que protege la puerta de acceso
de la sala de preparación para expositores del KringleCon e ingresar el mensaje
que se muestra al expositor.

Al ingresar un código incorrecto aparece el mensaje “Incorrect guess”.

Por lo cual se puede suponer que se trata de una petición a alguna base de datos,
para verificar es necesario analizar el código fuente de la página.
Analizando la primera parte del código se puede apreciar el posible valor para
cada una de las figuras.

<html>
<head>
<link href="​https://fonts.googleapis.com/css?family=Mountains+of+Christmas​" rel="stylesheet">
<link href="​doorpasscode.css​" rel="stylesheet" type="text/css">
<script src='​./conduit.js​'></script>
</head>

<body>

<div>
<h1>Enter the Code to Unlock the Door</h1>
</div>
<br>
<div class="button_wrapper">
<div class="shape-buttons">
<button onClick="addShape(0)" />
<button onClick="addShape(1)" />
<button onClick="addShape(2)" />
<button onClick="addShape(3)" />
</div>
</div>

Triangulo = 0
Cuadro = 1
Circulo = 2
Estrella = 3
Además, al mandar la petición a la base de datos, se realiza por XMLHttpRequest
que es utilizada por AJAX lo que permite que la página completa no se recargue al
realizar una petición en este caso por el método GET a la página “checkpass.php”.
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
try {
const parsedResponse = JSON.parse(statusElement.innerHTML=xmlhttp.responseText);
statusElement.innerHTML = parsedResponse.message;
if (parsedResponse.success) {
__POST_RESULTS__({
hash: parsedResponse.hash,
resourceId: parsedResponse.resourceId,
});
document.getElementById('banner').style.visibility='visible';
}
} catch(err) {
console.error(err);
}
}
}
xmlhttp.open("GET","checkpass.php?i=" + passcodeString + "&resourceId=" + resourceId, true);
xmlhttp.send();
}

Por último, si es correcta la clave muestra la imagen con el id de “banner”.

¿Qué se te ocurre que puedes realizar para


resolver este reto?

Se mostrarán dos formas de resolver este reto.

Solución #1:​ Nivel 1.0

Lo que el reto te pide es obtener el mensaje de ingreso al tener el código correcto,


pero en el análisis previo se encontró una etiqueta tipo “img” que se encuentra
oculta con el nombre de “banner”, la cual al dar clic puede ver su contenido.

<img id="banner" src="​db-victory-banner.png​" style="position:absolute; left:50%; top:50%; transform:


translate(-50%, -50%); max-width:60%; width: 60%; visibility: hidden;"
onMouseDown='this.style.visibility="hidden"'>
</body>
</html>

Solución #2:​ Nivel 1.5

La otra forma de solucionar este reto es obteniendo el código correcto, para eso
se utilizará la herramienta Burp Suite.

Primeramente, se inicia la herramienta en Kali Linux que cuenta con la versión


gratuita.
Se habilita el complemento de Proxy en su pestaña correspondiente y se verificar
las opciones por default, el cual trabaja en el puerto 8080.

El paso siguiente es configurar el proxy en el navegador de tu elección, Firefox


ESR viene por default en Kali Linux.

Preferencias-Network Proxy->Settings->Manual Proxy Configuration


Al ingresar nuevamente marca un error la página debido al certificado para este se
puede añadir la excepción o exportar el certificado CA que ofrece la herramienta.

Para obtener el Certificado CA que ofrece la herramienta Burp Suite, es necesario


ingresar a la siguiente dirección para descargarlo.

http://burp
Para agregarlo se debe ingresar en el menu Preferencias->Privacy and
Security->View Certificates

Seleccionar la opción Import y seleccionar el certificado descargado previamente.

Se revisa nuevamente la página y se constata que no muestra el mensaje de error


Al mandar una petición de ingreso, al tener correctamente configurado nuestro
Burp Suite se puede capturar y conocer que datos son los que se manda con
mayor detalle.

Por ejemplo, la petición GET la realiza a:

https://doorpasscoden.kringlecastle.com/checkpass.php?i=0123&resourceId=undefined

Ya se conoce los caracteres permitidos y su longitud se prosigue a realizar un


ataque automatizado que realice combinaciones con los dígitos permitidos
mediante la herramienta ​Intruder de Burp Suite dando clic en el botón “action” y
seleccionar la siguiente opción.
Una vez seleccionado se debe acceder a la pestaña de ​Intruder y configurar el
ataque de la siguiente manera.

Ingresar en la pestaña Payloads y agregar las siguientes opciones para que


realice un ataque de las posibles combinaciones.
Se realiza el ataque y se puede visualizar las distintas combinaciones que en su
mayoría el estatus es de 200 y la longitud de 229.

Al encontrar la combinación correcta se debe notar un cambio en la longitud en


este caso 329.
Al revisar la respuesta, se puede apreciar que marca correcta.
Se ingresa el valor en el código “0120” en la puerta que representa por:

Triangulo = 0
Cuadro = 1
Circulo = 2
Triangulo = 0
Por último, se ingresa el mensaje en la respuesta del reto #3 para constatar
nuestros hallazgos.

También podría gustarte