LINUX.ORG.RU

История одного взлома, помогите разобраться и обезвредить.

 , , , ,


1

5

История одного взлома, помогите.

Здравствуйте, уважаемые пользователи linux. Ситуация такова. История взлома: Пару недель назад взломали наш сервер, спустя бекап и 1 неделю взлом повторился, тогда стало ясно что началось все через админ панель wordpress. А именно через вот эти файлики /wp-content/themes/informations.php и /wp-content/themes/includes.php в которых были заккоментированы первые двестрочки, что позволило посылать сообщения с сервера через них. Собственно взлом и был найден потому что закончилась память из за логов и очереди сообщений. Сейчас естественно сайт выключили, и от wordpressa отказались. Поменяли пароли. И отключили sendmail. !!!Но через определенные промежутки времени очередь сообщений начинает понемногу заполняться spool/mqueue, о чем так же свидетельствует log/mail.info (sm-mta, sm-msp-queue, sendmail), т. е. сообщение вроде как пытается отправиться, но т. к. sendmail отключен, пишет ошибку в лог. Попытка отправки писем происходит примерно каждые 15-25 мин после перезагрузки компьютера прекращается на время, видимо взломщик нашел еще какую то уязвимость в настройках сервера, rkhunter ничего особенного не находит. Сам я не очень опытный в плане администрирования сервера, скажем что это не совсем мой профиль, но приходится этим заниматься. Все запросы ведутся с разных IP или человек просто заменяет в заголовке свой ip на рандомный, поэтому «вычислить по ip» ;) не получится. Помогите разобраться в некоторых логах линукса, найти уязвимость и закрыть ее. Дополнительно удалил inetd, swat.

Прилагаю отрывки из логов некоторых файлов c описанием и вопросами, именно отрывки с подозрением хотя они не однократно повторяются и забивают все логи:
1. отрывки из apache2/access.log

самое частое сообщение, не знаю что это

::1 - - [24/Nov/2013:17:42:49 +0400] "OPTIONS * HTTP/1.0" 200 126 "-" "Apache/2.2.22 (Debian) (internal dummy connection)"
изредка появляется (ip разные)
58.221.240.19 - - [25/Nov/2013:10:12:47 +0400] "-" 408 0 "-" "-"
1.1 наибольший интерес несут большое количество вот таких сообщений, я пробовал раскодировать по примеру /wp-content/themes/informations.php, но получился какой то бред знает кто что это?
95.65.85.116 - - [27/Aug/2013:19:42:11 +0400] "\x1b\xcf\xa9\xea\xf0E\t\xa2\x80\x85\x84Yi\xd6\xcb\x95\xb04\x0fpQ[b\x95\xb0Y2|OEpJs" 400 323 "-" "-"
95.106.76.117 - - [27/Aug/2013:20:15:10 +0400] "\x058\x80\x81A\xfa\xe0\x17zS3\xad%e\xf8G\xbc" 200 15287 "-" "-"
95.161.247.135 - - [27/Aug/2013:20:22:27 +0400] "7;\xf9~" 200 15287 "-" "-"
95.32.224.208 - - [27/Aug/2013:21:18:01 +0400] "\x8b\x9ck\xe9," 200 15287 "-" "-"
89.169.66.104 - - [27/Aug/2013:22:35:03 +0400] "\x181\x1c\xeb~" 200 15287 "-" "-"
1.2 что это за запрос? естествено файла http://www.mysite1.com/hnap1/ и http://www.mysite2.com/hnap1/ не существует
76.175.75.209 - - [25/Nov/2013:23:23:56 +0400] "GET /HNAP1/ HTTP/1.1" 404 501 "http://xxx.xxx.xxx.xxx/" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3 (FM Scene 4.6.1)"
1.3 здесь я просто переименовал папку необычным образом и забыл про эти запросы, черт с ними
63.141.227.74 - - [02/Dec/2013:00:02:42 +0400] "GET /w00tw00t.at.blackhats.romanian.anti-sec:) HTTP/1.1" 404 490 "-" "ZmEu"
63.141.227.74 - - [02/Dec/2013:00:02:43 +0400] "GET /phpmyadmin/scripts/setup.php HTTP/1.1" 404 479 "-" "ZmEu"
63.141.227.74 - - [02/Dec/2013:00:02:43 +0400] "GET /pma/scripts/setup.php HTTP/1.1" 404 474 "-" "ZmEu"
63.141.227.74 - - [02/Dec/2013:00:02:44 +0400] "GET /myadmin/scripts/setup.php HTTP/1.1" 404 478 "-" "ZmEu"
63.141.227.74 - - [02/Dec/2013:00:02:44 +0400] "GET /MyAdmin/scripts/setup.php HTTP/1.1" 404 479 "-" "ZmEu"
1.4 видимо злоумышленник пользовался этими страницами, теперь их нет
190.78.79.20 - - [03/Dec/2013:00:03:39 +0400] "POST /wp-content/themes/informations.php HTTP/1.0" 408 530 "-" "-"
190.203.208.110 - - [19/Dec/2013:05:04:07 +0400] "POST /wp-content/themes/includes.php HTTP/1.0" 408 530 "-" "-"
1.5 что это за перебор? папка cgi-bin пуста.
221.213.100.238 - - [27/Nov/2013:06:26:56 +0400] "HEAD / HTTP/1.0" 200 400 "-" "-"
221.213.100.238 - - [27/Nov/2013:06:26:57 +0400] "POST /cgi-bin/php?-d aluon -d mod -d suhon=on -d uncts="" -d dne -d auto_pr%t -d cgi.force_redirect=0 -d t_=0 -d ut -n HTTP/1.1" 404 493 "-" "Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26(KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25"
221.213.100.238 - - [27/Nov/2013:06:26:57 +0400] "POST /cgi-bin/php5?  ...
221.213.100.238 - - [27/Nov/2013:06:26:58 +0400] "POST /cgi-bin/php-cgi?  ...
221.213.100.238 - - [27/Nov/2013:06:26:58 +0400] "POST /cgi-bin/php.cgi?  ... 
221.213.100.238 - - [27/Nov/2013:06:26:59 +0400] "POST /cgi-bin/php4? ... 
1.6 этих файлов я не нашел если злоумышленнику удалось их залить, то он их переименовал
61.147.99.202 - - [19/Dec/2013:19:38:40 +0400] "GET /web-console/ServerInfo.jsp HTTP/1.1" 404 488 "-" "-"
93.174.93.4 - - [03/Dec/2013:13:49:22 +0400] "GET /invoker/JMXInvokerServlet HTTP/1.0" 404 507 "-" "-"
1.7 что это? не нашел такого файла
::1 - - [17/Dec/2013:16:34:50 +0400] "POST /upload/loginIxje.php HTTP/1.1" 404 479 "-" "-"
1.8 ни по одной из этих строчек у меня нет мыслей, объясните пожалуйста?
61.231.87.94 - - [03/Dec/2013:04:47:23 +0400] "CONNECT mx0.mail2000.com.tw:25 HTTP/1.0" 404 12303 "-" "-"
92.240.68.152 - - [04/Dec/2013:19:38:43 +0400] "GET http://images4.byinter.net/333455180.gif HTTP/1.1" 404 480 "-" "webcollage/1.135a"
92.240.68.153 - - [19/Dec/2013:02:14:43 +0400] "GET http://thumbs.dreamstime.com\xc2:\xc2/x/gaseous-nebula-2248617.jpg HTTP/1.1" 400 527 "-" "webcollage/1.135a"
46.165.239.230 - - [21/Dec/2013:15:21:06 +0400] "GET http://85.17.141.182/proxychecker/check.cgi?action=getinfo HTTP/1.1" 404 502 "http://www.google.com/search?hl=ru&q=free+proxy+checker&sourceid=navclient-ff&ie=UTF-8" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
85.196.214.55 - - [23/Dec/2013:01:55:16 +0400] "GET http://www.msftncsi.com/ncsi.txt HTTP/1.1" 404 472 "-" "Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1"
1.9 видимо запросы от поисковой машины, наверное не о чем волноваться
198.20.70.114 - - [03/Dec/2013:16:16:14 +0400] "GET / HTTP/1.1" 200 24744 "-" "-"
198.20.70.114 - - [03/Dec/2013:16:16:14 +0400] "GET /robots.txt HTTP/1.1" 404 473 "-" "-"
1.10 таки нашел базу гад, пароль был слабый, но сейчас она под другой директорией.
176.223.119.50 - - [04/Dec/2013:02:37:01 +0400] "GET /db/ HTTP/1.1" 404 461 "-" "Mozilla/7.0 (compatible; MSIE 8.0; Windows Seven)"
176.223.119.50 - - [04/Dec/2013:02:37:02 +0400] "GET /myadmin/ HTTP/1.1" 200 3893 "-" "Mozilla/7.0 (compatible; MSIE 8.0; Windows Seven)"
176.223.119.50 - - [04/Dec/2013:02:37:02 +0400] "GET /mysqladmin/ HTTP/1.1" 404 468 "-" "Mozilla/7.0 (compatible; MSIE 8.0; Windows Seven)"

2. ps -aux в процессах висят пару неизвестных для меня пользователей, стоит ли из за них волноваться

1000      4058  0.0  0.0  96480  1332 ?        S    12:49   0:00 sshd: имя_пользователя_не_root@pts/0
1000     30346  0.0  0.0  22280  1576 pts/0    Ss   15:07   0:00 -bash
1000     30387  0.0  0.0  12532   788 ?        Ss   15:07   0:00 /usr/lib/openssh/sftp-server
avahi     3794  0.0  0.0  34160  1568 ?        S    12:49   0:00 avahi-daemon: running [название_компьютера.local]
avahi     3795  0.0  0.0  34032   228 ?        S    12:49   0:00 avahi-daemon: chroot helper
102       2931  0.0  0.0  30076   856 ?        Ss   12:49   0:00 /usr/bin/dbus-daemon --system
bind      2788  0.0  0.0 201212  2824 ?        Ssl  12:49   0:00 /usr/sbin/named -u bind
daemon    2701  0.0  0.0  16668   200 ?        Ss   12:49   0:00 /usr/sbin/atd
statd     1988  0.0  0.0  23340   920 ?        Ss   12:49   0:00 /sbin/rpc.statd

3. log/access.log я привел записи которые происходили когда никто не взаимодействовал с сервером: 3.1 что это?, очень много таких записей

Dec  1 08:09:01 название_компьютера CRON[29181]: pam_unix(cron:session): session opened for user root by (uid=0)
3.2 Debian-exim что это запользователь?
Dec  2 02:33:01 название_компьютера CRON[31931]: pam_unix(cron:session): session opened for user Debian-exim by (uid=0)
3.3 это перебор паролей? порт каждый раз меняется, таких записей тоже прилично
Dec  1 08:35:32 название_компьютера sshd[29243]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=123.125.210.210  user=root
Dec  1 08:35:32 название_компьютера sshd[29243]: pam_winbind(sshd:auth): getting password (0x00000388)
Dec  1 08:35:32 название_компьютера sshd[29243]: pam_winbind(sshd:auth): pam_get_item returned a password
Dec  1 08:35:32 название_компьютера sshd[29243]: pam_winbind(sshd:auth): request wbcLogonUser failed: WBC_ERR_AUTH_ERROR, PAM error: PAM_USER_UNKNOWN (10), NTSTATUS: NT_STATUS_NO_SUCH_USER, Error message was: No such user
...
Dec  1 08:35:34 название_компьютера sshd[29243]: Failed password for root from 123.125.210.210 port 22657 ssh2
Dec  1 08:35:34 название_компьютера sshd[29243]: Connection closed by 123.125.210.210 [preauth]
...
Dec  2 02:28:04 название_компьютера sshd[31923]: Invalid user guest from 82.221.102.182
Dec  2 02:28:04 название_компьютера sshd[31923]: input_userauth_request: invalid user guest [preauth]
Dec  2 02:28:04 название_компьютера sshd[31923]: pam_unix(sshd:auth): check pass;user unknown
Dec  2 02:28:04 название_компьютера sshd[31923]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=82.221.102.182
Dec  2 02:28:04 название_компьютера sshd[31923]: pam_winbind(sshd:auth): getting password (0x00000388)
Dec  2 02:28:04 название_компьютера sshd[31923]: pam_winbind(sshd:auth): pam_get_item returned a password
Dec  2 02:28:07 название_компьютера sshd[31923]: Failed password for invalid userguest from 82.221.102.182 port 57181 ssh2
Dec  2 02:28:08 название_компьютера sshd[31923]: Received disconnect from 82.221.102.182: 11: PECL/ssh2 (http://pecl.php.net/packages/ssh2) [preauth]
...
Dec  2 08:17:32 название_компьютера sshd[478]: Failed password for root from 58.30.38.28 port 48394 ssh2
Dec  2 08:17:32 название_компьютера sshd[478]: Received disconnect from 58.30.38.28: 11: Bye Bye [preauth]
...

4. отрывки из apache2/error.log также много ошибок к /wp-content/themes/informations.php но это потому что человек пытался взломать

[Fri Dec 27 13:46:31 2013] [error] [client 78.111.186.189] Invalid URI in request \xdf:\xddH\xe9h,tW\x11a\xd0\x0c\xec\xf7r\xc3\xa0b\xf2
[Fri Dec 27 15:39:06 2013] [error] [client 194.186.207.105] request failed: error reading the headers
[Tue Dec 24 09:51:58 2013] [error] [client 50.16.241.71] script not found or unable to stat: /usr/lib/cgi-bin/php
[Tue Dec 24 09:51:58 2013] [error] [client 50.16.241.71] script not found or unable to stat: /usr/lib/cgi-bin/php5
[Tue Dec 24 09:51:58 2013] [error] [client 50.16.241.71] script not found or unable to stat: /usr/lib/cgi-bin/php-cgi
[Tue Dec 24 09:51:58 2013] [error] [client 50.16.241.71] script not found or unable to stat: /usr/lib/cgi-bin/php.cgi
[Tue Dec 24 09:51:59 2013] [error] [client 50.16.241.71] script not found or unable to stat: /usr/lib/cgi-bin/php4
на бывший сайт с wordpress еще идет много запросов, но естественно он отключен но большая часть файла до отключения wordpressa была забита вот этим, что это? затерли что то важное огромным количеством записей?
fprintf.c:50: SM_REQUIRE((fp) != NULL && (fp)->sm_magic == (SmFileMagic)) failedAborted



Последнее исправление: farodig (всего исправлений: 4)

Grammarnazi

бывшый
безопастность

Прошу исправить.

cinyflo ★★★★★
()

человек просто заменяет в заголовке свой ip на рандомный

Так не бывает.

1. отрывки из apache2/access.log

Тебя сканят просто. Боты ищут страницы, на которых возможна какая-то уязвимость.

2. ps -aux в процессах висят пару неизвестных для меня пользователей, стоит ли из за них волноваться

Чей id == 1000? Удали avahi-daemon. Тебе точно нужен dbus?

3.1 что это?, очень много таких записей

Это крон (шедулер). Всё нормально.

3.3 это перебор паролей?

Да, боты опять же. Перевесь ssh на недефолтный порт и запрети логин от рута.

4. отрывки из apache2/error.log

Тоже похоже на скан.

В общем, ничего похожего на взлом, я не вижу.

generator ★★★
()
Ответ на: комментарий от generator

Спасибо за быстрый оперативный ответ, сделал все по совету.
Дальше буду смотреть не начнет ли спамить мой сервак снова)

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

Надо подписаться на http://secunia.com какой-нибудь на рассылку с багами, потом следить за сообщениям с WordPress в заголовке и обновляться своевременно. За декабрь там 7 сообщений. И это ещё не самое большое количество. За октябрь - более двух десятков.

Конкретнее не сажу, но любой распространённый CMS дыряв, особенно, если на PHP. Хотя второе, может быть, моё предвзятое мнение.

AS ★★★★★
()
Ответ на: комментарий от generator

1. удалил ненужные софтины avahi-daemon dbus
2. 1000 - это я по сути только без рута
3. перевел ssh на рандомный порт и запретил логин от рута sendmail был выключен, однако после выходных sendmail был снова включен tail -f log/mail.info:

Dec 30 07:37:29 имя_сервера sendmail[7537]: rBU3bTPD007537: from=root, size=302, class=0, nrcpts=1, msgid=<201312300337.rBU3bTPD007537@имя_сервера.имя_сайта.com>, relay=root@localhost
Dec 30 07:37:29 имя_сервера  sm-mta[7538]: rBU3bT9S007538: from=<root@имя_сервера .имя_сайта.com>, size=621, class=0, nrcpts=1, msgid=<201312300337.rBU3bTPD007537@имя_сервера .имя_сайта.com>, proto=ESMTP, daemon=MTA-v4, relay
=localhost [127.0.0.1]
Dec 30 07:37:29 имя_сервера sendmail[7537]: rBU3bTPD007537: to=root, ctladdr=root (0/0), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30302, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (rBU3bT9S007538 Message accepted for delivery)
все таки как то получили доступ к почтовику, и запустили его за выходные, сервер не перезагружался, что посоветуете?

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

to=root

Как я понимаю, сообщение отправлено root-у. Вполне возможно, что какое-то системное сообщение. Такое бывает, когда крон, например, выполняет скрипт, который завершается с ошибкой. Залогинься в систему рутом и набери команду «mail». Там должны будут быть письма для рута.

generator ★★★
()
Ответ на: комментарий от generator

Для рута нет писем в принципе, а для пользователя 1000 как раз есть
По ходу спам закончился, а письма шлет logwatch. Спасибо за ответ, Вы очень помогли.

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

Система взломана => К системе больше нет доверия => Пришло время переустановить gahnoo ples loonix.

anonymous
()
Ответ на: комментарий от farodig

все таки как то получили доступ к почтовику, и запустили его за выходные, сервер не перезагружался, что посоветуете?

почту в джаил. А лучше вообще выкинуть нафиг.

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

почта нужна, ее нельзя выключать, а переходить на gahnoo ples loonix это для фанатов этой оси, не вариант. generator ★ все верно сказал.

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

верно, но в первом посте много чего весёлого кроме этих писем. К тому же непонятно, что в этих письмах. Я вангую, что там оповещения от sudo или что-то такое. А это совсем не радостно — враг уже получил доступ к шеллу, и теперь пытается рутать. Раз шел у него уже есть, то это жуткое решето, а одмин муднеопытный. Лучше переустановить.

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

В этих письмах был спам лично смотрел, причем письма посылались через уязвимость в wordpress от 2013г лично просмотрел коды этих скриптов, нет там никакой возможности шела.
От этой админки отказался, логи пусты, новых писем нет, не вижу смысла паниковать.
PS: На будущее ГЛУПО кому то советовать снести и|или переустановить, это попахивает муднеопытным советчиком.

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

В этих письмах был спам лично смотрел, причем письма посылались через уязвимость в wordpress от 2013г лично просмотрел коды этих скриптов, нет там никакой возможности шела. От этой админки отказался, логи пусты, новых писем нет, не вижу смысла паниковать.

ну тебе виднее.

На будущее ГЛУПО кому то советовать снести и|или переустановить

в случае угрозы безопасности — не глупо. Глупо, когда сам чё-то не то накрутил. Если злоумышленник достаточно грамотный, он спрячет хвосты так, что-бы ты думал, что «всё хорошо». Т.ч. ничего «глупого» тут нет. Лучше переб(з)деть. (:

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