Назад | Перейти на главную страницу

Обнаружение Rogue Perl Script

Я пытался найти местоположение сценария perl, который вызывает хаос на сервере, который я контролирую. Я также пытаюсь выяснить, как именно этот скрипт был установлен на сервере - я думаю, с помощью эксплойта WordPress.

Сервер представляет собой базовую веб-установку под управлением Ubuntu 9.04, Apache и MySQL. Я использую IPTables в качестве межсетевого экрана. на сайте работает около 20 сайтов, и нагрузка никогда не поднимается выше 0,7.

Из того, что я вижу, скрипт устанавливает исходящее соединение с другими серверами (скорее всего, пытается выполнить вход грубой силой).

Вот дамп одного из процессов:

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND  
  22569 www-data  20   0 22784 3216  780 R  100  0.2  47:00.60 perl         

Команда, выполняемая процессом: /usr/sbin/sshd. Я пытался найти точное имя файла, но мне не повезло ... Я запустил lsof -p PID и вот результат:

COMMAND   PID     USER   FD   TYPE DEVICE    SIZE   NODE NAME
perl    22569 www-data  cwd    DIR    8,6    4096      2 /
perl    22569 www-data  rtd    DIR    8,6    4096      2 /
perl    22569 www-data  txt    REG    8,6   10336 162220 /usr/bin/perl
perl    22569 www-data  mem    REG    8,6   26936 170219 /usr/lib/perl/5.10.0/auto/Socket/Socket.so
perl    22569 www-data  mem    REG    8,6   22808 170214     /usr/lib/perl/5.10.0/auto/IO/IO.so
perl    22569 www-data  mem    REG    8,6   39112 145112 /lib/libcrypt-2.9.so
perl    22569 www-data  mem    REG    8,6 1502512 145124 /lib/libc-2.9.so
perl    22569 www-data  mem    REG    8,6  130151 145113 /lib/libpthread-2.9.so
perl    22569 www-data  mem    REG    8,6  542928 145122 /lib/libm-2.9.so
perl    22569 www-data  mem    REG    8,6   14608 145125 /lib/libdl-2.9.so
perl    22569 www-data  mem    REG    8,6 1503704 162222 /usr/lib/libperl.so.5.10.0
perl    22569 www-data  mem    REG    8,6  135680 145116 /lib/ld-2.9.so
perl    22569 www-data    0r  FIFO    0,6         157216 pipe
perl    22569 www-data    1w  FIFO    0,6         197642 pipe
perl    22569 www-data    2w  FIFO    0,6         197642 pipe
perl    22569 www-data    3w  FIFO    0,6         197642 pipe
perl    22569 www-data    4u  IPv4 383991            TCP outsidesoftware.com:56869->server12.34.56.78.live-servers.net:www (ESTABLISHED)

Мое внутреннее ощущение, что externalsoftware.com тоже находится под угрозой? Или, возможно, используется как туннель.

Мне удалось найти несколько мошеннических файлов в /tmp и /var/tmp, вот краткий вывод одного из этих файлов:

#!/usr/bin/perl
# this spreader is coded by xdh
# xdh@xxxxxxxxxxx
# only for testing...

my @nickname = ("vn");
my $nick = $nickname[rand scalar @nickname];
my $ircname = $nickname[rand scalar @nickname];

#system("kill -9 `ps ax |grep httpdse |grep -v grep|awk '{print $1;}'`");
my $processo = '/usr/sbin/sshd';

Полное содержимое файла можно посмотреть здесь: http://pastebin.com/yenFRrGP

Я пытаюсь достичь здесь пары вещей ...

  1. Во-первых, мне нужно остановить эти процессы. Либо отключив исходящий SSH, либо любые правила IP-таблиц и т. Д., Эти скрипты работают уже около 36 часов, и моя главная задача - остановить эти вещи, запускаемые и возрождающиеся сами по себе.

  2. Во-вторых, мне нужно попытаться найти источник, где и как были установлены эти скрипты. Если у кого-нибудь есть совет о том, что искать в журналах доступа или что-то еще, я был бы очень благодарен.

Никогда не разрешайте использование бита exec в файловых системах, где недоверенные пользователи могут записывать файлы! Обновите / etc / fstab и перемонтируйте, а лучше перезагрузите сервер.

Здесь вы (наконец) поняли, что брандмауэр - это не изящная штука, чтобы просто «защитить» вас от каких-то идиотских атак извне. У вас также должны быть правила брандмауэра для исходящего трафика! Или, по крайней мере, у вас должен быть некоторый мониторинг исходящего трафика. Хорошо, WordPress хотел бы обновиться через http (?), Но почему какое-то веб-приложение должно подключаться к ssh, irc и т. Д.?

Следующее ... Ах, он запускает все ваши сайты под "www-data". Это очень здорово. Вы должны спроектировать это лучше. Запускайте каждого пользователя-клиента под собственным отдельным uid. Вы можете использовать php-fpm или что-то подобное. Таким образом, у вас будет лучший обзор активности ваших пользователей, и вы даже сможете фильтровать через iptables трафик на основе идентификатора пользователя ... Нужно ли пользователю foobar, чтобы его веб-приложение подключалось к irc-серверу? Тогда нет ничего проще, чем добавить правило только для этого конкретного пользователя.

Другой момент ... Порты <1024 могут быть привязаны только пользователем root. Тогда у вас должен быть какой-то мониторинг прослушивающих портов> 1024, чтобы у пользователя не было собственного демона, прослушивающего ваш сервер.

Вы также можете подумать об удалении веб-приложений ...

Если какой-либо ненадежный пользователь может запускать свои собственные двоичные файлы, скрипты на сервере, то есть доступ к пользовательскому серверу или он может использовать ваши ресурсы для чего-то еще.

Некоторая интересная информация о защите PHP-хостинга: Linux: 25 рекомендаций по безопасности PHP для системных администраторов

Вы сказали: «Я также пытаюсь выяснить, как именно этот скрипт был установлен на сервере - я думаю, это через эксплойт WordPress. Сервер представляет собой базовую веб-установку, работающую под управлением Ubuntu 9.04».

Ubuntu 9.04 не пользовался долгосрочной поддержкой и перестал получать обновления в конце 2010 г .:

https://lists.ubuntu.com/archives/ubuntu-security-announce/2010-September/001166.html

так что в основном ваш SSH, Apache и все службы не получали обновления безопасности в течение долгого времени! Лучше всего считать этот сервер «потерянным» и не тратить время на поиски сценария. На нем могут быть руткиты и всякая гадость. Перенесите службы в «чистый ящик» в ОС, в которой в ближайшее время все еще есть обновления, например CentOS 6 или Ubuntu 12.04 LTS Server.