La máquina Bounty Hacker es una máquina de dificultad fácil de TryHackMe.

Resumen de conceptos trabajados:
Escaneo de Puertos Anonymous login FTP Extract user&credentials Brute Force with Hydra SSH exploitation Privilege Escalation with tar |
Al final del write up te cuento un resumen de toda la máquina.
Si es tu primera máquina en TryHackMe y no sabes cómo conectarte a la máquina del laboratorio, te recomiendo que visites este post donde te cuento paso a paso cómo introducirte en esta plataforma.
Cuando inicies siempre una máquina de TryHackMe, recuerda securizarte en la red, para ello te cuento cómo lo hago yo siguiendo estos sencillos pasos.
Estructura del contenido
ESCANEO DE PUERTOS
Comenzamos primero viendo si la máquina está activa y podemos conectarnos a ella, y después continuamos con el descubrimiento de puertos para luego hacer un escaneo de los servicios y versiones que corren para esos puertos.



Resultado del escaneo: SO Linux, con los puertos 21 FTP, 22 SSH y 80 WEB abiertos.
ANONYMOUS LOGIN FTP
Empezamos por el puerto 21 FTP, ¿por qué? porque el escaneo nos dice que es posible hacer el login mediante el usuario y contraseña «anonymous».
Una vez dentro exploramos que hay dos ficheros .txt, que descargamos en nuestra máquina local mediante el comando «get», y después abrimos con «cat» en nuestra carpeta de la máquina:


Por otro lado, creo un fichero txt con nano para incluir todos los usuarios potenciales que encuentro en la web por el puerto 80, incluyendo el usuario que encontramos en el fichero task.txt:



Por si acaso encontrara más usuarios ocultos, hago fuzzing web sobre la IP pero no detecto nada interesante más allá de la parte de /images/ que solo aloja la img principal y nada más.

BRUTE FORCING CON HYDRA
Una vez tenemos el listado de contraseñas y el de usuarios, vamos a lanzar un Hydra contra el puerto 22 ssh para averiguar el usuario y contraseña vulnerable a la máquina.
Vemos el usuario lin y su contraseña.

SSH EXPLOITATION
Accedemos al puerto 22 ssh y podemos ver la user flag:

PRIVILEGE ESCALATION WITH TAR
Sin embargo no somos root, sino usuario lin, pero con el comando sudo -l vemos que lin tiene permisos para ejecutar /bin/tar como root, por lo que podemos abusar de esta capacidad para obtener una shell como usuario root.

sudo tar -cf /dev/null /dev/null --checkpoint=1 --checkpoint-action=exec=/bin/sh
Vamos a desglosar qué hace cada parte del comando:
1. sudo
: Ejecuta el comando con permisos de superusuario (root), ya que el usuario lin
tiene privilegios para ejecutar /bin/tar
como root.
2. tar
: Es el comando que se usa normalmente para crear, extraer o manipular archivos comprimidos.
3. -c
: Indica que queremos crear un archivo tar. En este caso, no creamos realmente un archivo útil, sino que usamos tar
solo como un medio para ejecutar código con privilegios elevados.
4. -f /dev/null /dev/null
:
-f
especifica el nombre del archivo tar a crear./dev/null
es un archivo especial en Linux que descarta cualquier contenido escrito en él. Aquí,tar
está intentando crear un archivo tar llamado/dev/null
, pero en realidad no genera ningún archivo útil.
5. --checkpoint=1
: Hace que tar
muestre un mensaje de verificación cada 1 archivo procesado. En este caso, el número 1 indica que se ejecutará la acción después del primer «checkpoint».
6. --checkpoint-action=exec=/bin/sh
:
--checkpoint-action=exec=...
permite ejecutar un comando arbitrario en cada checkpoint./bin/sh
es un intérprete de comandos en Linux (similar a Bash).- Como
tar
se está ejecutando con privilegios de root, la shell que abre/bin/sh
también se ejecuta como root, dándonos control total del sistema.
y si ejecutamos «whoami» somos root. Ahora basta con llegar a root.txt, para ello ejecutamos:
cat /root/root.txt

RESUMEN Para resolver la máquina Bounty Hacker en TryHackMe, primero realizamos un escaneo con nmap y descubrimos que los puertos 21 (FTP), 22 (SSH) y 80 (HTTP) estaban abiertos.Accedimos al FTP con usuario anónimo y descargamos archivos, donde encontramos una lista de posibles contraseñas ( locks.txt ). Luego, exploramos la web en busca de potenciales usuarios además de analizar el puerto 80 con gobuster por si hubieran directorios ocultos abiertos que nos pudieran revelar más información.Con eso creamos dos ficheros txt de usuarios y contraseñas que utilizamos con Hydra para hacer un ataque de fuerza bruta en SSH y logramos acceder con las credenciales lin:RedDr4gonSynd1cat3 . Una vez dentro, encontramos la flag de usuario ( user.txt ) y verificamos con sudo -l que el usuario lin tenía permisos para ejecutar tar como root.Para escalar privilegios, aprovechamos esta configuración ejecutando sudo tar -cf /dev/null /dev/null --checkpoint=1 --checkpoint-action=exec=/bin/sh , lo que nos dio acceso root. Luego, navegamos al directorio /root/ , donde encontramos root.txt , pero inicialmente no pudimos leerlo. Verificamos los permisos, confirmamos que era un archivo de texto y finalmente lo abrimos con cat /root/root.txt , obteniendo la flag final. |