Как найти залитый шелл?

12
zloj
На сайте с 06.08.2007
Offline
140
8157

Вчера на сервере обнаружил три процесса (посмотрел из за того что сервер перегружен был от них):

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND

17884 apache 25 0 31220 3848 1160 R 48.6 0.1 26:35.25 perl
17887 apache 25 0 31220 3848 1160 R 48.6 0.1 25:38.57 perl
17889 apache 25 0 31220 3848 1160 R 46.6 0.1 26:15.66 perl

Почему то не получалось убить процесс и перезагрузил сервер, после этого как посоветовали отключил некоторые системные функции в php (не были отключены).

Вопрос таков - как найти залитый шелл (пробовал искать по строке "bin/perl" - толку нет), или возможно скрипта и нет уже на сервере?

Сайтов не много, но довольно много файлов, разные движки (IPB, DLE, Жумла и т.п.).

M
На сайте с 01.12.2009
Offline
235
#1

Нужно доверить это дело, специалистам =)

Администратор Linux,Freebsd. построения крупных проектов.
zloj
На сайте с 06.08.2007
Offline
140
#2
madoff:
Нужно доверить это дело, специалистам =)

Самому нужно учится)

M
На сайте с 01.12.2009
Offline
235
#3
zloj:
Самому нужно учится)

В данном случаи вы не сами учитесь, а хотите что-бы вас научили, на самом деле это не простая тема, тут вы просто не отделаетесь команндой find :) и можете жать скоко угодно, на репу, для меня она не показатель :)

Когда ты действительно хочешь научится, то хотябы покажи что пытались делать что бы найти shell, где стопоритесь что не получаеться, а так видно одно, вы хотите готовые решение от специалистов получить :)

tuxee
На сайте с 19.02.2009
Offline
18
#4

смотри access.log апача. По типу:

cat access.log | grep -v index.php | grep -v portal.php

тем самым исключая нормальные запросы

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

j-хостинг - мощные VPS, любая ОС, гарантированное выделение ресурсов, тестовый доступ. (http://j-vps.net)
AS
На сайте с 21.09.2007
Offline
132
#5

ну можно еще cgi скрипты в конфиге апача вырубить

zloj
На сайте с 06.08.2007
Offline
140
#6

madoff, я незнаю что вам сказать, спросил так как умею, отяготить никого не собирался.

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

Яобственно что я хочу узнать - насколько я понимаю запустили perl скрипт с правами апача, какова вероятность что испорчено (либо что то появилось) вне директорий сайтов?

zloj добавил 24.09.2010 в 15:02

AchilleSS:
ну можно еще cgi скрипты в конфиге апача вырубить

CGI было отключено для всех пользователей, запустили скорее всего через системную команду PHP...

AS
На сайте с 21.09.2007
Offline
132
#7

modsecurity тоже нече не ловит ?

zexis
На сайте с 09.08.2005
Offline
388
#8

1) Искать вызовы посторонних файлов в логе access.log.

2) искать посторонние файлы во всех вложенных папках сайта.

Лучше переустановить ОС, так как хакер мог заменить системные файлы на сервере.

S
На сайте с 15.01.2008
Offline
34
#9
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
17884 apache 25 0 31220 3848 1160 R 48.6 0.1 26:35.25 perl
17887 apache 25 0 31220 3848 1160 R 48.6 0.1 25:38.57 perl
17889 apache 25 0 31220 3848 1160 R 46.6 0.1 26:15.66 perl

В Вашем случае все просто:

strace 17884

Или же lsof 17884

Это даст Вам множество информации о процессе, в том числе и о его местоположении ;)

Качественный хостинг Unlimits Telecom (http://www.unlimits.ru) (ООО "БизнесТелеКом"). Официальный Twitter канал (http://twitter.com/untelecom). Ознакомиться с нашими услугами можно в этом (/ru/forum/478822) топике.
Andreyka
На сайте с 19.02.2005
Offline
822
#10

Закрой дыры mod_sec

Этот шелл запускаясь вытирает свой файл

Не стоит плодить сущности без необходимости
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий