[Linuxtrent] Utilizzo di suidperl e codice precompilato in Bytecode

  • From: "Guido Brugnara" <gdo@xxxxxxxxx>
  • To: <linuxtrent@xxxxxxxxxxxxx>
  • Date: Sat, 13 Apr 2002 13:04:42 +0200 (CEST)

# 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


Other related posts: