Вирус .htaccess в 1С-Битрикс: лечение и профилактика

Владельцы сайтов на платформе 1С-Битрикс регулярно сталкиваются с кибератаками, среди которых особую опасность представляет заражение через файлы .htaccess. Этот тип вредоноса модифицирует или массово создает конфигурационные файлы Apache, нарушая работу сайта и ставя под угрозу данные пользователей. Рассмотрим методы обнаружения, устранения и профилактики таких атак.

# Симптомы заражения

  1. Ошибка Forbidden
    Массовое появление файлов .htaccess блокирует доступ к разделам сайта.
  2. Непредвиденные редиректы
    Посетители перенаправляются на фишинговые или рекламные ресурсы.
  3. Подозрительные файлы и папки
    В структуре сайта обнаруживаются:
    • Файлы с названиями wp-content.php, security.php, siteheads.php (могут имитировать WordPress для маскировки), и др.
    • Каталоги вроде /wp-includes/ или /assets/images/ с вредоносным кодом.
    • Скрипты с хаотичными именами (например, 3da2das7da.php).

# Пример зараженного .htaccess

<FilesMatch '.(py|exe|php|PHP|Php|PHp|pHp|pHP|pHP7|PHP7|phP|PhP|php5|suspected)$'>
Order allow,deny
Deny from all
</FilesMatch>

# Лечение

  1. Экстренные меры
    • Временно заблокируйте доступ к сайту (например, через настройки хостинга).
    • Остановите веб-серверы Apache/Nginx для предотвращения дальнейших изменений.
  2. Восстановление из бэкапа или Git
    • Если используется Git:
      git reset HEAD~1 # Откат последнего коммита
      Важно: сохраните локальные изменения (ваши) перед откатом.
    • Если контроль версий не настроен — начните использовать его для предотвращения будущих инцидентов.
  3. Удаление зараженных .htaccess
    Удалите все файлы .htaccess с правами 0444 (только для чтения):
    find . -type f -perm 0444 -name ".htaccess" -delete
    
    После этого восстановите оригинальные конфигурационные файлы из резервной копии.
  4. Очистка от вирусных файлов
    • Используйте встроенный сканер Битрикс: /bitrix/admin/xscan_worker.php ("Поиск троянов").
    • Вручную удалите подозрительные файлы и папки (например: /wp-includes/, siteheads.php, /assets/images/, и т.д.).
  5. Обновление системы
    • Установите последние версии ядра 1С-Битрикс и модулей.
    • Удалите неиспользуемый модуль vote, включая его файлы в /bitrix/modules/vote/.

# Бэкдор/Уязвимость

Дата обнаружения: 10.03.2025

Уязвимые модули:

  • esol.importexportexcel <= 2.8.9
  • esol.importxml <= 1.0.7
  • kda.importexcel <= 2.8.9
  • kda.exportexcel <= 2.8.9

Уязвимые файлы:

  1. /bitrix/admin/esol_export_excel_cron_settings.php
  2. /bitrix/admin/esol_import_xml_cron_settings.php
  3. /bitrix/admin/esol_import_excel_cron_settings.php
  4. /bitrix/admin/esol_export_xml_cron_settings.php
  5. /bitrix/admin/esol_import_excel_cron_settings.php
  6. /bitrix/admin/kda_export_excel_cron_settings.php
  7. /bitrix/admin/kda_import_excel_cron_settings.php
  8. /bitrix/admin/esol_allimportexport_cron_settings.php

Рекомендации:

  • Обновите модули до последних версий.
  • Удалите неиспользуемые модули и связанные с ними файлы.
  • Либо обезопасьте файл:
    // Закомментируйте это фрагмент
    if(isset($_REQUEST["action"]) && $_REQUEST["action"]=="getphpversion")
    {
    	$res = '';
    	if(isset($_REQUEST['path']) && strlen($_REQUEST['path']) > 0)
    	{
    		$phpPath = htmlspecialchars($_REQUEST['path']);
    		$arPhpLines = array();
    		@exec($phpPath.' -v', $arPhpLines);
    		if(is_array($arPhpLines) && isset($arPhpLines[0]) && preg_match('/PHP\s*([\d\.]+)/i', $arPhpLines[0], $m) && !isset($arVersions[$m[1]]))
    		{
    			$res = $m[1];
    		}
    	}
    	echo $res;
    	die();
    }
    
    // Либо перенесите его
    require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");
    // ->> Сюда <<-- 

Примечание: Если вы не уверены в своих действиях, обратитесь к разработчикам или специалистам по кибербезопасности. Самостоятельное удаление файлов без резервирования может привести к потере данных.

© 2026 MB

Desing by mb4design