jeperez / core-android-native Goto Github PK
View Code? Open in Web Editor NEWThis project forked from hackedteam/core-android-native
Native components for Android core
This project forked from hackedteam/core-android-native
Native components for Android core
***********################################************* ***********####### LEGACY_NATIVE ##########************* ***********################################************* Contiene tutto il codice nativo per le versioni di Android senza SELinux (Android <= 4.1) ###### Contenuto ###### - suidext: contiene la shell standard (versione setuid) - local2root: contiene tutti gli exploit local2root per le versioni di Android <= 4.1 - headers: include necessari per la compilazione ***********################################************* ***********####### SELINUX_NATIVE #########************* ***********################################************* Contiene tutto il codice nativo per le ultime versioni di Android con SELinux attivo (Android >= 4.2.2) ###### Contenuto ###### - put_user_exploit: contiene l'exploit basato sulla put_user - kernel_waiter_exploit: contiene l'exploit towelroot - suidext: contiene la nuova shell demonizzata - utils: librerie varie - headers: include necessari per la compilazione - remote_main: include i main per shared_library e remote ***********################################************* ***********####### SHARED ################************* ***********################################************* Contiene codice utilizzato sia da ###### Contenuto ###### - sqlite_stuff: Contiene alcune funzioni per effettuare query sqlite - utils: librerie varie - headers: header necessari alla compilazione. Contiene la configurazione dei log e della shell. ***********################################************* ***********####### CONFIGURAZIONE #########************* ***********################################************* La configurazione della shell di root è descritta in shared/headers/shell_params.h . Questo file è comune ad entrambe le shell. - SHELL_PORT: porta su cui il servizio root andrà in ascolto e su cui la parte client si connetterà - ROOT_BIN: path d'installazione del binario che esegue il processo root. Attualmente /system/bin/ddf. E' utilizzato sia come server al boot che come client per richiedere l'esecuzione di comandi. - INSTALL_SCRIPT: script di avvio al boot (wrapper a /system/bin/debuggerd) - INSTALL_SCRIPT_BAK: copia del binario da sostituire - INSTALL_REC_SCRIPT: script install-recovery.sh - INSTALL_REC_SCRIPT_BAK: backup di install-recovery.sh in caso lo su usi Per avere i log a disposizione tramite logcat editare il file shared/headers/log.h commentando opportunamente "#define DEBUG". ***********################################************* ***********####### COMPILAZIONE #########************* ***********################################************* Compilare con il comando "build.sh" e non direttamente tramite ndk-buid. Assicurarsi di avere come working directory la root del codice. Il sistema di build genera in automatico gli exploit locali in tre versioni diverse: local, remote e shared library. 1) local: file necessari per eseguire gli exploit locali tramite l'apk. 2) remote: exploit da lanciare dalla sandbox del browser. 3) shared library: è la libreria che contiene la funzione per eseguire gli exploit da invocare tramite dlopen. I corrispettivi file vengono creati in tre cartelle diverse: 1) bin/local: - selinux_exploit: l'exploit basato su put_user - selinux4_exploit: l'exploit writeup di towelroot - selinux_suidext: la nuova shell che comprende sia il daemon, sia il client - selinux_check: esegue un check sull'exploitabilità del device. Restituisce 1 in caso di exploitabilità, 0 altrimenti. - runner: è il binario che lancia il demone di root. E' integrato direttamente in selinux_suidext. - suidext: shell suid vecchia per Android <= 4.1 - expl_check: check di exploitabilità tramite exploit legacy - local_exploit: binario che lancia tutti gli exploit legacy disponibili 2) bin/local/Android5 - selinux_suidext: la nuova shell compilata per Android 5 3) bin/remote - selinux_exploit: contiene in un unico binario i due exploit selinux e la shell di root. 4) bin/shared_lib - libexploit.so: shared library contenente i due exploit selinux e la shell di root. - libinstaller.so: shared library contenente il codice per l'installazione dell'apk ***********################################************* ***********####### ESECUZIONE #########************* ***********################################************* ########################### ##### 1) LOCAL EXPLOIT: ### ########################### *** EXPLOIT SELINUX*** Deve essere lanciato passando due argomenti: - argv[1]: path assoluto alla nuova shell - argv[2]: path assoluto alla vecchia shell L'exploit installerà automaticamente la shell vecchia se possibile o la shell nuova in base alle rilevazioni effettuate sul device. Se l'exploit ha successo /system/bin/<shell> sarà presente ed utilizzabile in modo trasparente. *** EXPLOIT SELINUX 4*** Deve essere lanciato passando un solo argomento - argv[1]: path assoluto alla nuova shell Se l'exploit ha successo /system/bin/<shell> sarà presente ed utilizzabile in modo trasparente. *** EXPLOIT LEGACY*** Deve essere lanciato passando una stringa come argomento che rappresenza il comando da eseguire. NB: Alcuni exploit richiedono l'accesso a device video legati alla gesione della camera. E' necessario che tali device siano accessibili in scrittura in base alla sandbox di esecuzione (privilegio CAMERA). *** SHELL SELINUX*** Per avviare la shell in modalità daemon eseguire "selinux_suidext --daemon" oppure eseguire "selinux_suidext rt" (da root) che avvierà direttamente il demone effettuando un'installazione persistente. Il client rispetta le specifiche della vecchia shell. *** SHELL LEGACY*** Semplice file setuid. ############################ ##### 2) REMOTE EXPLOIT: ### ############################ Va semplicemente lanciato passando come unico parametro l'apk da installare al termine dell'exploit. E' totalmente automatico. L'exploit è asincrono di modo da non tenere il browser impegnato. Ritorna 1 se il device risulta vulnerabile e di conseguenza l'exploit viene almeno provato, 0 altrimenti. #################################### ##### 3) SHARED LIBRARY EXPLOIT: ### #################################### -) libexploit.so: va risolto il simbolo checksum(void). La funzione esegue tutti gli exploit disponibili, sia legacy che selinux ed installa la shell di root adatta. -) libinstaller.so: va risolto il simbolo checksum(void). La funzione esegue l'installazione dell'apk. L'installer richiede che l'apk sia nella stessa working direcory e che abbia il nome log.tmp. E' necessario aver precedentemente installato la shell di root.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.