Третий день в Сети наблюдается массовый взлом серверов на базе Linux. Имеется подозрение, что атака совершается через неисправленную 0-day уязвимость в одном из доступных по сети сервисов. Среди взломанных систем отмечаются серверы на базе CentOS и другие дистрибутивы на основе пакетной базы RHEL 5 и 6, на которых установлены все доступные обновления. На многих взломанных системах используются панели управления cPanel, DirectAdmin, ISP config и Plesk, но пока не ясно могут ли они быть источником проникновения. В результате атаки в системе неизвестным образом появляется файл /lib64/libkeyutils.so.1.9 (для 32-разрядных систем /lib/libkeyutils.so.1.9). После взлома процесс sshd начинает устанавливать подозрительные соединения: при входе на взломанный сервер по ssh, по протоколу UDP осуществляется отправка данных о введённых логине и пароле на 53 порт внешнего хоста. Кроме того, на сервер размещается код для участие в ботнете, используемом для рассылки спама и возможно для совершения дальнейших атак. Маловероятно, что вектор атаки связан с недавно обсуждаемой уязвимостю в ядре Linux (CVE-2013-0871), кроме всего прочего выявлены случаи взлома изолированного окружения, построенного на базе дистрибутива CloudLinux с включенным CageFS (при использовании CageFS маловероятна эксплуатация уязвимости в ядре для повышения привилегий). Среди атакованных систем также отмечаются серверы с системой обновления ядра ksplice и серверы с sshd на нестандартном порту. Связанная со взломом активность была почищена из логов, но одному из пользователей удалось при помощи snoopy проанализировать действия злоумышленника, установившего бэкдор и почистившего логи. Для выявления факта взлома своей системы достаточно проверить наличие библиотеки /lib64/libkeyutils.so.1.9, не связанной ни с одним установленным пакетом (для 64-разрядных систем: ls -la /lib64/libkeyutils.so.1.9; rpm -qf /lib64/libkeyutils.so.1.9, для 32-разрядных: ls -la /lib/libkeyutils.so.1.9;rpm -qf /lib/libkeyutils.so.1.9). Источник Добавлено через 55 минут Код: #!/bin/bash exploit64=/lib64/libkeyutils.so.1.9 exploit32=/lib/libkeyutils.so.1.9 echo # 64-bit OS if [ -f $exploit64 ] ; then echo "$exploit64 was found on this system. . ." echo echo "Quarantining /lib64/libkeyutils.so.1.9" echo mkdir /exploit-evidence/ ; mkdir /exploit-evidence/`date +%h-%d`/ chattr -iu $exploit64 chmod -x $exploit64 mv $exploit64 /exploit-evidence/`date +%h-%d`/ #rm -f $exploit64 #touch $exploit64 #chmod 000 $exploit64 #chattr +iu $exploit64 /sbin/auditctl -w $exploit64 -p war -k backdoor echo echo "Done." echo echo "Removing libkeyutils.so.1 symlink" echo rm -f /lib64/libkeyutils.so.1 ln -s /lib64/libkeyutils.so.1.3 /lib64/libkeyutils.so.1 /sbin/ldconfig echo echo "Restarting SSH. . ." echo /etc/init.d/sshd restart echo echo "Done." echo echo "64-bit exploit found and removed." echo echo "Here's a scan of your library directory. . ." echo #for i in `ls /lib64/ | grep -v '@'`; do rpm -qf /lib64/$i | grep 'not owned by any package'; done for i in `du -a /lib64/ | grep -v '@' | awk {'print $2'}`; do rpm -qf $i | grep 'not owned by any package'; done echo echo "If you notice any files that are not part of any package, you should double-check them." echo echo "Please keep in mind that the scan that was executed is by no means a full scan of your machine." echo echo "That said be sure to run a malware scan on your machine using appropriate tools." echo echo "In addition, it also recommended you reboot this machine, and then run yum update afterwards." echo exit 0 fi # 32-bit OS if [ -f $exploit32 ] ; then echo "$exploit32 was found on this system. . ." echo echo "Quarantining /lib/libkeyutils.so.1.9" echo mkdir /exploit-evidence/ ; mkdir /exploit-evidence/`date +%h-%d`/ chattr -iu $exploit32 chmod -x $exploit32 mv $exploit32 /exploit-evidence/`date +%h-%d`/ #rm -f $exploit32 #touch $exploit32 #chmod 000 $exploit32 #chattr +iu $exploit32 /sbin/auditctl -w $exploit32 -p war -k backdoor echo echo "Done." echo echo "Removing libkeyutils.so.1 symlink" echo rm -f /lib/libkeyutils.so.1 ln -s /lib/libkeyutils.so.1.3 /lib/libkeyutils.so.1 /sbin/ldconfig echo echo "Restarting SSH. . ." echo /etc/init.d/sshd restart echo echo "Done." echo echo "32-bit exploit found and removed." echo echo "You should run a malware scan on your machine." echo echo "Here's a scan of your library directory. . ." echo #for i in `ls /lib/ | grep -v '@'`; do rpm -qf /lib/$i | grep 'not owned by any package'; done for i in `du -a /lib/ | grep -v '@' | awk {'print $2'}`; do rpm -qf $i | grep 'not owned by any package'; done echo echo "If you notice any files that are not part of any package, you should double-check them." echo echo "Please keep in mind that the scan that was executed is by no means a full scan of your machine." echo echo "That said be sure to run a malware scan on your machine using appropriate tools." echo echo "In addition, it also recommended you reboot this machine, and then run yum update afterwards." echo exit 0 fi # All other conditions. . . echo "The Exploit has not been detected on your system using a simple check." echo echo "However, this doesn't mean it doesn't exist -- you should scan your system!" echo echo "Scan your system for a file called libkeyutils.so.1.9." echo echo "You can also use this command: lsof -nP | grep libkeyutils to see if it exists." exit 0 Сохранить как: Код: exploit-cleanup запустить: Код: sh exploit-cleanup