Надо ли получать root

Надо ли получать root Техника

Сейчас часто задают вопрос, зачем root права на Android? Попробуем разобраться, что они собой представляют и в чем их преимущества. Если говорить о рут правах для Android, то в принципе это то же, что для Apple джейл. Несмотря на то что Андроид и iOS являются самыми популярными мобильными системами на всем земном шаре, по своим особенностям и функциональности они кардинально различаются. В программном обеспечение от Apple, в отличие от продукта Google, уровень пользовательских возможностей сильно ограничен.

Вместе с тем при всех своих достоинствах Андроид тоже не дает полной свободы действий. Однако достичь этого все же можно, если получить Рут права (суперпользователя), но во время операции нужно быть предельно внимательными и заранее узнать, например, как получить root права на китайском планшете/смартфоне, чтобы не столкнуться с ошибками.

Если провести аналогию со всем известной Windows, то это по сути права администратора. Несмотря на то, что с такими правами вы получаете свободу действий, здесь имеются свои преимущества и недостатки (вплоть до потери устройства), и сейчас мы их рассмотрим.

Содержание
  1. В чем плюсы и минусы Root прав на Andrid.
  2. Почему нужно подключать смартфон или планшет для получения Root напрямую к компьютеру?
  3. Каковы преимущества рутирования телефона Android?
  4. Возможно пониженное напряжение ЦП и увеличение заряда батареи. life
  5. Укоренение открывает совершенно новый уровень настройки
  6. Вредоносные программы можно удалить, а обновления перейдут под полный контроль
  7. Срок службы устройства можно значительно увеличить
  8. Рутинг сопряжен с определенными рисками
  9. Технически рутирование аннулирует гарантию
  10. Рутинг может заблокировать телефоны Android для использования определенных приложений
  11. Стоит ли пытаться получить root права на свой телефон в 2023 году?
  12. Рут-доступ позволяет удалять ненужные приложения по умолчанию
  13. При получении рут-прав вы теряете гарантию
  14. Рут-доступ позволяет установить кастомную прошивку
  15. Получив рут-доступ, вы теряете возможность обновления прошивки
  16. Рут-права дают возможность установить приложения, требующие особых разрешений
  17. Рут-права открывают уязвимости системы для вирусов
  18. Ошибка в приложении при наличии рут-прав может стать фатальной
  19. Рут-права позволяют полностью отвязать телефон от сервисов Google
  20. Отключение от сервисов Google может привести к неработоспособности системы
  21. Основные преимущества и недостатки
  22. Недостатки root-доступа
  23. Распространение гарантийных обязательств на рутованный смартфон
  24. Вступление
  25. Постановка задачи
  26. Что же плохого происходит когда загрузчик разблокируется?
  27. Как устроено хранилище
  28. Как устроено шифрование хранилища
  29. Получение удалённого доступа

В чем плюсы и минусы Root прав на Andrid.

Первым делом я расскажу о том, какие минусы присутствуют в получении прав суперпользователя, а потом перечислю основные плюсы.

Чтобы понять, зачем root права на Android и нужны ли они вам, следует для начала узнать обо всех преимуществах, которые они дают.

Почему нужно подключать смартфон или планшет для получения Root напрямую к компьютеру?

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

Это совсем не новость, даже прошивку телефонов Siemens осуществляли лишь посредством родного USB, хотя найти его было не просто, да и цены на него были приличные. Если не придерживаться этого правила, то получая, к примеру, Recovery можно превратить аппарат в дорогостоящий «кирпич», хотя сам по себе он должен предотвращать такие случаи. Поэтому следует быть очень внимательным!

Теперь вы знаете зачем root права на Android и сами сможете решить нужны они вам или нет. Получив их, вы откроете для себя совершенно новые возможности, но следует заранее оценить все риски. Даже опытность и осторожность пользователя не даст гарантии, что все пройдет, как надо. И, несмотря на то, что возможность вернуть все назад, есть практически всегда, следует быть готовым тратить на это свои силы и время, а их может потребоваться немало.

Получение root-прав на телефоне Android стало популярным, когда ОС только зарождалась. Еще в прошлом десятилетии он стал невероятно популярен среди сообщества энтузиастов. Что касается того, почему укоренение получило такую ​​известность, нужно лишь понять основы человеческих инстинктов и свободы. Root-доступ позволяет полностью контролировать устройство.

Если вам нужно улучшенное время автономной работы, более яркий экран или совершенно новая ОС, чем та, с которой поставлялось устройство, рутирование смартфона — это то, что вам нужно. Тонкая настройка Android стала настолько популярной среди заядлых технических энтузиастов, что люди начали делать джейлбрейк и на iPhone. Процесс различается в двух ОС, но идея не в этом.

Корневой доступ дает пользователю полный административный доступ к устройству, после чего можно свободно изменять пользовательский интерфейс и его элементы соответствующим образом. Несмотря на свободу, которую предлагает такое действие, есть ли смысл рутировать ваше Android-устройство в 2023 году? Давайте взвесим преимущества и недостатки, чтобы принять решение.

Примечание. Эта статья отражает мнение автора.

Каковы преимущества рутирования телефона Android?

Поскольку разработчики должны разрабатывать пользовательский интерфейс с учетом общей пользовательской базы, они не могут удовлетворить предпочтения каждого человека. Однако, когда задействован рут, независимые создатели могут добавить в пользовательский интерфейс все мыслимые функции, которые конечный потребитель может настроить и использовать соответствующим образом.

Возможно пониженное напряжение ЦП и увеличение заряда батареи. life

Многие современные пользовательские ПЗУ предоставляют возможность настроить тактовую частоту ядра ЦП, чтобы соответствующим образом оптимизировать время автономной работы. Например, если требуется увеличить его на несколько часов в режиме ожидания, пользователи могут снизить мощность ЦП на несколько процентов и посмотреть, соответствует ли срок службы батареи желаемому.

Укоренение открывает совершенно новый уровень настройки

Когда пользователи iPhone переходят на Android, они понимают, что предлагаемый уровень настройки — это то, чего они никогда не видели. Точно так же рутирование телефона Android делает пользовательский интерфейс устройства по умолчанию просто верхушкой айсберга.

Становятся доступными такие функции, как общесистемные цвета, форма каждого значка, формы быстрых значков и бесчисленные типы шрифтов.

Вредоносные программы можно удалить, а обновления перейдут под полный контроль

Китайские OEM-производители и даже Samsung печально известны тем, что включают множество ненужных приложений, которые просто занимают место на диске. Прошивая пользовательское ПЗУ через root-доступ, эти ненужные приложения можно удалить. Некоторые из них не могут быть удалены традиционными способами, поэтому для их окончательного удаления требуется root-доступ.

Если у вас нет Pixel, обновления Day One невозможны ни на одном другом устройстве Android. Корневой доступ позволяет использовать пользовательские ПЗУ, которые можно обновлять, как только будут выпущены соответствующие обновления. Однако использование пользовательских ПЗУ необязательно.

Срок службы устройства можно значительно увеличить

Причина, по которой мы выбрасываем наши телефоны, заключается не в том, что процессор и оперативная память внезапно перестали работать, а просто в том, что мы перестаем получать соответствующие обновления. Людям также надоедает использовать один и тот же пользовательский интерфейс для своих устройств. OEM-производители перестают поддерживать свои старые устройства через несколько лет. Все эти факторы приводят к тому, что устройству, вероятно, осталось еще несколько лет жизни.

С пользовательскими ПЗУ, к которым можно получить доступ с помощью рута, можно установить последнюю и лучшую версию ОС на свой, скажем, пятилетний -старый Android-телефон. С заменой батареи устройство тоже может стать как новое.

Рутинг сопряжен с определенными рисками

Как правило, есть веская причина, по которой OEM-производители не хотят, чтобы у вас был root-доступ на вашем телефоне Android. Это связано с тем, что можно неосознанно неправильно обращаться с необходимым системным файлом, что может привести к катастрофическим сбоям, таким как цикл загрузки, или, что еще хуже, к мертвому устройству, которое просто отказывается двигаться, несмотря ни на что. Блокирование является серьезной проблемой даже во время бета-тестирования, не говоря уже о вмешательстве в корневой доступ.

Дополнительно:  Как исправить ошибку system32 Winload exe 0xc000000f при запуске Windows

Технически рутирование аннулирует гарантию

Даже если кто-то знает, что они на самом деле делают при рутировании смартфона, все равно есть значительный шанс сделать все катастрофически неправильно. Это вынуждает отнести модель в сервисный центр, где, если они обнаружат, что устройство было рутировано, любой ремонт или замена будут немедленно лишены гарантии.

Не имеет смысла, почему OEM-производители готовы предоставлять гарантию. за то, в чем они не виноваты.

Рутинг может заблокировать телефоны Android для использования определенных приложений

API под названием SafetyNet, который используется многими банковскими приложениями, может определить, было ли ваше устройство рутировано и взломано или нет. Если он обнаружит, что телефон рутирован, им не будет разрешено установить, чтобы избежать финансовых рисков и рисков безопасности. Несмотря на то, что для этого есть обходной путь с помощью Magisk, он не является надежным, и риски все еще сохраняются.

Стоит ли пытаться получить root права на свой телефон в 2023 году?

Root-доступ сложно и рискованно даже для самых опытных пользователей, которые знают, что они делают, не говоря уже о среднем потребителе. Раньше это было намного проще, но теперь сценарий полностью изменился. Мало того, что трудно найти хорошее программное обеспечение для root-доступа, так еще и редкость тех, которые работают с конкретным телефоном.

Сегодня система Android превратилась в программное обеспечение, которое предлагает множество настроек и функций, которые делают джейлбрейк процесс спорный.

В сочетании с долговечностью поддержки, уже предлагаемой OEM-производителями, такими как Samsung и Google, преимущества, связанные с процессом доступа root, немногочисленны и редки. Поэтому не рекомендуется рутировать телефон в 2023 году.

Права суперпользователя позволяют обладателю смартфона получить доступ к системным файлам, и, что более важно — изменять их и сохранять эти изменения. Нужна ли вам эта возможность? Если вы глубоко понимаете устройство своего телефона, вам может казаться, что нужна. Давайте рассмотрим все «за» и «против».

Рут-доступ позволяет удалять ненужные приложения по умолчанию

Надо ли получать root

Очень мало устройств поставляется с «чистым» Android. Большинство производителей, в том числе, сам Google, предустанавливают на телефон массу приложений по умолчанию (так называемые bloatware), многие из которых просто не нужны и без толку занимают память. С правами суперпользователя вы можете удалить все эти приложения, получив свои честные 32 Гбайт, половина из которых была забита приложениями от производителя.

При получении рут-прав вы теряете гарантию

Надо ли получать root

Если, получив рут-доступ, вы бездумно броситесь стирать все подряд, чтобы высвободить память, то есть риск удалить что-то, критически необходимое для работы Android. И телефон перестанет включаться или выдаст ошибку, зависнет и просто откажется работать. А починить его по гарантии не получится. Почему? Ошибка возникла не по вине производителя — вы произвели взлом устройства, и вся ответственность за нее теперь лежит на вас.

Рут-доступ позволяет установить кастомную прошивку

Надо ли получать root

То есть, коротко говоря, переустановить систему на смартфоне на какую-нибудь другую (как заменить Windows на Linux на компьютере). Прошивок для Android масса, самая популярная — CyanogenMod, которая отличается простотой использования, легкостью и массой оптимизаций. На ее основе даже Xiaomi сделали свой MIUI. Получив права суперпользователя, вы сможете перепрошить свой телефон чем угодно, подключив его к ПК по USB.

Получив рут-доступ, вы теряете возможность обновления прошивки

Надо ли получать root

Даже если вы не будете перепрошивать телефон, получив права администратора, вы автоматически отключаетесь от сервиса автообновления прошивки телефона. И новые версии Android с новыми «фишками» станут вам недоступны — система останется в том состоянии, в котором была на момент «рутования». Хотя, вообще, позволять или не позволять Android обновляться — достаточно спорный вопрос.

Рут-права дают возможность установить приложения, требующие особых разрешений

Надо ли получать root

Google достаточно лояльна к разработчикам приложений и разрешает доступ ко многим системным файлам Android. Но некоторые функции — например, полный доступ к файловой системе или автоматическое включение GPS — для приложений недоступны. Рут-доступ позволит вам установить продвинутый файловый менеджер или любое другое приложение, которому слишком тесно в «нерутованной» системе.

Рут-права открывают уязвимости системы для вирусов

Надо ли получать root

Для Android пишутся вирусы. Просто потому, что это самая популярная система, которая стоит на подавляющем большинстве смартфонов. Кстати, у нас есть подборка антивирусов для Android. Если на ваш «рутованный» телефон попадет вирус, он сможет творить там все, что угодно — вплоть до того, что приведет систему в полную непригодность. Так что если вы все-таки решитесь на «рутование», первым делом установите антивирус.

Ошибка в приложении при наличии рут-прав может стать фатальной

Надо ли получать root

Даже в легитимных, чистых приложениях из Google Play Market бывают ошибки. Но когда система «нерутованная», каждое приложение работает в своей изолированной среде, «песочнице». И ошибка одного приложения будет проблемой только самого приложения — достаточно его просто остановить, перезапустить или отключить. В случае «рутованного» телефона ошибка одного приложения может «повесить» всю систему — и разбирайся потом, как от нее избавиться.

Рут-права позволяют полностью отвязать телефон от сервисов Google

Надо ли получать root

Google иногда слишком много себе позволяет в плане посягательств на нашу приватность. Если вы вообще ничего не хотите сообщать о себе Google, рут-права позволяют полностью отключить сервисы и настройки, которые отслеживают активность вашего телефона. Пусть лучше следят за собой!

Отключение от сервисов Google может привести к неработоспособности системы

Надо ли получать root

Если отвязываться от Google, то придется делать это с умом и очень аккуратно. Бездумно выключив все сервисы и отвязав аккаунт, вы можете остаться с неработоспособной системой, которая будет требовать аккаунта Google. Или с такой, на которую ни приложение не поставишь, ни в интернет не выйдешь. Такой смартфон проще поменять на кнопочный «кирпич» из нашей подборки — разницы не будет никакой.

Таким образом, делать или не делать «рут» — выбор за вами. Если вы уверены в себе — почитайте в нашем гиде, как это сделать.

А вот еще несколько полезных статей для владельцев Android:

В основе Android как системы лежит ядро Linux с открытым исходным кодом (Open Source System), поэтому и сам Android — это система с открытым исходным кодом. Многие термины, такие как «root», изначально относились к системе Linux / Unix. В принципе, «root» обозначает аккаунт, у которого есть полный доступ ко всем файлам в системе и права на запись. Поэтому корневая учетная запись или корневой доступ часто сравниваются с правами администратора под Windows, хотя существуют и некоторые различия в деталях.

Основные преимущества и недостатки

Как только пользователь получает права администратора или права root на своем устройстве, он может настроить всю систему Android под свои потребности. В качестве основных возможностей можно назвать полную перенастройку пользовательского интерфейса, а также изменение системных настроек. С помощью root, например, можно установить общесистемный эквалайзер, увеличить максимальную громкость и даже перенастроить всю навигацию по меню. Корневой доступ также позволяет удалять предустановленные приложения, поставляемые многими производителями.

Надо ли получать root

Поскольку Android — открытая система, Вы можете не только вносить свои изменения, но и полностью удалить систему и установить кастомную прошивку. Эти пользовательские прошивки часто основаны на «Android Open Source Project» (AOSP) и предлагают множество функций, которые не предоставляются стандартной прошивкой. Каждый разработчик ПЗУ устанавливает свои собственные приоритеты, такие как улучшенный срок службы батареи, более высокая скорость или альтернативные эксплуатационные концепции. Установка пользовательского ПЗУ требует не получения корневого доступа, а разблокировки загрузчика.

Недостатки root-доступа

Получение root-прав несет с собой не только положительные моменты. Прежде чем запустить процедуру рутования устройства, прочитайте о недостатках: в процессе получения root-прав есть определенный риск, так как в случае неудачи Вы можете нарушить работу ОС вплоть до полной потери данных (превратите телефон в «кирпич»). Различают Soft-Brick и Hard-Brick. Soft-Brick — это всего лишь ошибка программного обеспечения, которая не позволяет смартфону загружаться должным образом. Проблема может быть решена просто путем установки новой прошивки. Soft-Brick можно назвать наиболее распространенной формой «кирпича». Очень редко процесс получения root-прав может завершиться тем, что смартфон превратится в полностью нерабочий девайс (Hard-Brick). В таких случаях система повреждена настолько, что доступ к смартфону, а, следовательно, и «спасение» системы  невозможны.

Дополнительно:  Где на клавиатуре кнопка backspace • Удаляем ошибки, установка ПО, подключение оборудования (видео)

Надо ли получать root

Любое приложение с привилегиями root должно запрашивать разрешение на установку

Система Android через root-доступ становится открытой, что увеличивает риск случайной установки вредоносного ПО. Хотя пользователь с правами root и проводит все операции вручную, небрежное прикосновение пальцем или установка предположительно безобидного приложения для корневого каталога может привести к проникновению вредоносного ПО и нанести гораздо больший урон, чем если бы root-прав у пользователя не было.

Распространение гарантийных обязательств на рутованный смартфон

Для многих пользователей наиболее важным моментом является потеря гарантии по договору — гарантия по закону остается. Давайте уточним: гарантия по закону — это юридическое обязательство, которое продавец должен соблюдать, если клиент обнаружил в устройстве дефект, существовавший на момент покупки. Гарантия по договору — добровольная услуга, которая гарантирует покупателю нормальное функционирование товара в течение определенного периода времени после покупки.

Если клиент обнаруживает дефект, который еще не существовал во время покупки, гарантия по договору теряется, если на телефон были получены root-права. Однако и здесь невозможно подвести все случаи под один знаменатель, потому что производители в каждом случае поступают по-разному. Например, HTC косвенно сообщает, что гарантия сохраняется, если дефект не вызван рутованием устройства. Многие другие производители замалчивают этот вопрос или сразу указывают на потерю гарантии в подобных случаях.

Если вы не знаете, как поступить, то можно порекомендовать лишь одно: попытайте удачу, но до этого постарайтесь по возможности удалить все следы root-прав на устройстве.

Апгрейд на Android 8 Oreo: список смартфонов, которые получат обновленияЛучшие Android-приложения для обработки изображенийВ России заблокирован крупнейший каталог пиратских Android-приложений

Если вы являетесь регулярным читателем Хабра, то должно быть заметили что за последние несколько лет вышло немало статей о сборе персональных данных с мобильных устройств, и о попытках противодействия этому, было несколько отличных статей с детальными инструкциями по превращению своего смартфона на базе ОС Android в настоящую цитадель приватности и безопасности.

Часто для этого рекомендуется получение прав суперпользователя в системе (root-права), удаление системных приложений от Google и от производителя устройства, или даже полная замена стандартной ОС на альтернативные сборки, чаще всего LineageOS (бывший CyanogenMod). При этом первым шагом в этом процессе всегда будет так называемая «разблокировка загрузчика». Во время её выполнения устройство несколько раз покажет нам страшные предупреждения о том, что теперь оно станет более уязвимо для злоумышленников, но мы смело нажимаем «подтвердить» и шьём root или самую свежую сборку кастомной прошивки, не задумываясь о том какие проблемы создаёт нам незаблокированный загрузчик.

Я хочу рассказать вам как погоня за приватностью и безопасностью может привести к бóльшим проблемам чем использование стоковых устройств, как при физическом доступе к устройству можно установить в android бэкдор который может пережить сброс до заводских настроек, как можно вытащить данные из зашифрованного устройства не зная пин-код, не входя в систему и без запущенного режима отладки в меню разработчика.

Вступление

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

Если задуматься, то ситуация с физическим доступом к смартфону не такая уж и невероятная. Например, последние годы набирает тенденция проверки мобильных устройств пограничниками при въезде в страну. Количество подобных проверок увеличивается в разы с каждым годом и вскоре может стать повсеместно распространённой практикой. С одной стороны это вопиющий произвол, нарушение законов и вторжение в частную жизнь, с другой стороны, законы большинства стран в этом моменте очень скользкие, плюс, например, на границе вы ещё не попали на территорию страны, поэтому и законы защищающие вашу частную жизнь ещё могут не действовать. В общем, «отжать мобилу» у вас смогут в подавляющем большинстве случаев. В журнале Хакер есть отличная статья обозревающая эту проблему. Если по каким-либо причинам вас задержит полиция, то все ваши электронные устройства также будут изъяты и, как и на границе, могут быть незаметно для вас пробэкдорены.

Постановка задачи

Итак, представим ситуацию, мы – злоумышленник, получивший на некоторое время в свои руки смартфон. Устройство – смартфон на базе android с разблокированным загрузчиком. Устройство имеет встроенное шифрование хранилища, его тип – аппаратный, т.е. ключи хранятся в TEE. Устройство заблокировано, для разблокировки необходимо ввести пин-код. Причём устройство находится в BFU (before-first-unlock) состоянии, это значит, что после включения устройства код разблокировки не вводился ни разу и файловая система зашифрована. На устройстве не включен режим отладки и подключиться по adb к нему невозможно. В нём содержатся данные, которые нам необходимо изъять. Устройство нужно будет вернуть владельцу, неповреждённое, в рабочем состоянии, причём владельцу не должно бросаться в глаза что его устройство было скомпрометировано.

Звучит как невыполнимая задача, и так бы оно и было, если бы нам любезно не открыл дверь сам владелец. Современные смартфоны очень хороши с точки зрения безопасности. Возможная поверхность атаки у них крайне мала. В последних версиях ОС android сделано очень многое для защиты данных пользователей. Защита системы выстроена в несколько уровней. Данные шифруются, подписи проверяются, ключи хранятся аппаратно. Везде используется подход «least privilege» – запрещено всё что не разрешено. Приложения работают в рамках серьёзных ограничений. Можно смело утверждать, что современные смартфоны являются одними из лучших примеров безопасных устройств, которые создавал человек.

Если пользователь не совершает явно странные действия вроде скачивания странных apk со странных ресурсов и не выдаёт им явно руками привилегий администратора устройства, то навредить пользователю или украсть его данные довольно затруднительно. И даже эти проблемы являются скорее не дырами в безопасности системы, а следствием свободы, которую android предоставляет пользователям, однако не все распоряжаются ей правильно. Прошли времена, когда безопасность android была поводом для шуток. На сайте известного брокера эксплоитов, компании Zerodium, FCP — full-chain with persistence или полная цепочка удалённой эксплуатации устройства с закреплением в системе в настоящий момент является самым дорогим эксплоитом, за который компания готова выложить до двух с половиной миллионов долларов.

Разблокированный загрузчик роняет уровень сложности этой задачи от невозможного до тривиального. Почему-то тема опасности открытых загрузчиков поднимается довольно редко, и, мне кажется, её значимость здорово недооценена, поэтому давайте разбираться.

Код с примером будет приведён довольно упрощённый и не в самом изощрённом варианте, но рабочий и явно демонстрирующий то, как именно это работает.

Все действия я проводил на устройствах на OnePlus 5T (он же dumpling по принятой в android device tree классификации) на стоковой OxygenOS и LineageOS с версиями соответствующими android 9 и 10, и XiaomiMI6 (он же sagit). Из-за этого некоторые нюансы структуры разделов, и выводы некоторых команд у вас могут отличаться, но общая суть происходящего не изменится.

Я буду часто ссылаться на ресурс source.android.com. Это примерно тоже самое что и developer.android.com но не для разработчиков приложений, а для разработчиков устройств. Там хорошо описана работа ОС, системных компонентов, и т.д. Очень рекомендую, вряд ли где-то можно найти более структурированную информацию по устройству системы.

Что же плохого происходит когда загрузчик разблокируется?

Загрузка системы начинается с загрузчика. Загрузчик – это небольшой бинарный компонент, который запускается непосредственно чипсетом и отвечает за загрузку и запуск ядра. Если в настольных дистрибутивах linux мы привыкли в основном к загрузчику grub, то на android смартфонах у нас загрузчиком является aboot. Процесс загрузки происходит следующим образом:

Надо ли получать root

Таблица хэшей dm-verity

Весь этот процесс называется boot flow и отлично проиллюстрирован здесь:

Надо ли получать root

У загрузки с avb может быть 4 конечных состояния, условно обозначаемых цветами:

Дополнительно:  6.2.22 Troubleshooting Problems Connecting to MySQL

Задача механизмов avb и dm-verity убедиться в том, что загружаемые ядро и система не были изменены и дошли до устройства пользователя в таком виде в каком их выпустил производитель устройства. Если пользователь решил установить root-права или альтернативную сборку ОС, то он неминуемо нарушит хэши партиций и чтобы система могла продолжить работу а не уходила сразу в «красное состояние» в котором откажется загружаться, ему придётся разблокировать загрузчик и с точки зрения avb перевести устройство в «оранжевое состояние» где android будет закрывать глаза на модификации системы. Этим пользуются и инструменты для получения root, и сторонние сборки, этим могут воспользоваться и злоумышленники, этим воспользуемся и мы.

Логическим следствием перехода в «оранжевое состояние» и отключения avb является возможность загружать образы с ядром не подписанные производителем устройства. Среди любителей модифицировать android самым популярным проектом такого рода является «Team Win Recovery Project» или просто TWRP. TWRP позволяет делать с устройством практически всё, в частности монтировать и модифицировать любые разделы не загружаясь в саму систему непосредственно. Именно эта возможность нам будет нужна для нашей задачи, но для начала надо разобраться с тем, как именно данные пользователя хранятся на устройстве.

Как устроено хранилище

Если мы посмотрим на структуру разделов на хранилище смартфона, то увидим что их на устройстве довольно много.

Большинство из них небольшие, и содержат, например, логотип производителя девайса, который отображается сразу после подачи питания на плату устройства. Есть раздел содержащий прошивку, работающую на baseband процессоре и отвечающую за мобильную связь, звонки и интернет по стандартам 2G, 3G, LTE и т.д. Есть разделы содержащие BLOBы необходимые для работы с некоторыми устройствами. Нас будет интересовать всего несколько разделов, содержание которых монтируется в файловую систему и напрямую используется во время работы ОС:

Данные приложений, «internal storage», находятся по пути /data/data. В этой директории сложены директории-песочницы отдельных приложений, соответствующие их полным именам пакетов. Например:

drwx—— 8 u0_a69 u0_a69 4096 2021-01-29 13:31 com.google.android.youtube

Общее хранилище, «external storage», находится по пути /data/media/0, внешние SD-карты соответственно будут называться /data/media/1. Во время работы оно линкуется в /storage.

Как устроено шифрование хранилища

Для начала разберёмся как устроено шифрование хранилища, потому что это самое труднопреодолимое препятствие для изъятия данных. Шифрование применяется на уровне файловой системы. Существует два основных подхода к организации шифрования:

До первого ввода кода разблокировки данные пользователя всегда зашифрованы, после первого ввода – всегда расшифрованы. Даже когда пользователь в дальнейшем нажимает кнопку питания или система сама уходит в сон, то данные, с точки зрения ОС, больше не переходят в зашифрованное состояние, теперь их защищает только экран блокировки. В android пока не предусмотрен механизм очищения ключей для расшифровки файловой системы из памяти после определённого периода неактивности.

Это значит, что если после того, как устройство было разблокировано хотя бы однажды подключиться к нему, например по adb, то пользовательские данные будут доступны и можно получить к ним доступ даже если экран заблокирован.

Вот так выглядит общее хранилище до первого ввода кода разблокировки:

# ls -la /data/media/0/
total 100
drwxrwx— 13 media_rw media_rw 4096 2021-01-29 10:45 .
drwxrwx— 4 media_rw media_rw 4096 2021-01-29 10:43 ..
drwxrwxr-x 2 media_rw media_rw 4096 2021-01-29 10:43 3aIg6706qnt+JRerXQc,9B
drwxrwxr-x 2 media_rw media_rw 4096 2021-01-29 10:43 5RxSnwRfzXH5JsgykyuneB
drwxrwxr-x 2 media_rw media_rw 4096 2021-01-29 10:43 9QCg2626EAEHNRc,IpjzjC
drwxrwxr-x 2 media_rw media_rw 4096 2021-01-29 10:43 XLrhnulSzxYVPwgkHhs8YC
drwxrwxr-x 2 media_rw media_rw 4096 2021-01-29 10:45 ZC6kM5uXi6,coHL+OYgLCB
drwxrwxr-x 2 media_rw media_rw 4096 2021-01-29 10:43 kJJ0DN8Tmhcs7hicwcEZ3A
drwxrwxr-x 2 media_rw media_rw 4096 2021-01-29 10:43 mPaCm6PJHF9,MyimVTRozC
drwxrwxr-x 3 media_rw media_rw 4096 2021-01-29 10:43 qIkgta78EOvsfnjupFXQ+C
drwxrwxr-x 2 media_rw media_rw 4096 2021-01-29 10:43 uAP,C13tjXpxdP8PWVeMRD
drwxrwxr-x 2 media_rw media_rw 4096 2021-01-29 10:43 v33cOjp,wu+hlgBIWnQdjB
drwxrwxr-x 2 media_rw media_rw 4096 2021-01-29 10:43 xxjD9tk7bDh9XZUzoDwMbB

А вот так после:

# ls -la /data/media/0/
total 100
drwxrwx— 13 media_rw media_rw 4096 2021-01-29 10:45 .
drwxrwx— 4 media_rw media_rw 4096 2021-01-29 10:43 ..
drwxrwxr-x 2 media_rw media_rw 4096 2021-01-29 10:43 Alarms
drwxrwxr-x 3 media_rw media_rw 4096 2021-01-29 10:43 Android
drwxrwxr-x 2 media_rw media_rw 4096 2021-01-29 10:43 DCIM
drwxrwxr-x 2 media_rw media_rw 4096 2021-01-29 10:43 Download
drwxrwxr-x 2 media_rw media_rw 4096 2021-01-29 10:43 Movies
drwxrwxr-x 2 media_rw media_rw 4096 2021-01-29 10:43 Music
drwxrwxr-x 2 media_rw media_rw 4096 2021-01-29 10:43 Notifications
drwxrwxr-x 2 media_rw media_rw 4096 2021-01-29 10:43 Pictures
drwxrwxr-x 2 media_rw media_rw 4096 2021-01-29 10:43 Podcasts
drwxrwxr-x 2 media_rw media_rw 4096 2021-01-29 10:43 Ringtones
drwxrwxr-x 2 media_rw media_rw 4096 2021-01-29 10:45 bluetooth

На самом деле, шифрование хранилища – самая трудно преодолимая часть нашей задачи по извлечению данных. Обойти шифрование с ключами в аппаратном ТЕЕ никак не представляется возможным, но зато из этой информации следует несколько полезных выводов, а наша задача начинает формироваться в конкретные технические требования.

Это подводит нас к мысли о том, что можно воспользоваться возможностью модифицировать никогда не шифруемую часть системы, внедрить в неё агента, который никак не затронет и не испортит зашифрованные данные, а в последствие даст нам доступ к ней после того как устройство будет возвращено пользователю и он сам первый раз введёт код разблокировки. Поскольку пользователь явно не будет вводить код разблокировки подключив устройство к нашему usb кабелю или находясь в нашей локальной сети, то использование adb нам не подходит и необходимо организовать удалённый доступ в формате reverse-shell.

Получение удалённого доступа

Для android существует популярная полезная нагрузка в Metasploit фреймворке которая теоретически может дать нам удалённый доступ к устройству – android/meterpreter/reverse_tcp, однако с ней есть проблемы:

Для того, чтобы агент мог без проблем поддерживать себя постоянно запущенным, не отсвечивать в операционной системе и не попадать под регулирования и ограничения для установленных приложений, необходимо оформить его в виде системного сервиса — демона.

Для того, чтобы понять как именно это сделать, нужно вернуться к процессу загрузки системы, однако теперь мы верхнеуровнево рассмотрим оставшуюся её часть происходящую сразу после рассмотренного в начале boot flow, т.е. когда загрузчик загрузил раздел boot, отработал механизм verified boot и система получила добро на запуск:

Судя по всему, для внедрения в систему в качестве демона нам потребуется подготовить исполняемый файл с полезной нагрузкой и описать системный сервис, который будет его вызывать.

Исходный init.rc импортирует дополнительные скрипты из нескольких директорий, в том числе и основного источника этих скриптов из системного раздела: /system/etc/init/.rc, поэтому мы подготовим свой скрипт и поместим его туда.

Синтаксис .rc скриптов несложный, он хорошо описан здесь, а ещё можно подглядеть в то, как именно он устроен просто заглянув в файлы в вышеупомянутой директории.

Подготовим описание нашего сервиса:

service revshell /system/bin/revshell
disabled
shutdown critical

on property:sys.boot_completed=1
start revshell

Укажем название сервиса revshell.

Путь к исполняемому файлу будет лежать в стандартной директории для бинарников в android. Агента мы поместим именно туда.

disabled означает то, что его не нужно загружать непосредственно в процессе загрузки системы сразу после обработки скрипта. Мы будем стартовать сервис специальным триггером, который ориентруется на объявление проперти sys.boot_completed.

shutdown critical означает то, что сервис критический и не должен убиваться даже при подаче сигнала о выключении системы.

План таков: система запустит нашего агента при загрузке до попадания на экран ввода кода разблокировки. Агент ожидает расшифровки файловой системы. После того как владелец устройства введёт код разблокировки, агент запускает reverse-shell и предоставляет нам доступ в систему с возможностью достать любые файлы.

На системный сервис не распространяются правила OOM-киллера и правила энергосбережения, он не будет остановлен если в системе заканчивается память, или она уснёт. В случае завершения процесса сервиса по любой причине, система будет его рестартовать не позднее чем через 5 секунд. Даже в случае если сервис не может запуститься и его процесс падает, система никогда на бросит попыток его запустить и будет продолжать делать это пока продолжает работать.

Оцените статью
Master Hi-technology
Добавить комментарий