Страница 1 из 3

поломали сервак

Добавлено: 2009-10-10 13:13:34
zg
собственно вот :smile:

машинка

Код: Выделить всё

%uname -r
6.3-RELEASE
%/usr/local/apache/bin/httpd -v
Server version: Apache/1.3.41 (Unix)
Server built:   Jan 29 2009 09:13:21
%/usr/local/bin/php -v
PHP 5.2.6 (cli) (built: Jan 29 2009 08:54:47)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
%mysql --version
mysql  Ver 14.12 Distrib 5.0.67, for portbld-freebsd6.3 (i386) using  5.2
%
трабла собственно в том, что висят вот такие процессы

Код: Выделить всё

 8496  ??  Rs    18:13.76 ./o.pl (perl5.8.8)
 8497  ??  Ss    15:40.77 ./o.pl (perl5.8.8)
 8498  ??  Rs    18:05.73 ./o.pl (perl5.8.8)
 8499  ??  Ss     9:36.11 ./o.pl (perl5.8.8)
 8941  ??  Rs    15:48.63 ./nha.pl (perl5.8.8)
 8942  ??  Rs     8:55.67 ./nha.pl (perl5.8.8)
 9705  ??  Rs    13:17.19 ./a.pl (perl5.8.8)
 9706  ??  Rs     8:46.76 ./a.pl (perl5.8.8)
10164  ??  Rs    11:46.23 ./pvii.pl (perl5.8.8)
10165  ??  Rs     8:52.93 ./pvii.pl (perl5.8.8)
10477  ??  Rs     9:34.10 ./ae.pl (perl5.8.8)
10478  ??  Rs     7:12.42 ./ae.pl (perl5.8.8)
10887  ??  Rs     7:56.41 ./bppftn.pl (perl5.8.8)
10888  ??  Rs     7:00.39 ./bppftn.pl (perl5.8.8)
11484  ??  Rs     6:00.19 ./ndtj.pl (perl5.8.8)
11485  ??  Ss     6:44.58 ./ndtj.pl (perl5.8.8)
11760  ??  Ss     5:24.27 ./qjsyqf.pl (perl5.8.8)
11761  ??  Rs     5:29.65 ./qjsyqf.pl (perl5.8.8)
12117  ??  Rs     4:11.71 ./zo.pl (perl5.8.8)
12118  ??  Rs     4:14.81 ./zo.pl (perl5.8.8)
12680  ??  Ss     3:06.80 ./ckhqdzhd.pl (perl5.8.8)
12681  ??  Rs     3:19.83 ./ckhqdzhd.pl (perl5.8.8)
13147  ??  Rs     2:06.77 ./wervu.pl (perl5.8.8)
13148  ??  Rs     2:05.93 ./wervu.pl (perl5.8.8)
13519  ??  Rs     1:14.99 ./lvmjxw.pl (perl5.8.8)
13520  ??  Rs     1:22.76 ./lvmjxw.pl (perl5.8.8)
13942  ??  Rs     0:29.21 ./qvfal.pl (perl5.8.8)
13943  ??  Ss     0:31.17 ./qvfal.pl (perl5.8.8)
эта дрянь слушает irc порт и, руководствуясь коммандами из вне, шлёт спам :smile:

вопрос только в том, как найти эту дрянь и убрать с сервака? :smile:

Могу предоставить практически любую информацию по серваку.

Пока в крон поставил вот такую вот дрянь :-D

Код: Выделить всё

#!/bin/sh
PIDS=`ps wuax | grep nobody | grep perl | awk '{print $2}'`

if [ -n "${PIDS}" ]; then
  kill -9 ${PIDS}
fi;

Re: поломали сервак

Добавлено: 2009-10-10 13:16:05
paradox
/tmp/
да и вообще find сделай
обычно или в tmp или в дирах апача
ну или в /var/ еще могут пихнуть

Re: поломали сервак

Добавлено: 2009-10-10 13:20:05
ProFTP
может бот пароль ssh перебрал?

Re: поломали сервак

Добавлено: 2009-10-10 13:24:24
zg
paradox писал(а):обычно или в tmp

Код: Выделить всё

# file /var/tmp/*
/var/tmp/phpDyJojO:      JPEG image data, EXIF standard 2.21
/var/tmp/phpF3OBXE:      JPEG image data, EXIF standard
/var/tmp/phpGngopr:      JPEG image data, EXIF standard 2.21
/var/tmp/phpKSqW9Q:      JPEG image data, EXIF standard
/var/tmp/phpNY8OoN:      JPEG image data, JFIF standard 1.02
/var/tmp/phpS4FcwO:      Zip archive data, at least v2.0 to extract
/var/tmp/phpf2BMK2:      Adobe Photoshop Image
/var/tmp/phprmmpd9:      gzip compressed data, from Unix
/var/tmp/pop3d.pid:      ASCII text
/var/tmp/pop3d.pid.lock: empty
/var/tmp/vi.recover:     sticky directory
# file /tmp/*
/tmp/foo.db:              empty
/tmp/mc-root:             directory
/tmp/mc-zg:               directory
/tmp/mysql.sock:          socket
/tmp/pear:                directory
/tmp/periodic.9osWt34yJ0: ASCII text
/tmp/periodic.p9yfmXEjPT: ASCII text
/tmp/security.tMqdB9S6:   empty
/tmp/userdata.inc.php:    PHP script text
в папке апача нифига нет, в варе тоже
ProFTP писал(а):может бот пароль ssh перебрал?
взлом был через апач

Re: поломали сервак

Добавлено: 2009-10-10 13:29:02
ProFTP
писали не давно что уязвимость была через php скрипт можно было взломать, только нужно было иметь локальный доступ

а апача через www работает илл от пользователя? у пользователя был shell?
хм, а как через апач можно?

Re: поломали сервак

Добавлено: 2009-10-10 13:30:00
paradox
отключи все сервисы и ребутни сервак
если будет появляться значит думай где
системных стартапов не так уж и много

Re: поломали сервак

Добавлено: 2009-10-10 13:32:37
ProFTP
может перл в ядро в компилировали :smile:

Re: поломали сервак

Добавлено: 2009-10-10 13:37:32
ProFTP
еще вариант: удали perl, если он, то нужен поставь 5.10

Re: поломали сервак

Добавлено: 2009-10-10 13:38:45
zg
paradox писал(а):отключи все сервисы и ребутни сервак
если будет появляться значит думай где
системных стартапов не так уж и много
если убить процессы, то потом они появляются где-то ночью, не сразу. Я просто думаю, там какой-то сайт хакнули, сделали бэкдор и мониторят. Просто интересно какой сайт и где хакнули.
ProFTP писал(а):писали не давно что уязвимость была через php скрипт можно было взломать, только нужно было иметь локальный доступ
из китая трудно иметь локальный доступ :smile: ссх точно закрыт, даже не обсуждается.

Апач работает от nobody и все сайты тоже.
ProFTP писал(а):хм, а как через апач можно?
апач висит и слушает порт, потом запускает скрипты, в частности пхп- и cgi-скрипты, этого обычно хватает за глаза.
ProFTP писал(а):еще вариант: удали perl, если он, то нужен поставь 5.10
нужно просто найти дырку, без убийства сервера :smile:

Re: поломали сервак

Добавлено: 2009-10-10 13:39:04
reLax
Может лучше свои скрипты стоит проверить, у тебя же явно не голый Apache стоит ? Более, чем уверен, что в этом дело :)

Re: поломали сервак

Добавлено: 2009-10-10 13:40:33
paradox
а что логов апача нет что ли?

Re: поломали сервак

Добавлено: 2009-10-10 13:43:39
zg
reLax писал(а):Может лучше свои скрипты стоит проверить, у тебя же явно не голый Apache стоит ? Более, чем уверен, что в этом дело :)
там нет моих скриптов -))) там 26 корявых сайтов, к которым я не имею практически никакого отношения :smile:
paradox писал(а):а что логов апача нет что ли?
что именно там смотреть?

Re: поломали сервак

Добавлено: 2009-10-10 13:46:15
paradox
все что подозрительно
и что появляеться втоже время что и запускаеться бот
кронтаб проверь
итд
с апача врядли они его пускают
он локально где то лежит

Re: поломали сервак

Добавлено: 2009-10-10 13:48:04
reLax
zg писал(а):
reLax писал(а):Может лучше свои скрипты стоит проверить, у тебя же явно не голый Apache стоит ? Более, чем уверен, что в этом дело :)
там нет моих скриптов -))) там 26 корявых сайтов, к которым я не имею практически никакого отношения :smile:
Ну и у тебя тогда к ним никакого отношения не должно было быть, засунул в джейлы, открыл только разрешенные порты с род. системы и сиди спокойно - сами пускай разбираются, если проблема не в трафике )))

Re: поломали сервак

Добавлено: 2009-10-10 13:54:44
reLax
А если кто-то что-то начинает предъявлять по поводу спама или сам увидишь откуда с какого jail трафик левый прет - закрываешь его и все :)

Re: поломали сервак

Добавлено: 2009-10-10 14:51:20
thefree
вышлите пожалуйста perl очень интересно можно собственно в ЛС.
а ваш случай
_http://habrahabr.ru/blogs/infosecurity/71347/
Там все подробна описано ...

Re: поломали сервак

Добавлено: 2009-10-10 14:52:26
zg
reLax писал(а):системы и сиди спокойно - сами пускай разбираются
дак не осталось уже этих "сами" :smile: сервак практически ничейный. Просто по доброй памяти хочу помочь.
paradox писал(а):кронтаб проверь
не, там судя по всему в систему не лезли, хотя хз, конечно. Крон чистый.
paradox писал(а):с апача врядли они его пускают
он локально где то лежит
хм... я думаю там есть бэкдор с шелом, оттуда и запускают.
paradox писал(а):все что подозрительно
и что появляеться втоже время что и запускаеться бот
ыыхх, надо попробовать -) правда там хлама много.

Re: поломали сервак

Добавлено: 2009-10-10 14:57:42
zg
thefree писал(а):а ваш случай
у меня фря, мускль никто не подменял, под рут не лезли, да и по описанию не очень похоже -)))

меня в данном случае смущает следующая ситуация - скрипты висят в процессах, но на диске их нет. Как по процессу можно определить путь, откуда он запустился?

Re: поломали сервак

Добавлено: 2009-10-10 15:02:10
paradox
top глянь кто владелец

Re: поломали сервак

Добавлено: 2009-10-10 15:03:30
paradox

Код: Выделить всё

sockstat -4
тоже кто владелец

от владельца в chroot
ибо

Re: поломали сервак

Добавлено: 2009-10-10 15:05:00
thefree
zg писал(а):у меня фря, мускль никто не подменял, под рут не лезли, да и по описанию не очень похоже -)))

меня в данном случае смущает следующая ситуация - скрипты висят в процессах, но на диске их нет. Как по процессу можно определить путь, откуда он запустился?
исключительно в ознакомительных целях показал, возможно там дельные советы есть.

Re: поломали сервак

Добавлено: 2009-10-10 15:06:39
paradox
ну итд

Re: поломали сервак

Добавлено: 2009-10-10 15:15:39
zg
paradox писал(а):top глянь кто владелец
владелец nobody, от которого только апач работает
paradox писал(а):от владельца в chroot
хм... странно

Re: поломали сервак

Добавлено: 2009-10-10 16:03:21
ProFTP
а ты уверен что его вломали?
если там 28 сайтов ты говоришь, то может кто-то по фтп(или через веб морду) зашел и скрипты поставил там на 777 права?

если скриптов нету на диске, то скорее всего root взломан?

Re: поломали сервак

Добавлено: 2009-10-10 16:38:33
ProFTP
может как-то можно поменять название выполняемого скрипта COMMANT в top?
Как сделать так, чтобы скрипт работал в фоновом режиме, как демон?

Варианта два. Первый - воспользоваться модулем Proc::Daemon, второй - сделать все самому, примерно так:

use strict;
require 'sys/syscall.ph';

# Устанавливаем путь по умолчанию
$ENV{PATH} = '/bin:/usr/bin';

# Чисто для прикола
$0='mydaemon';

# Отделяемся от родителя
fork() && exit;

# Отключаемся от терминала
close STDOUT; close STDERR; close STDIN;

# Делаем корень текужим каталогом
chdir '/';

# Создаем новую сессию и становимся лидером
# группы процессов, чтоб нас случайно не прибили
syscall(&SYS_setsid);

# Перехватываем сигналы, для корректного выхода
$SIG{'INT'} = $SIG{'QUIT'} = $SIG{'TERM'} = 'quit';
$SIG{'HUP'} = 'ignore';

# Делаем наши темные дела
...

# Выходим
quit();

sub quit {
# Помещаем сюда код для корректного
# прекращения работы
...
exit(0);
}


Если Вы хотите написать демона, реализующего работу через сеть, рекомендуем ознакомиться с модулем Net::Daemon.