Важный
RootmyTV вряд ли будет работать на вашем телевизоре. Узнайте, почему.
RootMyTV-это удобный для пользователя эксплуат для рутирования/джейлбрейка LG Webos Smart TV.
Он загружает установку канала Homebrew Webos и позволяет работать с повышенными привилегиями. Homebrew Channel-это разработанное сообществом приложение с открытым исходным кодом, которое облегчает разработку и установку стороннего программного обеспечения. Узнайте больше об этом здесь.
Если вы хотите полную информацию о том, как работает эксплойт, перейдите к нашей рецензии.
Уязвимости, используемые RootMyTV (как V1, так и V2), были исправлены LG. RootmyTV вряд ли будет работать над прошивкой, выпущенной с середины 2012 года.
Важный
Если вы получите ошибку "Denied method call "download" for category "/""
, ваш телевизор исправлен. Если ваш телевизор перезагрузится, но Homebrew Channel не установлен, он, вероятно, исправлен. Понижение прошивки больше невозможны без доступа к корнеу.
В следующей таблице перечислены первая версия WebOS для каждых годовых моделей, которые, как известно, не поддерживают RootMyTV:
Телевизионный год | Базовая версия WebOS | Rootmytv исправлен с момента версии Webos |
---|---|---|
2016 | 3.0 | 3.4.2 |
2017 | 3.5 | 3.9.2 |
2018 | 4.0 | 4.4.2 |
2019 | 4.5 | 4.9.7 |
2020 | 5 | 5.4.0 |
2021 | 6 | 6.3.0 |
Если ваша версия WebOS равна или превышает версию в столбце «Patched So Some» для модельного года вашего телевизора, ваш телевизор не уязвим для rootmytv . Хотя эти версии и новые определенно исправлены, старые версии могут работать или не работать. RootmyTV никогда не работал над версиями WebOS до 3.4.0 или каких -либо телевизоров, которые поставлялись с WebOS 1, 2, 7 (22) или 8 (23).
В зависимости от года, когда был выпущен телевизор, он использует определенный диапазон номеров версий WebOS.
Версии до 2016 года и после 2019 года просты для понимания, поскольку первая цифра используется только в течение одного года (например, каждая версия 6.xy предназначена для телевидения 2021 года).
Тем не менее, LG сделал что -то необычное в 2017 и 2019 годах, не используя новую первую цифру. Телевизоры с 2017 и 2019 годов начались с Webos Versions 3.5 и 4.5 соответственно. Например, телевизоры, выпущенные в 2016 году, будут иметь версии WebOS, равные или более 3,0,0, и менее 3,50; ТВ, выпущенные в 2017 году, будут использовать 3.5.0 до (но не включая) 4.0.0; и так далее.
Обратите внимание, что при попытке определить, когда была выпущена данная версия WebOS, вы должны сравнить ее только с номерами версий из того же модельного года. Например, можно с уверенностью предположить, что версия 3.4.1 была выпущена после 3.3.0. Но версия 3.4.2 могла быть (и на самом деле была выпущена после версии 4.0.0.
С WebOS 7 в 2022 году LG начал использовать маркетинговое имя "Webos 22"; То же самое относится и к WebOS 8 («WebOS 23»).
Примечание
Эта версия относится к поле «Версия Webos TV» в меню «Настройки», а не в поле «Версия программного обеспечения».
Если вы хотите защитить свой телевизор от удаленной эксплуатации, см. В соответствующем разделе нашей записи и/или примените последнее обновление прошивки для вашего телевизора.
Шаг нуль (Отказ от ответственности): Имейте в виду риски. Укоренение вашего телевизора (к сожалению) не поддерживается LG, и хотя мы сделали все возможное, чтобы минимизировать риск повреждения, мы не можем сделать никаких гарантий. Это может аннулировать вашу гарантию.
На вашем телевизоре должно быть установлено приложение Homebrew Channel.
По умолчанию обновления системы и удаленный доступ к корневым доступу отключены при установке. Если вы хотите изменить эти настройки, перейдите на Homebrew Channel → Настройки. Варианты там применяются после перезагрузки.
Для использования сломанных телевизоров, ознакомьтесь с информацией здесь.
Неограниченный доступ «режим разработчика»
Доступ пользователя/приложения более низкого уровня
Хотя мы не можем взять на себя ответственность за ваши действия, мы не столкнулись с ними из -за укоренения. Если вы используете доверенное программное обеспечение только из официального репозитория Homebrew Channel, то вы должны быть в безопасности.
Это не юридическая консультация. По крайней мере, в ЕС, укоренение и другие модификации программного обеспечения, как правило, считаются законными и не должны быть основой для аннулирования вашей гарантии.
Factory Reset должен удалить все корневые файлы конфигурации.
У нас нет удобного инструмента для удаления корней без сброса заводов , хотя знающий человек может вручную удалять наши настройки.
В то время как обновления технически возможны, если LG исправляет эксплойт, вы можете в конечном итоге «заблокирован» и неспособны повторно укрировать свой телевизор, если вы каким-то образом потеряете доступ. Мы также не можем предсказать, как будущие обновления будут влиять на наши методы, используемые для повышения и управления приложением Homebrew Channel.
Нет. Это не нарушает и не ограничивает доступ к службам подписки или другому контенту DRMED.
Тем не менее, оставаться на очень старой версии прошивки (которая может потребоваться для поддержания постоянного доступа) может ограничить ваш доступ к установке приложений, обновлений или (редко) запуска LG Store Store. Обходные пути для этого находятся в работе.
Если вы не собираетесь обновлять версию программного обеспечения для телевизионного программного обеспечения до той, которая уже исправлена (большинство 4.x+ выпущено после 2021/06), нет необходимости обновлять. Новая цепочка не приносит никаких новых функций - самая разумная вещь, которую вы можете сделать, - это обновить приложение Homebrew Channel.
Если вы уже рутированы на версии прошивки с пониженным/до 2011-06 и хотите обновляться, выполнение официального обновления программного обеспечения удалит существующие корневые файлы и домашние приложения. Запуск rootmytv v2, затем снова будет повторно добраться до корневого доступа. Вам нужно будет переустановить удаленные приложения самостоятельно.
Если вы знаете, что вы делаете , и хотите сохранить установленные приложения, вам необходимо удалить /media/cryptofs/apps/usr/palm/services/com.palmdts.devmode.service/start-devmode.sh
usr/palm/services/com.palmdts.devmode.service/start-devmode.sh прямо перед обновлением ( без перезагрузки международной), а затем запустите rootmytv v2 прямо на первом загрузке после обновления программного обеспечения.
Если «режим Failsafe» был споткнулся на вашем телевизоре, и он показывает гневные уведомления, перейдите на Homebrew Channel → Settings, переключить «режим сбоев» и нажмите «перезагрузка».
«Режим сбоев» - это режим, в котором ни одна из наших системных настроек не включена, и начинается только экстренный сервер удаленного доступа.
Этот режим включается автоматически, когда телевизор вылетает, удаляет его питание или выключается во время раннего запуска системы. Чтобы уменьшить шансы на это, мы рекомендуем включить вкладку «Quick Start+» на вкладке «Настройки системы WebOS». Это сделает телевизор только в «Спящем режиме» (который не требует гораздо большей мощности) вместо полного отключения, и не нужно будет перезагрузить наши услуги при каждом приостановке. Это также сделает телевизионный стартап намного быстрее.
Наш скрипт запуска запускает все исполняемые файлы в /var/lib/webosbrew/init.d
на загрузке (через run-parts
-имена файлов могут содержать только буквы a-zA-Z0-9-_
)-Создайте свои собственные сценарии.
Создайте любые настройки там и не изменяйте существующие сценарии RootMyTV/Homebrew Channel, поскольку они могут быть перезаписаны в будущих обновлениях.
Если вы являетесь разработчиком Homebrew - создайте символическую ссылку на сценарий в вашем собственном пути приложения там, и не копируйте там ничего.
Если вы хотите, вы можете поддержать этот проект с помощью спонсоров GitHub - см. Кнопку «Спонсор» в правом верхнем углу.
Не обновляйте свой телевизор. В то время как обновления технически возможны, если LG исправляет эксплойт, вы можете в конечном итоге «заблокирован» и неспособны повторно укрировать свой телевизор, если вы каким-то образом потеряете доступ. Мы также не можем предсказать, как будущие обновления будут влиять на наши методы, используемые для повышения и управления приложением Homebrew Channel. Опция «Обновления системы блоков» в Homebrew Channel отключите проверки обновления прошивки. Убедитесь, что опция «Автоматические обновления системы» в настройках системы WebOS также отключена.
Перед рутированием необходимо удалить приложение «Режим разработчика». В противном случае это будет мешать сценарию запуска, используемого для начальной загрузки джейлбрейка. SSH Service, выявленная Homebrew Channel, совместим с инструментами WeboS SDK.
Если вам нужен доступ удаленного корневого оболочки и вы знаете, как использовать SSH, вы можете включить его в настройках Homebrew Channel. Пароль по умолчанию является alpine
, но мы рекомендуем настроить аутентификацию SSH Public Key, копировав свой открытый ключ SSH до /home/root/.ssh/authorized_keys
по телевизору. Это отключит аутентификацию пароля после перезагрузки.
Зарегистрированные ключи пользователя GitHub могут быть установлены с помощью следующего фрагмента:
mkdir -p ~ /.ssh && curl https://github.com/USERNAME.keys > ~ /.ssh/authorized_keys
Альтернативная опция - Telnet (может быть включен в Homebrew Channel → Settings → Telnet), хотя он сильно обескуражен , поскольку это дает несанкционированную корневую оболочку любому в локальной сети.
Рекомендуется включить функциональность «Quick Start+». Это заставит кнопку выключения на удаленном дистанционном управлении, а не полное выключение системы. Если вы быстро включаете и выключаете телевизор без быстрого запуска+, наш режим «сбоя» может быть запускается (который есть, чтобы предотвратить запуск сценариев, носящих телевизор), что исчезнет после переключения соответствующего переключателя в настройках Homebrew Channel.
В случае любых проблем присоединяйтесь к серверу Discord OpenLLGTV и обратитесь за помощью к каналу #rootmytv
, спросите на нашем #openlgtv:netserve.live
Matrix Channel или подать проблему GitHub.
Прежде чем попросить поддержку, пожалуйста, проконсультируйтесь с нашим руководством по устранению неполадок.
RootMytv - это цепочка эксплойтов. Обнаружение и развитие этих эксплойтов были совместными усилиями, с прямым и косвенным вкладом нескольких исследователей.
5 октября 2020 года Андреас Линд сообщил об уязвимости к корневым файлу перезаписать LG. 3 февраля 2021 года Андреас опубликовал свои выводы, демонстрируя локальную эксплуатацию корня против эмулятора Webos (часть SDK Development LG). LG смело утверждал, что эта проблема не повлияла на их устройства, и что они собирались исправить свой эмулятор.
15 февраля 2021 года Дэвид Бьюкенен сообщил об уязвимости в приложении LG «ThinQ Login», которое позволило угнать приложение через определенную последовательность пользовательских входов, что позволило злоумышленнику вызывать привилегированные API. 23 марта 2021 года Дэвид опубликовал эксплойт для проверки концепции, который позволил пользователям получить привилегии ROOT на своих интеллектуальных телевизорах LG. Это стало возможным, объединив его с локальной уязвимостью корней, ранее сообщенной Андреасом (да, тот же, который, как сказал Л.Г., не влиял на их устройства!).
Около 28 марта 2021 года Пиотр Доброолски обнаружил аналогичную уязвимость в приложении «Социальный вход», который присутствует в более широком диапазоне версий WebOS. Что еще более важно, этот эксплойт может быть легко запустил по локальной сети, используя SSAP (подробности ниже), что делает его гораздо более надежным и удобным для пользователя.
На момент написания, код в этом репо является объединенной работой Дэвида Бьюкенена (веб -дизайн, начальный эксплойт POC) и Piotr Dobrowolski (улучшенная «V1», эксплойтская реализация, запись и «V2» и реализация).
Мы хотели бы поблагодарить:
Андреас Линд за публикацию своего исследования WebOS.
Более широкое сообщество Webos, в частности, форумы XDA и Discord Openlgtv.
Все участники (настоящие и будущие) в домашний канал, а также разработка других приложений и программного обеспечения для домашнего завода.
LG, для исправления симптомов ошибок, а не основных причин ...
На момент написания оригинального эксплойта (RootMyTV V1-2021-05-15) все версии WebOS между 3,4 и 6,0, которые мы протестировали (телевизоры, выпущенные в период с середины 2017 года и начале 2021 года), были поддержаны этой цепочкой эксплойтов. Около июня-июля 2021 года LG начал развертывать обновления, которые добавили некоторые незначительные смягчения, которые сломали нашу оригинальную цепочку эксплойтов.
Когда RootMyTV V2 был выпущен (2022-01-05), все версии WebOS между 4.x и 6.2+, которые мы протестировали (телевизоры, выпущенные между началом 2018 года и конце 2021 года), были поддержаны цепочкой эксплойтов V2.
Некоторые версии между 3,4 и 3,9 могут быть поддержаны RootmyTV V2, но ваш пробег может варьироваться.
WebOS, как следует из названия, представляет собой операционную систему Smart TV, в основном на основе веб -технологий. Приложения, как системные, так и внешние, либо запускаются в урезанном веб-браузере на основе хрома («WebAppmgr»), либо в QT QML-среде. Почти все системы и внешние приложения запускаются в тюрьмах на основе Chroot в качестве дополнительного уровня безопасности.
«Веб -приложения», вне стандартных веб -технологий, также получают доступ к API для общения с «Service Bus Luna». Это автобус, похожая на D-BUS, используется для обмена сообщениями и предоставления различных услуг в разных областях безопасности. Клиенты автобусов могут выявить некоторые методы RPC другим приложениям (идентифицированные Uris luna://service-name/prefix-maybe/method-name
), которые принимают сообщение объекта JSON в качестве параметров своего вызова, а затем могут вернуть одно или много сообщений. (в зависимости от вызова «подписным» или нет)
В то время как Luna Bus, похоже, имеет обширную обработку ACL, учитывая историю передачи WebOS IP, кажется, что не многие инженеры полностью понимают свои возможности. Часть автобуса отмечена как «частная», которая доступна только определенными системными приложениями, в то время как большинство других вызовов являются «общедоступными» и могут быть доступны всеми приложениями.
Неожиданно, что одной из внутренних услуг, выявленных на автобусе, является «Lunadownloadmgr», которая предоставляет удобный API для загрузки файлов, отслеживания прогресса и т. Д. Уязвимость от записи была общедоступной.
Само по себе это было не очень полезно в производственном оборудовании, поэтому нам нужно было найти способ вызвать произвольную службу Luna из приложения с com.webos.
/ com.palm.
/ com.lge.
идентификатор приложения.
Чтобы получить начальный программный управление телевизионным графическим интерфейсом, можно использовать интерфейс «Приложения LG Connect». Его протокол, называемый «SSAP» (протокол простых услуг), представляет собой простой механизм RPC на основе WebSocket, который можно использовать для косвенного взаимодействия с Service Bus LUNA и широко документирован в различных контекстах, связанных с домашними, связанными. Мы используем это для запуска уязвимого системного приложения, которое не легко доступно с обычным взаимодействием с пользователем.
SSAP API предназначен для использования из внешнего мобильного приложения. Для простоты, однако, мы хотели обслуживать нашу эксплойт в качестве веб -страницы. Это заставило нас заметить, что, понятно, сервер SSAP явно отклоняет любые соединения из (открытого) HTTP Origins. Тем не менее, было дополнительное исключение из этого правила, и, по -видимому, авторы хотели разрешить file://
Origins, которые представляют себя серверу как null
. Оказывается, есть еще одно происхождение, которое также может быть использовано как null
, и это data:
URIS.
Чтобы использовать это, мы создали минимальную реализацию Proxy Proxy WebSocket API, которая открывает скрытую IFRAME с полезной нагрузкой JavaScript (которая сейчас работает в data:
/ null
Origin) и обменивает сообщения с основным кадром браузера. Это было выпущено как отдельная библиотека.
Существует небольшая проблема с установлением соединения с сервером SSAP WebSocket. Хотя мы все верим в полный хаос, мы не чувствуем себя очень комфортно, обслуживая наш эксплойт над открытым текстом HTTP, что было бы единственным способом избежать смешанных политик предотвращения контента. (По умолчанию HTTPS Origins не разрешается общаться с открытым текстом HTTP -конечными точками)
В то время как некоторые новые версии хрома действительно позволяют смешать контент с localhost
, это было не так, когда был выпущен Chromium 38 (используется в WebOS 3.x). К счастью, кажется, что системный браузер на WebOS 3.x также уязвим к чему -то, что уже давно считается проблемой безопасности в большинстве браузеров - навигация на data:
URIS. Таким образом, когда применимо, наши эксплойты пытаются открыть себя как data:
базовый 64-кодированный URI. Это заставляет наш браузер больше не рассматривать источник безопасного, и мы снова можем получить доступ к серверу Websocket Plain-HTTP.
Наблюдательный читатель, возможно, заметил, что использование, которое мы используем, предназначен для удаленного. В то время как само подключение требует подтверждения с использованием удаленного дистанционного управления, мы настоятельно рекомендуем отключить функциональность приложений LG Connect, чтобы предотвратить удаленную эксплуатацию. Тем не менее, эта опция, по -видимому, присутствует только в версиях WebOS, старше WebOS 4.X - в таких случаях единственными решениями являются либо сохранить телевизор в отдельной сети , либо отключить службу SSAP вручную, используя следующую команду после рутирования:
luna-send -n 1 ' palm://com.webos.settingsservice/setSystemSettings ' ' {"category":"network","settings":{"allowMobileDeviceAccess":false}} '
Имея некоторое начальное программное управление телевизором через SSAP, мы можем выполнить любое приложение, присутствующее на телевизоре. Все запуска перекрестных применений могут содержать дополнительный объект JSON с именем launchParams
. Это используется, например. Откройте системный браузер с определенным открытым сайтом или запустите заранее определенное видео на YouTube. Оказывается, эта функциональность также используется для выбора того, какой социальное веб-сайт использовать в com.webos.app.facebooklogin
, который является старшим братом com.webos.app.iot-thirdparty-login
используемым в начальном эксплойте, присутствующих во всех версиях WebOS вплоть до (по крайней мере) 3.x.
При запуске социального входа через управление учетной записью LG это приложение принимает аргумент с именем server
. Это оказывается частью URL, что браузер «веб -приложения» ориентируется. Таким образом, используя правильно подготовленные launchParams
мы можем открыть произвольную веб -страницу (с единственным требованием, что она обслуживается в течение https
), работающей как системное приложение, которое считается LunaDownloadMgr
A System »приложением.
Поскольку мы уже работаем в качестве системного приложения, мы можем загружать файлы (надежно через HTTPS!) В произвольные местоположения файловой системы без разобщенности как root.
Мы используем это для загрузки следующих файлов:
stage3.sh
→ /media/cryptofs/apps/usr/palm/services/com.palmdts.devmode.service/start-devmode.sh
- это скрипт /etc/init/devmode.conf
выполненный при запуске. Чтобы запустить режим разработчика в тюрьме SSH Daemon.hbchannel.ipk
→ /media/internal/downloads/hbchannel.ipk
- Поскольку наша конечная цель - это приложение Homebrew Channel, мы также можем просто загрузить его на более ранних этапах эксплойта и подтвердить, что оно фактически загружено.devmode_enabled
→ /var/luna/preferences/devmode_enabled
- это флаг, проверенный перед запуском сценария start-devmode.sh
, и является просто фиктивным файлом. Сценарий stage3.sh
- это минимальный инструмент, который после открытия аварийной оболочки Telnet и удаления (на случай, если что -то пойдет не так, и пользователю необходимо перезагрузить телевизор - скрипт продолжает работать, но больше не будет выполняться при следующем запуске), устанавливает Приложение Homebrew Channel через стандартные сервисные вызовы DevMode и повышает его сервис, чтобы запустить root.
Около 2021/06 LG начал развернуть исправленную версию, которая включала некоторые исправления для трюков, которые мы использовали в этой цепочке:
public
/etc/palm/luna-downloadmgr/download.json
start-devmode.sh
теперь поставляется с подписью и теперь проверяется с использованием openssl
на каждой загрузкеstart-devmode.sh
, в течение которого обновленные телевизоры не смогли использовать режим разработчика вообще.Большинство из этих смягчений слишком тривиальны, чтобы обойти, поэтому мы все равно считаем эту цепь незамедлительной.
start-devmode.sh
Наша первоначальная оценка решения этих проблем в нашей цепочке была «пару часов» - патчи, теоретизированные на нашей стороне 2021/05/27, оказались правильными, но из -за некоторого стратегического выбора и отсутствия личного времени мы решили Отложили тестирование и выпуск на пару месяцев. Извини. :)