📖 Gancho de la historia
En 2024, un hacker llamado NCSC hackeó el servidor de correo de una gran empresa. El método fue simple: encontró un archivo /etc/shadow con derechos 644 en lugar de 600.
Esto significa que cualquier usuario normal podría leerlo. Dentro había hashes de todas las contraseñas. En 2 horas, hashcat descifró el 80% de las contraseñas.
Un solo dígito en los derechos de acceso costó a la empresa millones. Esta lección es sobre ese dígito.
🧠 Lo principal: Linux es un sistema multiusuario
En Windows, normalmente eres un solo usuario. En Linux, hay decenas. root, kali, www-data, mysql, postgres. Cada uno tiene sus propios archivos y derechos.
Comando para ver a todos los usuarios:
cat /etc/passwd
Muestra líneas como:
root:x:0:0:root:/root:/bin/bash
kali:x:1000:1000:Kali Linux User:/home/kali:/bin/bash
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
Cada línea es un usuario. UID 0 = root (administrador todopoderoso). Todos los demás son usuarios normales.
👑 ¿Quién es root?
⚠️ Regla principal de seguridad de Linux
root puede hacer TODO. Eliminar archivos del sistema. Leer cualquier dato. Instalar cualquier software. Ejecutar cualquier programa.
Si un hacker obtiene root, el juego ha terminado. El servidor es suyo. Por lo tanto, todo pentest se reduce a uno: cómo llegar de un usuario normal a root.
Este proceso se llama Privilege Escalation (escalada de privilegios). Lo aprenderemos en el Módulo 8.
📁 ¿Dónde viven las contraseñas?
En Linux, las contraseñas se almacenan en dos archivos:
📄 /etc/passwd
Lista de usuarios. Cualquiera puede leerlo (derechos 644). En sistemas modernos, no hay contraseñas aquí — solo un placeholder x.
🔐 /etc/shadow
Hashes reales de contraseñas. Solo root puede leerlo (derechos 640). Si un hacker lo obtiene, puede intentar descifrar los hashes con hashcat.
Verifica tu /etc/shadow:
ls -l /etc/shadow
Debería ser:
-rw-r----- 1 root shadow 1234 May 22 09:00 /etc/shadow
Estas letras -rw-r----- son los derechos. Ahora los explicaremos.
🎯 Descifrar derechos: rwx y dígitos
Cada archivo en Linux tiene derechos para 3 categorías:
- Propietario (User, u)
- Grupo (Group, g)
- Todos los demás (Others, o)
Y 3 tipos de derechos:
- r (Read) — leer contenido
- w (Write) — modificar
- x (Execute) — ejecutar (para archivos) / entrar (para directorios)
Cuando ves -rw-r--r--:
- rw- r-- r--
↑ ↑ ↑ ↑
tipo Prop. Grup. Todos
archivo
Resulta:
- Propietario: rw- = leer + escribir (no ejecutar)
- Grupo: r-- = solo leer
- Todos: r-- = solo leer
🔢 Notación numérica (la más importante)
Es más fácil escribir derechos en números:
| Dígito | Binario | Derechos | Significa |
0 | 000 | --- | nada |
1 | 001 | --x | solo ejecutar |
2 | 010 | -w- | solo escribir |
3 | 011 | -wx | escribir + ejecutar |
4 | 100 | r-- | solo leer |
5 | 101 | r-x | leer + ejecutar |
6 | 110 | rw- | leer + escribir |
7 | 111 | rwx | TODOS |
Recuerda como una suma: r=4, w=2, x=1.
- r+w+x = 4+2+1 = 7 (derechos completos)
- r+x = 4+1 = 5 (leer + ejecutar, sin escribir)
- r+w = 4+2 = 6 (leer + escribir, no ejecutar)
🎯 Derechos estándar
| chmod | Letras | Cuándo usar |
755 | rwxr-xr-x | Archivos ejecutables y directorios (estándar) |
644 | rw-r--r-- | Archivos normales (documentos, configuraciones) |
600 | rw------- | Archivos privados (claves SSH, contraseñas) |
700 | rwx------ | Directorios y scripts privados |
777 | rwxrwxrwx | NUNCA en producción — es un agujero |
🛠 Comandos en práctica
Crea un archivo de prueba:
cd ~
echo "datos de prueba" > myfile.txt
ls -l myfile.txt
Verás algo como:
-rw-r--r-- 1 kali kali 5 May 22 09:00 myfile.txt
Cambia los derechos:
chmod 700 myfile.txt # solo el propietario puede todo
ls -l myfile.txt
# -rwx------ 1 kali kali 5 ...
chmod 755 myfile.txt # estándar para scripts
chmod +x myfile.txt # sintaxis alternativa: agregar execute
chmod -w myfile.txt # quitar write a todos
🔓 sudo — tu llave a root
En la vida normal, eres kali. Para convertirte temporalmente en root — usas sudo.
sudo apt update # actualizar paquetes (necesita root)
sudo cat /etc/shadow # leer archivo protegido
sudo -i # convertirte en root completamente (salir: exit)
sudo whoami # root
Cómo funciona:
- Tú escribes
sudo ...
- Linux verifica — estás en el archivo
/etc/sudoers
- Pide tú contraseña (no la de root)
- Ejecuta el comando como root
- Recuerda durante 15 minutos — siguiente sudo sin contraseña
⚠️ Privilege Escalation 101
Si en un pentest encontraste una forma de ejecutar UN comando como root (por ejemplo, a través de un agujero en una aplicación web) — ya ganaste. El primer comando suele ser:
sudo -i # o
sudo /bin/bash # darte a ti mismo una shell de root
Esto estará en el Módulo 8.
🎯 Ejercicio final
cd ~ — ve a tu directorio
echo "datos secretos" > secrets.txt — crea un archivo
chmod 600 secrets.txt — modo privado
ls -l secrets.txt — verifica los derechos (-rw-------)
su - www-data -c "cat /home/kali/secrets.txt" — intenta leer como otro usuario
- Obtendrás Permission denied — los derechos funcionan!
sudo cat /etc/shadow — pero root puede leer (nada se le oculta)
chmod 644 secrets.txt — abrir lectura a todos (contraejemplo: así no se debe hacer)
🤖 Tarea de vibe: pregunta a Claude
Abre Claude y pregunta:
Explica con simples palabras cómo funciona el bit SUID en Linux
y por qué es importante para ataques de escalada de privilegios.
Dame 3 ejemplos de comandos que ayuden a encontrar archivos SUID en la VM de prueba:
"find / -perm -4000 ..." y explica cada uno.
SUID es un caso especial de chmod. En el Módulo 8, será nuestra herramienta principal para la escalada de privilegios.
💡 Conclusión principal del módulo 2
🎓 Qué puedes hacer ahora
1. Tienes un Kali Linux funcionando en una máquina virtual
2. No temes al terminal — sabes 10 comandos básicos
3. Entiendes derechos, root, sudo
4. Puedes leer la mayoría de los tutoriales de pentest (90% del trabajo en Linux)
Esto es el fundamento. A continuación, aprenderás cómo está estructurada la RED.
🎬 Qué sigue
Módulo 3: Cómo está estructurado internet. Direcciones IP, puertos, protocolos (TCP/UDP, HTTP, DNS). De manera sencilla. Sin jerga. Al final del módulo, entenderás cómo un paquete de datos viaja desde ti hasta Google y de regreso.