🔐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
chevron-rightESCRITURA en PASSWD o SHADOWhashtag

/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

chevron-rightPRIVESC via KERNEL EXPLOITATIONhashtag
  1. Identificar la versión del kernel > uname -a

  2. Identificar exploits para la versión vulnerable

chevron-rightPRIVESC via SUDOhashtag

Listar permisos sudo del usuario actual > sudo -l

Explotar las funciones de aplicaciones específicas

https://gtfobins.github.io/arrow-up-right

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

chevron-rightPRIVESC via SUIDhashtag

Buscar archivos con permisos SUID

https://gtfobins.github.io/arrow-up-right

chevron-rightPRIVESC via CAPABILITIEShashtag

Listar binarios con capabilities

https://gtfobins.github.io/arrow-up-right

chevron-rightPRIVESC via CRON JOBShashtag

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.

chevron-rightPRIVESC via PATHhashtag

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:

chevron-rightPRIVESC via NFShashtag

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

chevron-rightADM group - Admin Log Readerhashtag
circle-info

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

chevron-rightUNATTENDED WINDOWS INSTALLATIONhashtag

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

chevron-rightPOWERSHELL HISTORYhashtag
chevron-rightSAVED WINDOWS CREDENTIALShashtag
chevron-rightIIS CONFIGURATIONhashtag

Posibles ubicaciones del archivo web.config

  • C:\inetpub\wwwroot\web.config

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

chevron-rightRETRIEVE CREDENTIALS from PUTTYhashtag

Explotación

chevron-rightBINARY HIJACKING via SCHEDULED TASK BINARYhashtag

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

chevron-rightEVIL WINDOWS INSTALLER via AlwasyInstalledElevatedhashtag

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>

chevron-rightBINARY HIJACKING via INSECURE PERMISSIONS on SEVICE EXECUTABLEhashtag

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

chevron-rightSERVICE PATH HIJACKING via UNQUOTED BINARY PATHhashtag

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

chevron-rightBINARY HIJACKING via INSECURE SERVICE PERMISSIONShashtag
  • Esperar a que el servicio se reinicie, o reinicio manual si es posible

Dangerous Privileges

chevron-rightSAM/SYSTEM BACKUP + PASS-THE-HASH ATTACK via SeBackup / SeRestorehashtag
chevron-rightBINARY HIJACKING via SeTakeOwnershiphashtag
  • Ejecutar binario

chevron-rightPRIMARY TOKEN IMPERSONATION via SeImpersonate / SeAssignPrimaryTokenhashtag
  • Para explotar este vector WinRM no debe estar en ejecución.

https://github.com/antonioCoco/RogueWinRMarrow-up-right

chevron-rightRESET PASSWORD via ForceChangePasswordhashtag
chevron-rightTGT IMPERSONATION via AllowedToDelegatehashtag
chevron-rightTGT IMPERSONATION via Resource-Based Constrained Delegationhashtag

Dangerous Groups

chevron-rightBUILTIN\Administrators + Medium Mandatory Level - UAC Bypass Reverse Shellhashtag
chevron-rightBUILTIN\Certificate Service DCOM Access - Domain Admin Impersonationhashtag

Vulnerable Software

Privesc Enumeration Tools

Última actualización