AlexSocol и его бэкдор в Alfheim

Баним AlexSocol?


  • Всего проголосовало
    50
  • Опрос закрыт .
Статус
В этой теме нельзя размещать новые ответы.
586
32
136
Доброго времени суток. Решил написать после обнаружения большого бэкдора в одном моде(Alfheim). Он ПРЕДУСМОТРЕН автором. Почему туда полез? Ко мне обратился знакомый администратор, к которому пришли на проект и воспользовались этим бэкдором с целью украсть наработки и развалить сервер. Данный субъект пришел на проект провел махинацию, которую НЕЛЬЗЯ, не зная заранее отследить. Получил себе OP, ему выдало предмет(из свого же мода) на сайлент ГМ 0-1 , и пошел разваливать сервер, полез менять квесты, лут с мобов, ну и рекламить свой проект(FDWorlds).

Ну что же теперь к сути самой проблемы. В моде написан код который позволяет это сделать на любом проекте, на котором установлен данный мод. Что и как происходит? Заходят к вам на сервер на котором установлен данный мод, и с помощью входа в внутреннею систему авторизации, получает права на вашем сервере. Какие? -От любого предмета в инвентарь до operator и gamemode. Автор мода сделал такой бэкдор для себя и друзей. Скрины кода предоставлю ниже. Но что самое интересное что, база данных с аккаунтами находиться удаленно(файл BitBucket), которую он может редактировать в любой момент. Я полез еще дальше ковыряться в этом коде и обнаружил что автор поступил очень хитро. В сорцах на BitBucket`e вырезан бэкдор, но его личная система авторизации все равно присутствует. На curse лежит собранная версия с полным пакетом говна которая при желании убьет любой сервер =). Собственно разбор бэкдора с пруфами.(начинаем с ...core.hanlder.KeyBindingHandler#secret)

1.Вход на сервер [alfheim.common.core.helper. ContributorsPrivacyHelper:54] (Инициализируем отправку пакета на сервер)
1.png
2. Пакет MessageContributor [alfheim.common.network.MessageContributorHandler:1]
Клиент: считывание авторизационных данных, формирование содержания пакета
Сервер: получение данных и процедура сверки данных с удаленной базой
Сборка пакетов для авторизации всех тех кто есть в списке «тиммейтов».
2.png
3. Пакет MessageKeyBindHandler
[alfheim.common.network.MessageKeyBindHandler:1]
Обработка тригеров по нажатию на клавиши.
3.png
4. Эти самые обработчики
super()
[alfheim.common.core.handler.KeyBindingHandler. secret():101]
Данная функция выдает права OP авторизованным в системе, если в руках у них 9 палок
4.png
Получение хешей из базы:
[alfheim.common.core.helper. ContributorsPrivacyHelper. download():1]
5.png
Ссылка: https://bitbucket.org/AlexSocol/alfheim/raw/master/hashes.txt
Wayback Machine <- веб архив, если на момент Вашего прочтения он подчистит.
От себя, предлагаю бан аккаунта, как бы мне не хотелось(только туторы его оставьте для будущих читателей форума).
 

Вложения

  • Alheim.zip
    307.4 KB · Просмотры: 50
Последнее редактирование:
1,976
68
220
Ех, давно меня тут не было. Ну чо пацаны, батя в здании так скозатб, так шо готовьте свои французские букли, сейчас будем рвать на байткод.

Топикстартер чисто такой "слышу звон но не знаю где он", мдауш... :rolleyes:

Отвечу не по порядку, но по пунктам:
а) не гитлаб, а битбакит
б) её там нет, потому что её нет в новых версиях
в) если бы ты всё внимательно просмотрел, ты бы видел, что получить опку могу только я, итем на гм тоже держать могу только я, нужно мне это для тестирования Альфхейма, я не играю и сервера не разношу (делать мне больше нечего -_- если не согласен докажи обратное)
в.1) Остальные пароли для контрибьюторов, то есть тех, кто помогает в разработке и получает какие-то визуалки - крылья, ауры, прочее. С упомянутым выше проектом связан только последний игрок, и у него перед головой летает книжка. Пруфы ниже.
г) без пароля, который дважды хешируется по SHA-256 с солью (сахаром, который по факту не особо помогает, но всё же) ты попросту ничего не получишь, и, более того, даже на мой ник не зайдёшь. В пароле на данный момент больше полусотни символов. Да, никто не отменяет коллизии, но их тоже надо найти.
д) молодец, что разафишировал это на весь интернет, теперь всякие дурачки пойдут брутфорсить и ломать сервера со старыми версиями -_-
е) бан аккаунта, на который я не заходил больше года, звучит убедительно. Зашёл ибо мне скинули ссылку

P.S. тэг "вред" убери, ибо вреда пк оно не наносит, как и персональным данным, разве что может как-то немного помешать геймплею, но не более того

P.P.S. пруфлинк пункта в.1

P.P.P.S. ваши пруфы насчёт того, что какой-то челик узнал про мои возможности, каким-то образом подобрал пароль, вошёл именно на ваш сервер и разнёс его - они будут? Или реально "вижу опку, значит ты и сломал"?

P.P.P.P.S ес хош чота ещё сказать, кинуть какую предъяву, ещё какой вброс, и хочешь, чтобы я это увидел - пиши либо в вк, либо в телегу, либо дискорд, либо ещё куда, ибо не факт, что я сюда вернусь в скором времени. Никнейм везде один, AlexSocol, так шо найдёшь.
 
Последнее редактирование:
7
6
Еще загрузку своей либы (Alfheim-Modular.jar) прикрутил в последних версиях, качает ее с репы. Также может в любой момент ее подменить и не понятно что подгрузится на сервера пользователей...

И по поводу тестирования, не думаю что выполнение команд было сделано только с целью тестирования. Конечно, я не смогу это никак доказать, но если просто так подумать. И sha256 с солью это просто смешно
 

GoogleTan

Картошка :3
1,354
43
310
Определение бекдора примерно такое: Способ получения прав администратора при помощи кода намеренно встроенного в ПО. Так что у тебя есть бэкдор. Тестить можно и в креатив мире, либо на сервере где тебе дали оп если уж так надо.
 
7,099
324
1,510
её там нет, потому что её нет в новых версиях
если бы ты всё внимательно просмотрел, ты бы видел, что получить опку могу только я, итем на гм тоже держать могу только я, нужно мне это для тестирования Альфхейма
Если это не что-то вредоносное, то зачем это скрывать, перезаписывая историю git? И почему это не выключается в конфиге?(а точнее, почему не выключено по дефолту?)
 

Sainthozier

Стрелочник
623
11
369
Ору, а я почему-то думал, что вы кенты )
Или это такой дружеский стёб?
 
586
32
136
Про твой SHA с солью и так понятно, пруфы, про то что в последних версиях нету - бред, на скринах последняя 31 версия)))
 
1,057
50
234
Ну тут все, финиш господа.
На кой черт ОП на ЛОКАЛЬНОМ СЕРВЕРЕ?
Ты один раз там выдаешь себе ОП и все, забываешь про это. (Если ты конечно не мазохист, и не ставишь по-новой сервер при каждом билде).

Отговорки, сплошные.
 
1,417
44
594
586
32
136
Администраторы серверов уже собрали все доказательства, жалоба на курс будет. Но и от вас будет приятно, если кинете жалобу
 
Последнее редактирование:
1,417
44
594
Поддерживаю бан аккаунта, так что давайте кликнем еще 2 кнопочки, если не сложно:
1590734705075.png

Если человек в опенсурс моде делает дыры, то и в заказах спокойно может. Нет аккаунта = меньше проблем у пользователей.
 
15
25
Добавление. Так называемая авторизация в этом моде максимально примитивная и к тому же дырявая. Другими словами чтобы получить опку вам достаточно иметь аккаунт с ником AlexSokol.

Код который выдает оп. По умолчанию вызывается клавишей U отправляет кейбинд пакет на сервер и обрабатывается в следующем методе.
Bitbucket

Метод isCorrect который разрешает дальнейшее выполнение кода. Максимально тупой метод так как мапа contributors
Bitbucket
всегда содерджит пары в которых ключ и значение равны друг другу, например {AlexSokol=AlexSokol}.

Из этого следует что игрок с ником AlexSokol может получить оп. Но если вы сейчас попробуете зайти на сервер с таким ником, вас кикнет с сообщением, что ваши данные для входа неверны. Почему так?
Когда вы входите на сервер, тот отправляет вам пакет, в котором просит ответить ему пакетом с вашими данными для авторизации. Если логин и пароль не совпадают, вас кикает с сервера.
Bitbucket

Что будет, если ваш клиент никогда не отправит ответ серверу? Ничего.
Последний билд на курсе (BETA-31 от 4 мая 2020) также содержит этот вредоносный код

каждый может убедиться сам используя любой декомпилятор по вкусу.
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху