# Sto sperimentando l'esecuzione di codice Perl in modalità suid # attraverso l'utilizzo di /usr/bin/suidperl anzichè /usr/bin/perl. # Per prima cosa ho modificato i permessi, che nelle distribuzioni # normalmente non è settato +s: chmod 4755 /usr/bin/suidperl # Poi ho sperimentato il seguente script di test: ---------------------------------------------------------------test.pl #!/usr/bin/suidperl -w use English; # inizializzo il PATH altrimenti il Perl non accetta la variabile in quanto # non sicura (TAINT); provate a non inizializzarla... $ENV{PATH}='/usr/bin:/bin'; $ID=`id`; $ID=~m/^uid=\d+\((\w+)\)/; $User=$1; # cambio user root $UID=0; @S = split /:/, `cat /etc/shadow | grep ^$User`; print "Password ecripted of $User in /etc/shadow: $S[1]\n"; ----------------------------------------------------------------------- chown root.root test.pl chmod 4711 test.pl # Così facendo ho reso eseguibile il codice da qualunque utente # ma con privilegio root dove serve. # Ho poi compilato in byte-code il codice per rendere # non troppo visibile il codice sorgente: chmod 700 test.pl perl -MO=Bytecode test.pl >test.bc chmod 4711 test.pl ( echo -e '#!/usr/bin/suidperl\nuse ByteLoader 0.04;'; cat test.bc) >test chown root.root test chmod 4711 test # ho così ottenuto il file ./test eseguibile SUID ma non visibile agli utenti .... # Commenti riguardanti la sicurezza su questo Tema, grazie! Saluti Guido Brugnara -- Per iscriversi (o disiscriversi), basta spedire un messaggio con SOGGETTO "subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxxxxxx