¿Sabes qué son los permisos inseguros en binarios en Linux? Los binarios en Linux tienen definidos los permisos relacionados con lo que pueden o no hacer y, en ocasiones, se pueden identificar capacidades adicionales a las que se deberían tener en algunos binarios.
Para realizar este análisis se pueden usar diferentes herramientas, como getcap, setcap y setuid. Veamos cómo funcionan estas herramientas en los permisos inseguros en binarios en Linux.
Herramientas en los permisos inseguros en binarios en Linux
Las herramientas en los permisos inseguros en binarios en Linux son utilidades que ayudan a identificar y corregir problemas de seguridad relacionados con los permisos de archivos binarios en un sistema operativo Linux.
En Linux, los permisos de archivo determinan quién puede acceder, leer, escribir o ejecutar un archivo. Un archivo binario es un archivo ejecutable que contiene código del programa. Si los permisos de un archivo binario no se establecen correctamente, puede haber riesgos de seguridad, como permitir a usuarios no autorizados ejecutar o modificar el archivo.
Las herramientas en los permisos inseguros en binarios están diseñadas para buscar archivos binarios con permisos inapropiados y notificar al administrador del sistema sobre los posibles problemas de seguridad. Algunas de estas herramientas también pueden corregir automáticamente los permisos incorrectos.
Getcap
El comando getcap
en Linux se utiliza para ver las capacidades almacenadas en un archivo o directorio. Las capacidades de archivo son atributos especiales que permiten que ciertos programas realicen operaciones específicas sin requerir los privilegios completos de root (superusuario). Esto se conoce como ejecución con capacidad elevada.
Las capacidades de archivo forman parte del modelo de seguridad de Linux, llamado Linux Capabilities, que divide los privilegios en unidades más pequeñas y granulares. Al utilizar las capacidades, se le puede conceder a un programa acceso privilegiado solo para las operaciones que requiere, en lugar de otorgarle acceso de superusuario completo.
🔴 ¿Quieres entrar de lleno a la Ciberseguridad? 🔴
Descubre el Ciberseguridad Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada
👉 Prueba gratis el Bootcamp en Ciberseguridad por una semanaEl comando getcap
muestra las capacidades almacenadas en un archivo o directorio específico. Su sintaxis básica es la siguiente:
//permisos inseguros en binarios en Linux
getcap archivo_o_directorio
Por ejemplo, para ver las capacidades de un archivo llamado «ejemplo.bin», puedes ejecutar:
//permisos inseguros en binarios en Linux
getcap ejemplo.bin
El comando mostrará la lista de capacidades asignadas al archivo, si las hay.
En este otro ejemplo vemos cómo se haría la identificación de capacidades:
//permisos inseguros en binarios en Linux
/usr/bin/getcap -r
/usr/bin
Setcap
El comando setcap
en Linux se utiliza para establecer las capacidades en un archivo o programa específico. Permite asignarle capacidades especiales a un archivo ejecutable sin otorgarle privilegios completos de root.
Las capacidades de archivo, como hemos mencionado anteriormente, son atributos especiales que permiten que ciertos programas realicen operaciones específicas sin necesitar privilegios completos. El comando setcap
se utiliza para asignar esas capacidades a un archivo ejecutable, de forma que pueda acceder a recursos o realizar operaciones restringidas.
La sintaxis básica del comando setcap
es la siguiente:
//permisos inseguros en binarios en Linux
setcap capacidad=estado archivo_ejecutable
Donde:
capacidad
es el nombre de la capacidad que se desea asignar.estado
puede ser+
para habilitar la capacidad o-
para deshabilitarla.archivo_ejecutable
es el archivo al que se asignarán las capacidades.
Por ejemplo, si se desea asignar la capacidad CAP_NET_BIND_SERVICE a un archivo ejecutable llamado servidor, puedes ejecutar el siguiente comando:
//permisos inseguros en binarios en Linux
setcap CAP_NET_BIND_SERVICE=+ servidor
Esto permitirá que el archivo servidor enlace servicios a puertos de red de bajo número sin requerir privilegios de superusuario.
También podemos hacer edición de capacidades, ya sea eliminar o añadir una capacidad, con los siguientes comandos:
//permisos inseguros en binarios en Linux
/usr/bin/setcap -r /bin/ping
/usr/bin/setcap cap_net_raw+p /bin/ping
Setuid
Otra de las propiedades importantes en la identificación de permisos inseguros en binarios en Linux es el Setuid. Veamos algunas capacidades interesantes de este comando:
cap_dac_read_search #Leer cualquier cosa
cap_setuid+ep #setuid
Ahora veamos un ejemplo de explotación:
$sudo /usr/bin/setcap cap_setuid+ep /usr/bin/python2.7
$python2.7 -c 'import os; os.setuid (0); os.system ("/bin/sh")'
Ahora que hemos visto algunas formas de identificar o acceder a permisos inseguros en binarios en Linux, debemos tener en cuenta que esto solo se puede hacer con permisos de superusuario y siempre con fines éticos.
Para formarte de manera íntegra en intensiva en todos los ámbitos de la seguridad informática y convertirte en un gran experto en pocos meses, nuestro Bootcamp Ciberseguridad es perfecto. Nuestros profesores expertos te enseñarán todo lo necesario a nivel teórico y práctico para impulsar tu carrera IT. ¡Entra ya para pedir información y transforma tu vida!