Как стань root

Как стань root Техника

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

Содержание
  1. Что такое Root?
  2. Зачем это нужно?
  3. Какие минусы и опасности получения прав суперпользователя?
  4. Как получить root на моем устройстве?
  5. Что делать, если Root так и не был получен?
  6. Использование команды
  7. Использование Sudo
  8. 1 Sudo shell
  9. Consolehelper
  10. Что такое root-права?
  11. Зачем нужны root-права?
  12. Кому НЕ нужны root-права
  13. Способы получения root
  14. Как получить root-права?
  15. Настройка Magisk или как пройти SafetyNet
  16. Опасности root-прав
  17. Выводы
  18. Мой набор Magisk-модулей
  19. Программа VRoot
  20. Повышение привилегий через небезопасную конфигурацию
  21. Получаем стабильный shell
  22. Просмотр истории команд
  23. Поиск паролей в файловой системе и атаки на смежные системы
  24. Suid/Sgid
  25. Доступные на запись скрипты, запускаемые Cron или Init, в контексте Root
  26. Получение доступа в оболочку других пользователей
  27. Самописный код
  28. Повышение привилегий через эксплуатацию уязвимостей
  29. Эксплуатация сервисов, запущенных в контексте пользователя root
  30. Эксплуатация уязвимостей ядра Linux
  31. Metasploit
  32. Tools
  33. Linpeas
  34. LinEnum
  35. Linux-exploit-suggester (1,2)
  36. Linuxprivchecker

Что такое Root?

Рутирование устройства означает получение прав суперпользователя, что примерно соответствует аналогичному понятию из мира Linux. Благодаря этому вы сможете выполнять практически любые действия, в том числе потенциально опасные. Другими словами, это получение полного контроля над своим устройством.

Зачем это нужно?

Среди преимуществ можно выделить следующее:

Какие минусы и опасности получения прав суперпользователя?

В Интернете достаточно страшилок по этому поводу и некоторые из них имеют под собой почву. Итак, среди недостатков root замечены следующие:

Как получить root на моем устройстве?

Процедура получения прав суперпользователя, как правило, не сложная и при внимательном выполнении всех инструкций проходит без всяких проблем. Более того, создано несколько универсальных утилит, которые автоматизируют этот процесс и делают доступным даже самым начинающим пользователям. Одной из самых известных является Framaroot. Эта программа позволяет рутировать очень большое количество разных устройств. И даже если название вашего гаджета отсутствует в списке поддерживаемых, все равно имеет смысл попробовать, так как есть довольно большая вероятность получения root, а негативных последствий точно не будет.

Итак, для получения root с помощью программы Framaroot необходимо выполнить следующие действия.

2. Установите программу из загруженного apk-файла на свое устройство.

Как стань root

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

Как стань root

4. Тапните по одному из доступных эксплоитов и через пару секунд появится подсказка, описывающая результаты его работы. Если один способ не срабатывает, то попробуйте другой. Иногда бывает, что при получении прав суперпользователя Framaroot аварийно закрывается. В этом случае просто перезапустите программу и попробуйте еще раз.

Как стань root

5. Как только вы получите подсказку, что устройство успешно рутировано, следует перезагрузить устройство.

Что делать, если Root так и не был получен?

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

Как стань root

Разные варианты получения прав root

1. Здесь обсуждается только получение Root — прав.2. Перед тем, как задать свой вопрос, посетите тему по Прошивке (Обсуждению) своего устройства и воспользуйтесь поиском по теме по ключевому слову — root (рут).3. Воспользуйтесь поиском по этой теме. Ключевое слово — ваше устройство. Повторные вопросы и вопросы по устройствам, по которым имеется информация, удаляются без предупреждения. 4. Все данные из консоли программ, adb и cmd убираются под спойлер или код! BB-код:

Обязательная часть! (Если рассчитываете на помощь обязательно публикуйте следующие данные)

Используемые программы: Устройство: Версия прошивки: Версия OS: Операционная система на компьютере: Описание проблемы:Если используемые программы не будут указаны, то пост удаляется.

Получение Root — прав:

Методы получения root’a:

Получение root с телефона

OS 1.5 — 4.x.

KingRoot OS 2.3+OneClickRoot (вроде как пятерки ломает)Baidu Root OS 2.2+ если проблемы на 4.4.x.Baidu Super Root OS 2.3+Root Dashi OS 2.2+DingDong Root OS 2.2+ Аналог Baidu Root.Framaroot OS 2+ — 4.x.Towelroot OS 2.2+Universal Root OS 2.2+ 360 Root OS 1.6 — 4.2Romaster SU OS 2.0+iRoot OS 2.3+Root Zhushou OS 2.0+ Root Genius 2.3+Root Tool OS 2.3+Root with Restore Получение root прав на ICS/JB девайсе.

OS 1.5 — 2.2.1

Universal AndRoot OS 1.5 — 2.2z4root OS 2.1 — 2.2.1VISIONary+ OS 2.1 — 2.2.1

Gingerbreak OS 2.3.3 — 2.3.6.

Для определенных моделей телефонов

Получение Root на устройствах с процессором Rockchip RK3188Получение Root на устройствах с процессором Rockchip RK3368 (Lollipop)Получение Root на 4.4.х через CustomRecovery Получение ROOT-прав на BluBoo X1s0-click root for Meizu M9 Получение Root в один клик на Meizu M9. OS 2.1 — 2.3.6.Root Zenfone Получение Root на устройствах ASUS. OS 4.x.Stump Root Получаем Root в один клик на смартфонах LG. поддерживаются смартфоны LG с середины 2012 по 2014 год.Poot Получение Root на устройствах с процессором Qualcomm. OS 2.3+

Получение root с компьютера

Root через adb

SuperOneClickClick2Root Программа делает рут только на Android не выше версии 2.3.Terminal-ROOT by MoNTE48 Получение Root через adb. OS 2.3+ROOT_v5.0 Root для ICS без бута, для всех смартфонов с OS 4.0

Samsung Root Firmware Replacer Перепаковка прошивок от Samsung и встраивание в них Root прав. Virtualbox с установленным Linux или Linux.HTC Super Tool Программа предназначена для получения прав рут на устройствах HTC.

Программы для управления правами Root

Заявки на рутирование ядра

Поиск готовых неофициальных TWRP для прочих устройств

Будьте взаимно вежливы! У нас на форуме принято говорить «» путём повышения репутации нажав на кнопочку

Если у вас меньше 15 сообщений, нажмите на кнопку

(под репутацией) и сообщите, кто Вам помог,кому ставить»+».

Сообщение отредактировал destroyer71 — 20.01.22, 15:18

Причина редактирования: Получение рут на МТК процессорах

Абсолютно ничего. В программе содержится код (или скрипт) для получения рута через уязвимость в защите OS Android.В данном случае, приложение ставит рута, однако в остальных случаях, другими неизвестными приложениями, можно получить доступ к телефону и напакостить.И официальная позиция Каспера — оставить все как есть — т.е. файл похож на вирус, а значит по умолчанию они его блокируютВпрочем, этот файл и еще Universal AndRoot (который так же содержит тот же код) — они рекомендуют добавить в исключения.

На всех версиях программы пишет синтаксическая ошибка пакета.Куда копать? :blush: SGS

Сообщение отредактировал robert 1974 — 21.11.10, 21:54

На всех версиях программы пишет синтаксическая ошибка пакета.Куда копать? SGS

добавлю: сперва надо отключить автоудаление подозрительных объектов, а то добавлять в исключения будет нечего 😉

Samsung Galaxy S прошивка JPB.Получил root с помощью z4root 1.3.0 по следующему алгоритму:1. Пришлось сначала поставить BusyBox2. Сделал Temporary root, потом дал root самой программе z4root и BusyBox3. Сделал Permanent root.

По другому не получалось, при нажатии сразу на Permanent root зависала или была выгружена.

А объясните, чем temporary от permanent отличается. И можно ли к permanent применить unroot?

Сообщение отредактировал mikhenty — 02.12.10, 08:30

z4root 1.3.0 слетает при нажатии на любую кнопку. сначала девайс вибронул 1 раз, потом два раза, и тишина.

ктото пробовал на данной прошивке рутится?

Или я задаю вопрос невнятно, или мне совсем не понятны ваши ответы.

1. Если я сделаю root, гарантия слетает ?2. Если я сделаю после root un-root, тел. возвращается в прежнее состояние (как с ответов понял исчезает суперпользователь), что тогда с гаранией?3. Для живых обоев (тел. Samsung I5800) нужен постоянно root ?

1.да2.Я думаю что все впорядке3.нет

А что такое root.me?

Альтернатива Universal AndRoot (использующая тот же самый эксплоит rageagainstthecage как и Universal AndRoot, z4root и прочие подобные программы)http://forum.xda-developers.com/showthread.php?t=827058Не обновлялась с 3 ноября 2010

Не поддерживаются* Samsung i9000 / i6500U / i7500 / i5700* Motorola ME600 / ME501 / MB300 / CLIQ XT* Motorola 2.2 FRG22D* Archos 5* HuaWei U8220* HTC Desire / Legend / * HTC EVO 4G / Aria* SonyEricsson X10i R2BA020* myTouch Slide

Добрый вечер!Приобрел НТС Desire! Все устраивает! Попытался установить программу Font Size (что бы буковки побольше стали — уж больно мелкова-то) Она запросила root права. Перепробовал все Ваши выше описанные варианты — результат ноль

SuperOneClick — не помогает (faild)z4root — вроде дает временные права — запускаю прогу Font Size — после перезагрузки все как было маленькое так и осталось Permanent — тоже результата не даетUniversal AndRoot *выпуск новых версий прекращен* — faild при рутировании

Если не трудно подскажите выход из данной ситуации?

Данную прогу (Font size) проверял на HTC HD2 Андроиде 2.2 (сборка revolution) — работает тока в путь

а вот с тем что ниже незнаю что делатьHTC Desire Android 2.2 Версия модуля 32.49.00.32U_5.11.05.27 Номер ПО 2.29.405.5CL293415 release=-keys

Дополнительно:  Экран не включается после чистки компьютера, поможете, пожалуйста? — Хабр Q&A

На desire можно получить root с помощью visionary она есть в программах на этом сайте, так что радуйтесь руту в один клик.

Для телефонов HTC EVO 4G, Sprint Hero, HTC Desire, HTC Wildfire, HTC Aria, HTC Droid Incredible необходимо сначала провести процедуру разблокировки NANDhttp://unrevoked.com/

вот я прошел по ссылке. сразу проблема «Connect the phone to your Windows machine with a USB cable and wait for the phone to say HBOOT USB PLUG on screen.» У меня не появляется HBOOT USB PLUG. Подскажите, что делать?

программа не отвечает, причём такое происходит и без телефона в usb, она сама по себе не робит

Или не установлен NET. Framework 2.0 и вышеИли антивирус ругнулся/заблокировал/отрезал программу (так как она содержит linux-эксплоит)

Gigabyte G1305Universal AndRoot -2,1 2,2 не вышлоz4root 2,2 — есть В)

Используемая программа: SuperOneClickУстройство: HTC WildfireОперационная система на компьютере: Windows 7Описание проблемы:Делаю все по инструкции, но доходя до пунктов, выделенных красным:

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

Кстати, стоит андроид 2.2. Может для него еще не придумали способ получения рут?

Сообщение отредактировал SwLassie — 26.01.11, 21:56

Использование команды

Многие команды могут быть запущены только суперпользователем, поэтому мы должны знать, как становится им (root-ом). Чтобы сделать это, мы можем использовать команду: su (смена пользователя). Команда su принимает следующие форматы:

но чаще всего мы будем использовать su для того, чтобы стать пользователем root:

su — root

если имя пользователя в строке не указано, то автоматически предпологается пользователь root, поэтому команду можно сократить:

но обе команды ведут себя различно. ‘su ‘ дает текущему пользователю личность , тогда, как ‘su — ‘ дает текущему пользователю личность вместе с окружением , которое можно было бы получить, зарегистрировавшись в качестве .

Зачастую пользователи используют ‘su’ для перехода в root. Попробовав запустить команду (например — ifconfig), вы получите: ‘command not found’ error.

su
Password:
ifconfig
bash: ifconfig: command not found

Команды обычных пользователей обычно расположены в /usr/local/bin, /usr/bin и /bin. А команды пользователя root распологаются в основном в /usr/local/sbin, /usr/sbin, /sbin и корневой PATH это отражает. Поэтому, когда вы становитесь суперпользователем при помощи «su -«, то вы также принимаете и новый путь PATH к основным командам. А используя только ‘su’, сохраняется пользовательский путь PATH по умолчанию, следовательно, при попытке выполнить программу расположенную в /usr/local/sbin, /usr/sbin, /sbin выдаст результат: ‘command not found’ error. Для более детального объяснения, смотрите справочную страницу (man bash), особенно раздел login shells.

Таким образом, вы или должны указывать полный путь к команде (пример — /sbin/ifconfig) при использовании ‘su’, либо использовать ‘su -‘, когда становитесь root-ом.

Использование Sudo

Вам не нужно быть суперпользователем каждый раз, когда вы хотите запустить некоторые конкретные административные функции. Благодаря Sudo, вы можете запустить некоторые или все команды как под root-ом. Когда Sudo установлен (пакет: Sudo), вы можете настроить его при помощи команды ‘visudo’ под root-ом. В основном он редактирует (Vim по умолчанию) /etc/sudoers, но это не рекомендуется делать вручную.

Таким образом, быстрый и нерекомендуемый способ использования Sudo, это добавить в конце файла sudoers:

Alex — имя пользователя. Сохраните (нажать escape, затем ввести wq), и все готово. Войдите как alex, и запустите например:

$sudo yum update

Sudo запросит пароль. Это пароль alex-а, а не пользователя root. Так что будте осторожны, когда вы даете права пользователя с Sudo.

Alex так же может выполнить суперпользовательскую команду, и alisa получила право запускать Sudo, с теми же правами и со своим паролем. Если alex и alisa не члены одной группы, мы можем определить псевдоним пользователя в файле sudoers:

Тем не менее, мы не хотим, чтобы alex и alisa могли запускать с правами суперпользователя любую програму. Мы хотим, чтобы они могли запускать только ‘updatedb’. Давайте определим команду псевдоним:

Cmnd_Alias LOCATE = /usr/sbin/updatedb

На этот раз, /etc/sudoers выглядит следующим образом:

В результате alex и alisa могут запускать updatedb, как root, введя свой пароль.

Если последнюю строчку в файле изменить:

тогда alex и alisa смогут выполнить ‘sudo updatedb’ без ввода пароля.

Можно добавить другие команды в командный алиас и более алиасов в правило. Например мы можем создать алиас NETWORKING содержащий некоторые сетевые команды типа: ifconfig, route или iwconfig:

Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhcclient, /usr/bin/net, sbin/iptables,
/usr/bin/rfcom, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool

Маленькая проба: войдите в систему как alisa (или alex), и наберите:

$ping -c 10 -i localhost

Ответ должен вернуться быстро:

Теперь, тоже-самое но с Sudo:

$sudo ping -c 10 -i 0 localhost
PING localhost.localdomain (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=1 ttl=64 time=0.049 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=2 ttl=64 time=0.034 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=3 ttl=64 time=0.021 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=4 ttl=64 time=0.030 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=5 ttl=64 time=0.017 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=6 ttl=64 time=0.016 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=7 ttl=64 time=0.016 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=8 ttl=64 time=0.016 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=9 ttl=64 time=0.016 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=10 ttl=64 time=0.016 ms
— localhost.localdomain ping statistics —
10 packets transmitted, 10 received, 0% packet loss, time 1ms
rtt min/avg/max/mdev = 0.016/0.023/0.049/0.010 ms, ipg/ewma 0.187/0.028 ms

Sudo часто используется для предоставления определенным пользователям частичного доступа к привелигированным командам, чтобы они могли выполнять ограниченные административные функции. Одно из удобств Sudo в том, что все команды записываются в /var/log/secure. Приведенный выше пример будет описан строчкой в журнале:

Вот и все. Теперь никогда не забуду, когда использовал Sudo: «с большой властью приходит большая ответственность».

1 Sudo shell

Если у вас настроено достаточно прав в sudoers, вы также можете открыть root-ую оболочку shell используя:

В последних версиях только на CentOS 5, для запуска shell под root, используется sudo -s. Будьте очень осторожны, так как это может менять или создавать новые файлы в домашней директории Root, а установку вести в домашний каталог вызвавшего пользователя.

Consolehelper

Consolehelper представляет собой оболочку для запуска GUI приложений. Когда он начинает работать, он проверяет конфигурацию PAM для требуемого применения. Это означает, что мы можем проводить аутентификацию пользователя с помощью всех установленных модулей PAM. Основной метод состоит в том, чтобы запросить пароль, но если мы имеем надлежащее оборудование. мы можем аутентифицировать с помощью смарткарты, жетонов, отпечатков пальцев и т.д. Конфигурация PAM выходит за рамки этого документа (см. PAM Руководство администратора), поэтому мы рассмотрим этап настройки consolehelper, необходимый для запуска приложений под root-ом и запросом пароля root.

В качестве примера, давайте настроим /usr/bin/xterm для запуска в качестве root-ого.

Во-первых, мы хотим сохранить возможность запускать Xterm под обычным пользователем. Поэтому создадим символическую ссылку /usr/bin/xterm-root для /usr/sbin/consolehelper:

ln -s /usr/sbin/consolehelper /usr/bin/xterm-root

Теперь для конфигурирования PAM — создайте файл /etc/pam.d/xterm-root:

#%PAM-1.0
auth include config-util
account include config-util
session include config-util

Наконец, настройте consolehelper на запуск /usr/bin/xterm под root-ом, командой ‘xterm-root’. Создайте файл /etc/security/console.apps/xterm-root:

Вот и все. Запускайте ‘xterm-root’ (из командной строки или ярлыком .desktop file), введите пароль и в путь. Если вы получили сообщение об ошибке: «Xlib: connecttion to «:0.0″ refused by server», запустите сначала ‘xhost local:root’.

Доброго времени суток всем моим читателям! Сегодня, продолжая цикл статей о кастомизации своего устройства, расскажу о том что такое права «root», зачем они нужны, кому они абсолютно точно не нужны и, если вы все-таки решили, как их получить.

Что такое root-права?

Сразу оговорюсь — я не буду вдаваться в технические детали реализации самого процесса рутирования телефона, поскольку недостаточно компетентен в этом, да и статья не про это.

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

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

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

Зачем нужны root-права?

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

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

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

Дополнительно:  Не запускается ноутбук. Проблемы с Windows и комплектующими.

Кому НЕ нужны root-права

Именно так. Если вы сидите на данном ресурсе и дочитали до этого момента, полагаю, вы настроены решительно и будет проще перечислить все ПРОТИВ, нежели все ЗА. Преимуществ у расширенных прав действительно много, но это силой надо уметь управлять. Таким образом, список пользователей, которым я бы не рекомендовал получать root, можно сформулировать примерно так:

Способы получения root

Раньше, когда деревья были высокими а слоны мохнатыми, во времена Android ~4, существовали специальные утилиты как на само устройство так и на ПК, с помощью которых можно было получить root.

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

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

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

В определенный момент, как альтернатива этим утилитам, на арену рутирования выходит OpenSource-проект Magisk разработанный, несомненно, талантливым, программистом, под ником topjohnwu.

Главная особенность данного метода — возможность «внесистемного» внесения изменений с помощью подключаемых модулей. Это означает, что с выключением Magisk-модуля, отменялись изменения в системе, которые вносил этот модуль.

Работает это, на самом деле, проще чем можно подумать. В корне файловой системы создается «зеркало» раздела data (так и называется — data_mirror) и необходимые изменения вносятся в систему посредством создания символических ссылок на этот раздел.

Также, старые версии Magisk «из коробки» способны скрыть факт наличия root-прав от программ, которые не любят их (банковские приложения, например). Новые версии требуют установки дополнительных модулей.

Как получить root-права?

Мы, наконец, переходим от скучных лекций к решительным действиям.

Для получения таких прав, вы можете воспользоваться одной из перечисленных выше утилит, но только в том случае, если у вас есть возможность восстановить систему и нет возможности установить Magisk. В целом, я всё равно не рекомендую такие утилиты к применению.

Более подробно мы будем рассматривать установку Magisk на примере самой последней версии (25.2).

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

Первым делом нам необходимо, как обычно, сделать полный бекап разделов системы на внешний носитель, вроде sd-карты, чтобы если что-то пойдет не так, вернуть как было.

Следующим шагом будет скачивание установочного файла Magisk (исключительно из официального репозитория!). Если ваш recovery позволяет устанавливать APK как zip-архивы, как, например, OrangeFox, то скачанный файл в исходном виде копируем на внешнюю память устройства, поскольку внутренняя зачастую шифруется и вы просто не найдете этот файл из recovery. В случае, если у вас другой recovery, файл Magisk.apk необходимо переименовать в Magisk.zip и таким же образом скопировать на устройство.

Далее необходимо загрузиться в recovery и сделать отдельно резервную копию раздела boot.img. Далее поясню, зачем.

В Magisk имеется возможность полного удаления root с помощью переименования файла установки в uninstall.zip и прошивки в recovery, НО, он не работает на системах с включенным шифрованием data.

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

Имея на руках boot исходной системы (без Magisk) мы сможем восстановить конкретно этот раздел и, в большинстве случаев, работоспособность системы.

После того, как бекапы сделаны, люки задраены, просто прошиваем установочный файл Magisk как любой другой архив через recovery. Всё.

В общем и целом, ничего сложного в самом процессе установки нет, после прошивки и загрузки системы, в меню приложений появится приложение «Magisk», которое при первом запуске обновится и будет работать. Самое важно и интересное кроется в настройке.

Настройка Magisk или как пройти SafetyNet

В новых версиях (24+) Magisk на смену Magisk Hide пришел новый метод сокрытия root — Zygisk. Его название состоит из слов Zygote — материнского низкоуровнего процесса Android, с помощью которого происходит работа Magisk и собственно названия приложения.

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

Сразу после этого необходимо установить два модуля из Github-репозиториев — Universal SafetyNet Fix и Shamico. Первый нужен для прохождения CTS-аттестации (сертификация устройства SafetyNet), а второй для корректной работы функции скрытия root и DenyList magisk. Установка модулей интуитивно понятна и не должна вызвать вопросов.

Не уходя далеко после установки модулей переходим в раздел «Настройка DenyList», не активируя пункт «Активировать DenyList».

В этом меню мы увидим список установленных приложений. Скрытие root по умолчанию применено к сервисам Google, отдельно включать не надо! В большинстве случаев достаточно проставить галочки рядом с приложениями, от которых вы хотите скрыть рут, но бывают случаи, когда это не работает (например, некоторые банковские приложения). Тогда я советую нажать на плашку с названием приложения. Откроется весь список компонентов, от которых скрывается рут и проставить переключатель возле каждого из них. Приложений, которые обходили бы этот метод я еще не видел.

Для закрепления рекомендую использовать функцию «Скрыть приложение Magisk», поскольку его наличие можно вычислить элементарно по списку установленных приложений (так, например, работает MirPay). MagiskManager пересоберется со случайным именем пакета и предложит себя установить.

Если есть возможность, можно ограничить конкретным приложениям доступ к списку приложений с помощью Xposed-модулей вроде Thanox или XPrivacy Lua и тогда скрывать Magisk Manager не обязательно.

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

Без должной настройки сервисы Google вскоре заметят чужака в системе и забракуют устройство по CTS.

Скрытие root для приложения необходимо делать до первого запуска целевого приложения! Мне попадались довольно злопамятные программы, которые раз увидев root, сохраняли мой id на сервере, приходилось либо перешивать устройство, либо подсовывать им фейковый Android ID.

Опасности root-прав

Не буду утверждать, что root-права это безопасно — любой необкатанный magisk модуль может привести систему в нерабочее состояние, при неумелом редактировании системных файлов система также придет в негодность, а функционал программ, запрашивающих root не всегда прозрачен. Не давайте root права приложениям, которым, по вашему мнению, они не нужны! Периодически такие права запрашивают Яндекс Карты, статистики ради или для чего-то еще — неизвестно, но проверять не хочется.

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

Самое опасное, наверное — потеря гарантии производителя, что логично.

Выводы

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

Мой набор Magisk-модулей

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Получали ли вы Root на своем устройстве?

Нет и не планирую

Нет, но хочу попробовать

Да, но сейчас не имею

Да, пользуюсь root-правами

Проголосовали 127 пользователей.

Воздержались 9 пользователей.

Время на прочтение

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

Под катом описание и инструкция по установке.

Программа VRoot

Как стань root

Самый простой способ установки ROOT на устройства Андроид (для некоторых устройств на сегодняшний день единственный способ установить ROOT). В данной версии программы уже реализована поддержка устройств на Андроид 4.3.

*На некоторых устройствах для установки ROOT, необходимо сначала разблокировать BOOTLOADER.

Установка ROOT

Получение ROOT прав:
Любая операция выполняется на ваш страх и риск!

Первый квартал 2020 года я провел за подготовкой к экзамену OSCP. Поиск информации в Google и множество «слепых» попыток отнимали у меня все свободное время. Особенно непросто оказалось разобраться в механизмах повышения привилегий. Курс PWK уделяет этой теме большое внимание, однако методических материалов всегда недостаточно. В Интернете есть куча мануалов с полезными командами, но я не сторонник слепого следования рекомендациям без понимания, к чему это приведет.

Мне хочется поделиться с вами тем, что удалось узнать за время подготовки и успешной сдачи экзамена (включая периодические набеги на Hack The Box). Я испытывал сильнейшее ощущение благодарности к каждой крупице информации, которая помогала мне пройти путь Try Harder более осознанно, сейчас мое время отдать должное комьюнити.

Я хочу дать вам мануал по повышению привилегий в OS Linux, включающий в себя разбор наиболее частых векторов и смежных фишек, которые вам обязательно пригодятся. Зачастую сами механизмы повышения привилегий достаточно несложные, трудности возникают при структурировании и анализе информации. Поэтому я решил начать с «обзорной экскурсии» и далее рассматривать каждый вектор в отдельной статье. Надеюсь, я сэкономлю вам время на изучение темы.

Дополнительно:  What's the difference between "Trusted Root Certification Authorities" and "Third-Party Root Certification Authorities" Windows certificate stores?

Как стань root

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

Повышение привилегий через небезопасную конфигурацию

Прежде всего давайте разберемся с небезопасной конфигурацией. Начнем с того, что ИТ-специалисты часто пользуются мануалами и ресурсами вроде stackoverflow, многие из которых содержат небезопасные команды и конфиги. Яркий пример — новость о том, что самый копируемый со stackoverflow код содержал ошибку. Опытный админ увидит косяк, но это — в идеальном мире. Даже грамотные специалисты при повышенной рабочей нагрузке способны допускать ошибки. Представьте, что админ занимается подготовкой и согласованием документации на очередной тендер, параллельно вникает в новую технологию, которую предстоит внедрить в следующем квартале, при этом периодически решает задачи по поддержке пользователей. И тут ему нарезают задачу по-быстрому поднять пару виртуалок и раскатать на них сервисы. Как вы думаете, какова вероятность того, что админ просто не заметит косяк? Потом специалисты меняются, а костыли остаются, при этом компании всегда стремятся минимизировать затраты, в том числе на ИТ-шников.

Получаем стабильный shell

Системная оболочка, полученная на стадии эксплуатации, часто бывает ограниченной, особенно если вы заполучили ее через взлом пользователя веб-сервера. Например, ограничения оболочки могут помешать применить команду sudo с выводом ошибки:

sudo: no tty present and no askpass program specified

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

python -c ‘import pty;pty.spawn(«/bin/bash»)’

Вы спросите: «Зачем мне тысяча команд, если я могу воспользоваться одной, например, для передачи файлов?» Дело в том, что системы бывают сконфигурированы по-разному, на очередном хосте может быть не установлен Python, однако иметься Perl. Мастерство в том, чтобы иметь возможность делать в системе привычные вещи без привычных инструментов. Полный перечень возможностей можно найти тут.

Низкопривилегированный шелл можно получить, используя команды 1 и команды 2 (удивительно, что даже GIMP).

Просмотр истории команд

Linux собирает историю всех выполненных команд в файле ~/.bash_history. Если сервер активно используется, и его история не очищается, существует большая вероятность найти в этом файле учетные данные. Чистить историю банально неудобно. Если администратор вынужден выбирать десятиэтажные команды через , конечно, ему будет удобнее вызвать эту команду из истории, чем вводить заново. Плюс многие не знают об этом «хаке». Если в системе присутствуют альтернативные оболочки вроде Zsh или Fish, они ведут свою историю. Чтобы вывести историю команд в любой оболочке, достаточно набрать команду history.

cat ~/.bash_history
cat ~/.mysql_history
cat ~/.nano_history
cat ~/.php_history
cat ~/.atftp_history

Поиск паролей в файловой системе и атаки на смежные системы

Команда sudo дает пользователю возможность выполнить команду в контексте root с помощью собственного пароля или вовсе без его использования. Многие операции в Linux требуют привилегий root, однако работа из-под root считается очень плохой практикой. Вместо этого лучше применять выборочное разрешение на выполнение команд в контексте root. Однако многие инструменты Linux, включая стандартные типа vi, можно использовать для повышения привилегий вполне легитимными способами. Для поиска подходящего способа рекомендую посмотреть здесь.

Первое, что нужно сделать, получив доступ в систему, — выполнить команду sudo -l. Она выведет разрешение на использование команды sudo. Если получен пользователь без пароля (например, apache или www-data), вектор повышения привилегий через sudo маловероятен. При использовании sudo система запросит пароль. Через команду passwd задать пароль также не выйдет, она запросит текущий пароль пользователя. Но если sudo все же доступен, то, по сути, необходимо искать:

Suid/Sgid

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

В идеальном мире нужно пропустить все установленные пакеты хотя бы через searchsploit. На практике подобное стоит проделывать с наиболее популярными программами типа sudo. Также всегда есть вариант использовать и поддерживать разработку автоматизированных инструментов, которые подсветят интересные, с точки зрения повышения привилегий, исполняемые файлы с выставленными битами suid/sgid. Перечень таких инструментов я приведу в соответствующем разделе статьи.

Доступные на запись скрипты, запускаемые Cron или Init, в контексте Root

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

ls -la /etc/cron.d # show cron jobs

Похожим образом обстоят дела с init. Отличие в том, что задачи в cron выполняются периодически, а в init — при старте системы. Для эксплуатации потребуется перезагрузка системы, при этом часть сервисов может и не подняться (если они не были прописаны в автозагрузку).

ls -la /etc/init.d/ # show init scripts

Также можно поискать файлы, доступные для записи любому пользователю.

Метод довольно известный, опытные системные администраторы аккуратно пользуются командой chmod. Однако на просторах Сети в подавляющем большинстве мануалов описано выставление максимальных прав. Подход неопытных системных администраторов «лишь бы заработало» создает возможности для повышения привилегий в принципе. Если есть возможность, лучше поискать в истории команд небезопасное использование chmod.

chmod +w /path
chmod 777 /path

Получение доступа в оболочку других пользователей

Смотрим список пользователей в /etc/passwd. Обращаем внимание на тех, у кого есть оболочка. Можно побрутить этих пользователей — не исключено, что через полученного пользователя в итоге удастся повысить привилегии.

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

Самописный код

Стоит внимательно посмотреть на исполняемые файлы в домашней директории пользователя и веб-сервера (/var/www/, если не задана другая). Эти файлы могут оказаться совершенно небезопасным решением и содержать в себе невероятные костыли. Конечно, если вы имеете какой-нибудь фреймворк в директории веб-сервера, не имеет смысла искать в нем zero-day в рамках пентеста, однако найти и изучить кастомные доработки, плагины и компоненты рекомендуется.

Для повышения безопасности лучше по возможности отказаться от использования учетных данных в самописных скриптах, а также от потенциально опасного функционала, например чтения /etc/shadow или манипуляций с id_rsa.

Повышение привилегий через эксплуатацию уязвимостей

Прежде чем пытаться повысить привилегии через эксплуатацию, важно разобраться с передачей файлов на целевой хост. Помимо привычных средств вроде ssh, ftp, http (wget, curl) есть целый «зоопарк» возможностей.

Для повышения безопасности системы регулярно обновляйте ее до актуальных стабильных версий, а также старайтесь использовать дистрибутивы, рассчитанные на Enterprise. В противном случае, редко, но бывают ситуации, когда apt upgrade делает систему неработоспособной.

Эксплуатация сервисов, запущенных в контексте пользователя root

Самым удачным случаем можно считать работу взломанного сервиса в контексте пользователя root. Эксплуатация сервиса SMB дает привилегированный доступ SYSTEM в системах Windows (например, через ms17-010). Однако в системах Linux такое встречается нечасто, поэтому можно провести немало времени над повышением привилегий.

Эксплуатация уязвимостей ядра Linux

cat /proc/version
uname -a
searchsploit «Linux Kernel»

Metasploit

Для того, чтобы поймать и обработать соединение, всегда лучше использовать модуль exploit/multi/handler. Главное — выставить правильный payload, например, generic/shell/reverce_tcp или generic/shell/bind_tcp. Оболочку, полученную в Metasploit, можно улучшить до Meterpreter с использованием модуля post/multi/manage/shell_to_meterpreter. Имея Meterpreter, вы можете автоматизировать процесс постэксплуатации. Например, модуль post/multi/recon/local_exploit_suggester проверяет платформу, архитектуру и необходимые для эксплуатации сущности и предлагает модули Metasploit для повышения привилегий на целевой системе. Благодаря Meterpreter, повышение привилегий иногда сводится к запуску нужного модуля, однако взлом без понимания происходящего под капотом не является «тру» (вам еще отчет писать).

Tools

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

Linpeas

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

LinEnum

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

Linux-exploit-suggester (1,2)

Этот эксплоит проанализирует систему на наличие подходящих условий для эксплоитов. По сути, сделает работу, идентичную модулю Metasploit local_exploit_suggester, но предложит не модули Metasploit, а ссылки на исходные коды exploit-db.

Linuxprivchecker

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

В другой раз я подробно разберу повышение привилегий в ОС Linux через suid/sgid.

Оцените статью
Master Hi-technology