- Tags: #Easy #Capability #Linux
Reconocimiento
-
Identificación de sistema operativo a través de ping
Como el ttl es cercano a 64, se puede saber que la máquina es Linux -
Identificación de puertos abiertos con Nmap Primero se realiza un escaneo básico para identificar los puertos abiertos de la máquina:
Luego se hace un escaneo más detallado de los puertos abiertos para encontrar posibles vulnerabilidades exportándose al archivo "targeted" en formato Nmap para que pueda leerse de forma más cómoda.1
En este caso no se encuentra ningún dato relevante en dicho escaneo, por lo que se procede a revisar la página. -
Revisión de la página web desplegada por el puerto 80 de la máquina Cap En este caso hay un dashboard, pero al revisarse no se encuentra nada que llame la atención excepto el apartado "Security Snapshot (5 Second PCAP + Analysis)"
En la URL se puede ver un número específico de dato (en este caso 2), por lo que se podría pensar en hacer fuzzing para ver qué números hay -
Fuzzing de la página web En este caso se hace de forma manual ya que no hay que enumerar una gran cantidad de directorios, por lo que se comienza probando con el número 0
En este caso se encuentra una gran cantidad de paquetes transmitidos en comparación con el que se había tenido originalmente (el que muestra por defecto cuando se ingresa), por lo que es de interés y se descarga. De esta forma se ha acontecido un IDOR que permitirá obtener datos que no deberían ser visibles para el usuario común. -
Análisis de la captura descargada Luego de ver la captura, se encuentran datos sensibles (aparentemente de credenciales) que pueden ser probados para ingresar, en este caso por el puerto 21 (por este puerto se ingresó según la captura)

Ingreso como usuario no privilegiado
- Ingreso a servicio FTP y primera flag
Se intenta ingresar por ftp usando las credenciales nathan/Buck3tH4TF0RM3! y se ingresa de forma satisfactoria
Se lista el contenido y se encuentra la primera flag (user.txt)

Escalada de privilegios
-
Ingreso por SSH y escalada de privilegios Como no se tienen credenciales para el ingreso por ssh, se intenta ingresar con las mismas credenciales encontradas anteriormente y se logra obtener acceso a la máquina
Una vez se ha ingresado a la máquina se puede buscar por permisos especiales y capabilities (en este caso es una capability)
Se encuentra una capability setuid en el binario de python, por lo que se procede con la escalada de privilegios
Ya siendo root, se puede acceder a una terminal

-
Flag de Root Una vez obtenida la bash, se ingresa al directorio del usuario root y se consigue la flag

Footnotes
-
Es importante tener en cuenta que además del puerto 80, el puerto 21 y 22 también lo están y es posible que haya que ingresar por estos de alguna manera ↩