Page 1 of 8

случай: взлом сервера, предположения, советы

Posted: Fri Jun 24, 2016 11:14 am
by saya
Добрый день!
Произошел странный и пугающий случай.
Vesta core package Version:0.9.8 (x86_64) Release:15, CentOS 6.7, сервер на digitalocean.
Возникла необходимость зайти на сервер через консоль – не смог, пишет неверный пароль… Решил зайти в весту посмотреть что там – не смог, тоже пишет неверный пароль… Из доступных смог достучатся через ftp, но там много не сделаешь… В итоге сброс пароля через digitalocean и выключение сервера, смена паролей и все окей.
Сперва подумал, что какой-то глюк… Но потом посмотрел лог (var/log/vesta/auth.log) и увидел там странный и неизвестный вход. IP – анонимного прокси…
Стал смотреть vesta/system.log и тут жесть – кто-то в тот раз, когда кто-то вошел он и пароль сменил, и адрес почты (чтоб восстановить не смог) и что-то в кроне (что – не знаю, так вроде не видно)
Подчеркну особо – пароль 10 символьный вида «b<n_/Wcq6G» последний раз заходил на сервер месяца 4 до «взлома».
По хронологии так:
День 1:
22:07 System.log -> смена пароля vesta (admin)
23:26 secure -> вход ssh2 под admin (не под root!)
23:57 auth.log(vesta) -> login
День второй:
07:12 secure -> вход ssh2 под admin, смена пароля для admin и root

Дальше в основном входы по SSH…

Отсюда вопросы:
1) Все же, через что влезли в первый раз – через весту или через консоль? (очевидно весту, но мало ли есть другая точка зрения)
2) Можно ли поменять пароль для весты не заходя? (по логам – сперва смена пароля, затем вход)
3) Можно ли сменить пароль для root, вскрыв учетку admin?

Если есть какие-то советы, предположения – буду рад услышать, если нужны логи – говорите, может еще что посмотреть стоит…
С Уважением

Re: случай: взлом сервера, предположения, советы

Posted: Sat Jun 25, 2016 2:28 am
by lidner60
случилась та же ситуация. пароль был далеко не простым, буквенно-цыферный, на 19 символов что на админке весты, что на руте. изменен был пароль рута и пароль админа. проанализировал логи (вроде как все, которые нужно). поочередность примерно следующая:
1. поменялся пароль админа.
2. сменился юзер-шелл у админа на bash и язык на английский (вручную чтоль кто-то ломал? зачем иначе язык менять).
2. чтото поменялось в кроне админа.
3. изменен имейл админа.
4. потом начались входы на весту и на сам сервер.
system.logShow
2016-06-21 19:07:27 v-change-user-password 'admin' '******'
2016-06-21 19:07:27 v-change-user-language 'admin' 'en'
2016-06-21 19:07:27 v-change-user-shell 'admin' 'bash'
2016-06-21 19:07:27 v-rebuild-cron-jobs 'admin'
2016-06-21 19:07:27 v-change-user-contact 'admin' 'info@test.com'
2016-06-21 20:20:36 v-change-user-password 'admin' '******'
------------------------------------------------------
2016-06-22 21:18:13 v-change-user-password 'admin' '******'
2016-06-22 21:21:39 v-change-user-password 'admin' '******'
------------------------------------------------------
2016-06-23 07:47:21 v-change-user-password 'admin' '******'
auth.log (vesta)Show
2016-06-21 20:54:29 admin 197.231.221.211 successfully logged in
2016-06-21 20:54:29 admin 197.231.221.211 successfully logged in
2016-06-21 20:54:30 admin 197.231.221.211 successfully logged in
2016-06-21 20:54:31 admin 197.231.221.211 successfully logged in
2016-06-21 20:54:31 admin 197.231.221.211 successfully logged in
2016-06-21 20:54:32 admin 197.231.221.211 successfully logged in
2016-06-21 20:54:33 admin 197.231.221.211 successfully logged in
2016-06-21 20:54:34 admin 197.231.221.211 successfully logged in
2016-06-21 20:54:35 admin 197.231.221.211 successfully logged in
2016-06-21 20:54:36 admin 197.231.221.211 successfully logged in
2016-06-21 20:54:37 admin 197.231.221.211 successfully logged in
2016-06-21 20:57:00 admin 197.231.221.211 successfully logged in
2016-06-21 20:57:00 admin 197.231.221.211 successfully logged in
2016-06-21 20:57:01 admin 197.231.221.211 successfully logged in
2016-06-21 20:57:02 admin 197.231.221.211 successfully logged in
2016-06-21 20:57:02 admin 197.231.221.211 successfully logged in
2016-06-21 20:57:03 admin 197.231.221.211 successfully logged in
2016-06-21 20:57:03 admin 197.231.221.211 successfully logged in
2016-06-21 20:57:04 admin 197.231.221.211 successfully logged in
2016-06-21 20:57:05 admin 197.231.221.211 successfully logged in
2016-06-21 20:57:05 admin 197.231.221.211 successfully logged in
auth.log (ubuntu)Show
повторяющиеся команды типа
Jun 21 20:57:03 mail sudo: admin : TTY=unknown ; PWD=/usr/local/vesta/web/api ; USER=root ; COMMAND=/usr/local/vesta/bin/v-check-user-password admin /tmp/vstDGdk5l 197.231.221.211
(ток /tmp/vstDGdk5l всегда разные

спамились команды с частотой примерно полтора раза в секунду.
продолжительность с Jun 21 20:54:29 по Jun 21 20:54:37. далее небольшая передышка и снова с той же частотой с Jun 21 20:57:00 по Jun 21 20:57:05.

может быть проблема связана с api?
к слову, DigitalOcean прислал мне жалобу, что, мол забанят мой айпи, есль не исправлю. так, собственно, и узнал о проблеме. кто что скажет?
кусок текста жалобыShow
Please review the following abuse complaint and provide us with a resolution:

******************************
Hello Abuse-Team,

your Server/Customer with the IP: *МОЙ_АЙПИ* has attacked one of our servers/partners.
The attackers used the method/service: *ssh* on: *Fri, 24 Jun 2016 13:46:30 +0200*.
The time listed is from the server-time of the Blocklist-user who submitted the report.
The attack was reported to the Blocklist.de-System on: *Fri, 24 Jun 2016 13:47:02 +0200*


!!! Do not answer to this Mail! Use support@ or contact-form for Questions (no resolve-messages, no updates....) !!!


The IP has been automatically blocked for a period of time. For an IP to be blocked, it needs
to have made several failed logins (ssh, imap....), tried to log in for an "invalid user", or have
triggered several 5xx-Error-Codes (eg. Blacklist on email...), all during a short period of time.
The Server-Owner configures the number of failed attempts, and the time period they have
to occur in, in order to trigger a ban and report. Blocklist has no control over these settings.


-------------------------------------------------------------------

Please note that generating multiple abuse complaints in a short period of time may lead to your account being suspended.
ну и по ссылкам в письме перешел на сайт www.blocklist.de со сво…Show
Date +-5 Min (Europe/Amsterdam):
24.06.2016 13:47:03 +0200

IP/Host:
МОЙ_АЙПИ

Service:
ssh

Logs:


Jun 24 13:37:13 emh sshd[6430]: Did not receive identification string from МОЙ_АЙПИ
Jun 24 13:38:43 emh sshd[6580]: Received disconnect from МОЙ_АЙПИ: 11: Bye Bye [preauth]
Jun 24 13:42:39 emh sshd[7836]: Received disconnect from МОЙ_АЙПИ: 11: Bye Bye [preauth]
Jun 24 13:46:30 emh sshd[8886]: Received disconnect from МОЙ_АЙПИ: 11: Bye Bye [preauth]

Re: случай: взлом сервера, предположения, советы

Posted: Sat Jun 25, 2016 4:57 am
by Mr.Erbutw
А Fail2ban куда смотрел ? (логи)
По всей видимости он не сработал.
А порт ssh я выключаю, если не лажу на сервер. Учитывая сколько "ломиться" ботов.
Jun 21 20:57:03 mail sudo: admin : TTY=unknown ; PWD=/usr/local/vesta/web/api ; USER=root ; COMMAND=/usr/local/vesta/bin/v-check-user-password admin /tmp/vstDGdk5l 197.231.221.211
mail sudo: admin Уязвимость через mail, и сброс пароля.

Re: случай: взлом сервера, предположения, советы

Posted: Sat Jun 25, 2016 8:34 am
by saya
Интересно, у меня тоже 21.06 все это происходило...
Jun 21 20:57:03 mail sudo: admin : TTY=unknown ; PWD=/usr/local/vesta/web/api ; USER=root ; COMMAND=/usr/local/vesta/bin/v-check-user-password admin /tmp/vstDGdk5l 197.231.221.211
Такого у себя не нашел, но остальное по логам один в один. Даже почту поменяли на такую же (info@test.com)...

Судя по скорости команд (несколько действий в секунду) ломала программа.
mail sudo: admin Уязвимость через mail, и сброс пароля.
Судя по логам пароль поменяли раньше...

Re: случай: взлом сервера, предположения, советы

Posted: Sat Jun 25, 2016 3:29 pm
by lidner60
Mr.Erbutw wrote:А Fail2ban куда смотрел ? (логи)
По всей видимости он не сработал.
А порт ssh я выключаю, если не лажу на сервер. Учитывая сколько "ломиться" ботов.
Jun 21 20:57:03 mail sudo: admin : TTY=unknown ; PWD=/usr/local/vesta/web/api ; USER=root ; COMMAND=/usr/local/vesta/bin/v-check-user-password admin /tmp/vstDGdk5l 197.231.221.211
mail sudo: admin Уязвимость через mail, и сброс пароля.
на сколько я понимаю, v-check-user-password просто проверяет на совпадение пароль. т.е. команда v-check-user-password admin pass проверяет, является ли pass паролем от юзера admin. true/false.
никакого сброса пароля.

Fail2ban судя по логам постоянно банит тех, кто ломится. но среди них вышеупомянутый айпи злоумышленника не светился.

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

Re: случай: взлом сервера, предположения, советы

Posted: Sat Jun 25, 2016 3:56 pm
by lidner60
вот еще пошуршал убунтовский лог файл

началось все вот тут (собственно, как и описано в логе весты system.log):
SpoilerShow
Jun 21 19:07:27 mail sudo: admin : TTY=unknown ; PWD=/usr/local/vesta/web/edit/user ; USER=root ; COMMAND=/usr/local/vesta/bin/v-list-user admin json
Jun 21 19:07:27 mail sudo: pam_unix(sudo:session): session opened for user root by (uid=0)
Jun 21 19:07:27 mail sudo: pam_unix(sudo:session): session closed for user root
Jun 21 19:07:27 mail sudo: admin : TTY=unknown ; PWD=/usr/local/vesta/web/edit/user ; USER=root ; COMMAND=/usr/local/vesta/bin/v-list-user-packages json
Jun 21 19:07:27 mail sudo: pam_unix(sudo:session): session opened for user root by (uid=0)
Jun 21 19:07:27 mail sudo: pam_unix(sudo:session): session closed for user root
Jun 21 19:07:27 mail sudo: admin : TTY=unknown ; PWD=/usr/local/vesta/web/edit/user ; USER=root ; COMMAND=/usr/local/vesta/bin/v-list-sys-languages json
Jun 21 19:07:27 mail sudo: pam_unix(sudo:session): session opened for user root by (uid=0)
Jun 21 19:07:27 mail sudo: pam_unix(sudo:session): session closed for user root
Jun 21 19:07:27 mail sudo: admin : TTY=unknown ; PWD=/usr/local/vesta/web/edit/user ; USER=root ; COMMAND=/usr/local/vesta/bin/v-list-sys-shells json
Jun 21 19:07:27 mail sudo: pam_unix(sudo:session): session opened for user root by (uid=0)
Jun 21 19:07:27 mail sudo: pam_unix(sudo:session): session closed for user root
Jun 21 19:07:27 mail sudo: admin : TTY=unknown ; PWD=/usr/local/vesta/web/edit/user ; USER=root ; COMMAND=/usr/local/vesta/bin/v-change-user-password admin /tmp/vst8P1fPY
Jun 21 19:07:27 mail sudo: pam_unix(sudo:session): session opened for user root by (uid=0)
Jun 21 19:07:27 mail chpasswd[30472]: pam_unix(chpasswd:chauthtok): password changed for admin
Jun 21 19:07:27 mail sudo: pam_unix(sudo:session): session closed for user root
Jun 21 19:07:27 mail sudo: admin : TTY=unknown ; PWD=/usr/local/vesta/web/edit/user ; USER=root ; COMMAND=/usr/local/vesta/bin/v-change-user-language admin en
Jun 21 19:07:27 mail sudo: pam_unix(sudo:session): session opened for user root by (uid=0)
Jun 21 19:07:27 mail sudo: pam_unix(sudo:session): session closed for user root
Jun 21 19:07:27 mail sudo: admin : TTY=unknown ; PWD=/usr/local/vesta/web/edit/user ; USER=root ; COMMAND=/usr/local/vesta/bin/v-change-user-shell admin bash
Jun 21 19:07:27 mail sudo: pam_unix(sudo:session): session opened for user root by (uid=0)
Jun 21 19:07:27 mail chsh[30542]: changed user 'admin' shell to '/bin/bash'
Jun 21 19:07:27 mail sudo: pam_unix(sudo:session): session closed for user root
Jun 21 19:07:27 mail sudo: admin : TTY=unknown ; PWD=/usr/local/vesta/web/edit/user ; USER=root ; COMMAND=/usr/local/vesta/bin/v-change-user-contact admin info@test.com
Jun 21 19:07:27 mail sudo: pam_unix(sudo:session): session opened for user root by (uid=0)
Jun 21 19:07:27 mail sudo: pam_unix(sudo:session): session closed for user root
Jun 21 19:07:27 mail sudo: admin : TTY=unknown ; PWD=/usr/local/vesta/web/edit/user ; USER=root ; COMMAND=/usr/local/vesta/bin/v-change-user-name admin System
Jun 21 19:07:27 mail sudo: pam_unix(sudo:session): session opened for user root by (uid=0)
Jun 21 19:07:27 mail sudo: pam_unix(sudo:session): session closed for user root
Jun 21 19:07:27 mail sudo: admin : TTY=unknown ; PWD=/usr/local/vesta/web/edit/user ; USER=root ; COMMAND=/usr/local/vesta/bin/v-list-user admin json
Jun 21 19:07:27 mail sudo: pam_unix(sudo:session): session opened for user root by (uid=0)
Jun 21 19:07:27 mail sudo: pam_unix(sudo:session): session closed for user root
после этого уже через юзера admin через уже открытый bash начались заходы:
SpoilerShow
Jun 21 20:21:10 mail sshd[2663]: Accepted password for admin from 212.129.15.245 port 46469 ssh2
Jun 21 20:21:10 mail sshd[2663]: pam_unix(sshd:session): session opened for user admin by (uid=0)
Jun 21 20:21:14 mail sshd[2741]: Received disconnect from 212.129.15.245: 11: Closed due to user request.
Jun 21 20:21:14 mail sshd[2663]: pam_unix(sshd:session): session closed for user admin

Jun 21 21:26:51 mail sshd[7274]: Accepted password for admin from 103.207.36.151 port 60104 ssh2
Jun 21 21:26:51 mail sshd[7274]: pam_unix(sshd:session): session opened for user admin by (uid=0)
Jun 21 21:26:51 mail sshd[7344]: Received disconnect from 103.207.36.151: 11: Closed due to user request.
Jun 21 21:26:51 mail sshd[7274]: pam_unix(sshd:session): session closed for user admin

Jun 22 03:50:10 mail sshd[580]: Accepted password for admin from 212.83.136.137 port 53252 ssh2
Jun 22 03:50:10 mail sshd[580]: pam_unix(sshd:session): session opened for user admin by (uid=0)
Jun 22 03:50:10 mail sshd[652]: Received disconnect from 212.83.136.137: 11: Closed due to user request.
Jun 22 03:50:10 mail sshd[580]: pam_unix(sshd:session): session closed for user admin
до этого удачных входов ломящихся по ssh ботов не наблюдалось.

п.с. слово mail в моих логах скорее всего это название сервера (там название вида mail.site.ru, частенько сокращает до первой точки)

Re: случай: взлом сервера, предположения, советы

Posted: Sat Jun 25, 2016 4:14 pm
by imperio
Мы в курсе проблемы, занимаемся её фиксом.
Релиз в понедельник.

Re: случай: взлом сервера, предположения, советы

Posted: Sat Jun 25, 2016 4:59 pm
by lidner60
imperio wrote:Мы в курсе проблемы, занимаемся её фиксом.
Релиз в понедельник.
спасибо большое за ответ и реакцию. хотелось бы узнать подробнее, где была дыра? ну или если это в данный момент может повлечь некие последствия, может быть расскажите после релиза?

кстати, интересно, а присутствует ли в панельке механизм критических обновлений? (автоматическое (по умолчанию включенное) обновление подобных фиксов, без обновления основного пакета). а то не все обновляются, да и многие наверное не узнали бы о данной проблеме, а значит и важности обновления.

Re: случай: взлом сервера, предположения, советы

Posted: Sat Jun 25, 2016 5:13 pm
by imperio
Расскажем после релиза, не можем сейчас раскрыть информацию в целях безопасности.
Если автообновление включено, то панель обновится сама, как только релиз будет выпущен. Принудительных обновлений на данный момент нет.
Резервные копии данных сохраните на комп.

Re: случай: взлом сервера, предположения, советы

Posted: Sat Jun 25, 2016 8:43 pm
by nebesniy
Прямо сейчас (сегодня и вчера) ломится адский китайский бот, из-за него четыре раза хостинг на openVZ отключал мне сервер и грозил баном. С поддержкой вроде решил. Судорожно увеличиваю качество пароля от рута и на всякий случай админа. Это, господа, какой-то кошмар.
Китайский брутфорсShow

Code: Select all

Jun 25 23:41:15 nebesniy sshd[13711]: message repeated 2 times: [ Failed password for root from 221.194.44.218 port 39147 ssh2]
Jun 25 23:41:15 nebesniy sshd[13711]: Received disconnect from 221.194.44.218: 11:  [preauth]
Jun 25 23:41:15 nebesniy sshd[13711]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=221.194.44.218  user=root
Jun 25 23:41:17 nebesniy sshd[13821]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=221.194.44.218  user=root
Jun 25 23:41:19 nebesniy sshd[13821]: Failed password for root from 221.194.44.218 port 50076 ssh2
Jun 25 23:41:25 nebesniy sshd[13821]: Received disconnect from 221.194.44.218: 11:  [preauth]
Jun 25 23:41:25 nebesniy sshd[13821]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=221.194.44.218  user=root
Jun 25 23:41:27 nebesniy sshd[13823]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=221.194.44.218  user=root
Jun 25 23:41:29 nebesniy sshd[13823]: Failed password for root from 221.194.44.218 port 57534 ssh2
Jun 25 23:41:34 nebesniy sshd[13823]: message repeated 2 times: [ Failed password for root from 221.194.44.218 port 57534 ssh2]
Jun 25 23:41:34 nebesniy sshd[13823]: Received disconnect from 221.194.44.218: 11:  [preauth]
Jun 25 23:41:34 nebesniy sshd[13823]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=221.194.44.218  user=root
Китайский брутфорс 2Show

Code: Select all

Jun 25 23:30:55 nebesniy sshd[12574]: Failed password for root from 116.31.116.28 port 26295 ssh2
Jun 25 23:31:03 nebesniy sshd[12574]: message repeated 2 times: [ Failed password for root from 116.31.116.28 port 26295 ssh2]
Jun 25 23:31:03 nebesniy sshd[12574]: Received disconnect from 116.31.116.28: 11:  [preauth]
Jun 25 23:31:03 nebesniy sshd[12574]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=116.31.116.28  user=root
Jun 25 23:31:12 nebesniy sshd[12576]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=116.31.116.28  user=root
Jun 25 23:31:14 nebesniy sshd[12576]: Failed password for root from 116.31.116.28 port 13301 ssh2
Jun 25 23:31:21 nebesniy sshd[12576]: message repeated 2 times: [ Failed password for root from 116.31.116.28 port 13301 ssh2]
Jun 25 23:31:21 nebesniy sshd[12576]: Received disconnect from 116.31.116.28: 11:  [preauth]
Jun 25 23:31:21 nebesniy sshd[12576]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=116.31.116.28  user=root
Jun 25 23:31:38 nebesniy sshd[12599]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=116.31.116.28  user=root
Jun 25 23:31:40 nebesniy sshd[12599]: Failed password for root from 116.31.116.28 port 41844 ssh2
Jun 25 23:31:40 nebesniy sshd[12578]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=116.31.116.28  user=root
Jun 25 23:31:42 nebesniy sshd[12578]: Failed password for root from 116.31.116.28 port 60805 ssh2
Jun 25 23:31:42 nebesniy sshd[12578]: Received disconnect from 116.31.116.28: 11:  [preauth]
Jun 25 23:31:44 nebesniy sshd[12599]: message repeated 2 times: [ Failed password for root from 116.31.116.28 port 41844 ssh2]
Jun 25 23:31:46 nebesniy sshd[12599]: Received disconnect from 116.31.116.28: 11:  [preauth]
Jun 25 23:31:46 nebesniy sshd[12599]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=116.31.116.28  user=root
Jun 25 23:32:56 nebesniy sudo: pam_env(sudo:session): Unable to open env file: /etc/default/locale: No such file or directory
Jun 25 23:32:56 nebesniy sudo: pam_unix(sudo:session): session opened for user root by (uid=0)
Как временное решение, пока защитил так:
  • Пароль 50 символов на root и admin
  • Правило iptables на бан IP спустя 4 неудачных попытки логина за один час:

    Code: Select all

    iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
    iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 3600 --hitcount 4 -j DROP