Новости

  • 23 018
  • 42
  • 22

Уязвимости Not Enough Items

Уязвимости Not Enough Items
Уязвимости Not Enough Items

Этой статьёй мы снова продолжаем тему взломов с помощью модов. На этих выходных наши RedPower сервера подверглись взлому - была проведена раздача большого количества ресурсов.

Это не дюп
Первое, что нас насторожило - среди ресурсов, которые раздавали были квантовые генераторы. Это сразу отвергло теорию дюпа, так как предмет сначала нужно получить, чтобы его дюпнуть. А как это сделать с предметом из творческого режима у которого ещё нет крафта?

Первый поиск - безрезультатно
Тут напрашивается вывод только один - взлом. Была проведена большая проверка, которая никаких результатов не дала. Оставался только один вариант взлома - с помощью пакетов (о чём мы писали в предыдущей статье). Позже выяснилось, что у игрока (и его аккаунтов), проводившего раздачу был творческий режим. Это значительно сузило круг поиска, потому что игровой режим можно переключить только двумя способами: с помощью команды gamemode и с помощью кнопки в NEI. Повторный поиск тоже ничего не дал. Банить аккаунты взломщика не имело смысла - это не решить проблему: он может создать новые, либо его последователи продолжать это дело. Выход из ситуации только один - искать уязвимость и фиксить её.
Решено было установить "капкан" и ждать визита взломщика.

"Капкан" сработал
Взломщик заходит в очередной раз проверить работу уязвимости и успешно попадает в наш "капкан". Правда, сам взловщик при его срабатывании ничего не заметил, а вот мы увидели, где находится сама дырка. Верным помощником взломщика отказался мод Not Enough Items (который стоит не только на клиенте, но и на сервере для полноценной интеграции). Взлом осуществлялся с помощью одного пакета, который серверная часть NEI принимала без каких-либо проверок.

Что же нам ChickenBones приготовил?
Давайте рассмотрим, как работает серверная часть NEI.

ServerPacketHandler - обработчик пакетов, присланных клиентом (игроком). На первый взгляд здесь всё хорошо. Проверка прав доступа есть. Мы выяснили, что взломщик использовал пакет с type=13, который переключает творческий режим. Но как он это сделал, если тут есть проверка доступа?
Уязвимости Not Enough Items
А теперь посмотрим, как работает функция проверки доступа authenticatePacket() в NEIServerConfig. И тут мы видим, что на некоторые type пакетов она тупо возвращает true не делая никаких проверок! Как раз на наш пакет с type=13 она всегда возвращает true (даёт добро на выполнение действия).
Уязвимости Not Enough Items
Вот и вся суть взлома. Сервер спокойно принимает пакет от клиента и включает игроку творческий режим.

Со стороны клиента отправка пакета очень проста. Остаётся лишь назначить клавишу, которая будет выполнять этот код и установить мод на клиент (лаунчеры не помеха).
Уязвимости Not Enough Items

Исследуя этот код, мы нашли ещё одну аналогичную уязвимость. Отправив пакет с type=15 можно изменить тип моба, который создаёт спаунер. Этот пакет тоже не прверяется на наличие прав доступа. Отправка пакета со стороны клиента уже немного отличается - нужно указать местоположение и тип моба, который будет создавать спаунер.
Этот пакет используется NEI для установки спаунеров мобов игроком, так как в свойства предмета нельзя записать тип моба, который он будет создавать - это не предусмотрено игрой.

Неудивительно, что автор мода допустил такие ошибки. Проверка доступа к функциями раскидана по разным частям мода, поэтому так легко не заметить отсутствующую проверку. Благо, в версии 1.6.4 автор во время переписывания этой функции, исправил проблему. Таким образом уязвимость работает только на версии Minecraft 1.5.2 и ниже.

Осторожно! Вымогатели
Некоторые администраторы серверов уделяют очень много времени на поиск всевозможных уязвимостей и багов в модах. Потом их фиксят. Это всё конечно хорошо, но сейчас пошла мода практиковать найденные уязвимости на чужих серверах и предлагать их администрации фикс за деньги, что по сути является вымогательством. Принцип таков: "Либо ты у нас покупаешь фикс и всё будет хорошо, либо твой сервер будут всё время ломать". Самое интересное, что на просьбы прекратить взламывать сервер они отвечают "Это не мы ломаем, это всё игроки. Мы к этому не вообще не причастны. Мы всего-лишь предлагаем Вам фикс. Покупать фикс или нет - это уже ваше дело.". Хотя на самом деле продавец и те, кто ломают ещё как связаны друг с другом. Таким образом вымогатели ставят администрацию серверов в безвыходное положение: купить фикс или закрыть сервер. Вымогатели делают деньги на продаже фиксов (ценник почти всегда завышен) и уязвимости игрокам, которые хотят "пошалить".

Выход есть! Где используют уязвимость? Правильно! На вашем сервере. А знаете, за кем в таком случае преимущество? - За вами. Взломщики играют на вашем сервере, а значит, по вашим правилам. Вы можете следить абсолютно за всем, что они делают на сервере. Просто установите слежку за всеми действиями игроков (включая присылаемые ими пакеты). С системой слежки взломщик сам выведет Вас на уязвимость совершенно бесплатно! Далее останется только написать фикс. Таким образом вымогатель останется с носом.

Заключение
Публикуйте найденные уязвимости в свободном доступе. Это в первую очередь сорвёт продажи вымогателям, потому что число серверов, где будет работать уязвимость значительно сократится, ведь есть на свете добрые люди, которые выкладывают фиксы бесплатно.
Публикуя уязвимости Вы помогаете другим проектам, а они Вам, если будут это делать тоже.
Стоит отметить, что при таком раскладе схема вымогательства потеряет свою актуальность, а игроки всех серверов перестанут страдать от регулярных откатов и вайпов.
  • Автор: Andrey
  • Опубликовано:

42 комментария

BOOM96
Не хило, ёлки палки
Demon13
Ясно теперь,как на других серверах получали вещи с креатива,по крайней мере тут пофиксили...
Zetonator
А как показать фикс уязвимости другим? Ну чтобы вымогатели остались без хлеба?
Или ссылку сюда прислать?
guineafrom
Цитата: Zetonator
А как показать фикс уязвимости другим? Ну чтобы вымогатели остались без хлеба?
Или ссылку сюда прислать?

Гайд?Не?
Andrey
Автор
Цитата: Zetonator
А как показать фикс уязвимости другим?
Фикс делается элементарно. Нормальные проекты сами могут написать его, а школопроэктам я не помогаю. Самое сложное сделано мною - найти уязвимость (которую продают за деньги).
_nanoDOK_
надеюсь больше проблем нет,и вы сможете взяться за вайп остальных серверов....
Zetonator
Цитата: Andrey
Цитата: Zetonator
А как показать фикс уязвимости другим?
Фикс делается элементарно. Нормальные проекты сами могут написать его, а школопроэктам я не помогаю. Самое сложное сделано мною - найти уязвимость (которую продают за деньги).

А, ну то есть скинуть ссылку сюда?
maxiMAN113
будем осторожны
CNDirectYI
Цитата: maks550a
Нам всем очень повезло, что у нас такая хорошая администрация...

согласен
TheDeino
Тут администрация намного лучше чем на *одном известном мне проекте*, там они только на HiTech сидят и им и занимаются, а на остальные им плевать, читер? пусть играет! Админам пофигу. А тут вот как за серверами следят!)
edgar5
loooooooooooooooooooooool
paramime777
молодцыхорошо справились
Karasi
Красавчики!
MrCivilian
Хорошо Справились! Молодцы! Хорошая Администрация!
STickFeeD
Я же взламывал :D
AILKAIII
да хорошая админестрация!
lord_Bana
наконец то исправили а то из за етих читеров сервера постоянно откатывают
Eniology
ммм прикольненько классная тема разоблачения читеров-глиферов
TURALEX31
Да уж - бывает же **** в жизни
Puft
Пытался взламывать ваш серв через ForgeOMB , отправляет пакеты , заставляет админов меня опать . Я ставл крет раздаю вещи . Мой план провалился лолООЛЛОЛ!
Предыдущая
1 2 3
Информация
Комментировать статьи на сайте возможно только в течении 30 дней со дня публикации.
Нашли очепятку? Выделите её и нажмите Ctrl+Enter.