🔐Privilege Escalation

Vectores de escalada de privilegios en sistemas comprometidos

Linux

Enumeración General

hostname # nombre de host
uname -a # detalles del kernel
ps aux # procesos en ejecución
env # variables de entorno
sudo -l # comandos bajo root
id # lista privilegios y grupos
history # historial de comandos
ifconfig # info sobre interfaces de red
netstat # info sobre conexiones existentes
find / -type f -perm -400 2>/dev/null # archivos SUID
find / -writable 2>/dev/null | cut -d "/" -f 2,3 | grep -v proc | sort -u # writables
ESCRITURA en PASSWD o SHADOW

/etc/passwd

nano /etc/passwd # Eliminar X de root:x:0:0:root:/root:/bin/bash
su root # sin contraseña

/etc/shadow

mkpasswd -m sha-512 <pass> # hash nueva pass
nano /etc/shadow # sustituímos root hash
su root # nueva pass
cat /proc/version # versión del kernel y compiladores
cat /etc/issue # info sobre SO
cat /etc/passwd | cut -d ":" -f 1 # usuarios del sistema
cat /etc/shadow # hashes de usuarios
cat /etc/crontab # tareas programadas
cat /etc/shells # info sobre shell
ls -l home/<user>/.ssh # user ssh keys
ls /var/www/html/ # extra + info, databases, pass reuse

Explotación General

PRIVESC via KERNEL EXPLOITATION
  1. Identificar la versión del kernel > uname -a

  2. Identificar exploits para la versión vulnerable

PRIVESC via SUDO

Listar permisos sudo del usuario actual > sudo -l

Explotar las funciones de aplicaciones específicas

https://gtfobins.github.io/

Library Hijacking - LD_PRELOAD

La función LD_PRELOAD permite que cualquier programa utilice librerías compartidas. La opción env_keep+=LD_PRELOAD debe estar habilitada para poder generar nuestra librería compartida maliciosa que se cargará y ejecutará bajo permisos sudo antes que el propio programa.

La metodología para este vector de escalada es sencilla:

  1. Comprobar que la función env_keep está habilitada para algún programa:

  1. Share object malicioso en C

  1. Compilación

  1. Ejecución de binario sudo y función LD_PRELOAD apuntando a share object malicioso

PRIVESC via SUID

Buscar archivos con permisos SUID

https://gtfobins.github.io/

PRIVESC via CAPABILITIES

Listar binarios con capabilities

https://gtfobins.github.io/

PRIVESC via CRON JOBS

Comprobar tareas programadas

Binary Hijacking

Si en una tarea programada se especifica solamente el nombre del binario a ejecutar en lugar de indicar su ruta absoluta, Cron procederá a buscarlo mediante la variable PATH del archivo /etc/crontab. Podremos aprovechar esto para crear un binario malicioso que suplante el indicado en la tarea programada para ejecutarlo bajo permisos root.

PRIVESC via PATH

Condiciones a tener en cuenta:

  1. ¿Qué directorios se encuentran dentro del $PATH?

  2. ¿El usuario actual tiene permisos de escritura para alguno de esos directorios?

  3. ¿Se puede modificar el $PATH?

  4. ¿Se puede ejecutar alguna aplicación que se vea afectada por esta vulnerabilidad?


Buscar directorios con permisos de escritura:

Modificar $PATH:

PRIVESC via NFS

La configuración del NFS, se detalla en el archivo /etc/exports creado durante la instalación del servidor NFS.

no_root_squash

La opción no_root_squash en un directorio compartido con permisos de escritura es crítica, ya que permite crear un ejecutable con permisos SUID.

  1. Comprobar opción no_root_squash en los directorios compartidos de la máquina

  1. Enumerar directorios exportados desde la máquina atacante

  1. Creación y montaje de directorio temporal sobre el shared vulnerable

  1. Binario malicioso

  1. Compilación y asignación SUID

  1. Ejecución del binario en la máquina víctima

Grupos

ADM group - Admin Log Reader

En Linux, el grupo adm (admin log reader) es un grupo del sistema que se utiliza para dar acceso a los archivos de registro del sistema, principalmente ubicados en /var/log/

Windows

Enumeración

Password Harvesting Spots

UNATTENDED WINDOWS INSTALLATION

Posibles ubicaciones de archivos de configuración de las instalaciones unattended

  • C:\Unattend.xml

  • C:\Windows\Panther\Unattend.xml

  • C:\Windows\\Panther\Unattend\Unattend.xml

  • C:\Windows\system32\sysprep.inf

  • C:\Windows\system32\sysprep\sysprep.xml

POWERSHELL HISTORY
SAVED WINDOWS CREDENTIALS
IIS CONFIGURATION

Posibles ubicaciones del archivo web.config

  • C:\inetpub\wwwroot\web.config

  • C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\web.config

RETRIEVE CREDENTIALS from PUTTY

Explotación

BINARY HIJACKING via SCHEDULED TASK BINARY

Parámetros a tener en cuenta:

  • Task to Run Indica el binario que ejecutará la tarea.

  • Run As User Indica sobre qué usuario se ejecutará el binario

EVIL WINDOWS INSTALLER via AlwasyInstalledElevated

Si estos dos valores de registro están configurados podemos generar un archivo .msi malicioso para recibir una reverse shell con altos privilegios.

Service Misconfigurations

La configuración de todos los servicios se almacena en un registro en:

  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<service>

BINARY HIJACKING via INSECURE PERMISSIONS on SEVICE EXECUTABLE

Localizar el ejecutable y cuenta de usuario asociados al servicio:

  • BINARY_PATH_NAME

  • SERVICE_START_NAME

  • Esperar a que el servicio se reinicie, o reinicio manual si es posible

SERVICE PATH HIJACKING via UNQUOTED BINARY PATH

Localizar un servicio con BINARY_PATH_NAME especificado sin comillas dobles y con espacios en algún lugar del nombre de la ruta.

  • C:\some\path to the\binary-name

  • Esperar a que el servicio se reinicie, o reinicio manual si es posible

BINARY HIJACKING via INSECURE SERVICE PERMISSIONS
  • Esperar a que el servicio se reinicie, o reinicio manual si es posible

Dangerous Privileges

SAM/SYSTEM BACKUP + PASS-THE-HASH ATTACK via SeBackup / SeRestore
BINARY HIJACKING via SeTakeOwnership
  • Ejecutar binario

PRIMARY TOKEN IMPERSONATION via SeImpersonate / SeAssignPrimaryToken
  • Para explotar este vector WinRM no debe estar en ejecución.

https://github.com/antonioCoco/RogueWinRM

RESET PASSWORD via ForceChangePassword
TGT IMPERSONATION via AllowedToDelegate
TGT IMPERSONATION via Resource-Based Constrained Delegation

Dangerous Groups

BUILTIN\Administrators + Medium Mandatory Level - UAC Bypass Reverse Shell
  • Necesita credenciales válidas

https://github.com/antonioCoco/RunasCs

BUILTIN\Certificate Service DCOM Access - Domain Admin Impersonation

Vulnerable Software

Privesc Enumeration Tools

Última actualización