OnePlus heeft een technische test-app van Qualcomm achtergelaten die fungeert als achterdeur om root-toegang te verlenen op de OnePlus 3, 3T en 5.
Update: OnePlus heeft een officiële reactie aan de zaak. Ze zullen in een komende update de ADB-rootfunctie uit EngineerMode verwijderen.
Het is iets meer dan een maand geleden dat OnePlus aan het verzamelen was persoonlijk identificeerbare informatie voor analyses. Het bedrijf veranderde snel de koers en in een update beloofde het bedrijf transparanter te zijn door gebruikers duidelijk de informatie te geven optie om u af te melden voor OxygenOS-analyses. Hoewel dat debacle inmiddels is opgelost, steekt er vanavond een ander de kop op. Een gebruiker op Twitter die de naam draagt "Elliot Alderson(vernoemd naar de hoofdpersoon uit de populaire televisieserie Mr. Robot) heeft ontdekt dat OnePlus per ongeluk een diagnostische testtoepassing op zijn plaats gelaten gemaakt door Qualcomm. Nadat hij deze applicatie had gedecompileerd, ontdekte hij dat dit mogelijk was
uitgebuit om root-toegang te verlenen, waardoor het effectief als achterdeur fungeert.De applicatie heet "EngineerMode" en is in wezen een systeemapplicatie gemaakt door Qualcomm en verstrekt aan OEM's zoals OnePlus, zodat OEM's eenvoudig alle hardwarecomponenten van de apparaat. De applicatie is vooraf geïnstalleerd op alle OnePlus 3-, OnePlus 3T- en OnePlus 5-apparaten en is gemakkelijk toegankelijk via elke activiteitenstarter, aangezien alle activiteiten van de app worden geëxporteerd.
Wij eigenlijk heeft enkele maanden geleden het bestaan van deze toepassing besproken, maar we hadden destijds geen idee waar het voor gebruikt kon worden. De Twitter-gebruiker heeft de applicatie gedecompileerd (de bron is online geplaatst hier) en vond een interessante activiteit genaamd DiagEnabled. Binnen de activiteit viel vooral één methode op: escalatedUp. Deze methode accepteert een Booleaanse waarde (true/false) en een string. De string is een wachtwoord dat door de methode wordt gecontroleerd voordat de systeemeigenschappen worden ingesteld persist.sys.adbroot
En oem.selinux.reload_policy
naar 1.
De eerste systeemeigenschap is bijzonder interessant omdat deze de gebruiker in staat stelt ADB als root uit te voeren. Dit opent onmiddellijk de mogelijkheid om volledige root-toegang op de telefoon te verkrijgen, allemaal zonder de bootloader te ontgrendelen. Dus hoe zorg je ervoor dat de EngineerMode-app deze systeemeigenschappen precies op '1' zet?
@fs0c131y moest het juiste wachtwoord vinden om de intentie in te sturen om de logica door te geven in de hierboven geposte methode. Het vinden van dit wachtwoord is echter geen eenvoudige taak. Hij decompileerde de bibliotheek die verantwoordelijk was voor het genereren van het wachtwoord (genaamd libdoor.so) en ontdekte waar de wachtwoord-hash zich bevond: /data/backup/fpwd
. Het wachtwoord wordt gegenereerd op basis van verschillende build-eigenschappen, zoals ro.product.model
En ro.product.brand
en zou niet gemakkelijk te reverse-engineeren zijn.
Gelukkig met hulp David Weinstein En Nu veilig op Twitter ontdekte hij het wachtwoord dat EngineerMode nodig had om ADB naar rootrechten te escaleren.
Het enige wat u hoeft te doen is een intentie in dit formaat verzenden:
adb shell am start -n com.android.engineeringmode/.qualcomm.DiagEnabled --es "code""angela"
waar com.android.engineeringmode/.qualcomm. DiagEnabled is de componentnaam van de DiagEnabled-activiteit die we exploiteren, en "code" is de tekenreeksnaam en "angela" is de relevante wachtwoordwaarde.
@fs0c131y zegt dat hij dat zal doen een applicatie publiceren binnenkort zal dat de intentie sturen om ADB tot root-privileges te verheffen, de opstartimage te patchen om dm-verity uit te schakelen, en de sub-binaire bestanden te installeren. Houd de XDA-forums in de gaten voor wanneer deze root-applicatie wordt gepost.
Wat dit voor eindgebruikers betekent, is dat u dat kunt root eenvoudig uw OnePlus 3, OnePlus 3T en OnePlus 5 zonder ooit uw bootloader te ontgrendelen. Deze exploit staat echter niet toe dat een kwaadaardige app zichzelf root-toegang verleent, dus tenzij iemand fysieke toegang tot uw apparaat heeft om ADB in te stellen, bent u beschermd tegen misbruik.
Als u uzelf hoe dan ook tegen deze exploit wilt beschermen, kunt u dat doen verwijder de app van de huidige gebruiker waardoor wordt voorkomen dat de intentie naar de EngineerMode-app wordt verzonden. Gebruik gewoon de volgende opdracht in ADB:
adbshellpmuninstall-k--user 0 com.android.engineermode
Uiteraard wordt dit nog steeds gezien als een exploit en we hopen dat OnePlus dit snel patcht. Het enige dat ze echt zouden moeten doen, is deze applicatie uit toekomstige builds verwijderen.
Update 1: Het wachtwoord is 'angela'
Gebruiker @fs0c131y plaatste een update op zijn Twitter-pagina met het wachtwoord dat je nodig hebt om in een geroote ADB-shell te komen. Dat wachtwoord is...Angela. Voor degenen onder jullie die niet naar Mr. Robot kijken: Angela is de naam van een van de hoofdrolspelers. Ik denk dat er veel Mr. Robot-fans moeten zijn bij Qualcomm.
Als u de opdracht invoert die ik hierboven heb gepost in ADB, zult u merken dat ADB onmiddellijk de verbinding verbreekt en de server opnieuw opstart. Voer ADB opnieuw in en je zult merken dat het nu een geroote shell is.
Update 2: hoe het wachtwoord is afgeleid
Beveiligingsbedrijf Now Secure heeft een blogpost gepubliceerd waarin wordt beschreven hoe zij het wachtwoord hebben afgeleid dat nodig is om deze root-exploit te laten plaatsvinden. Je kunt hun volledige bericht hier lezen.
Update 3: Meer apparaten getroffen
Dit laatste nieuws zou geen verrassing moeten zijn, maar het lijkt erop dat meer apparaten door deze exploit worden getroffen. Dat komt omdat de EngineerMode-app een Qualcomm-app is, dus het is mogelijk dat andere OEM's deze vooraf op hun apparaten hebben geïnstalleerd. Tot nu toe hebben gebruikers contact opgenomen met @fs0c131y op Twitter om te bevestigen dat de applicatie is geïnstalleerd sommige Asus Zenfone- en Xiaomi-apparaten. U kunt eenvoudig controleren of uw apparaat deze applicatie heeft door naar Instellingen te gaan en te zien welke apps zijn geïnstalleerd.
Update 4: Uw apparaat rooten
Met behulp van een paar opdrachten via de geroote ADB-shell is het nu mogelijk om druk het su-binaire bestand op uw apparaat. Daarmee kun je vervolgens een rootmanager-app zoals SuperSU installeren en vervolgens gratis root-toegang verlenen aan andere apps. En dat allemaal zonder je bootloader te ontgrendelen!
Update 5: OnePlus reageert
OnePlus heeft officieel op de situatie gereageerd. In een blogpostherhaalt het bedrijf dat deze exploit alleen kan worden gebruikt als een aanvaller fysieke toegang tot het apparaat heeft en USB-foutopsporing heeft ingeschakeld. Om USB-foutopsporing in te schakelen, heeft de aanvaller ook de pincode/wachtwoord van uw apparaat nodig. De root-backdoor is dus niet gemakkelijk te exploiteren door welke app of persoon dan ook, maar toch zal OnePlus de zorgen van gebruikers wegnemen door deze functionaliteit uit de EngineerMode-app te verwijderen.