Búsqueda de Credenciales e Información Sensible
Archivo /etc/passwd
¿Qué contiene? Información de todos los usuarios locales (no contraseñas).
Formato:
usuario:x:UID:GID:Nombre Completo:Home:/bin/bashbash
cat /etc/passwd
cat /etc/passwd | cut -d: -f1 # Solo usuarios
awk -F: '$3 >= 1000 {print $1}' /etc/passwd # Usuarios realesArchivo /etc/shadow
¿Qué contiene? Hashes de contraseñas de los usuarios (solo accesible como root).
Formato:
usuario:$6$salt$hash:fecha:min_dias:max_dias:aviso:inactividad:expiración:banderabash
sudo cat /etc/shadow
# Si no puedes acceder como root, busca archivos legibles
find / -name "shadow*" -readable 2>/dev/nullArchivo /etc/group
¿Qué contiene? Información de grupos del sistema.
bash
cat /etc/groupHistorial de Bash
Los comandos se guardan incluso si cierras sesión sin exit.
bash
history
cat ~/.bash_history
cat ~/.zsh_history
cat ~/.history
# Historial de otros usuarios
cat /home/usuario/.bash_history
# Buscar contraseñas
history | grep -i "password\|pass\|pwd\|credential"
cat ~/.bash_history | grep -iE "password|pass|mysql|ssh|psql"Archivo .bashrc y .bash_profile
Pueden contener credenciales o variables de entorno sensibles.
bash
cat ~/.bashrc
cat ~/.bash_profile
cat ~/.zshrc
cat ~/.profile
# Buscar en múltiples usuarios
for user in $(cut -d: -f1 /etc/passwd); do
echo "=== $user ==="
cat /home/$user/.bashrc 2>/dev/null | grep -i "password\|token\|secret"
doneClaves SSH Privadas
bash
# Tu clave privada
ls -la ~/.ssh/
cat ~/.ssh/id_rsa
cat ~/.ssh/id_ecdsa
cat ~/.ssh/id_ed25519
# Claves de otros usuarios
find / -name "id_rsa" -o -name "id_ecdsa" -o -name "id_ed25519" 2>/dev/null
# Claves autorizadas (qué claves pueden conectarse)
cat ~/.ssh/authorized_keys
cat /root/.ssh/authorized_keys
# Usar claves encontradas
ssh -i clave_encontrada usuario@servidorArchivos de Configuración
Apache
bash
cat /etc/apache2/apache2.conf
cat /etc/apache2/envvars
cat /etc/apache2/sites-enabled/*.conf
grep -r "password" /etc/apache2 2>/dev/nullNginx
bash
cat /etc/nginx/nginx.conf
cat /etc/nginx/sites-enabled/*.conf
grep -r "password" /etc/nginx 2>/dev/nullMySQL/MariaDB
bash
cat /etc/mysql/mysql.conf.d/mysqld.cnf
cat /home/usuario/.my.cnf
grep -r "password" /etc/mysql 2>/dev/null
# Credenciales en applications.conf
cat /etc/mysql/debian.cnfPostgreSQL
bash
cat /etc/postgresql/*/main/postgresql.conf
cat ~/.pgpass
grep -r "password" /etc/postgresql 2>/dev/nullWordpress
bash
cat /var/www/html/wp-config.php | grep -i "password\|user\|database"
cat /var/www/wordpress/wp-config.php | grep DB_Laravel
bash
cat /var/www/html/.env
cat /var/www/laravel/.env
grep -i "password\|database\|secret" /var/www/html/.envCredenciales en Archivos de Aplicación
bash
# Buscar en toda la aplicación
find /var/www -name "*.conf" -o -name "*.config" -o -name ".env" 2>/dev/null | xargs grep -l "password"
# En directorio home
find ~ -name "*.conf" -o -name "*.config" 2>/dev/null | xargs grep -i "password\|secret\|token"GIT - Credenciales Guardadas
bash
# Credenciales globales
cat ~/.gitconfig
cat ~/.git-credentials
# En repositorio local
cat .git/config
cat .git/HEAD
# Historial de commits (buscar credenciales)
git log -p | grep -i "password\|secret\|token"
git log --all --oneline | head -20Archivos de Notas y Documentos
bash
find ~ -name "*.txt" -o -name "*.doc" -o -name "*.pdf" -o -name "*.xlsx" 2>/dev/null
# Archivos del escritorio
ls -la ~/Desktop/
ls -la ~/Documents/
ls -la ~/Downloads/
# Buscar menciones de credenciales
grep -r "password" ~ 2>/dev/null | grep -v ".git"
find ~ -type f -exec grep -l "password\|secret\|credentials" {} \; 2>/dev/nullVariable de Entorno - Búsqueda de Secretos
bash
env | grep -i "password\|secret\|token\|api\|key"
printenv | grep -i "password\|secret"
# Variables en procesos
cat /proc/self/environ | tr '\0' '\n' | grep -i password
cat /proc/[PID]/environ | tr '\0' '\n'Archivos Temporales
bash
ls -la /tmp/
ls -la /var/tmp/
ls -la /dev/shm/
# Archivos recientes
find /tmp -type f -mmin -60 2>/dev/null # Modificados en últimos 60 minutosBases de Datos
SQLite
bash
find / -name "*.db" -o -name "*.sqlite" 2>/dev/null
# Examinar
sqlite3 base.db ".dump"
sqlite3 base.db "SELECT * FROM usuarios;"Redis
bash
# Si Redis corre localmente
redis-cli
> keys *
> get claveLogs del Sistema
bash
# Logs de autenticación
cat /var/log/auth.log
cat /var/log/secure
grep "password\|su:" /var/log/auth.log
# Logs de aplicaciones
cat /var/log/apache2/access.log
cat /var/log/apache2/error.log
cat /var/log/nginx/access.log
cat /var/log/mysql/error.log
cat /var/log/postgres/postgresql.logBúsqueda Masiva de Credenciales
bash
# En todo el sistema (lento)
grep -r "password\|passwd\|pass\|credential\|secret\|token" / --include="*.conf" --include="*.config" --include="*.txt" 2>/dev/null | head -50
# En directorio de aplicación
grep -r "password" /var/www 2>/dev/null
# En directorios sensibles
grep -r "password" /root /home /opt 2>/dev/null
# En archivos específicos
find / -name "config*" -o -name "secret*" -o -name "credential*" 2>/dev/null | xargs catHerramientas Automáticas
LinEnum
bash
# Descargar
wget https://github.com/rebootuser/LinEnum/raw/master/LinEnum.sh
chmod +x LinEnum.sh
# Ejecutar
./LinEnum.sh
./LinEnum.sh -s # Búsqueda completa de archivosSearchsploit (en Kali)
bash
# Buscar archivos potencialmente sensibles en el system
ls -la /var/www/.env
find /var/www -name ".env" -o -name "web.config" -o -name "connection.xml"Contraseñas en la Línea de Comandos
CRÍTICO: Si se ejecutó comando con contraseña visible, aparecerá en:
bash
history
ps aux
ps aux | grep mysql
ps aux | grep postgres
ps aux | grep ssh
# Ejemplo vulnerable:
mysql -u root -pPassword123 banco
# Aparecería en "ps aux" como:
# mysql -u root -pPassword123 bancoArchivo /etc/sudoers
Si puedes leerlo (raro pero posible):
bash
cat /etc/sudoers
sudo -l # Ver qué puedes ejecutar como sudo
# Ejemplo output:
# User usuario may run the following commands:
# (root) NOPASSWD: /usr/bin/systemctl
# (root) /usr/bin/mysql