Что было на прошлой неделе, пришло письмо от Nic.ru
, что с нашего IP адреса арендуемого физического сервера (Supermicro 5017C-MTF, CPU Xeon E3-1240v2 3.4GHz, RAM 8Gb, SATA 1Tb x 2, RAID)
на котором установлена операционная система Ubuntu 18.04 Server
+ основной сайт компании и поддомены сайтов регионов идут жалобы что с него осуществляется несанкционированная деятельность по отношению к узлам.
Ниже содержимое письма от dedicated@nic.ru
Здравствуйте.
На ваш сервер поступают жалобы в связи с вредоносной активностью.
Вам необходимо проверить сервер антивирусным программным обеспечением, например, maldet
, удалить вредоносные скрипты и устранить причины жалоб в течение 10 дней.
В противном случае, нам придется заблокировать IP-адрес вашего сервера.
Дополнительная информация:
Your IP 80.92.47.166 has been filtered due to brute force during last days please check those IPs
it was targeting our ips (list is limited to 20) :
ip: 46.30.243.11
ip: 46.30.243.14
ip: 46.30.243.18
ip: 46.30.243.24
ip: 46.30.243.28
ip: 46.30.243.31
ip: 46.30.243.41
ip: 46.30.243.43
ip: 46.30.243.48
ip: 46.30.243.55
ip: 46.30.243.58
ip: 46.30.243.77
ip: 46.30.243.81
ip: 46.30.243.88
ip: 46.30.243.93
ip: 46.30.243.94
ip: 46.30.243.101
ip: 46.30.243.117
ip: 46.30.243.121
ip: 46.30.243.122
it was targeting this ports (list is limited to 10):
port: 80
port: 1928
port: 2460
port: 4241
port: 4305
port: 5867
port: 6022
port: 8818
port: 8856
port: 9256
if need more info please contact at abuse@serverplan.com
Connection Details, line limited in Connection Logs, line sampled by ip and port
Feb 21 20:16:11 SRC=80.92.47.166 DST=46.30.243.197 PROTO=TCP SPT=443 DPT=16495 Feb 21 20:17:02 SRC=80.92.47.166 DST=46.30.243.140 PROTO=TCP SPT=443 DPT=28488 Feb 21 20:17:02 SRC=80.92.47.166 DST=46.30.243.140 PROTO=TCP SPT=443 DPT=30989 Feb 21 20:17:12 SRC=80.92.47.166 DST=46.254.33.121 PROTO=TCP SPT=443 DPT=48609 Feb 21 20:17:15 SRC=80.92.47.166 DST=46.254.33.227 PROTO=TCP SPT=443 DPT=19345 Feb 21 20:17:15 SRC=80.92.47.166 DST=46.254.33.227 PROTO=TCP SPT=443 DPT=19345 Feb 21 20:17:17 SRC=80.92.47.166 DST=46.30.243.230 PROTO=TCP SPT=443 DPT=18854 Feb 21 20:17:36 SRC=80.92.47.166 DST=46.254.33.229 PROTO=TCP SPT=443 DPT=22982 Feb 21 20:17:42 SRC=80.92.47.166 DST=46.30.243.157 PROTO=TCP SPT=443 DPT=30921 Feb 21 20:17:45 SRC=80.92.47.166 DST=46.254.33.229 PROTO=TCP SPT=443 DPT=22982 Feb 21 20:17:50 SRC=80.92.47.166 DST=46.30.243.31 PROTO=TCP SPT=443 DPT=27427 Feb 21 20:17:56 SRC=80.92.47.166 DST=46.254.33.190 PROTO=TCP SPT=443 DPT=61423 Feb 21 20:17:56 SRC=80.92.47.166 DST=46.254.33.190 PROTO=TCP SPT=443 DPT=61423 Feb 21 20:17:56 SRC=80.92.47.166 DST=46.254.33.190 PROTO=TCP SPT=443 DPT=61423 Feb 21 20:17:56 SRC=80.92.47.166 DST=46.254.33.190 PROTO=TCP SPT=443 DPT=61423 Feb 21 20:17:56 SRC=80.92.47.166 DST=46.254.33.190 PROTO=TCP SPT=443 DPT=61423 Feb 21 20:18:02 SRC=80.92.47.166 DST=46.30.243.140 PROTO=TCP SPT=443 DPT=30989 Feb 21 20:18:06 SRC=80.92.47.166 DST=46.254.33.19 PROTO=TCP SPT=443 DPT=45945 Feb 21 20:18:13 SRC=80.92.47.166 DST=46.254.33.80 PROTO=TCP SPT=443 DPT=40065 Feb 21 20:18:17 SRC=80.92.47.166 DST=46.30.243.230 PROTO=TCP SPT=443 DPT=18854 Feb 21 20:11:43 SRC=80.92.47.166 DST=89.46.224.14 PROTO=TCP SPT=443 DPT=51603 Feb 22 15:24:13 SRC=80.92.47.166 DST=93.95.223.125 PROTO=TCP SPT=443 DPT=30693 Feb 22 15:24:36 SRC=80.92.47.166 DST=185.81.3.187 PROTO=TCP SPT=443 DPT=17332 Feb 22 15:24:36 SRC=80.92.47.166 DST=185.81.3.187 PROTO=TCP SPT=443 DPT=25186 Feb 22 15:24:50 SRC=80.92.47.166 DST=93.95.217.199 PROTO=TCP SPT=443 DPT=1928 Feb 22 15:25:00 SRC=80.92.47.166 DST=46.254.35.253 PROTO=TCP SPT=443 DPT=42343 Feb 22 15:35:05 SRC=80.92.47.166 DST=93.95.217.146 PROTO=TCP SPT=443 DPT=37958 Feb 22 15:35:09 SRC=80.92.47.166 DST=185.81.3.48 PROTO=TCP SPT=443 DPT=17398 Feb 22 15:35:22 SRC=80.92.47.166 DST=185.81.3.211 PROTO=TCP SPT=443 DPT=44942 Feb 22 15:35:23 SRC=80.92.47.166 DST=93.95.217.184 PROTO=TCP SPT=443 DPT=6022 Feb 22 15:35:29 SRC=80.92.47.166 DST=93.95.217.78 PROTO=TCP SPT=443 DPT=37174 Feb 22 15:35:30 SRC=80.92.47.166 DST=93.95.217.78 PROTO=TCP SPT=443 DPT=37174 Feb 22 15:35:32 SRC=80.92.47.166 DST=185.81.3.142 PROTO=TCP SPT=443 DPT=25421 Feb 22 15:35:33 SRC=80.92.47.166 DST=46.254.35.176 PROTO=TCP SPT=443 DPT=8856 Feb 22 15:35:33 SRC=80.92.47.166 DST=93.95.217.11 PROTO=TCP SPT=443 DPT=34137 Feb 22 15:35:34 SRC=80.92.47.166 DST=185.81.3.57 PROTO=TCP SPT=443 DPT=33319 Feb 22 15:35:35 SRC=80.92.47.166 DST=185.81.3.57 PROTO=TCP SPT=443 DPT=33319 Feb 22 15:35:39 SRC=80.92.47.166 DST=46.254.35.179 PROTO=TCP SPT=443 DPT=34507 Feb 22 15:35:41 SRC=80.92.47.166 DST=185.81.3.95 PROTO=TCP SPT=443 DPT=26852 Feb 22 15:35:41 SRC=80.92.47.166 DST=185.81.3.95 PROTO=TCP SPT=443 DPT=26852 Feb 22 15:35:43 SRC=80.92.47.166 DST=185.81.3.121 PROTO=TCP SPT=443 DPT=14070 Feb 22 13:46:03 SRC=80.92.47.166 DST=46.28.0.33 PROTO=TCP SPT=443 DPT=57097 Feb 22 13:42:04 SRC=80.92.47.166 DST=46.254.33.147 PROTO=TCP SPT=443 DPT=35269 Feb 22 13:42:17 SRC=80.92.47.166 DST=46.254.33.194 PROTO=TCP SPT=443 DPT=27309 Feb 22 13:42:17 SRC=80.92.47.166 DST=46.254.33.194 PROTO=TCP SPT=443 DPT=61675 Feb 22 13:42:42 SRC=80.92.47.166 DST=46.30.243.11 PROTO=TCP SPT=443 DPT=38538 Feb 22 13:42:42 SRC=80.92.47.166 DST=46.30.243.11 PROTO=TCP SPT=443 DPT=47833 Feb 22 13:43:04 SRC=80.92.47.166 DST=46.254.33.2 PROTO=TCP SPT=443 DPT=42794 Feb 22 13:43:15 SRC=80.92.47.166 DST=46.30.243.18 PROTO=TCP SPT=443 DPT=33818 Feb 22 13:43:33 SRC=80.92.47.166 DST=46.254.33.131 PROTO=TCP SPT=443 DPT=8818 Feb 22 13:53:21 SRC=80.92.47.166 DST=46.254.33.25 PROTO=TCP SPT=443 DPT=16570 Feb 22 13:53:31 SRC=80.92.47.166 DST=46.30.243.81 PROTO=TCP SPT=443 DPT=14519 Feb 22 13:53:31 SRC=80.92.47.166 DST=46.30.243.81 PROTO=TCP SPT=443 DPT=14519 Feb 22 13:53:31 SRC=80.92.47.166 DST=46.254.33.101 PROTO=TCP SPT=443 DPT=55477 Feb 22 13:53:32 SRC=80.92.47.166 DST=46.254.33.101 PROTO=TCP SPT=443 DPT=55477 Feb 22 13:53:38 SRC=80.92.47.166 DST=46.254.33.220 PROTO=TCP SPT=443 DPT=55932 Feb 22 13:53:38 SRC=80.92.47.166 DST=46.254.33.220 PROTO=TCP SPT=443 DPT=55932 Feb 22 13:53:41 SRC=80.92.47.166 DST=46.254.33.103 PROTO=TCP SPT=443 DPT=35157 Feb 22 13:53:53 SRC=80.92.47.166 DST=46.254.33.43 PROTO=TCP SPT=443 DPT=61978 Feb 22 13:53:54 SRC=80.92.47.166 DST=46.30.243.88 PROTO=TCP SPT=443 DPT=10627 Feb 22 13:53:55 SRC=80.92.47.166 DST=46.30.243.122 PROTO=TCP SPT=443 DPT=64368 Feb 22 13:54:02 SRC=80.92.47.166 DST=46.254.33.205 PROTO=TCP SPT=47154 DPT=80
——
С уважением,
Константин Осин
Департамент по работе с клиентами
RU-CENTER Group
https://nic.ru
Вот те на, почему так произошло, а потому что системой занимаюсь я, но к ней нет предпосылок что ее взломали:
Доступ по SSH только по ключам
(см заметку:"Изучаем переход ключей SSH на Ed25519"
)Доступ по SSH только с авторизованных IP адресов
Доступ к FTP и Passive FTP также только с авторизованных IP адресов
а во вне доступно только 80/tcp & 443/tcp
— а это в нашем случае Web
-сервис где в качестве сайта(ов) используется Bitrix
, за него отвечают подрядчики, а подрядчиков, обслуживающих сайт(сайты) у нас с момента как я работаю в этой конторе было несколько.
Вот чем плохи подрядчики — они меняются, что они делают порой не понятно, все должно делаться исключительно собственными силами, учить своих специалистов.
Так ладно.
Шаг №1:
Захожу на сайт https://ekzorchik.ru/bitrix
со своими административными правами и смотрю журнал вторжений: Настройки - Проактивная защита - Журнал Вторжений
в поле "Событие"
вписываю "Попытка атаки через"
и нажимаю "Найти"
, вижу отсортированные попытки
Уже что-то, полистав журнал событий как временная мера прихожу к выводу, что нужно каким-либо способом колонку IP
экспортировать. И экспортировать можно весь журнал событий в Excel
, такой функционал в нашем Bitrix
есть, делается следующим образом:
в правом верхнем углу чуть ниже есть значок шестеренки, нажав на который выбираем элемент меню "Excel"
когда выбрал элемент меню "Excel"
через браузер автоматически скачивается лог: event_log.xls
Отчет в Excel
представляет из себя таблицу:
Ну а тут все просто, применяю форматирование и колонку "IP"
копирую в текстовый файл, к примеру log.txt
Шаг №2:
Внедряю к серверу с осью Ubuntu 18.04
и к настроенному брандмауэру функционал блокировки злоумышленников с которых возникают попытки несанкционированного подключения с целью проэксплуатировать какую либо уязвимость в функционале сайта под Bitrix.
А функционал блокировки будет строиться на базе заметки "GEO блокировка через firewalld на Ubuntu 22.04"
, но перед этим сформированный log.txt
нужно подготовить:
Удалить повторяющиеся IP
-адреса
nano log.txt wc -l log.txt 307 log.txt - было адресов cat log.txt | uniq -u > wanblock.zone wc -l wanblock.zone wanblock.zone - стало адресов после удаления повторяющихся sudo firewall-cmd --permanent --new-ipset=wanblock.zone --type=hash:net --option=family=inet --option=hashsize=4096 --option=maxelem=200000 sudo firewall-cmd --zone=drop --ipset=wanblock.zone --add-entries-from-file=/home/ekzorchik/wanblock.zone --permanent sudo firewall-cmd --permanent --zone=drop --add-source="ipset:wanblock.zone" если после изменения /home/ekzorchik/wanblock.zone вы опять делаете sudo firewall-cmd --permanent --zone=drop --add-source="ipset:wanblock.zone" Warning: ALREADY_ENABLED: ipset:wanblock.zone success
то изменения вносятся, т.е. ваш ipset:wanblock.zone
дополняется
На заметку: Стоит осторожно подходить к процедуре добавления в брандмауэр списка адресов так как в нем может содержатся Ваш WAN-IP
если кто-либо из сам попытался проэксплуатировать что-либо из зафиксированного журнала событий, чтобы не заблокировать самого себя.
Чтобы удалить из списка IP
-адрес можно просто проверить что он там есть, а потом через текстовый редактор удалить:
sudo bash -c "cat /etc/firewalld/ipsets/wanblock.zone.xml" <?xml version="1.0" encoding="utf-8"?> <ipset type="hash:net"> <option name="family" value="inet"/> <option name="hashsize" value="4096"/> <option name="maxelem" value="200000"/> <entry>103.14.26.206/32</entry> <entry>165.22.212.100/32</entry> <entry>52.167.144.176/32</entry> <entry>89.151.179.147/32</entry> <entry>40.77.167.53/32</entry> <entry>66.249.64.230/32</entry> <entry>5.161.97.117/32</entry> <entry>94.180.250.151/32</entry> </ipset> sudo nano /etc/firewalld/ipsets/wanblock.zone.xml sudo firewall-cmd --reload
Короче, я предпринял первые шаги, которые сперва увидел, по итогу связавшись с поддержкой nic.ru там отметили, что активность прошла.
Но этого мало как по мне.
Шаг №3:
На функционале Bitrix
насколько я знаю есть:
Настройка - Проактивная защита - Сканер безопасности
Запустил сканирование
Настройка - Проактивная защита - Веб-антивирус
Включил
Шаг №4:
Поставил на Ubuntu 18.04 Server
антивирусное программное обеспечение в лице утилиты maldet
. Запустил полное сканирование каталога /var/www/html
— никаких вредоносных файлов либо кода не выявлено:
Проверка прошла, сканирование maldet
никаких вредоносных файлов либо кода не выявило.
Все отчеты чистые.
HOST: ekzorchik.ru
SCAN ID: 240227-1819.18544
STARTED: Feb 27 2024 18:19:50 +0300
COMPLETED: Feb 27 2024 19:39:07 +0300
ELAPSED: 4757s [find: 10s]
PATH: /var/www/html/ekzorchik
TOTAL FILES: 103966
TOTAL HITS: 0
TOTAL CLEANED: 0
Шаг №5:
Совместно с подрядчиками выявили файлы которые удалили:
restore.php.1 - скрипт восстановления из бэкапа. При восстановлении из бэкапа в конце сам битрикс его должен удалять в целях безопасности. Почему он там остался - вопрос.
index_1.php - phpinfo(); - Тех. информация о конфигурации PHP в системе
i.php - phpinfo(); - Тех. информация о конфигурации PHP в системе
siteekbekzorchikru.php - Тех. информация о конфигурации PHP в системе
"fokin.php" "fdg.php" "f_auth_bitrix.php" - был вызов функции для авторизации под админом
"admin.php" - был вызов функции для авторизации под админом, но сам код был закомментирован
в "adminer" - был скрипт по управлению БД (с требованием доступа)
Список удаленных файлов, которые вызвали подозрение:
- /var/www/html/ekzorchik_2022/adminer
- /var/www/html/ekzorchik_2022/bitrix_server_test.php
- /var/www/html/ekzorchik_2022/tst.php — phpinfo();
- /var/www/html/ekzorchik_2022/index_1.php — phpinfo();
- /var/www/html/ekzorchik_2022/admin.php
- /var/www/html/ekzorchik/adminer
- /var/www/html/ekzorchik/admin.php
- /var/www/html/ekzorchik_old/adminer
- /var/www/html/ekzorchik_old/admin.php
- /var/www/html/ekzorchik_old/tesst.php
- /var/www/html/baikal/siteekbekzorchikru.php — phpinfo();
- /var/www/html/baikal/test.php — отправка почты (leonov_andrew@mail.ru)
- /var/www/html/chel/pi.php — phpinfo();
- /var/www/html/chel/siteekbekzorchikru.php — phpinfo();
- /var/www/html/chel/test.php — отправка почты (leonov_andrew@mail.ru)
- /var/www/html/ekb/admin.php
- /var/www/html/ekb/siteekbekzorchikru.php — phpinfo();
- /var/www/html/ekb/te.php — phpinfo();
- /var/www/html/ekb/test.php — отправка почты (leonov_andrew@mail.ru)
- /var/www/html/ekb/restore.php.1
- /var/www/html/kazan/restore.php.1
- /var/www/html/kazan/siteekbekzorchikru.php
- /var/www/html/kazan/test.php — отправка почты (leonov_andrew@mail.ru)
- /var/www/html/kazan/restore.php.1
- /var/www/html/khabarovsk/restore.php.1
- /var/www/html/khabarovsk/siteekbekzorchikru.php
- /var/www/html/khabarovsk/test.php — отправка почты (leonov_andrew@mail.ru)
- /var/www/html/krasnodar/restore.php.1
- /var/www/html/krasnodar/siteekbekzorchikru.php
- /var/www/html/krasnodar/test.php — отправка почты (leonov_andrew@mail.ru)
- /var/www/html/perm/restore.php.1
- /var/www/html/perm/siteekbekzorchikru.php
- /var/www/html/perm/test.php — отправка почты (leonov_andrew@mail.ru)
- /var/www/html/rostov/restore.php.1
- /var/www/html/rostov/siteekbekzorchikru.php
- /var/www/html/rostov/test.php — отправка почты (leonov_andrew@mail.ru)
- /var/www/html/shop/i.php — phpinfo();
- /var/www/html/spb/restore.php.1
- /var/www/html/spb/siteekbekzorchikru.php
- /var/www/html/spb/test.php — отправка почты (leonov_andrew@mail.ru)
- /var/www/html/spb/fokin.php
- /var/www/html/test/adminer
- /var/www/html/test/admin.php
- /var/www/html/test/index_1.php — phpinfo();
- /var/www/html/test/tst.php — phpinfo();
- /var/www/html/test/auth/fdg.php
- /var/www/html/testshop/tst.php — phpinfo();
- /var/www/html/tomsk/restore.php.1
- /var/www/html/tomsk/pi.php
- /var/www/html/tomsk/siteekbekzorchikru.php
- /var/www/html/tomsk/test.php — отправка почты (leonov_andrew@mail.ru)
- /var/www/html/volgograd/restore.php.1
- /var/www/html/volgograd/siteekbekzorchikru.php
- /var/www/html/volgograd/test.php — отправка почты (leonov_andrew@mail.ru)
- /var/www/html/volgograd/f_auth_bitrix.php
- /var/www/html/volgograd/pma
- /var/www/html/ekb/20210314.tar.gz
Вывод: все что для теста и после какого-либо переноса должно чистится, а вообще для теста использовать тестовую среду, на боевом ничего не тестировать.
По итогу еще через несколько дней написали в поддержку nic.ru
— пришел ответ, что уже несколько дней подозрительной активности и писем на наш IP
нет. Делаем вывод, что мы все почистили, надеюсь правда.
А так, теперь я периодически провожу выгрузку в Excel
и заношу в блок лист источника, который зафиксировался в Bitrix
отчета.
На этом данный кейс успешно завершен, с уважением автор блога Олло Александр aka ekzorchik.