Responsive image

HackMyVM - Pwned

20 julio 2021

Esta máquina se encuentra en la plataforma HackMyVM y ha sido creada por el usuario annlynn.

La temática es que esta máquina ya ha sido hackeada por un hacker troll y debemos seguir sus pasos. La resolución cuenta con una enumeración con fuzzing web, obtención de claves mediante ftp, pivoting de usuarios y una escalada de privilegios sencilla.

# Dificultad
Acceso Fácil
Escalada de privilegios Fácil

Enumeración


Como todas las máquinas de esta plataforma es necesario conocer la dirección IP de la máquina. Para ello utilizaré la herramienta ping-sweep con el modo de descubrimiento de sistema operativo para poder avanzar más rápido en la enumeración. El motivo de utilizar esta herramienta y no otra basada en el protocoo ARP se debe a que despliego las máquinas en una red privada que utilizo como laboratorio y distinta a la red local, por lo que un descubrimiento mediante ARP no detectará las máquinas.

Más adelante, será necesario cambiar de red la máquina del atacante para poder realizar una reverse shell ya que en modo NAT no es posible.

error loading image :(

La herramienta ha detectado 3 IP:

Una vez identificada la máquina objetivo se comienza con el escaneo de puertos. Como es habitual para el escaneo se utiliza nmap y se divide en dos fases: la primera de un escaneo rápido de los 65535 puertos para detectar aquellos abiertos y la segunda para realizar una enumeración más exahustiva usando scripts básicos de los puertos abiertos.

error loading image :(

Una vez obtenidos los puertos abiertos se realiza el segundo escaneo más específico.

error loading image :(

NMAP indica que el puerto 21 no tiene habilitado el login anónimo por lo que no será el primer vector de ataque. Se comenzará con el servicio web como es habitual con una enumeración rápida con la herramienta whatweb.

error loading image :(

Whatweb informa que el título de la página es "Pwned.....!!", algo extraño en una página web normal pero no en un CTF. Visualizando el contenido se encuentra lo siguiente.

error loading image :(

A continuación, se busca el archivo robots.txt para saber si existiera algún recurso oculto.

error loading image :(

Se encuentra el recurso /nothing que indexca a otro recurso que no aporta información alguna.

error loading image :(

Como no nos damos por satisfechos se realiza un fuzzing del sitio web utilizando de diccionario el directory-medium de dirbuster con más de 200 000 recursos distintos.

error loading image :(

La paciencia tiene su recompensa, se ha encontrado el recurso hidden_text. Un recurso que indexa al archivo secret.dic.

error loading image :(

Este archivo se descarga con la herramienta wget.

error loading image :(

A continuación vuelve a realizarse fuzzing utilizando el diccionario descargado.

error loading image :(
error loading image :(

Se encuentra el recurso pwned.vuln, lo que parece ser un formulario de acceso.

Observando el código fuente de la página se encuentra un código PHP comentado con unas credenciales.

error loading image :(

Se utilizan las credenciales para acceder al servicio FTP. Por comodidad se utiliza filezilla para tener una GUI del FTP.

error loading image :(

Navegando por el ftp se encuentran un par de archivos que rápidamente son descargados.

error loading image :(

error loading image :(

Ganar acceso


El archivo note.txt contiene una nota del hacker que nos informa que ariana no estará contenta con esta nota, por lo que ya tenemos un usuario potencial para la clave privada id_rsa.

error loading image :(

Sin embargo, al intentar la conexión con la clave privada se nos indica que la clave no tiene un formato correcto. Analizando el contenido de la clave se percata de que la primera línea comienza con 4 guiones en lugar de con 5. Se corrige el error y se vuelve a intentar.

error loading image :(

error loading image :(

Una vez se ha accedido a la máquina con el usuario ariana se inicia la enumeración del sistema.

Primero se consultan los usuarios del sistema. Se encuentra a selena que será el primer objetivo de la escalada de privilegios.

error loading image :(

Escalada de privilegios


Comprobando los privilegios de ariana destaca el permiso de ejecutar el binario /home/messenger como selena.

error loading image :(

Observando el contenido del binario se visualiza un potencial vector de ataque ya que los inputs del binarios son directamente ejecutados.

error loading image :(

Se ejecuta el binario y se obtiene una bash como selena.

error loading image :(

error loading image :(

Sin embargo, se obtiene una terminal muy desagradable. Por lo que se realiza una reverse shell como usuario selena hacia la máquina atacante.

En la máquina objetivo.
error loading image :(
En la máquina atacante.
error loading image :(

Ahora se realiza un tratamiento de la tty como ya se vió en anteriores resoluciones para obtener una terminal más útil y vistosa.

error loading image :(

error loading image :(

Para encontrar los posibles vectores de escalada de privilegios se utiliza la herramienta linpeas. Para ello será necesario enviar el fichero linpeas a la máquina objetivo.

En la máquina objetivo.
error loading image :(
En la máquina atacante.
error loading image :(

Una vez que se tiene linpeas en la máquina objetivo se ejecuta y se desvela rápidamente el vector para la escalada. Selena se encuentra en el grupo de docker.

error loading image :(

Se consulta en gtobins la escalada cuando se está en el grupo docker.

error loading image :(

Una vez conocida la técnica se lleva a cabo y se obtiene el root.

error loading image :(

A continuación se consultan todas las flags y se concluye la resolución de la máquina.

Flag de ariana:
error loading image :(
Flag de selena:
error loading image :(
Flag de root:
error loading image :(