¿Hay una lista de archivos SUID seguros / normales / esperados?

0

Los ejecutables SUID explotables son un vector de escalamiento de privilegios básico. Pero el solo hecho de realizar una búsqueda de todos estos archivos arroja una serie de resultados en cualquier sistema Linux, la mayoría o todos los cuales se consideran seguros.

¿Cómo, aparte de la larga experiencia con los sistemas linux, se puede escanear la lista con find / -perm -u=s -type f 2>/dev/null para la aguja potencial en un pajar? ¿Hay una lista de ejecutables SUID conocidos / seguros / esperados con los que se pueda comparar? ¿O un script que hace esto por ti?

    
pregunta Yaakov Saxon 16.11.2018 - 16:15
fuente

1 respuesta

2
  

¿Hay una lista de ejecutables SUID conocidos / seguros / esperados con los que se pueda comparar?

Realmente no, en gran parte porque todas las distribuciones modernas de Linux están basadas en paquetes. No hay un único conjunto de archivos monolítico estándar, porque las instalaciones varían fácilmente según los paquetes que se instalan. Dicho esto, los paquetes también proporcionan listas de archivos incluidos, lo que facilita la verificación de si un binario SUID está instalado legítimamente o no.

  

¿O un script que hace esto por ti?

Hay dos formas sencillas de abordar esto: puede verificar archivos individuales contra su paquete, o puede volcar una lista de archivos SUID de todos los paquetes.

Por ejemplo, digamos que está mirando / usr / bin y le preocupa el ejecutable chfn SUID. En una distribución basada en RPM, puede verificar el archivo contra el paquete:

# rpm -Vf /usr/bin/chfn; echo $?
0
#

(El código de salida 0 indica que no se encontraron discrepancias; el archivo es el esperado según los parámetros del paquete. Puede ver una lista de comprueba que RPM Verify realiza .)

En una distribución basada en Debian (como Ubuntu, Mint, ...) tratará con paquetes deb, que tienen un enfoque menos centralizado que los RPM. Se puede lograr el mismo efecto general después de instalar apt-file y debsums:

# apt-file search /usr/bin/chfn
passwd: /usr/bin/chfn
# debsums passwd | grep /usr/bin/chfn
/usr/bin/chfn                                           OK
#

Puede escribir una herramienta para enumerar listas de paquetes para encontrar archivos SUID, verificarlos y comparar su lista con una lista de lo que realmente está en el sistema de archivos a través de find . (Tenga en cuenta que con RPM, al menos, puede verificar todos los archivos en todos los paquetes con solo rpm -Va , pero encontrará que es un poco conversador y más que solo archivos SUID).

Por ejemplo, podría recorrer todos los paquetes instalados ( rpm -qa ) y, para cada paquete, enumerar los archivos SUID y SGID:

# rpm -qlv util-linux-ng-2.17.2-12.28.el6_9.2.x86_64 | awk '$1 ~ /s/ {print $0}'
-rwsr-xr-x    1 root    root                    77560 Dec  5  2017 /bin/mount
-rwsr-xr-x    1 root    root                    53480 Dec  5  2017 /bin/umount
-rws--x--x    1 root    root                    20184 Dec  5  2017 /usr/bin/chfn
-rws--x--x    1 root    root                    20056 Dec  5  2017 /usr/bin/chsh
-rwxr-sr-x    1 root    tty                     12016 Dec  5  2017 /usr/bin/write
#

y úsalo para crear tu lista de archivos SUID esperados.

    
respondido por el gowenfawr 16.11.2018 - 18:13
fuente

Lea otras preguntas en las etiquetas