Удаление вируса в VestaCP

В связи с волной взломов публикуем инструкцию по очистке сервера зараженного вирусом Xor-Ddos.
Подробнее о взломе VestaCP по ссылкам

forum.vestacp.com/viewtopic.php?f=10&t=16556
forum.vestacp.com/viewtopic.php?f=28&t=16555
forum.vestacp.com/viewtopic.php?f=25&t=16575

Имена файлов вируса могут отличаться, просьба обратить внимание на это.

1. Проверяем файлы созданные в начале апреля в /etc/init.d
ls -tl /etc/init.d

-rwxr-xr-x 1 root root   323 апр  9 09:43 nuvmgregca
-rwxr-xr-x 1 root 1000   295 апр  5 18:58 update
-rwxr-xr-x 1 root root  5242 мар  1 20:12 dovecot
-rwxr-xr-x 1 root root  9563 янв 29 06:32 clamav-daemon
-rwxr-xr-x 1 root root  7692 янв 29 06:32 clamav-freshclam
-rwxr-xr-x 1 root root  2394 янв 23 20:38 vesta
-rwxr-xr-x 1 root root  5485 янв 17 15:36 mysql
-rwxr-xr-x 1 root root  3451 янв 16 01:32 bind9
-rwxr-xr-x 1 root root  4355 дек 10 16:08 rsync
-rwxr-xr-x 1 root root  4287 окт 17 16:35 nginx


2. Из полученного списка проверяем первые 2: upgrade и nuvmgregca

cat /etc/init.d/upgrade
cat /etc/init.d/nuvmgregca

Вывод команд

#!/bin/sh
# chkconfig: 12345 90 90
# description: update
### BEGIN INIT INFO
# Provides:		update
# Required-Start:	
# Required-Stop:	
# Default-Start:	1 2 3 4 5
# Default-Stop:		
# Short-Description:	update
### END INIT INFO
case $1 in
start)
	/tmp/update
	;;
stop)
	;;
*)
	/tmp/update
	;;
esac

#!/bin/sh
# chkconfig: 12345 90 90
# description: nuvmgregca
### BEGIN INIT INFO
# Provides:		nuvmgregca
# Required-Start:	
# Required-Stop:	
# Default-Start:	1 2 3 4 5
# Default-Stop:		
# Short-Description:	nuvmgregca
### END INIT INFO
case $1 in
start)
	/usr/bin/nuvmgregca
	;;
stop)
	;;
*)
	/usr/bin/nuvmgregca
	;;
esac


Запоминаем пути к файлам

/usr/bin/nuvmgregca
/tmp/update


3. Проверяем автозапуск через cron
cat /etc/crontab 

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user	command
17 *	* * *	root    cd / && run-parts --report /etc/cron.hourly
25 6	* * *	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6	* * 7	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6	1 * *	root	test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
*/3 * * * * root /etc/cron.hourly/gcc.sh

В последней строке запускается скрипт gcc.sh каждые 3 минуты

Запоминаем путь
/etc/cron.hourly/gcc.sh

4. Смотрим что есть в файле /etc/cron.hourly/gcc.sh

cat /etc/cron.hourly/gcc.sh

#!/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin
for i in `cat /proc/net/dev|grep :|awk -F: {'print $1'}`; do ifconfig $i up& done
cp /lib/libudev.so /lib/libudev.so.6
/lib/libudev.so.6


Запоминаем пути к файлам /lib/libudev.so /lib/libudev.so.6

5. Останавливаем процесс вируса

найдем в процессах тело вируса, имя файла возьмем из шага 2

ps -ej | grep nuvmgregca
ps -ej | grep upgrade


с полученными pid выполняем

kill -STOP %PID


Процесс нельзя завершать, так как он будет вновь восстановлен.

Ещё раз проверяем запущенные процессы

ps -ej


Если опять находятся процессы с найденными ранее именами, так же их останавливаем

6. Удаляем ранее найденные файлы

rm -f /lib/libudev.so /lib/libudev.so.6 /etc/cron.hourly/gcc.sh /usr/bin/nuvmgregca /tmp/update /etc/init.d/nuvmgregca /etc/init.d/upgrade

7. Удаляем строки запуска из cron

nano /etc/crontab
или
mcedit /etc/crontab

Удаляем строку */3 * * * * root /etc/cron.hourly/gcc.sh

Сохраняем

8. Убиваем процесс или процессы вируса

kill -kill %PID

Комментарии (0)

RSS свернуть / развернуть
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.