Maquina Paper
Hacia bastante tiempo que no le metía a ninguna maquina en hack the box, por lo que ayer, me animé a retomar el hábito para practicar pentesting en entornos de CTF.
Comenzamos con una máquina de fácil intrusión y fácil escalada de privilegios.
Empezamos con un siempre, un simple escaneo de nmap para descubrir que puertos tiene la maquina abiertos y que servicios corren por estos.
Perdón, no le saqué captura al resultado del nmap, pero, en resumen, vemos que el puerto 22 está abierto, puerto 80 y 443 con un Apache 2.4.37
Nos conectamos via web al puerto 80 y vemos la pagina TEST de un http server… Lanzamos un dirb a la IP sin mucho éxito por lo que decidimos profundizar lanzando un curl -I (Para ver las cabeceras de respuesta).
Comenzamos con una máquina de fácil intrusión y fácil escalada de privilegios.
Empezamos con un siempre, un simple escaneo de nmap para descubrir que puertos tiene la maquina abiertos y que servicios corren por estos.
Perdón, no le saqué captura al resultado del nmap, pero, en resumen, vemos que el puerto 22 está abierto, puerto 80 y 443 con un Apache 2.4.37
Nos conectamos via web al puerto 80 y vemos la pagina TEST de un http server… Lanzamos un dirb a la IP sin mucho éxito por lo que decidimos profundizar lanzando un curl -I (Para ver las cabeceras de respuesta).
Vemos en X-Backend-Server el el activo office.paper, lo añadimos a nuestro /etc/hosts para tener conectividad y nos metemos vía web. A través de wappalyzer (plugin) vemos que se trata de un wordpress 5.2.3, una versión un tanto desactualizada por lo que decidimos lanzar un wpscan para tener más información.
Realizamos una simple búsqueda de exploits hacia esta versión de wordpress y nos encontramos una simple PoC que nos permite ver posts privados. Probamos añadiendo lo que nos muestra en la PoC y vemos un post de carácter privado en el que hay un comentario fortuito indicando otro activo “Secreto”
Lo añadimos a /etc/hosts, igual que antes y nos metemos a investigar.
Lo añadimos a /etc/hosts, igual que antes y nos metemos a investigar.
Vemos un formulario de registro. Creamos un usuario y nos registramos. (La máquina va un tanto lenta)
Entramos, y vemos un chat tipo Slack en el cual hay un grupo con conversaciones pasadas. Revisamos y leemos todas las conversaciones, Dwight ha creado un bot. Explica el funcionamiento de este y se hace una prueba.
Entramos, y vemos un chat tipo Slack en el cual hay un grupo con conversaciones pasadas. Revisamos y leemos todas las conversaciones, Dwight ha creado un bot. Explica el funcionamiento de este y se hace una prueba.
Hablamos directamente al bot (En el grupo no tenemos permisos de enviar mensajes)
Tras interactuar con el bot, listando directorios e intentando abrir archivos, vemos un directorio llamado /hubo/.env, accedemos y vemos una credencial. Accedemos por ssh y comprometemos la maquina a nivel usuario.
Tras interactuar con el bot, listando directorios e intentando abrir archivos, vemos un directorio llamado /hubo/.env, accedemos y vemos una credencial. Accedemos por ssh y comprometemos la maquina a nivel usuario.
privilege escalation
La parte de escalada de privilegios la planteamos de una manera muy sencilla, con privilegios de usuario en la máquina, nos montamos un servidor http con Python y transferimos un binario de linpeas a la máquina, lo ejecutamos y dejamos que el binario haga su magia.
En la captura me doy cuenta de que alguien ya ha usado la idea de escalar privilegios con linpeas puesto que vemos un archivo residual el cual, usamos sin querer…
En la captura me doy cuenta de que alguien ya ha usado la idea de escalar privilegios con linpeas puesto que vemos un archivo residual el cual, usamos sin querer…
El binario nos comenta que el activo es vulnerable a CVE-2021-3560, hacemos un poco de research y nos encontramos con varios scripts para ganar privilegios como root. Es una time based vuln, por lo que son necesarios varios intentos para llegar a ganar acceso como root.
Usé un script escrito en bash, tras varios intentos, opte por usar otro escrito en Python el cual me funcionó a la primera.
Usé un script escrito en bash, tras varios intentos, opte por usar otro escrito en Python el cual me funcionó a la primera.