Sh3llCON – CTF Write-up Resurrection

Hola!

La entrada de hoy como su nombre indica se basa en la solución de la máquina Resurrection, que hice para el CTF de Sh3llCON. Como es habitual el write-up se divide en las siguiente partes:

  • Enumeración
  • Explotación
  • Escalada de privilegios

Enumeración

En primer lugar, se detecta la máquina dentro de la red. Para ello, podemos hacer uso de la tool netdiscover

En este caso nuestra máquina es la IP 192.168.43.89. A continuación, empleando nmap se realiza un scan de puertos, identificando puertos interesantes como FTP (21), 22 (SSH), 80 (HTTP), 139 (Netbios) o 445 (SMB).

A continuación, se repite el análisis solamente para esos puertos haciendo uso de los scripts de enumeración propios de nmap:

Respecto a la parte de SMB:

Lo más destacables es que el FTP tiene habilitado el usuario anonymous, así como la versión de SAMBA.

A continuación, haciendo uso de herramientas de fuzzing de directorios como dirsearch o nikto se identifica el fichero robots.txt habilitado:

Idem en dirsearch:

Accediendo al robots.txt, se identifica la ruta del CMS nibbleblog:

Accediendo se encuentra el anuncio de un CTF:

Haciendo una búsqueda en Google o consultando el github rápidamente se identifica el panel de admin por defecto en /admin.php

Sin embargo, las credenciales por defecto no sirven (no iba a ser tan fácil).

Se vuelve al FTP a ver si hay algo:

Abriendo bien los ojos se identifica un fichero oculto:

Que se baja y se identifica que está codificado en base64, obteniendo su valor:

¿Podría ser la contraseña del administrador del nibbleblog? ¿Pero y el usuario? ¿admin?

Explotación

Sin embargo, no vale, igual es fake o nos puede servir para más adelante. Inspeccionando los posts o el fichero /secret.txt, se identifica que hay un usuario llamado carol, que tras hacer un login se identifica que existe al tener enumeración de usuarios.

Se emplea la tool cewl para crear un diccionario y hacer fuerza bruta:

Tras lanzarlo con la 4º opción se logra acceso (carol:Resurrection)

Ahora hay que buscar la manera de lograr un acceso remoto ya sea con una webhsell o bien una Shell reversa.

En primer lugar, ¿Qué versión tiene instalada el CMS? Se puede identificar en settings:

Así como desde fuera:

Si se busca en exploitdb, tiene entre otras cosas una vulnerabilidad RCE muy rica:

https://www.exploit-db.com/exploits/38489

https://packetstormsecurity.com/files/133425/NibbleBlog-4.0.3-Shell-Upload.html

OPCIÓN 1 – METASPLOIT

Si se hace con msf es tan simple como lo siguiente:

Configuración:

Ejecutándolo, llega la reverse shell:

OPCIÓN 2: MANUAL

Tras comprobar que tiene el plugin “My image” instalado (como se indica en la explicación del exploit), se crea con msfvenom un payload para subir indicando la IP de la máquina atacante, así como el puerto que hará de listener

Se puede crear el payload con msfvenom, o bien emplear alguna reverse shell como está:

https://raw.githubusercontent.com/pentestmonkey/php-reverse-shell/master/php-reverse-shell.php

Se sube:

Aprovechando el directory listing que tiene se acceder al fichero que es renombrada como “image.php”, que ejecutándolo (tras previamente poner el listerner con netcat):

Llega la Shell:

Tras investigar los usuarios que hay en la máquina, se accede al home de carol donde se encuentra la flag de user:

Con el acceso remoto finaliza la fase de explotación y comienza la de escalada de privilegios con el objetivo de lograr ser root.

ESCALADA DE PRIVILEGIOS

Se identifica la versión del kernel:

Tiene un exploit directo para escalar: https://www.exploit-db.com/exploits/44298

Se obtiene la flag de root:

POSTEXPLOTACIÓN

Si se explora un poco en el resto de carpetas y no solo se obtiene la flag, se encuentran las credenciales de un panel de administración:

Que quizás podrían ser útiles en algún momento…

Espero que os divirtierais durante el congreso y a los que os atascasteis con la máquina, os sirva de feedback para aprender 😉

Nos vemos!

Saludos.

N4x4ck5

«La mejor defensa, e un buen ataque»