1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Фикс Уязвимости в ядре и модах [1.7/1.6]

Тема в разделе "Управление сервером Bukkit", создана пользователем Firkys, 9 июн 2015.

  1. Автор темы
    Firkys

    Firkys Активный участник Пользователь

    Баллы:
    88
    Skype:
    Firkys
    Имя в Minecraft:
    Firkys
    Однажды была создана тема под названием "Глобальная уязвимость сервера" которая описывала, что:
    • "Игрок заходя на сервер, мог получить из воздуха любой предмет при этом не имея прав администратора". Иначе говоря, была обнаружена новая уязвимость.
    Этой проблемой заинтересовалась одна группа людей (Шевчик, я, РедЕнерджи и другие) и мы начали изучать эту проблему, а точнее думать о том: "Как такое возможно?", "Что же это может быть?", "Где смотреть?", "Кто и что виновато в этом". После раздумий, мы приступили к поиску, а точнее мы начали смотреть исходный код ядра сервера, также модов. В итоге было обнаружено, что некоторые моды не очень правильно используют передачу данных между "клиент->сервер", а точнее клиент может поделать данные, что приведёт к печальным последствиям. В этой теме вы можете обнаружить список проблем, которые мы обнаружили и которые могут привести к печальным последствиям (на вашем сервере) если их вовремя не устранить.

    [​IMG]

    [Ядро forge]
    (1.6)

    В ядре forge существует уязвимость с помощью которой возможен обход режима online-mod. Давайте подробнее, авторизация в ядре происходит так:
    1. обмен информации с "онлайн режимом"
    2. потом обмен информации о модах между сервером и клиентом
    3. после этого игрока логинит на сервере
    Но очерёдность этого не проверяется, поэтому можно сразу начать фазу обмена информации о модах, и сервер вас пустит без каких-либо проверок. Иначе говоря если сервер использует стандартную авторизацию forge, то любой игрок зная данную уязвимость, может подменить данные и зайти под профилем любого игрока, даже администратора.

    Скачать Фиксы:
    [1.6/1.5/1.4] .jar (Требуется ProtocolLib 3.4.0) (c) _Shevchik_ при поддержке Johnny Exidas

    [​IMG]

    [Industrial Craft 2]
    (1.7) [NEW]
    • 1 баг: Актуально до ver 2.2.813 Отправив специальный пакет с клиента - можно без каких-либо ограничений менять данные полей для контейнеров (сундуков) и TileEntity, иначе говоря, взломщик может изменять содержимое как захочет..
    Уязвимый класс:
    • NetworkManager
    [​IMG]

    [Not Enough Items] (1.6)

    • 1 баг: Если мод установлен на сервере, то отправив специальный пакет можно получить режим креатива без всяких проблем.
    [​IMG]

    [Custom NPCs]
    (1.7)

    • 1 баг: Отправив специальный пакет, можно заспаунить любой "Enity" объект при этом не имея прав. Если выставить доступ только опам, то можно в принципе не бояться, при условии что нельзя отдельно зарегать ник админа в другом регистре.
    [​IMG]

    [Bibliocraft]
    (1.7, 1.6)

    • 1 баг: Отправив пакет с клиента, можно получить абсолютно любой "Item" в инвентарь при этом быть простым игроком.
    • 2 баг: Клиент может отправить пакет с координатами и если там пусто, а точнее нет блока, то сервер поставит блок в этом месте который нельзя разрушить даже в креативе. Иначе говоря в любое пустое место на сервере, даже в привате, можно поставить блок который указан в коде мода.
    Скачать Фиксы:
    [1.6.4] (c) TechoMan Фиксит: Первую и вторую проблему
    [1.7] (c) saharin94 Фиксит: Первую проблему и вторую проблему

    [​IMG]

    [AE и некоторые другие моды]
    (1.7)

    • 1 баг: Большинство модов управляют своими тайлэнтитями через тот же пакет. Пересылают её координаты и пытаются её получить на сервере, соответственно при получении чанки загружаются/генерятся и координаты никак не проверяются, соответственно можно загрузить любой чанк по запросу. Иначе говоря вызывать дикие лаиа загрузив +200к чанков в секунду с помощью обычно игрока:D
    Фикс:
    Нужно выставить параметру loadChunkOnRequest: false в cauldron.yml

    [​IMG]

    Отдельное спасибо людям за моральную поддержку и разную инфу также помощь в этом деле:

    Shadow, bartolomeo, jampire, TechoMan и другим пупсикам.
    Отдельное спасибо Шевчику за вечеринку.

    [​IMG]

    Отдельное спасибо за материальную помощь:

    • VTVTima, profi, scrik78, master_c, Dronax, Metronomko, Teror2, trancefer
    [​IMG]

    Обязательно прочти, что написано ниже:

    • Запрещается ЛЮБОЕ обсуждение связанное со взломом проектов, даже вопросы типа: "Где работает уязвимость?", "А этот {проект} кто ломал?" и т.д.
    • Запрещается выкладывание чужой информации которую вы добыли с помощью взлома.
    Пост размещен на реддите..
     
    Последнее редактирование: 15 фев 2016
  2. fhntv24

    fhntv24 Активный участник Пользователь

    Баллы:
    88
    Такс , снял маленькое видео на стирм крафте. Пруф того , что BiblioCraft дюпает. Так же проверялось на других проектах , возможно потом будет так же видео.




    Bibliocraft:
    Фикс библиокрафта. Баг работает только на 1.5 - 1.7. Фикса для 1.5.2 я делать не буду - сами пилите кому надо. Ссылки чтобы скачать есть выше , а теперь куда кидать эти файлы:
    1.7.10: jds.bibliocraft.network
    1.6.4: jds.bibliocraft

    @WARNING: УСТАНАВЛИВАТЬ НА САМЫЕ НОВЫЕ ВЕРСИИ МОДОВ

    Фикс 1.6.4 обхода авторизации:
    кидать в cpw cpw\mods\fml\common\network

    Фикс был скомпилирован для форжа - теперь в MCPC+ ( так же как в Cauldron / Forge ) БУДЕТ писаться список модов клиента в консоль.

    Так же у некоторых PEXы пишут "ошибку" в консоль - это из-за того что вы патчили ядро , и не удалили META-INF (точно не проверялось , но у меня работает магически ...). Если вы удалили META-INF а так же поставили игнор патчей , и пексы всё равно жалуются - пишите мне.

    Фикс будет работать на Cauldron, MCPC+, Forge, etc. Фикс "уникальный" для 1.6. Для более старых версий вам нужно его рекомпилировать. Для этого напишите мне в скайп - обесню что и как и возможно сам сделаю.
    Дырка в авторизации я проверял на 1.4.7 - и она там поойму была так же.

    10.06.2015: Всё кто использывал фикс прошу обновиться - с шансом 1 / большое число игрок не сможет зайти. Я это уже починил , и залил. Ссылка выше должна работать.
    На всякий случай : https://www.dropbox.com/s/ukdml2mjx9m7s8d/FMLNetworkHandler.zip?dl=0

    //TODO: написать историю
     
    Последнее редактирование: 11 июн 2015
  3. Shevchik

    Shevchik Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Решил что надо напbсать как оно всё происходило:

    Итак всё было как обычно, я сидел на рубакките, лениво почитывал темы в поисках чего-нибудь интересного. Увидел тему с многообещающим названием глобальная уязвимость сервер майнкрафт и решил там потусить. В общем меня добавили в конфу в скайпе, и мы началаи работать. По инфе у нас были предметы просто выпадающие из игроков, поэтому подозрение сразу пало на NEI, и командные блоки. Был написан логгер, плюс выданы указания все убрать то, выключить это, снести вон то. Выполнять их конечно никто не стал, чему я собственно не удивился.
    По инфе баг был проверен на 1.6.4, поэтому начали его копать дальше и нашли что у форджа есть пакет который спавнит энтитей, вот только одна проблема, он реально что-то делает только на клиенте, так что эту идею отмели. Была уже ночь всем хотелось спать, да и барта не удалось подначить на то чтобы он зашёл на сервера ещё раз, так что все тупо пошли спать.
    На следующий день таки возникло предположение что дело в каком-то из модов, благо у jampire их было всего 6. Я попросил собрать список общих модов на ломанутых серверах, но угадайте что - а хер.
    Учитывая что я был не дома мне пришлось с тимвьювера сидеть и проверять моды. Тем временен проснулись Дядя Фикус и Красный. Они начали проверать всё что мы вчера накопали, но толку было мало, мы ничего не нашли.
    Первым делом я начал проверять кастомнпц, в них обнаружилась возможность спавнить мобов послав 1 пакет. Причём до дефолту ограничение на только опов не работало, так что я думал что это оно. Но по инфе от Джампера кастомнпц у него были только для опов, да и убирал он их, так что не оно это. Ну то есть мы что-то нашли, но не то. Жаль.... Впрочем поиски таки увенчались успехом, ближе к вечеру нашёлся баг в библиокрафте который может создавать любую вещь. Так как работать мне было не сподручно, то мод собирал Красный, и у него получилось, всё работало. Но это не совпадало с описанием которое нам дали, но дюп мы решили припасти на обмен. А дльше всё стало только интереснее.
    Мы решили вернуться к кастомнпц. Дело в том что пакет CustomPayload доступен в фордже на этапе логина, поэтому было высказано предположение что стартуется авторизация от имени опа и потом шлются пакеты. Во время проверки процедуры логина, я вдруг онаружил что пакет FMLModResponse переводит LoginHandler в режим готов к заходу. Конечно с бухты барахты его нельзя было послать, надо было сначала сказать серверу что у нас есть фордж. Но это тоже делалось отдельным пакетом, и его можно было послать в любой момент. Я не поверил своим глазам, думал что это просто из-за того что я такой сонный. Было решено проверить, и знаете... Получилось!!!! Но это было на локальном сервере, надо было проверить на удалённом. И вдруг оказалось что инет у всех у нас дерьмо, и заливка сервера на вдс Дяди Фикуса заняла 15 минут, за это время я успел выиграть компетитив в ксго. А когда сервер таки залили, у нас не получилось подключиться вообще, сервер тупо не отвечал. Пришлось заливать уже мне, ещё долгих 15 минут... Но таки мы стартанули, и у нас получилось. Решено было зайти на бореалис чтобы показать что мы тоже не лыком шиты, и кое-что у нас есть. Но к сожалению без модов нас пускать не хотел сам клиент, а вырезка этих проверок приводила к крашу, всё же нет айди блоков. Пришлось скачать клиент и все моды, мы долго ждали пока Дядя Фикус их наконец зальёт. Ииииииии... Они не заработали в deobfsuscated environment, деобфускация модов тоже не помогла, теперь они не могли найти друг друга. Вообщем мы встряли. Решено было попробовать собрать класс с эксплоитом. Но всё оказалось не так просто, то фордж косячит, то сам майн. Ну вообще ад, уже был час ночи а успеха всё не было. Но наши попытки захода были замечены Течо, и началось бомбление Фикусу в личку. Красный время от времени подливал масла в огонь пытаясь зайти на сервер. И всё-таки у нас получилось, мы смогли зайти на сервер!!!!. Сначала мы зашли под левыми никами чтобы просто проверить. А потом было решено зайти под опами, ибо я общеал барту нарисовать фаллос на их спавне. И у нас всё получилось, более того никакой доп защиты у админских аккаунтов не было, я начал писать на спавне то самое слово из 3х букв. Тем временем фикус случайно тпшнул всех на спавн. *Вас заметили.jpg*. Пришлось быстро достаривать слово и начать строить реальный фаллос. Но главное инфа о том что у нас есть уязвимость была успешно получена. Буквально через пару минут прилетел бан, и сервер был оффнут. Решено было приступить к переговорам, наш баг на их.
    Была собрана отдельная конфа, но переговоры чуть не сорвались, ибо Течо бомбил ну ****ец. А ещё он заддосил мой домашний инет, и если бы не то что у меня есть 2 разервных канала, мтс и ёта, хер бы мы о чём-нибудь договорились. Так как у нас эксплоит был круче, мы договорились что барт и рассказывает первый. Иииии.... Тадам, это оказался дюп с библиокрафтом. Оказывается, нам конкретно так на****ели, и никаие вещи из всех игроков не падали. Всё это время мы искали то чего нет. КАКОГО ХЕРА!?!!??!?!?!??!. Ну да ладно, мы тоже выложили свою инфу и приступили к написанию фиксов, и вот вы видите их здесь.... Для надёжности баг был проверен на ещё нескольких серверах, а оптом мы разошлись спать.
    Сегодня же утром было решено написать эту тему и выложить всё что надо. Готовые эксплоиты тоже будут скоро выложены сюда же, мы просто даём немного времени серверам на примененеие фикса.
    Вот такая вот фигня, искали одно, а нашли другое. Ну мододелы ещё раз подтвердили что 99% модов - говнокод, ну а теперь и фордж можно записать туда же.
     
    Последнее редактирование: 9 июн 2015
  4. Bartolomeo Della Rokka

    Bartolomeo Della Rokka Активный участник Пользователь

    Баллы:
    61
    Skype:
    tyf_lee
    Имя в Minecraft:
    BartolomeoYT
    2 БРОНЬ ( напишу свой взгляд на это все )

    Немного информации.

    Один из пострадавших серверов.

    Вот как работает дырка в библиокрафте
     
    Последнее редактирование: 14 июн 2015
  5. niki96

    niki96 Старожил Пользователь

    Баллы:
    123
    Многобукав
     
  6. fhntv24

    fhntv24 Активный участник Пользователь

    Баллы:
    88
    самое главное тут.
     
  7. Jampire

    Jampire Старожил Пользователь

    Баллы:
    173
    Skype:
    jampire-h
    Имя в Minecraft:
    Jampire
    Люди "наблюдающие" атаку предоставили мне не достоверную инфу, из за этого получилось что ввел всех в заблуждение, каюсь. Хорошо что всё закончилось в итоге хорошо.
     
  8. fhntv24

    fhntv24 Активный участник Пользователь

    Баллы:
    88
  9. Reality_SC

    Reality_SC Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Это что ж получается, можно зайти на любой сервер с Форджем и делать что угодно?
    Или я не правильно понял? =)
     
  10. fhntv24

    fhntv24 Активный участник Пользователь

    Баллы:
    88
    Не что угодно - а под кем угодно.

    И только 1.6.4
     
  11. Shevchik

    Shevchik Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Правильно понял.
     
  12. Автор темы
    Firkys

    Firkys Активный участник Пользователь

    Баллы:
    88
    Skype:
    Firkys
    Имя в Minecraft:
    Firkys
    ага, берёшь клиент с модами которые стоят на сервере, юзаешь хак и заходишь под админом :O
     
  13. Reality_SC

    Reality_SC Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Зайти под кем угодно (любой ник и/или любой uuid). Относится к online-mode: true, ОКъ, а версии новее 1.6.4?
     
  14. Bartolomeo Della Rokka

    Bartolomeo Della Rokka Активный участник Пользователь

    Баллы:
    61
    Skype:
    tyf_lee
    Имя в Minecraft:
    BartolomeoYT
    Я пока проверяю проекты... кто успел - тот успел ... я иду искать )
     
  15. Shevchik

    Shevchik Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    На версиях новее не пашет вроде как.
     
  16. niki96

    niki96 Старожил Пользователь

    Баллы:
    123
    Фикс есть?
     
  17. fhntv24

    fhntv24 Активный участник Пользователь

    Баллы:
    88
    в теме же .... Читай первый пост
     
  18. niki96

    niki96 Старожил Пользователь

    Баллы:
    123
    Сорь, не заметил сразу.
     
  19. fhntv24

    fhntv24 Активный участник Пользователь

    Баллы:
    88
    Да проверьте вы уже фикс 1.7.10 , ибо же я ща уйду и нифига не будет.
     
  20. niki96

    niki96 Старожил Пользователь

    Баллы:
    123
    Нет сервера 1.7.10.
    Только 1.6.4
    [Ядро forge] ОБХОД РЕЖИМА online-mod до 1.6.4 Этот фикс пихать в клиент и сервер?
     

Поделиться этой страницей