githubEditar

🟨HTB - Scrambled

https://app.hackthebox.com/machines/Scrambled

InformaciΓ³n General

  • Nombre de la MΓ‘quina: Scrambled

  • IP de la MΓ‘quina: 10.129.85.148

  • Sistema Operativo: Windows

  • Dificultad: Medium

  • Fecha de PublicaciΓ³n: 11 Jun 2022


Enumeration

Ping para obtener ruta de retorno

Realizamos un ping a la mΓ‘quina objetivo para verificar la conectividad y obtener informaciΓ³n sobre la ruta utilizando la opciΓ³n -R para incluir la ruta de retorno:

El valor de TTL (Time To Live) igual a 127 puede ser indicativo de que el sistema operativo de la mΓ‘quina objetivo es Windows. El TTL es un valor en el campo de los paquetes IP que indica la duraciΓ³n que un paquete puede estar en una red antes de ser descartado. Windows establece por defecto el valor de TTL de sus paquetes IP en 128, que al pasar por un salto en la red se decrementa a 127.

Escaneo de puertos con Nmap

Luego, realizamos un escaneo de puertos utilizando Nmap para identificar los puertos abiertos en la mΓ‘quina objetivo. Utilizamos las opciones -p- para escanear todos los puertos, --open para mostrar solo los puertos abiertos, -sS para un escaneo de tipo TCP SYN, --min-rate 5000 para establecer la velocidad mΓ­nima de paquetes y -vvv para un nivel de verbosidad alto. AdemΓ‘s, utilizamos -n para desactivar la resoluciΓ³n de DNS, -Pn para no realizar el escaneo de ping, y -oG allPorts para guardar la salida en un archivo con formato Greppable para luego utilizar nuestra funciΓ³n extractPorts:

Escaneo detallado con Nmap

Posteriormente, realizamos un escaneo mΓ‘s detallado de los puertos identificados utilizando la opciΓ³n -sCV para detecciΓ³n de versiones y scripts de enumeraciΓ³n de servicios. EspecΓ­ficamente, indicamos los puertos a escanear con -p __PORTS__ (reemplazando __PORTS__ con los puertos identificados en el paso anterior) y guardamos la salida en un archivo de texto con el nombre targeted:

Modificando /etc/hosts

Para aΓ±adir la entrada "10.129.85.148 scrm.local" al archivo /etc/hosts, puedes usar el siguiente comando en la terminal:

Username Bruteforce con Kerbrute

Directory Bruteforce con Dirsearch

Analizando la pagina de scrm.local

En passwords.html podemos ver que dice que la password to be the same as the username. AsΓ­ que intentarΓ© nuevamente con kerbrute para ver si la credencial que obtuve funciona.

Password Bruteforce con Kerbrute

Impacket

Ya tenemos un usuario valido, por lo que seguiremos con la enumeraciΓ³n con impacket

Partimos con getTGT.py

circle-info

Si notas que no funciona klist, instala kerberos.

Lo siguiente es utilizar GetUserSPNs.py

John the ripper para crackear el hash

Por lo que intentaremos todo de nuevo (desde getTGT.py) pero ahora con las credenciales sqlsvc:Pegasus60.

NTLM Hash

Convertimos "Pegasus60" a NTLM Hash con alguna herramienta online (browserling.com/tools/ntlm-hash)

Y la agregamos a nuestra lista de credenciales en creds.txt

getPac.py

Guardamos el Domain SID en nuestras lista de credenciales:

Script base64SID to String

ticketer.py

ExtracciΓ³n de credencial en DB

MSFVenom Reverse Shell

Entonces nos damos cuenta que el privilegio SeImpersonatePrivilege esta Enabled

Lo que quiere decir que podemos efectuar una escala de privilegios con JuicyPotatoNG

Escala de privilegios con JuicyPotatoNG

Unexpected error with integration github-files: Integration is not installed on this space

Utilizaremos la shell Invoke-PowrShellTcpOneLine.ps1, la modificaremos (el LHOST y LPORT) y luego la dejaremos en base64. Para luego descargarla en la mΓ‘quina Windows en %programdata%.

Última actualización