Stavo dando un’occhiata alle nuove (dal kernel 2.6.24) file capabilities di linux (molto comode in fase di hardening per eliminare il setuid root da alcuni binari tipo su,passwd,traceroute,ecc.. o per permettere ad alcuni demoni di girare con uid diverso da 0) quando, in casi non banali tipo traceroute (basta la CAP_NET_RAW) o di un qualsiasi demone cui serva uid 0 esclusivamente per fare bind su porta privilegiata (basta la CAP_NET_BIND_SERVICE), mi son reso conto che non è molto comodo cercare di ricavarsi quali siano le capabilities necessarie a un dato binario (affinche’ la sua istanza possa girare con uid diverso da 0) a colpi di strace/ltrace; quindi ho scritto un piccolo LKM con una jprobe nella cap_capable() che permette di ricavarsi quali sono le capabilities di cui fa uso un determinato binario; nel caso possa tornare utile a qualcuno, riporto di seguito i link al sorgente e al relativo Makefile (ovviamente vi serve un kernel con CONFIG_KPROBES abilitato :) )
P.S. se dovete testare le capabilities richieste da tanti binari, non vi conviene fare ogni volta rmmod e modprobe del LKM, cambiando di volta in volta il paramentro ‘progname’, è possibile modificare il parametro mentre il modulo è caricato, scrivendo direttamente in /sys in questo modo:
echo -e “nome_binario\c” > /sys/module/trace_cap_capable/parameters/progname
Merlani vai una spada!