Borb3d Page

Página para compartir conocimientos

View on GitHub

Agent Sudo WriteUp

Volver al Indice

Comenzamos con mi primera WriteUp, en este caso vamos a realizar una prueba a la máquina “Sudo Agent” de TryHackMe, está clasificada con nivel “Easy” dentro de esta plataforma. Espero que me mandéis diferentes críticas para saber si os gusta la forma de explicar, la variedad, estilo… y como podría mejorar.


# Enumeración

Primero comenzamos lanzando un escaneo a la ip de la máquina a todos los puertos (voy a usar una utilidad que creé en Python3 que me lanza un comando de nmap y me crea diferentes directorios para poder ser más ordenado a la hora de trabajar, la herramienta está bastante verde y seguramente deje de usarla pero de momento es cómoda por la creación de los directorios), dejo aquí la sintaxis por si os interesa.

nmaphtb.py

Después de realizar el escaneo vemos que tiene 3 puertos abiertos (21, 22 y 80), en este caso vamos a realizar un escaneo especícifo a estos puertos para ver que servicio llevan y que versiones de los mismos.

nmapPortsVersion

Vemos que el puerto 21 de FTP no tiene acceso con usuario Anónimo, por lo que vamos a comprobar que tenemos en el puerto 80 y mientras vamos a dejar lanzada una consulta de directorios en este puerto con “dirsearch” (esta vez he lanzado el comando con -x 403 para no ver las salidas “Forbidden” y tener una salida más clara)

directorios

Como vemos en la imagen no hemos encontrado nada interesante ya que el directorio de “login” nos redirecciona al propio index, en el puerto 80 tampoco vimos nada a simple vista pero vamos a mirar más detalladamente a ver si conseguimos captar algo.

index

Revisando lo que nos muestra la página inicial, nos dice que usemos nuestro propio “Codename” como “user-agent”, este “user-agent” me recuerda al agente que usan los navegadores, probamos a crear un agente nuevo con simplemente la letra C (yo he usado el complemento de Chrome llamado “User Agent Switcher” para facilitarlo), también se podría usar directamente desde el inspector de elementos, para ello lo abrimos y seguimos estos pasos:

AgentC

Vemos que es una carta dirigida a “chris” (ya tenemos un nombre de usuario) y le está diciendo que cambie su contraseña, que es muy débil. Probamos un ataque de fuerza bruta con “hydra” hacia el servicio de FTP, que sabemos que está abierto.

hydra

# Explotación

Bien hemos conseguido las credenciales para acceder al servidor de FTP. Cuando accedemos vemos 3 archivos (2 imágenes y 1 documento de texto), los descargamos a nuestro equipo con el comando GET.

ftpServer

Al revisar el archivo .txt vemos que es una carta dirigida al AgenteJ, parece que vamos a tener que hacer algo de Stego a las imágenes.

To_agentJ

Usamos la herramienta “binwalk” con el parámetro -e (para extraer lo que encuentre) a la imagen “Cutie.png” y encontramos que dentro tiene varios ficheros, la otra imagen no contiene nada de momento.

binwalk

Como vemos, encontramos varios ficheros, los vamos revisando todos y vemos que el archivo .zip está encriptado, lo pasamos a un formato que John pueda entender para poder desencriptarlo.

zip2john

Ahora sí, podemos pasarle a John el fichero con el hash que hemos conseguido.

hash

Descomprimimos el archivo .zip con la contraseña que hemos encontrado para poder visualizar el contenido correctamente.

7z

La carta que hemos encontrado contiene el siguiente texto, en el nos dice que tenemos que mandar la imagen a ‘palabra encriptada’ lo antes posible.

CartaToR

Para poder saber “a donde” tenemos que enviar la imagen tenemos que decodificar la palabra, que está en Base64.

TextDecode

Usamos la contraseña obtenida para poder extraer los archivos ocultos dentro de la imagen que nos queda.

TextoImagen2

Con la contraseña que hemos obtenido en la carta anterior vamos a probar credenciales en el servidor SSH. Conseguimos loguearnos con el usuario “james” y ahí tenemos la flag de user.

userFlag

# Post-Explotación

Para conseguir llegar a la flag de Root vamos a realizar primero el comando “sudo -l” para ver los privilegios que tiene este usuario como root y vemos que tiene los privilegios del comando “sudo” por lo que vamos a ver que versión de éste.

sudo-l

Vemos que tiene la versión 1.8.21p2, buscando por Google encontramos que tiene una vulnerabilidad para realizar un ByPass y escalar privilegios, lanzamos el comando y listo, ya somos Root.

rootFlag

Como bonus decir que esta máquina tiene una pregunta, nos dice que ¿Quién es el Agente R? Bueno, si somos observadores lo tenemos a simple vista, lo dejo ahí.

Espero que os haya gustado mi primer WriteUp y lo dicho, estoy a vuestra disposición para que me reportéis vuestras opiniones.

Un saludo, gracias por quedaros hasta el final, y ¡hasta la próxima!