.. | ||
drozer-tutorial | ||
frida-tutorial | ||
adb-commands.md | ||
android-applications-basics.md | ||
android-task-hijacking.md | ||
apk-decompilers.md | ||
avd-android-virtual-device.md | ||
bypass-biometric-authentication-android.md | ||
content-protocol.md | ||
exploiting-a-debuggeable-applciation.md | ||
google-ctf-2018-shall-we-play-a-game.md | ||
install-burp-certificate.md | ||
intent-injection.md | ||
make-apk-accept-ca-certificate.md | ||
manual-deobfuscation.md | ||
react-native-application.md | ||
README.md | ||
reversing-native-libraries.md | ||
smali-changes.md | ||
spoofing-your-location-in-play-store.md | ||
tapjacking.md | ||
webview-attacks.md |
Testiranje bezbednosti Android aplikacija
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!
Drugi načini podrške HackTricks-u:
- Ako želite da vidite svoju kompaniju reklamiranu na HackTricks-u ili da preuzmete HackTricks u PDF formatu proverite PLANOVE ZA PRIJAVU!
- Nabavite zvanični PEASS & HackTricks swag
- Otkrijte Porodicu PEASS, našu kolekciju ekskluzivnih NFT-ova
- Pridružite se 💬 Discord grupi ili telegram grupi ili nas pratite na Twitteru 🐦 @carlospolopm.
- Podelite svoje hakovanje trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Pridružite se HackenProof Discord serveru kako biste komunicirali sa iskusnim hakerima i lovcima na bagove!
Uvidi u hakovanje
Uključite se u sadržaj koji istražuje uzbuđenje i izazove hakovanja
Vesti o hakovanju u realnom vremenu
Budite u toku sa brzim svetom hakovanja kroz vesti i uvide u realnom vremenu
Najnovije najave
Budite informisani o najnovijim nagradama za pronalaženje bagova i važnim ažuriranjima platformi
Pridružite nam se na Discord-u i počnite da sarađujete sa vrhunskim hakerima danas!
Osnove Android aplikacija
Visoko se preporučuje da počnete čitanje ove stranice kako biste saznali o najvažnijim delovima vezanim za bezbednost Androida i najopasnijim komponentama u Android aplikaciji:
{% content-ref url="android-applications-basics.md" %} android-applications-basics.md {% endcontent-ref %}
ADB (Android Debug Bridge)
Ovo je glavni alat koji vam je potreban da se povežete sa Android uređajem (emuliranim ili fizičkim).
ADB omogućava kontrolu uređaja preko USB-a ili Mreže sa računara. Ova alatka omogućava kopiranje fajlova u oba smera, instalaciju i deinstalaciju aplikacija, izvršavanje shell komandi, bekapovanje podataka, čitanje logova, među ostalim funkcijama.
Pogledajte sledeću listu ADB komandi kako biste naučili kako koristiti adb.
Smali
Ponekad je interesantno modifikovati kod aplikacije kako biste pristupili skrivenim informacijama (možda dobro obfuskovanim lozinkama ili zastavama). Zatim, može biti korisno dekompilirati apk, modifikovati kod i rekompilirati ga.
U ovom tutorijalu možete naučiti kako dekompilirati APK, modifikovati Smali kod i rekompilirati APK sa novom funkcionalnošću. Ovo može biti veoma korisno kao alternativa za nekoliko testova tokom dinamičke analize koji će biti predstavljeni. Zatim, uvek imajte na umu ovu mogućnost.
Druge interesantne trikove
- Lažiranje lokacije u Play prodavnici
- Preuzimanje APK-ova: https://apps.evozi.com/apk-downloader/, https://apkpure.com/es/, https://www.apkmirror.com/, https://apkcombo.com/es-es/apk-downloader/
- Izdvajanje APK-a sa uređaja:
adb shell pm list packages
com.android.insecurebankv2
adb shell pm path com.android.insecurebankv2
package:/data/app/com.android.insecurebankv2-Jnf8pNgwy3QA_U5f-n_4jQ==/base.apk
adb pull /data/app/com.android.insecurebankv2- Jnf8pNgwy3QA_U5f-n_4jQ==/base.apk
Statistička analiza
Prvo, za analizu APK datoteke trebalo bi pogledati Java kod koristeći dekompajler.
Molimo, pročitajte ovde informacije o različitim dostupnim dekompajlerima.
Traženje zanimljivih informacija
Samo pogledom na stringove APK datoteke možete tražiti šifre, URL-ove (https://github.com/ndelphit/apkurlgrep), API ključeve, enkripciju, bluetooth UUID-ove, tokene i bilo šta zanimljivo... tražite čak i backdoor za izvršavanje koda ili backdoor za autentifikaciju (hardkodirane administratorske akreditacije za aplikaciju).
Firebase
Posvetite posebnu pažnju Firebase URL-ovima i proverite da li je loše konfigurisan. Više informacija o tome šta je Firebase i kako ga iskoristiti ovde.
Osnovno razumevanje aplikacije - Manifest.xml, strings.xml
Pregled aplikacije Manifest.xml i strings.xml fajlova može otkriti potencijalne sigurnosne ranjivosti. Ovim fajlovima se može pristupiti korišćenjem dekompajlera ili preimenovanjem ekstenzije APK fajla u .zip, a zatim raspakivanjem.
Ranjivosti identifikovane iz Manifest.xml uključuju:
- Aplikacije sa omogućenim debug modom: Aplikacije postavljene kao debuggable (
debuggable="true"
) u Manifest.xml fajlu predstavljaju rizik jer omogućavaju veze koje mogu dovesti do eksploatacije. Za dalje razumevanje kako eksploatisati aplikacije sa omogućenim debug modom, pogledajte tutorijal o pronalaženju i eksploataciji aplikacija sa omogućenim debug modom na uređaju. - Podešavanja rezervne kopije: Atribut
android:allowBackup="false"
treba eksplicitno postaviti za aplikacije koje se bave osetljivim informacijama kako bi se sprečile neovlašćene rezervne kopije podataka putem adb-a, posebno kada je omogućeno USB debugovanje. - Mrežna sigurnost: Prilagođena podešavanja mrežne sigurnosti (
android:networkSecurityConfig="@xml/network_security_config"
) u res/xml/ mogu specificirati sigurnosne detalje poput pinova sertifikata i podešavanja HTTP saobraćaja. Primer je dozvola HTTP saobraćaja za određene domene. - Izložene aktivnosti i servisi: Identifikacija izloženih aktivnosti i servisa u manifestu može ukazati na komponente koje mogu biti zloupotrebljene. Dalja analiza tokom dinamičkog testiranja može otkriti kako eksploatisati ove komponente.
- Provajderi sadržaja i FileProvideri: Izloženi provajderi sadržaja mogu dozvoliti neovlašćen pristup ili modifikaciju podataka. Konfiguracija FileProvidera takođe treba biti pažljivo pregledana.
- Broadcast prijemnici i URL šeme: Ove komponente mogu biti iskorišćene za eksploataciju, sa posebnom pažnjom na to kako se upravljaju URL šeme radi ranjivosti unosa.
- SDK verzije: Atributi
minSdkVersion
,targetSDKVersion
imaxSdkVersion
ukazuju na podržane verzije Androida, ističući važnost ne podržavanja zastarelih, ranjivih verzija Androida iz sigurnosnih razloga.
Iz strings.xml fajla, osetljive informacije poput API ključeva, prilagođenih šema i drugih beleški razvojnog tima mogu biti otkrivene, naglašavajući potrebu za pažljivim pregledom ovih resursa.
Tapjacking
Tapjacking je napad gde se zlonamerna aplikacija pokreće i pozicionira iznad aplikacije žrtve. Kada vidljivo prekrije aplikaciju žrtve, njen korisnički interfejs je dizajniran na način da prevari korisnika da interaguje sa njom, dok zapravo prenosi interakciju aplikaciji žrtve.
Na taj način, korisnik je zaslepljen i ne zna da zapravo obavlja radnje na aplikaciji žrtve.
Pronađite više informacija u:
{% content-ref url="tapjacking.md" %} tapjacking.md {% endcontent-ref %}
Preuzimanje zadatka
Aktivnost sa postavljenim launchMode
na singleTask
bez definisane taskAffinity
je ranjiva na preuzimanje zadatka. To znači da se aplikacija može instalirati i ako se pokrene pre prave aplikacije, može preuzeti zadatak prave aplikacije (tako da će korisnik interagovati sa zlonamernom aplikacijom misleći da koristi pravu).
Više informacija na:
{% content-ref url="android-task-hijacking.md" %} android-task-hijacking.md {% endcontent-ref %}
Nesigurno skladištenje podataka
Interni skladištenje
U Androidu, fajlovi skladišteni u internom skladištu su dizajnirani da budu pristupačni isključivo od strane aplikacije koja ih je kreirala. Ova sigurnosna mera je sprovedena od strane Android operativnog sistema i generalno je dovoljna za sigurnosne potrebe većine aplikacija. Međutim, developeri ponekad koriste režime poput MODE_WORLD_READABLE
i MODE_WORLD_WRITABLE
da bi omogućili fajlove da se dijele između različitih aplikacija. Ipak, ovi režimi ne ograničavaju pristup ovim fajlovima od strane drugih aplikacija, uključujući potencijalno zlonamerne.
- Statistička analiza:
- Proverite da li se upotreba
MODE_WORLD_READABLE
iMODE_WORLD_WRITABLE
pažljivo razmatra. Ovi režimi mogu potencijalno izložiti fajlove neželjenom ili neovlašćenom pristupu.
- Dinamička analiza:
- Proverite dozvole postavljene na fajlove kreirane od strane aplikacije. Konkretno, proverite da li su neki fajlovi postavljeni da budu čitljivi ili upisivi globalno. Ovo može predstavljati značajan sigurnosni rizik, jer bi dozvolilo svakoj aplikaciji instaliranoj na uređaju, bez obzira na poreklo ili nameru, da čita ili modifikuje ove fajlove.
Spoljno skladištenje
Prilikom rukovanja fajlovima na spoljnom skladištu, poput SD kartica, treba preduzeti određene mere opreza:
- Pristupačnost:
- Fajlovi na spoljnom skladištu su globalno čitljivi i upisivi. To znači da svaka aplikacija ili korisnik može pristupiti ovim fajlovima.
- Sigurnosne zabrinutosti:
- S obzirom na laku dostupnost, savetuje se ne skladištiti osetljive informacije na spoljnom skladištu.
- Spoljno skladište može biti uklonjeno ili pristupljeno od strane bilo koje aplikacije, čineći ga manje sigurnim.
- Rukovanje podacima sa spoljnog skladišta:
- Uvek vršite validaciju unosa podataka dobijenih sa spoljnog skladišta. Ovo je ključno jer podaci potiču od nepoverljivog izvora.
- Skladištenje izvršnih ili klasnih fajlova na spoljnom skladištu radi dinamičkog učitavanja se snažno ne preporučuje.
- Ako vaša aplikacija mora da preuzme izvršne fajlove sa spoljnog skladišta, obezbedite da su ovi fajlovi potpisani i kriptografski verifikovani pre nego što budu dinamički učitani. Ovaj korak je od vitalnog značaja za održavanje sigurnosne celovitosti vaše aplikacije.
Spoljno skladište se može pristupiti u /storage/emulated/0
, /sdcard
, /mnt/sdcard
{% hint style="info" %} Počevši od Androida 4.4 (API 17), SD kartica ima strukturu direktorijuma koja ograničava pristup aplikacije direktorijumu koji je specifičan samo za tu aplikaciju. Ovo sprečava zlonamerne aplikacije da dobiju pristup čitanju ili pisanju fajlova druge aplikacije. {% endhint %}
Osetljivi podaci skladišteni u čistom tekstu
- Deljeni preferencijali: Android omogućava svakoj aplikaciji da lako sačuva XML fajlove na putanji
/data/data/<imepaketa>/shared_prefs/
i ponekad je moguće pronaći osetljive informacije u čistom tekstu u tom folderu. - Baze podataka: Android omogućava svakoj aplikaciji da lako sačuva SQLite baze podataka na putanji
/data/data/<imepaketa>/databases/
i ponekad je moguće pronaći osetljive informacije u čistom tekstu u tom folderu.
Slomljen TLS
Prihvatanje svih sertifikata
Iz nekog razloga, ponekad developeri prihvataju sve sertifikate čak i ako na primer ime hosta ne odgovara sa linijama koda poput sledeće:
SSLSocketFactory sf = new cc(trustStore);
sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
Oštećena Kriptografija
Slabi procesi upravljanja ključevima
Neki programeri čuvaju osetljive podatke u lokalnom skladištu i šifriraju ih ključem koji je unapred definisan/predvidljiv u kodu. Ovo ne bi trebalo raditi jer neko ko vrši reverzni inženjering može izvući poverljive informacije.
Korišćenje nesigurnih i/ili zastarelih algoritama
Programeri ne bi trebalo da koriste zastarele algoritme za izvođenje provere autorizacije, skladištenje ili slanje podataka. Neki od ovih algoritama su: RC4, MD4, MD5, SHA1... Ako se koriste heševi za skladištenje lozinki na primer, trebalo bi koristiti heševe otporne na brute-force sa solju.
Ostale provere
- Preporučuje se obfuskacija APK-a kako bi se otežao rad osobama koje vrše reverzni inženjering.
- Ako je aplikacija osetljiva (kao što su bankarske aplikacije), trebalo bi da vrši svoje provere da vidi da li je mobilni uređaj rutovan i da postupi u skladu sa tim.
- Ako je aplikacija osetljiva (kao što su bankarske aplikacije), trebalo bi proveriti da li se koristi emulator.
- Ako je aplikacija osetljiva (kao što su bankarske aplikacije), trebalo bi proveriti svoju celovitost pre izvršavanja kako bi se proverilo da li je izmenjena.
- Koristite APKiD da biste proverili koji je kompajler/paker/obfuskator korišćen za izgradnju APK-a.
Aplikacija napravljena u React Native-u
Pročitajte sledeću stranicu da biste saznali kako lako pristupiti JavaScript kodu React aplikacija:
{% content-ref url="react-native-application.md" %} react-native-application.md {% endcontent-ref %}
Aplikacije napravljene u Xamarin-u
Pročitajte sledeću stranicu da biste saznali kako lako pristupiti C# kodu Xamarin aplikacija:
{% content-ref url="../xamarin-apps.md" %} xamarin-apps.md {% endcontent-ref %}
Aplikacije sa superpakovanjem
Prema ovom blog postu superpakovanje je Meta algoritam koji komprimuje sadržaj aplikacije u jedan fajl. Blog govori o mogućnosti kreiranja aplikacije koja dekompresuje ovakve vrste aplikacija... i bržem načinu koji uključuje izvršavanje aplikacije i prikupljanje dekompresovanih fajlova iz fajl sistema.
Automatizovana statička analiza koda
Alatka mariana-trench je sposobna da pronađe ranjivosti skeniranjem koda aplikacije. Ovaj alat sadrži niz poznatih izvora (koji pokazuju alatu mesta gde je unos kontrolisan od strane korisnika), sinks (koji pokazuju alatu opasna mesta gde zlonamerni korisnički unos može prouzrokovati štetu) i pravila. Ova pravila pokazuju kombinaciju izvora-sinks koji ukazuju na ranjivost.
Sa ovim znanjem, mariana-trench će pregledati kod i pronaći moguće ranjivosti u njemu.
Procureli tajni podaci
Aplikacija može sadržati tajne podatke (API ključeve, lozinke, skrivene URL-ove, poddomene...) unutar sebe koje možete otkriti. Možete koristiti alat poput https://github.com/dwisiswant0/apkleaks
Zaobilaženje biometrijske autentifikacije
{% content-ref url="bypass-biometric-authentication-android.md" %} bypass-biometric-authentication-android.md {% endcontent-ref %}
Druge interesantne funkcije
- Izvršavanje koda:
Runtime.exec(), ProcessBuilder(), native code:system()
- Slanje SMS poruka:
sendTextMessage, sendMultipartTestMessage
- Nativne funkcije deklarisane kao
native
:public native, System.loadLibrary, System.load
- Pročitajte ovo da biste saznali kako da reverzujete native funkcije
Druge trikove
{% content-ref url="content-protocol.md" %} content-protocol.md {% endcontent-ref %}
Pridružite se HackenProof Discord serveru kako biste komunicirali sa iskusnim hakerima i lovcima na bagove!
Uvidi u hakovanje
Uključite se u sadržaj koji istražuje uzbuđenje i izazove hakovanja
Vesti o hakovanju u realnom vremenu
Budite u toku sa brzim svetom hakovanja kroz vesti i uvide u realnom vremenu
Najnovije najave
Budite informisani o najnovijim programima nagrađivanja za pronalaženje bagova i važnim ažuriranjima platformi
Pridružite nam se na Discord-u i počnite da sarađujete sa vrhunskim hakerima danas!
Dinamička analiza
Prvo, potrebno je okruženje gde možete instalirati aplikaciju i sve potrebne alate (Burp CA sertifikat, Drozer i Frida pre svega). Stoga, preporučuje se korenovan uređaj (emuliran ili ne).
Online dinamička analiza
Možete kreirati besplatan nalog na: https://appetize.io/. Ova platforma vam omogućava da učitate i izvršite APK-ove, pa je korisna za praćenje ponašanja APK-a.
Čak možete videti dnevnike vaše aplikacije na vebu i povezati se putem adb.
Zahvaljujući ADB vezi, možete koristiti Drozer i Frida unutar emulatora.
Lokalna dinamička analiza
Korišćenje emulatora
- Android Studio (Možete kreirati x86 i arm uređaje, a prema ovom najnovijem x86 verzije podržavaju ARM biblioteke bez potrebe za sporim arm emulatorom).
- Naučite kako da ga podesite na ovoj stranici:
{% content-ref url="avd-android-virtual-device.md" %} avd-android-virtual-device.md {% endcontent-ref %}
- Genymotion (Besplatna verzija: Personal Edition, treba da kreirate nalog. Preporučuje se da preuzmete verziju SA VirtualBox da biste izbegli potencijalne greške.)
- Nox (Besplatan, ali ne podržava Fridu ili Drozera).
{% hint style="info" %} Prilikom kreiranja novog emulatora na bilo kojoj platformi, zapamtite da što je veći ekran, to će emulator sporije raditi. Dakle, odaberite manje ekrane ako je moguće. {% endhint %}
Da biste instalirali Google usluge (kao što je AppStore) u Genymotionu, treba da kliknete na crveno označeno dugme na sledećoj slici:
Takođe, obratite pažnju da u konfiguraciji Android VM-a u Genymotionu možete odabrati Bridge Network mode (ovo će biti korisno ako ćete se povezivati sa Android VM-a iz drugog VM-a sa alatima).
Koristite fizički uređaj
Potrebno je aktivirati opcije za otklanjanje grešaka i bilo bi dobro ako ga možete rootovati:
- Podešavanja.
- (Od Android 8.0) Izaberite Sistem.
- Izaberite O telefonu.
- Pritisnite Broj izdanja 7 puta.
- Vratite se nazad i pronaći ćete Opcije za razvoj.
Nakon što instalirate aplikaciju, prva stvar koju treba da uradite je da je isprobate i istražite šta radi, kako funkcioniše i da se udobno osećate s njom.
Predlažem da izvršite ovu početnu dinamičku analizu koristeći MobSF dinamičku analizu + pidcat, tako da ćemo moći da saznamo kako aplikacija funkcioniše dok MobSF snima mnogo zanimljivih podataka koje možete kasnije pregledati.
Neželjeno curenje podataka
Logovanje
Programeri treba da budu oprezni prilikom izlaganja informacija za otklanjanje grešaka javno, jer to može dovesti do curenja osetljivih podataka. Alati pidcat i adb logcat
se preporučuju za praćenje logova aplikacije radi identifikacije i zaštite osetljivih informacija. Pidcat je preferiran zbog jednostavnosti korišćenja i čitljivosti.
{% hint style="warning" %}
Imajte na umu da od kasnijih verzija Androida novijih od 4.0, aplikacije mogu pristupiti samo svojim logovima. Dakle, aplikacije ne mogu pristupiti logovima drugih aplikacija.
U svakom slučaju, i dalje se preporučuje ne logovati osetljive informacije.
{% endhint %}
Keširanje kopiranja/lepljenja u baferu
Android-ov okvir zasnovan na klipbordu omogućava funkcionalnost kopiranja i lepljenja u aplikacijama, ali predstavlja rizik jer druge aplikacije mogu pristupiti klipbordu, potencijalno izlažući osetljive podatke. Važno je onemogućiti funkcije kopiranja/lepljenja za osetljive delove aplikacije, poput detalja kreditne kartice, kako bi se sprečilo curenje podataka.
Logovi o padu
Ako aplikacija padne i sačuva logove, ti logovi mogu pomoći napadačima, posebno kada aplikacija ne može biti reverzno inženjerisana. Da biste umanjili ovaj rizik, izbegavajte logovanje prilikom pada, a ako logovi moraju biti preneti preko mreže, obezbedite da budu poslati putem SSL kanala radi bezbednosti.
Kao pentester, pokušajte da pogledate ove logove.
Analitički podaci poslati trećim stranama
Aplikacije često integrišu usluge poput Google Adsense-a, što može nenamerno procureti osetljive podatke zbog nepravilne implementacije od strane programera. Da biste identifikovali potencijalna curenja podataka, preporučljivo je interceptovati saobraćaj aplikacije i proveriti da li se šalju osetljive informacije trećim stranama.
SQLite baze podataka
Većina aplikacija će koristiti interne SQLite baze podataka za čuvanje informacija. Tokom pentesta pogledajte baze podataka koje su kreirane, imena tabela i kolona i sve podatke sačuvane jer biste mogli pronaći osetljive informacije (što bi predstavljalo ranjivost).
Baze podataka bi trebalo da se nalaze u /data/data/naziv.paketa/baze podataka
poput /data/data/com.mwr.example.sieve/baze podataka
Ako baza podataka čuva poverljive informacije i enkriptovana je ali možete pronaći lozinku unutar aplikacije, to i dalje predstavlja ranjivost.
Enumerišite tabele koristeći .tables
i enumerišite kolone tabela koristeći .schema <ime_tabele>
Drozer (Aktivnosti eksploatacije, pružaoci sadržaja i servisi)
Iz Drozer Dokumenata: Drozer vam omogućava da preuzmete ulogu Android aplikacije i interagujete sa drugim aplikacijama. Može raditi sve što instalirana aplikacija može, kao što je korišćenje Android-ovog mehanizma međuprocesne komunikacije (IPC) i interakcija sa osnovnim operativnim sistemom. .
Drozer je koristan alat za eksploataciju izloženih aktivnosti, izloženih servisa i pružalaca sadržaja kako ćete naučiti u sledećim sekcijama.
Eksploatacija izloženih aktivnosti
Pročitajte ovo ako želite da osvežite šta je Android Aktivnost.
Takođe zapamtite da kod aktivnosti počinje u metodi onCreate
.
Bajpas autorizacije
Kada je Aktivnost izložena, možete pozvati njen ekran iz spoljne aplikacije. Stoga, ako je aktivnost sa osetljivim informacijama izložena, mogli biste bajpasovati mehanizme autentifikacije da biste joj pristupili.
Naučite kako da eksploatišete izložene aktivnosti pomoću Drozera.
Takođe možete pokrenuti izloženu aktivnost putem adb-a:
- NazivPaketa je com.example.demo
- NazivIzloženeAktivnosti je com.example.test.MainActivity
adb shell am start -n com.example.demo/com.example.test.MainActivity
NAPOMENA: MobSF će otkriti kao zlonamjernu upotrebu singleTask/singleInstance kao android:launchMode
u aktivnosti, ali zbog ovoga, očigledno je da je ovo opasno samo na starim verzijama (API verzije < 21).
{% hint style="info" %} Imajte na umu da zaobilazak autorizacije nije uvek ranjivost, to bi zavisilo od toga kako zaobilazak funkcioniše i koje informacije su izložene. {% endhint %}
Curenje osetljivih informacija
Aktivnosti takođe mogu vratiti rezultate. Ako uspete da pronađete izloženu i nezaštićenu aktivnost koja poziva metodu setResult
i vraća osetljive informacije, to predstavlja curenje osetljivih informacija.
Tapjacking
Ako tapjacking nije sprečen, možete zloupotrebiti izloženu aktivnost da naterate korisnika da izvrši neočekivane radnje. Za više informacija o šta je Tapjacking pratite link.
Iskorišćavanje Provajdera Sadržaja - Pristupanje i manipulisanje osetljivim informacijama
Pročitajte ovo ako želite da osvežite šta je Provajder Sadržaja.
Provajderi sadržaja se uglavnom koriste za deljenje podataka. Ako aplikacija ima dostupne provajdere sadržaja, možda ćete moći da izvučete osetljive podatke iz njih. Takođe je zanimljivo testirati moguće SQL injection-e i Path Traversal-e jer bi mogli biti ranjivi.
Naučite kako da iskoristite Provajdere Sadržaja sa Drozer-om.
Iskorišćavanje Servisa
Pročitajte ovo ako želite da osvežite šta je Servis.
Zapamtite da akcije Servisa počinju u metodi onStartCommand
.
Servis je uglavnom nešto što može primiti podatke, ih obraditi i vratiti (ili ne) odgovor. Zatim, ako aplikacija izvozi neke servise, trebalo bi da proverite kod da biste razumeli šta radi i testirali ga dinamički kako biste izvukli poverljive informacije, zaobišli mere autentifikacije...
Naučite kako da iskoristite Servise sa Drozer-om.
Iskorišćavanje Prijemnika Emitovanja (Broadcast Receivers)
Pročitajte ovo ako želite da osvežite šta je Prijemnik Emitovanja (Broadcast Receiver).
Zapamtite da akcije Prijemnika Emitovanja počinju u metodi onReceive
.
Prijemnik emitovanja će čekati određenu vrstu poruke. Zavisno o tome kako prijemnik obrađuje poruku, može biti ranjiv.
Naučite kako da iskoristite Prijemnike Emitovanja sa Drozer-om.
Iskorišćavanje Šema / Dubokih Linkova (Deep links)
Možete ručno tražiti duboke linkove, koristeći alate poput MobSF-a ili skripte poput ove.
Možete otvoriti deklarisano šema koristeći adb ili pregledač:
{% code overflow="wrap" %}
adb shell am start -a android.intent.action.VIEW -d "scheme://hostname/path?param=value" [your.package.name]
{% endcode %}
Napomena da možete izostaviti ime paketa i mobilni uređaj će automatski pozvati aplikaciju koja treba da otvori taj link.
{% code overflow="wrap" %}
<!-- Browser regular link -->
<a href="scheme://hostname/path?param=value">Click me</a>
<!-- fallback in your url you could try the intent url -->
<a href="intent://hostname#Intent;scheme=scheme;package=your.package.name;S.browser_fallback_url=http%3A%2F%2Fwww.example.com;end">with alternative</a>
{% endcode %}
Izvršeni kod
Da biste pronašli kod koji će se izvršiti u aplikaciji, idite na aktivnost pozvanu preko dubinskog linka i potražite funkciju onNewIntent
.
Osetljive informacije
Svaki put kada pronađete dubinski link, proverite da ne prima osetljive podatke (kao što su lozinke) putem URL parametara, jer bi bilo koja druga aplikacija mogla preuzeti identitet dubinskog linka i ukrasti te podatke!
Parametri u putanji
Takođe morate proveriti da li bilo koji dubinski link koristi parametar unutar putanje URL-a kao što je: https://api.example.com/v1/users/{username}
, u tom slučaju možete izazvati prolazak putanje pristupajući nečemu poput: example://app/users?username=../../unwanted-endpoint%3fparam=value
.
Imajte na umu da ako pronađete tačne krajnje tačke unutar aplikacije, možda ćete moći izazvati Otvoreno preusmeravanje (ako je deo putanje korišćen kao ime domena), preuzimanje naloga (ako možete izmeniti detalje korisnika bez CSRF tokena i ranjiva tačka koristi odgovarajuću metodu) i bilo koju drugu ranjivost. Više informacija o tome ovde.
Još primera
Interesantan izveštaj o otkrivanju grešaka možete pronaći ovde o linkovima (/.well-known/assetlinks.json).
Inspekcija i neuspesi provere sloja transportnog sloja
- Sertifikati se ne inspiciraju uvek pravilno od strane Android aplikacija. Često ove aplikacije zanemaruju upozorenja i prihvataju samopotpisane sertifikate ili, u nekim slučajevima, vraćaju se na korišćenje HTTP veza.
- Pregovori tokom SSL/TLS rukovanja su ponekad slabi, koristeći nesigurne šifrovane pakete. Ova ranjivost čini vezu podložnom napadima čoveka u sredini (MITM), omogućavajući napadačima da dešifruju podatke.
- Otkrivanje privatnih informacija je rizik kada aplikacije autentifikuju korišćenjem sigurnih kanala, ali zatim komuniciraju preko nesigurnih kanala za druge transakcije. Ovaj pristup ne štiti osetljive podatke, poput sesijskih kolačića ili detalja korisnika, od presretanja od strane zlonamernih entiteta.
Provera sertifikata
Fokusiraćemo se na proveru sertifikata. Integritet serverskog sertifikata mora biti proveren radi poboljšanja sigurnosti. To je ključno jer nesigurne TLS konfiguracije i prenos osetljivih podataka preko nešifrovanih kanala mogu predstavljati značajne rizike. Za detaljne korake o proveri serverskih sertifikata i rešavanju ranjivosti, ovaj resurs pruža sveobuhvatno vođstvo.
SSL Pinning
SSL Pinning je sigurnosna mera gde aplikacija proverava serverski sertifikat naspram poznate kopije koja je sačuvana unutar same aplikacije. Ova metoda je ključna za sprečavanje napada čoveka u sredini. Implementacija SSL Pinninga se snažno preporučuje za aplikacije koje rukuju osetljivim informacijama.
Inspekcija saobraćaja
Da biste inspicirali HTTP saobraćaj, neophodno je instalirati sertifikat alata za proksije (npr. Burp). Bez instaliranja ovog sertifikata, šifrovani saobraćaj možda neće biti vidljiv kroz proksi. Za vodič o instaliranju prilagođenog CA sertifikata, kliknite ovde.
Aplikacije koje ciljaju API nivo 24 i više zahtevaju modifikacije Network Security Config-a kako bi prihvatile CA sertifikat proksija. Ovaj korak je ključan za inspiciranje šifrovanog saobraćaja. Za uputstva o modifikaciji Network Security Config-a, pogledajte ovaj tutorijal.
Zaobilazak SSL Pinninga
Kada je implementiran SSL Pinning, postaje neophodno zaobići ga radi inspiciranja HTTPS saobraćaja. Različite metode su dostupne u tu svrhu:
- Automatski modifikujte apk da zaobiđete SSLPinning sa apk-mitm. Najveća prednost ove opcije je što vam nije potreban root za zaobilaženje SSL Pinninga, ali će biti potrebno da obrišete aplikaciju i ponovo instalirate novu, i ovo neće uvek raditi.
- Možete koristiti Frida (opisano ispod) da zaobiđete ovu zaštitu. Evo vodiča za korišćenje Burp+Frida+Genymotion: https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/
- Možete takođe pokušati automatski zaobići SSL Pinning korišćenjem objection:
objection --gadget com.package.app explore --startup-command "android sslpinning disable"
- Možete takođe pokušati automatski zaobići SSL Pinning korišćenjem MobSF dinamičke analize (objašnjeno ispod)
- Ako i dalje mislite da postoji saobraćaj koji ne snimate, možete pokušati proslediti saobraćaj ka burp korišćenjem iptables. Pročitajte ovaj blog: https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62
Traženje uobičajenih ranjivosti veb aplikacija
Važno je takođe tražiti uobičajene ranjivosti veb aplikacija. Detaljne informacije o identifikaciji i ublažavanju ovih ranjivosti prevazilaze obim ovog sažetka, ali su obuhvaćene na drugim mestima.
Frida
Frida je alat za dinamičku instrumentaciju za programere, inženjere za reverzno inženjerstvo i istraživače sigurnosti.
Možete pristupiti pokrenutoj aplikaciji i hakovati metode u vreme izvršavanja da promenite ponašanje, vrednosti, izvučete vrednosti, pokrenete različiti kod...
Ako želite da testirate sigurnost Android aplikacija, morate znati kako koristiti Fridu.
- Naučite kako koristiti Fridu: Frida tutorial
- Neke "GUI" za akcije sa Fridom: https://github.com/m0bilesecurity/RMS-Runtime-Mobile-Security
- Ojection je odličan za automatizaciju korišćenja Fride: https://github.com/sensepost/objection , https://github.com/dpnishant/appmon
- Možete pronaći neke sjajne Frida skripte ovde: https://codeshare.frida.re/
- Pokušajte da zaobiđete anti-debugging / anti-frida mehanizme učitavanjem Fride kako je naznačeno u https://erfur.github.io/blog/dev/code-injection-without-ptrace (alat linjector)
Izdvajanje memorije - Fridump
Proverite da li aplikacija čuva osetljive informacije unutar memorije koje ne bi trebalo da čuva poput lozinki ili mnemonika.
Korišćenjem Fridump3 možete izdvojiti memoriju aplikacije sa:
# With PID
python3 fridump3.py -u <PID>
# With name
frida-ps -Uai
python3 fridump3.py -u "<Name>"
Ovo će izbaciti memoriju u ./dump fascikli, a zatim možete koristiti grep sa nečim poput:
{% code overflow="wrap" %}
strings * | grep -E "^[a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+$"
Osetljivi podaci u Keystore-u
U Androidu je Keystore najbolje mesto za čuvanje osetljivih podataka, međutim, sa dovoljno privilegija i dalje je moguće pristupiti. Pošto aplikacije često ovde čuvaju osetljive podatke u obliku čistog teksta, pentesteri bi trebalo da provere ovo jer korisnik sa root pristupom ili fizičkim pristupom uređaju može ukrasti ove podatke.
Čak i ako aplikacija čuva podatke u keystore-u, podaci bi trebalo da budu enkriptovani.
Da biste pristupili podacima unutar keystore-a, možete koristiti ovaj Frida skript: https://github.com/WithSecureLabs/android-keystore-audit/blob/master/frida-scripts/tracer-cipher.js
frida -U -f com.example.app -l frida-scripts/tracer-cipher.js
Bypass otiska prsta/biometrije
Korišćenjem sledećeg Frida skripta moguće je zaobići autentifikaciju otiskom prsta koju Android aplikacije mogu sprovoditi kako bi zaštitile određena osetljiva područja:
{% code overflow="wrap" %}
frida --codeshare krapgras/android-biometric-bypass-update-android-11 -U -f <app.package>
{% endcode %}
Pozadinske slike
Kada stavite aplikaciju u pozadinu, Android čuva snapshot aplikacije tako da kada se vrati u prednji plan, počinje da učitava sliku pre aplikacije kako bi izgledalo da je aplikacija učitana brže.
Međutim, ako ovaj snapshot sadrži osetljive informacije, osoba sa pristupom snapshotu može ukrasti te informacije (imajte na umu da je potreban root pristup).
Snapshotovi se obično čuvaju na lokaciji: /data/system_ce/0/snapshots
Android pruža način da sprečite snimanje ekrana postavljanjem FLAG_SECURE parametra rasporeda. Korišćenjem ovog flaga, sadržaj prozora se tretira kao siguran, sprečavajući ga da se pojavi na snimcima ekrana ili da bude prikazan na nebezbednim ekranima.
getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
Analizator Android aplikacija
Ovaj alat vam može pomoći u upravljanju različitim alatima tokom dinamičke analize: https://github.com/NotSoSecure/android_application_analyzer
Ubacivanje Intencija
Programeri često kreiraju proxy komponente poput aktivnosti, servisa i broadcast receiver-a koji obrađuju ove Intencije i prosleđuju ih metodama poput startActivity(...)
ili sendBroadcast(...)
, što može biti rizično.
Opasnost leži u tome što omogućava napadačima da pokrenu neizložene komponente aplikacije ili pristupe osetljivim provajderima sadržaja preusmeravanjem ovih Intencija. Značajan primer je komponenta WebView
koja konvertuje URL-ove u Intent
objekte putem Intent.parseUri(...)
i zatim ih izvršava, što potencijalno može dovesti do zlonamernih ubacivanja Intencija.
Ključne informacije
- Ubacivanje Intencija je slično problemu otvorenog preusmeravanja na vebu.
- Eksploatacije uključuju prosleđivanje
Intent
objekata kao dodatnih podataka, koji mogu biti preusmereni da izvrše nesigurne operacije. - Može otkriti neizložene komponente i provajdere sadržaja napadačima.
- Konverzija URL-ova u
Intent
objekte uWebView
-u može olakšati neželjene akcije.
Ubacivanje na Android klijentskoj strani i ostalo
Verovatno ste upoznati sa ovom vrstom ranjivosti sa veba. Morate posebno paziti na ove ranjivosti u Android aplikaciji:
- SQL Injection: Prilikom rukovanja dinamičkim upitima ili Content-Providerima, proverite da koristite parametrizovane upite.
- JavaScript Injection (XSS): Proverite da je podrška za JavaScript i dodatke onemogućena za sve WebViews (podrazumevano onemogućeno). Više informacija ovde.
- Uključivanje lokalnih fajlova: WebViews bi trebalo da imaju onemogućen pristup fajl sistemu (podrazumevano omogućeno) -
(webview.getSettings().setAllowFileAccess(false);)
. Više informacija ovde. - Večni kolačići: U nekoliko slučajeva kada Android aplikacija završi sesiju, kolačić nije povučen ili čak može biti sačuvan na disku
- Sigurna oznaka u kolačićima
Pridružite se HackenProof Discord serveru kako biste komunicirali sa iskusnim hakerima i lovcima na bagove!
Uvidi u hakovanje
Uključite se u sadržaj koji istražuje uzbuđenje i izazove hakovanja
Vesti o hakovanju u realnom vremenu
Budite u toku sa dinamičnim svetom hakovanja kroz vesti i uvide u realnom vremenu
Poslednje najave
Budite informisani o najnovijim programima nagrađivanja za pronalaženje bagova i važnim ažuriranjima platforme
Pridružite nam se na Discord-u i počnite da sarađujete sa vrhunskim hakerima danas!
Automatska analiza
MobSF
Statička analiza
Procena ranjivosti aplikacije korišćenjem lepog veb baziranog korisničkog interfejsa. Takođe možete izvršiti dinamičku analizu (ali morate pripremiti okruženje).
docker pull opensecurity/mobile-security-framework-mobsf
docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest
Primetite da MobSF može analizirati Android(apk), IOS(ipa) i Windows(apx) aplikacije (Windows aplikacije se moraju analizirati sa MobSF instaliranim na Windows hostu).
Takođe, ako kreirate ZIP fajl sa izvornim kodom Android ili IOS aplikacije (idite u osnovni folder aplikacije, izaberite sve i kreirajte ZIP fajl), takođe će biti u mogućnosti da ga analizira.
MobSF takođe omogućava diff/Upoređivanje analize i integraciju VirusTotal (treba da postavite svoj API ključ u MobSF/settings.py i omogućite ga: VT_ENABLED = TRUE
VT_API_KEY = <Vaš API ključ>
VT_UPLOAD = TRUE
). Takođe možete postaviti VT_UPLOAD
na False
, tada će hash biti uploadovan umesto fajla.
Asistirana dinamička analiza sa MobSF
MobSF takođe može biti veoma koristan za dinamičku analizu u Androidu, ali u tom slučaju morate instalirati MobSF i genymotion na svom hostu (VM ili Docker neće raditi). Napomena: Morate prvo pokrenuti VM u genymotionu a zatim MobSF.
MobSF dinamički analizator može:
- Izvući podatke aplikacije (URL-ove, logove, clipboard, screenshotove koje ste napravili, screenshotove koje je napravio "Exported Activity Tester", emailove, SQLite baze podataka, XML fajlove i druge kreirane fajlove). Sve ovo se radi automatski osim screenshotova, morate pritisnuti kada želite screenshot ili pritisnuti "Exported Activity Tester" da biste dobili screenshotove svih izvezenih aktivnosti.
- Snimiti HTTPS saobraćaj
- Koristiti Fridu da dobije informacije o izvršavanju
Od android verzije > 5, automatski će pokrenuti Fridu i postaviti globalne proxy postavke za snimanje saobraćaja. Snimaće saobraćaj samo iz testirane aplikacije.
Frida
Podrazumevano, takođe će koristiti neke Frida skripte da zaobiđe SSL pinning, detekciju root-a i detekciju debugger-a i da prati interesantne API-je.
MobSF takođe može pozvati izvezene aktivnosti, uhvatiti njihove screenshotove i sačuvati ih za izveštaj.
Za pokretanje dinamičkog testiranja pritisnite zeleno dugme: "Start Instrumentation". Pritisnite "Frida Live Logs" da vidite logove generisane od Frida skripti i "Live API Monitor" da vidite sve pozive ka hakovanim metodama, prosleđene argumente i vraćene vrednosti (ovo će se pojaviti nakon što pritisnete "Start Instrumentation").
MobSF vam takođe dozvoljava da učitate svoje Frida skripte (da biste poslali rezultate vaših Frida skripti MobSF-u koristite funkciju send()
). Takođe ima nekoliko unapred napisanih skripti koje možete učitati (možete dodati više u MobSF/DynamicAnalyzer/tools/frida_scripts/others/
), samo ih izaberite, pritisnite "Load" i pritisnite "Start Instrumentation" (moći ćete videti logove tih skripti unutar "Frida Live Logs").
Osim toga, imate neke pomoćne Frida funkcionalnosti:
- Enumerate Loaded Classes: Ispisaće sve učitane klase
- Capture Strings: Ispisaće sve uhvaćene stringove prilikom korišćenja aplikacije (vrlo bučno)
- Capture String Comparisons: Može biti veoma korisno. Pokazaće 2 upoređena stringa i da li je rezultat bio Tačan ili Netačan.
- Enumerate Class Methods: Unesite ime klase (kao "java.io.File") i ispisuje sve metode klase.
- Search Class Pattern: Pretražuje klase po obrascu
- Trace Class Methods: Prati celu klasu (vidi ulaze i izlaze svih metoda te klase). Zapamtite da MobSF podrazumevano prati nekoliko interesantnih Android Api metoda.
Kada ste izabrali pomoćni modul koji želite da koristite, treba da pritisnete "Start Intrumentation" i videćete sve izlaze u "Frida Live Logs".
Shell
Mobsf takođe donosi shell sa nekim adb komandama, MobSF komandama i uobičajenim shell komandama na dnu stranice dinamičke analize. Neke interesantne komande:
help
shell ls
activities
exported_activities
services
receivers
HTTP alati
Kada se uhvati http saobraćaj, možete videti ružan prikaz uhvaćenog saobraćaja na dnu "HTTP(S) Traffic" ili lepši prikaz na zelenom dugmetu "Start HTTPTools". Iz drugih opcija, možete poslati uhvaćene zahteve ka proxy serverima poput Burp-a ili Owasp ZAP-a.
Da biste to uradili, uključite Burp --> isključite Intercept --> u MobSB HTTPTools izaberite zahtev --> pritisnite "Send to Fuzzer" --> izaberite adresu proxy servera (http://127.0.0.1:8080\).
Kada završite dinamičku analizu sa MobSF-om, možete pritisnuti "Start Web API Fuzzer" da fuzzujete http zahteve i tražite ranjivosti.
{% hint style="info" %} Nakon obavljanja dinamičke analize sa MobSF-om, podešavanja proxy servera mogu biti netačna i nećete moći da ih popravite iz GUI-ja. Podešavanja proxy servera možete popraviti na sledeći način:
adb shell settings put global http_proxy :0
{% endhint %}
Asistirana dinamička analiza pomoću Inspeckage alata
Možete preuzeti alat sa Inspeckage.
Ovaj alat koristi neke kuke kako bi vam omogućio da saznate šta se dešava u aplikaciji dok vršite dinamičku analizu.
Yaazhini
Ovo je odličan alat za obavljanje statičke analize sa grafičkim korisničkim interfejsom
Qark
Ovaj alat je dizajniran da traži nekoliko bezbednosno povezanih ranjivosti Android aplikacija, bilo u izvornom kodu ili zapakovanim APK datotekama. Alat je takođe sposoban da kreira "Proof-of-Concept" APK koji se može implementirati i ADB komande, kako bi iskoristio neke od pronađenih ranjivosti (izložene aktivnosti, namere, tapjacking...). Kao i sa Drozer-om, nije potrebno rutovati uređaj za testiranje.
pip3 install --user qark # --user is only needed if not using a virtualenv
qark --apk path/to/my.apk
qark --java path/to/parent/java/folder
qark --java path/to/specific/java/file.java
ReverseAPK
- Prikazuje sve izvučene datoteke radi lakšeg referisanja
- Automatsko dekompiliranje APK datoteka u Java i Smali format
- Analiza AndroidManifest.xml datoteke radi otkrivanja uobičajenih ranjivosti i ponašanja
- Statistička analiza izvornog koda radi otkrivanja uobičajenih ranjivosti i ponašanja
- Informacije o uređaju
- i još više
reverse-apk relative/path/to/APP.apk
SUPER Android Analyzer
SUPER je aplikacija za komandnu liniju koja se može koristiti u Windows-u, MacOS X-u i Linux-u, a koja analizira .apk fajlove u potrazi za ranjivostima. To radi dekompresovanjem APK-ova i primenom niza pravila za otkrivanje tih ranjivosti.
Sva pravila su centrirana u rules.json
fajlu, i svaka kompanija ili testera može kreirati svoja pravila za analizu onoga što im je potrebno.
Preuzmite najnovije binarne fajlove sa stranice za preuzimanje
super-analyzer {apk_file}
StaCoAn
StaCoAn je alatka koja pomaže developerima, lovcima na bagove i etičkim hakerima u izvođenju statičke analize koda mobilnih aplikacija.
Koncept je da prevučete i otpustite datoteku vaše mobilne aplikacije (datoteku .apk ili .ipa) na aplikaciju StaCoAn i ona će generisati vizuelni i prenosivi izveštaj za vas. Možete prilagoditi postavke i liste reči da biste dobili personalizovano iskustvo.
Preuzmite najnovije izdanje:
./stacoan
AndroBugs
AndroBugs Framework je sistem analize ranjivosti Androida koji pomaže developerima ili hakerima da pronađu potencijalne sigurnosne ranjivosti u Android aplikacijama.
Windows izdanja
python androbugs.py -f [APK file]
androbugs.exe -f [APK file]
Androwarn
Androwarn je alat čiji je glavni cilj da otkrije i upozori korisnika na potencijalno zlonamerne radnje razvijene od strane Android aplikacije.
Otkrivanje se vrši statičkom analizom Dalvik bajtkoda aplikacije, predstavljenog kao Smali, pomoću biblioteke androguard
.
Ovaj alat traži uobičajeno ponašanje "loših" aplikacija poput: ekstrakcije telefonskih identifikatora, presretanja audio/video tokova, modifikacije PIM podataka, izvršavanja proizvoljnog koda...
python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3
MARA Framework
MARA je Mobilni Aplikacija za Reverzno inženjerstvo i Analizu okvira. To je alat koji objedinjuje često korištene alate za reverzno inženjerstvo i analizu mobilnih aplikacija, kako bi pomogao u testiranju mobilnih aplikacija protiv OWASP mobilnih sigurnosnih pretnji. Njegov cilj je da olakša ovaj zadatak i da bude prijateljski nastrojen prema razvojnim programerima mobilnih aplikacija i sigurnosnim profesionalcima.
Može:
- Izvući Java i Smali kod koristeći različite alate
- Analizirati APK-ove koristeći: smalisca, ClassyShark, androbugs, androwarn, APKiD
- Izvući privatne informacije iz APK-a koristeći regexps.
- Analizirati Manifest.
- Analizirati pronađene domene koristeći: pyssltest, testssl i whatweb
- Deobfuskirati APK putem apk-deguard.com
Koodous
Korisno za otkrivanje malvera: https://koodous.com/
Obfuskacija/Deobfuskacija koda
Imajte na umu da, zavisno o usluzi i konfiguraciji koju koristite za obfuskaciju koda, tajne mogu ili ne moraju biti obfuskirane.
ProGuard
Sa Vikipedije: ProGuard je alat otvorenog koda za komandnu liniju koji smanjuje, optimizuje i obfuskira Java kod. Može optimizovati bajtkod kao i otkriti i ukloniti nekorišćene instrukcije. ProGuard je besplatan softver i distribuira se pod GNU General Public License, verzija 2.
ProGuard je distribuiran kao deo Android SDK-a i pokreće se prilikom izgradnje aplikacije u režimu izdanja.
DexGuard
Pronađite vodič korak po korak za deobfuskaciju APK-a na https://blog.lexfo.fr/dexguard.html
(Iz tog vodiča) Poslednji put kada smo proverili, način rada Dexguard-a bio je:
- učitavanje resursa kao InputStream;
- prosleđivanje rezultata klasi koja nasleđuje od FilterInputStream-a da ga dešifruje;
- obaviti neku beskorisnu obfuskaciju kako bi se potrošilo nekoliko minuta vremena od osobe koja reverzira;
- prosleđivanje dešifrovanog rezultata ZipInputStream-u da dobijete DEX datoteku;
- konačno učitavanje rezultujućeg DEX-a kao Resurs koristeći metod
loadDex
.
DeGuard
DeGuard vraća proces obfuskacije koji su obavili alati za obfuskaciju Androida. To omogućava brojne sigurnosne analize, uključujući inspekciju koda i predviđanje biblioteka.
Možete otpremiti obfuskirani APK na njihovu platformu.
Simplify
To je generički deobfuskator za Android. Simplify virtuelno izvršava aplikaciju kako bi razumeo njen ponašanje, a zatim pokušava da optimizuje kod tako da se ponaša identično, ali je lakši za razumevanje ljudima. Svaka vrsta optimizacije je jednostavna i generička, pa nije važno koji je specifičan tip obfuskacije korišćen.
APKiD
APKiD vam pruža informacije o kako je napravljen APK. Identifikuje mnoge kompajlere, pakere, obfuskatore i druge čudne stvari. To je PEiD za Android.
Ručno
Pročitajte ovaj tutorijal da biste naučili neke trikove o kako deobfuskirati prilagođenu obfuskaciju
Laboratorije
Androl4b
AndroL4b je Android sigurnosna virtuelna mašina zasnovana na ubuntu-mate koja uključuje kolekciju najnovijih okvira, tutorijala i laboratorija od različitih sigurnosnih entuzijasta i istraživača za reverzno inženjerstvo i analizu malvera.
Reference
- https://owasp.org/www-project-mobile-app-security/
- https://appsecwiki.com/#/ To je odličan spisak resursa
- https://maddiestone.github.io/AndroidAppRE/ Brzi kurs za Android
- https://manifestsecurity.com/android-application-security/
- https://github.com/Ralireza/Android-Security-Teryaagh
- https://www.youtube.com/watch?v=PMKnPaGWxtg&feature=youtu.be&ab_channel=B3nacSec
Još uvek treba probati
Pridružite se HackenProof Discord serveru kako biste komunicirali sa iskusnim hakerima i lovcima na bagove!
Hacking Insights
Uključite se u sadržaj koji istražuje uzbuđenje i izazove hakovanja
Vesti u realnom vremenu o hakovanju
Budite u toku sa brzim svetom hakovanja kroz vesti i uvide u realnom vremenu
Najnovije objave
Budite informisani o najnovijim nagradama za pronalaženje bagova i važnim ažuriranjima platformi
Pridružite nam se na Discord-u i počnite da sarađujete sa vrhunskim hakerima danas!
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!
Drugi načini podrške HackTricks-u:
- Ako želite da vidite svoju kompaniju reklamiranu na HackTricks-u ili da preuzmete HackTricks u PDF formatu Proverite PLANOVE ZA PRIJAVU!
- Nabavite zvanični PEASS & HackTricks swag
- Otkrijte The PEASS Family, našu kolekciju ekskluzivnih NFT-ova
- Pridružite se 💬 Discord grupi ili telegram grupi ili nas pratite na Twitter-u 🐦 @carlospolopm.
- Podelite svoje hakovanje trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.