LINUX.ORG.RU
ФорумAdmin

Как найти вредоносный скрипт


1

5

Всем доброго дня! Имеется сервер на Centos 6, на нем в придачу к прочему стоит сайт на htppd. Недавно через сайт взломали сервер и видать закинули какой то вредоносный скрипт. Исходящий трафик по жесткому засирал канал и ДДосил на определенный IP. Через Iptables я запретил исходящий трафик на этот IP и сеть поднялась. Но остались процессы которые до сих пор пытаются ДДосить, в итоге используют ресурсы сервера. Так вот вопрос, как найти этот скрипт? Куда смотреть? Что и в каких логах искать? Возможно ли по PID'у процесса определить откуда и какой скрипт выполняется?

Вот эти процессы в top:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3674 apache 20 0 31992 3148 552 R 100.0 0.0 705:44.29 perl
7247 apache 20 0 31816 3512 1040 R 99.5 0.0 3293:38 perl
7345 apache 20 0 31816 3528 1064 R 99.5 0.0 2421:54 perl
28622 apache 20 0 31816 3520 1048 R 97.6 0.0 13687:42 perl
7329 apache 20 0 31816 3524 1064 R 89.8 0.0 2117:39 perl

Ответ на: комментарий от AITap

вот:

[root@bill /]# ls -l /proc/{3674,7247,7345,28622,7329}/exe
lrwxrwxrwx. 1 apache apache 0 Nov 16 21:33 /proc/28622/exe -> /usr/bin/perl
lrwxrwxrwx. 1 apache apache 0 Nov 16 21:33 /proc/3674/exe -> /usr/bin/perl
lrwxrwxrwx. 1 apache apache 0 Nov 16 21:33 /proc/7247/exe -> /usr/bin/perl
lrwxrwxrwx. 1 apache apache 0 Nov 16 21:33 /proc/7329/exe -> /usr/bin/perl
lrwxrwxrwx. 1 apache apache 0 Nov 16 21:33 /proc/7345/exe -> /usr/bin/perl
Reverse
() автор топика
Ответ на: комментарий от AITap

Где находится сам скрипт не могу найти. По в этом скрипте должно быть «действие» над этим ip, но такового нет....

Reverse
() автор топика
Ответ на: комментарий от Reverse

подменить /usr/bin/perl на свой скрипт записывающий переданные аргументы и stdin.

anonymous
()

В общем нашел где хранятся файлы:

[root@bill /]# lsof -p 28622
COMMAND   PID   USER   FD   TYPE    DEVICE SIZE/OFF     NODE NAME
perl    28622 apache  cwd    DIR     253,3     4096  2752540 /var/tmp
perl    28622 apache  rtd    DIR     253,3     4096        2 /
perl    28622 apache  txt    REG     253,3    13200  1851382 /usr/bin/perl
perl    28622 apache  mem    REG     253,3   156872   262552 /lib64/ld-2.12.so
perl    28622 apache  mem    REG     253,3    22536   262559 /lib64/libdl-2.12.so
perl    28622 apache  mem    REG     253,3  1918016   262553 /lib64/libc-2.12.so
perl    28622 apache  mem    REG     253,3   145720   262556 /lib64/libpthread-2.12.so
perl    28622 apache  mem    REG     253,3   598800   262562 /lib64/libm-2.12.so
perl    28622 apache  mem    REG     253,3  1488544  2109152 /usr/lib64/perl5/CORE/libperl.so
perl    28622 apache  mem    REG     253,3   113952   262571 /lib64/libresolv-2.12.so
perl    28622 apache  mem    REG     253,3   386040   262567 /lib64/libfreebl3.so
perl    28622 apache  mem    REG     253,3    43392   262568 /lib64/libcrypt-2.12.so
perl    28622 apache  mem    REG     253,3    17520   262370 /lib64/libutil-2.12.so
perl    28622 apache  mem    REG     253,3   116368   262599 /lib64/libnsl-2.12.so
perl    28622 apache  mem    REG     253,3    25640  2228502 /usr/lib64/perl5/auto/Socket/Socket.so
perl    28622 apache  mem    REG     253,3    19336  2228302 /usr/lib64/perl5/auto/IO/IO.so
perl    28622 apache    0r  FIFO       0,8      0t0 23707138 pipe
perl    28622 apache    1w  FIFO       0,8      0t0 23707139 pipe
perl    28622 apache    2w  FIFO       0,8      0t0 23707140 pipe
perl    28622 apache    3u  IPv4 759507352      0t0      TCP XXX.XXX.XXX.2:51482->unassigned.calpop.com:pcsync-https (ESTABLISHED)
это папки /tmp и var/tmp/ . Удаляю эти файлы , гашу процессы, но они заново запускаются. Сейчас попробую еще раз погасить все процессы. По поводу этой команды, вот вывод и походу он зацикливается и приходится в ручную отменять.
strace -f -s512 -p 28622
select(8, [3], NULL, NULL, {0, 0})      = 0 (Timeout)
select(8, [3], NULL, NULL, {0, 0})      = 0 (Timeout)
select(8, [3], NULL, NULL, {0, 0})      = 0 (Timeout)
select(8, [3], NULL, NULL, {0, 0})      = 0 (Timeout)
select(8, [3], NULL, NULL, {0, 0})      = 0 (Timeout)
select(8, [3], NULL, NULL, {0, 0})      = 0 (Timeout)
select(8, [3], NULL, NULL, {0, 0})      = 0 (Timeout)
select(8, [3], NULL, NULL, {0, 0})      = 0 (Timeout)
select(8, [3], NULL, NULL, {0, 0})      = 0 (Timeout)
select(8, [3], NULL, NULL, {0, 0})      = 0 (Timeout)
select(8, [3], NULL, NULL, {0, 0})      = 0 (Timeout)
select(8, [3], NULL, NULL, {0, 0}^C)      = 0 (Timeout)
Process 28622 detached
Где скрипт может заново запускаться?

Reverse
() автор топика
Ответ на: комментарий от CHIPOK

В ls /var/spool/cron/ пусто. В общем очистил обе папки tmp, убил перловские процессы грузившие ЦП. Пока тишина, новых папок в tmp не рождается, процессов тоже. Еще понаблюдаю . Теперь остался вопрос как искать дыру на сервере? В Iptables добавил несколько правил, сейчас проверю разрешения папок и файлов сайта var/www. Как еще обезопаситься от таких проблем и как найти дыру? Ведь как-то скрипты попали в tmp извне.

Reverse
() автор топика

find /var/www -type f -mtime -20

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.