Módulo 2 · Lección 3 · 30 minutos

🔐 Derechos de acceso y root

Qué significa «root», dónde viven las contraseñas, qué es chmod 755. Base para ataques a servidores Linux.

📖 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:

Y 3 tipos de derechos:

Cuando ves -rw-r--r--:

-  rw-  r--  r--
↑   ↑    ↑    ↑
tipo Prop. Grup. Todos
archivo

Resulta:

🔢 Notación numérica (la más importante)

Es más fácil escribir derechos en números:

DígitoBinarioDerechosSignifica
0000---nada
1001--xsolo ejecutar
2010-w-solo escribir
3011-wxescribir + ejecutar
4100r--solo leer
5101r-xleer + ejecutar
6110rw-leer + escribir
7111rwxTODOS

Recuerda como una suma: r=4, w=2, x=1.

🎯 Derechos estándar

chmodLetrasCuándo usar
755rwxr-xr-xArchivos ejecutables y directorios (estándar)
644rw-r--r--Archivos normales (documentos, configuraciones)
600rw-------Archivos privados (claves SSH, contraseñas)
700rwx------Directorios y scripts privados
777rwxrwxrwxNUNCA 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:

  1. Tú escribes sudo ...
  2. Linux verifica — estás en el archivo /etc/sudoers
  3. Pide tú contraseña (no la de root)
  4. Ejecuta el comando como root
  5. 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

  1. cd ~ — ve a tu directorio
  2. echo "datos secretos" > secrets.txt — crea un archivo
  3. chmod 600 secrets.txt — modo privado
  4. ls -l secrets.txt — verifica los derechos (-rw-------)
  5. su - www-data -c "cat /home/kali/secrets.txt" — intenta leer como otro usuario
  6. Obtendrás Permission denied — los derechos funcionan!
  7. sudo cat /etc/shadow — pero root puede leer (nada se le oculta)
  8. 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.

← Lección 2.2 Módulo 3: Cómo está estructurado internet →