Перейти к содержимому

Препарируем DDosia. Часть 2.

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

Ямамото Цунэтомо «Кодекс Бусидо»

После выхода первой части повествования о нелёгкой жизни Ddosia, мамкины хакеры из NoName057(16) решили что стиль страуса из кунг-фу сильнее и выкинули меня с канала.
После чего решили сменить IP (на такой же латвийский) и конечно переписать систему авторизации.
У «пассажира» в моём лице конечно не такой большой icq как у настоящих хакеров, но посмотреть на работу мастеров было любопытно. Сейчас и рассмотрим что же там интересного.

По поводу анонимности и безопасности стало хуже теперь передаются данные о IP и геолокации, так же ID (hash ID) устройства на котором запускается клиент. Под Linux данный функционал не работает,поэтому у пользователей проблемы с авторизацией, но видимо настоящим хакерам убеждения не позволяют запустить tcpdump.

Это всё лирика, нам «пассажирам» с низким icq не понять, но у нас высокий IRC поэтому представляем вам систему авторизации и поддержания соединений PING/PONG, год разработки 1988.
Алгоритм прост как мычание
1) отправляем запрос POST /login
2) получаем в ответ магическое число — токен авторизации
3) плюсуем 15 (в первой части было 5, сложность алгоритма растёт, нужно больше мощности для расшифровки)
4) отправляем токен, получаем ответ и далее подкидываем фэйковую статистику
5) Profit

Предельно просто, но цели теперь не видно без авторизации, для этого я написал (на коленке) скрипт с графическим интерфейсом (UPD: исправил досадную опечатку в коде) на блокирующих асинхронных вызовах, поэтому интерфейс подтормаживает. В исходниках можно посмотреть весь алгоритм подробнее, ну и поругать меня за криворукость и лень.

Пару слов об авторизации пользователя алгоритм bcrypt 2A cолёный и прокручен 16 раз, стандартный для Node.js на котором и сбацан backend, в качестве пароля выступает Telegram ID пользователя. Зная вид Telegram ID можно расшифровать с помощью Hashcat. Скрипт для интересующихся ниже:

import bcrypt

passwd = b'266666666'

salt = bcrypt.gensalt(rounds=16)
hashed = bcrypt.hashpw(passwd, salt)

if bcrypt.checkpw(passwd, hashed):
    print("match")
    print(passwd)
    print(salt)
    print(hashed)
else:
    print("does not match")

Вывод: 
b'266666666'
b'$2b$16$/UFVB9LYofTtPHPdF6uKSerYA4S6.fNe.0enJkI3VcILUPiPJ8GXm'

Ждём следующих поделок от мамкиных хакеров с новыми алгоритмами шифрования +25 и конечно сбор персональных данных без которого клиент в данный момент не запускается на Linux. Фокус с подменой IP в исполняемом файле из первой части работает, алгоритм атаки не изменился, так что собственный ДДос’ер вполне себе актуален.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *