OnePlus Nord 2 има уязвимост, която позволява на атакуващ да получи неограничен достъп до root shell. Прочетете, за да научите повече!
Много от нас тук в XDA-Developers първоначално започнаха да разглеждат форумите за първи път, когато искахме да руутнете нашите Android устройства. В онези дни хората често разчитаха на методи за „рутиране с едно щракване“: Приложения или скриптове, съдържащи полезни товари, които са насочени към известни уязвимости при ескалиране на привилегии на съществуващия фърмуер, за да получат root достъп. С подобрения и промени в криптирането, разрешенията и обработката, свързана с поверителността, съвременните устройства с Android са относително безопасни от такива вектори на атаки, но винаги ще има възможност за подвизи и уязвимости.
OnePlus може да е затвърдил името си сред основните OEM производители на Android, но телефоните му са не непознат да се пропуски в сигурността. Този път компанията е оставила доста интересна (да се чете: тревожна) уязвимост непоправена на
OnePlus Nord 2 от освобождаването му. Въпреки че използването на вратичката изисква физически достъп до устройството, нападателят може ефективно получавате неограничен root shell, преди потребителят дори да може да въведе своите идентификационни данни. По-специално, новоиздаденият Pac-Man издание на Nord 2 също е засегнато.Заден план
В днешно време, когато говорим за root достъп на смартфон с Android, хората обикновено мислят за корекция на стандартното изображение за зареждане с Magisk първо и след това флашване на закърпеното изображение към целевото устройство след отключване на буутлоудъра. По този начин крайният потребител може да има контролиран достъп до двоичния файл "su" чрез приложение за мениджър. Няколко други експериментални подходи съществуват, но те рядко събират толкова масова употреба.
Когато става дума за предварителна продукция обаче, сценарият е съвсем различен. Докато подготвят фърмуера на дадено устройство, инженерите трябва да имат включени различни параметри за регистриране, включително root достъп. Дори на a userdebug изграждане, Android Debug Bridge Daemon (adbd) работи като root, така че човек може да има привилегирован достъп до shell за целите на отстраняване на грешки. Когато фърмуерът е готов за изпращане, всички тези параметри за отстраняване на грешки трябва да бъдат изключени, преди да бъде пуснат.
Но какво ще стане, ако забравите да го направите? Ще видим, тъй като официалните версии на OxygenOS за OnePlus Nord 2 идват с такъв недостатък.
OnePlus Nord 2 -- Уязвимост на Root Shell
Някои производители на оригинално оборудване, като Samsung, предлагат възможност за странично зареждане на пакети за актуализация при тяхното възстановяване на запаси на устройства за продажба на дребно. В такъв случай, adbd
binary работи със значително висока привилегия при странично зареждане, но се затваря веднага след като процесът на актуализиране приключи. Освен това не е разрешен достъп до ADB в среда за възстановяване, предоставена от OEM.
OnePlus вече не позволява на потребителите да флашват ZIP пакет за актуализация чрез възстановяването на стока чрез ADB sideload. Ако приемем, че всичко останало е конфигурирано както трябва, средата за възстановяване на обикновено устройство OnePlus трябва да бъде защитена от нападатели, доставящи всякакъв вид полезен товар, използвайки ADB. За съжаление, не всичко върви по план в случая с OnePlus Nord 2.
Както излиза, всеки може да създаде обвивка за отстраняване на грешки в Android с root привилегия в средата за възстановяване на OnePlus Nord 2. Една от критичните настройки за отстраняване на грешки очевидно си е проправила път към производствените версии, което води до този проблем.
Използване на недостатъка на OnePlus Nord 2
Всичко, което трябва да направите, е да рестартирате OnePlus Nord 2 в режим на възстановяване. Нападателят може да вземе устройството и да използва проста комбинация от хардуерни бутони, за да го принуди да премине в режим на възстановяване. Всъщност няма нужда да достигате до действителното меню за възстановяване, тъй като уязвимият раздел идва преди това. Заслугата е на старши член на XDA AndroPlus за посочвайки съществуването на този проблем през октомври 2021 г.
- Докато телефонът е изключен, натиснете едновременно бутоните за намаляване на звука и захранването, докато не вижте логото на OnePlus с миниатюрен банер „RECOVERY MODE“ в долния ляв ъгъл на екрана.
- След това трябва да видите екрана за избор на език. Няма нужда да продължавате напред, тъй като можем да инициираме достъп до ADB направо оттук.
- Сега свържете телефона към компютър (или Mac) с помощта на USB кабела. В случай, че използвате Windows, можете да видите нов Android USB интерфейс за отстраняване на грешки, който се появява в диспечера на устройствата. Може също да се наложи да инсталирате подходящ USB драйвер за Android преди Windows да разпознае новото устройство. Потребителите на Linux и macOS, от друга страна, могат да използват
lsusb
команда за откриване на наличието на новия хардуерен интерфейс. - Като се има предвид, че вече имате най-новата версия на ADB и Fastboot помощни програми, инсталирани на вашия PC/Mac, стартирайте екземпляр на командния ред/PowerShell/терминал и изпълнете следната команда:
Трябва да посочи Nord 2 в режим на възстановяване. Това също е особено интересно, тъй като стандартната подкана за оторизация на ADB не е необходима тук. Може да получите грешка „устройството не е оторизирано“, но изтриването на съществуващата база данни с ADB RSA ключове на хост компютъра и рестартирането на ADB сървъра в крайна сметка трябва да ви позволи да го оторизирате.adb devices
- Сега инструктирайте
adbd
да стартирате като root:
Тази команда може да отнеме много време и вероятно ще получите грешка при изчакване. Въпреки това сегаadb root
adbd
трябва да работи като root. - Накрая проверете нивото на привилегия на обвивката, като използвате следната команда:
adb shell whoami
Степента на недостатъка
Потенциалните злоупотреби с тази уязвимост на сигурността са плашещи. При успешна атака срещу OnePlus Nord 2, нападателят може да изхвърли всеки дял на устройството. В резултат на това целият дял с данни - включително файлове, съхранявани в обикновено недостъпните частни директории с данни на приложенията - е достъпен за нападателя. В случай, че дялът с данни излезе като криптиран (защото потребителят е задал ПИН или парола), дъмпът все още може да бъде полезен за съдебномедицински анализ.
Не само това, можете да натиснете изпълним файл към /data/local/tmp
и го стартирайте от там. Това е класически вектор за атака, който може да бъде полезен за верижно зареждане на друг експлойт. Освен това, тъй като вече можете да се обадите на setprop
помощна програма като root за модифициране на различни стойности на проп, можете технически да отвлечете някои от привилегированите специфични за OEM променливи. Не на последно място, дори ако нямате отключени опции за разработчици, телефонът автоматично ще поиска достъп за USB отстраняване на грешки, след като извикате ADB в режим на възстановяване и рестартиране до нормалната среда на Android, което означава, че обхватът на уязвимостта не е ограничен само до секцията за възстановяване само.
Имайте предвид, че не можете да инсталирате APK файлове с помощта на ADB в средата за възстановяване поради факта, че помощната програма Package Manager не е достъпна там.
Как да проверите дали вашият OnePlus Nord 2 е засегнат? (Съвет: Така е)
Както споменахме по-рано, можете да използвате тази уязвимост както в редовното, така и в специалното издание на Pac-Man на OnePlus Nord 2. С две думи, ако въведете root shell (ще разберете, когато символът на shell се промени от $
да се #
), тогава ще разберете, че дефектът е налице.
Успешно получихме достъп до root shell на най-новия обществен индийски и европейски фърмуер на OxygenOS за устройството, което означава всяко едно устройство OnePlus Nord 2 там е уязвимо към момента на писане на тази статия.
Какво следва?
Ще проследим този въпрос, когато стане налична повече информация. OnePlus предостави следното изявление по въпроса:
Ние се отнасяме много сериозно към поверителността и сигурността. Даваме приоритет на този въпрос и ще споделим актуализация веднага щом имаме повече информация.
Въпреки че всичко това изглежда страшно, имайте предвид, че нападателят все пак ще трябва да получи физически достъп до телефона, за да получи достъп до root shell. Докато OnePlus не пусне актуализация, която коригира уязвимостта, опитайте се да пазите своя OnePlus Nord 2 далеч от непознати. Въпреки че не сме попаднали на никакви случаи на злонамерена употреба, не можем да отхвърлим такава възможност, тъй като уязвимостта е в дивата природа от поне 2 месеца.