.. | ||
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 čitati ovu stranicu 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 da 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 ponovo ga kompajlirati.
U ovom tutorijalu možete naučiti kako da dekompilirate APK, modifikujete Smali kod i ponovo kompajlirate 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 datoteke u .zip, a zatim raspakivanjem.
Ranjivosti identifikovane iz Manifest.xml uključuju:
- Aplikacije za debagovanje: Aplikacije označene kao debagovane (
debuggable="true"
) u Manifest.xml fajlu predstavljaju rizik jer omogućavaju veze koje mogu dovesti do eksploatacije. Za dalje razumevanje kako eksploatisati debagovane aplikacije, pogledajte tutorijal o pronalaženju i eksploatisanju debagovanih aplikacija na uređaju. - Postavke 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, posebno kada je omogućeno USB debagovanje. - Mrežna sigurnost: Prilagođene konfiguracije mrežne sigurnosti (
android:networkSecurityConfig="@xml/network_security_config"
) u res/xml/ mogu specificirati detalje sigurnosti poput pinova sertifikata i postavki 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 istovremeno 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 u:
{% 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 ispituje. 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 bilo kojoj aplikaciji instaliranoj na uređaju, bez obzira na poreklo ili nameru, da čita ili modifikuje ove fajlove.
Spoljno skladištenje
Kada se radi sa 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 bilo koja aplikacija ili korisnik može pristupiti tim fajlovima.
- Sigurnosne zabrinutosti:
- S obzirom na laku dostupnost, savetuje se ne čuvati 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.
- Obrada podataka 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.
- Čuvanje izvršnih ili klasnih fajlova na spoljnom skladištu radi dinamičkog učitavanja se snažno odvraća.
- 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 vitalan 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 u fajlove druge aplikacije. {% endhint %}
Osetljivi podaci čuvani u čistom tekstu
- Deljeni preferencijali: Android omogućava svakoj aplikaciji da lako sačuva XML fajlove na putanji
/data/data/<packagename>/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/<packagename>/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);
Slom način testiranja je pokušati da se uhvati saobraćaj koristeći neki proxy poput Burp-a bez autorizacije Burp CA unutar uređaja. Takođe, možete generisati sertifikat za različiti hostname i koristiti ga.
Slomljena kriptografija
Loši procesi upravljanja ključevima
Neki programeri čuvaju osetljive podatke u lokalnom skladištu i šifriraju ih ključem koji je hardkodiran/predvidljiv u kodu. Ovo ne bi trebalo raditi jer neko preokretanje može omogućiti napadačima da izvuku poverljive informacije.
Korišćenje nesigurnih i/ili zastarelih algoritama
Programeri ne bi trebali koristiti zastarele algoritme za obavljanje provere autorizacije, čuvanje ili slanje podataka. Neki od ovih algoritama su: RC4, MD4, MD5, SHA1... Ako se koriste heševi za čuvanje lozinki na primer, trebalo bi koristiti heševe otporne na napade brute-force sa solju.
Ostale provere
- Preporučuje se obfuskacija APK-a kako bi se otežalo preokretanje rada napadačima.
- Ako je aplikacija osetljiva (kao što su bankarske aplikacije), trebalo bi da obavi svoje provere da vidi da li je mobilni uređaj rutovan i postupiti u skladu s 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 da bi se proverilo da li je izmenjena.
- Koristite APKiD da biste proverili koji je kompajler/paker/obfuskator korišćen za izgradnju APK-a
React Native aplikacija
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 %}
Xamarin aplikacije
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 %}
Superpacked aplikacije
Prema ovom blog postu superpacked 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ži način koji uključuje izvršavanje aplikacije i prikupljanje dekompresovanih fajlova iz fajl sistema.
Automatizovana statička analiza koda
Alat mariana-trench sposoban je 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 (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 preokrenete 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 platforme
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, korenovani uređaj (emuliran ili ne) je izuzetno preporučljiv.
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 korisno videti kako se APK ponaš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 ovome najnovijim x86 verzijama 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, trebate kreirati nalog. Preporučuje se da preuzmete verziju SA VirtualBox da biste izbegli potencijalne greške.)
- Nox (Besplatan, ali ne podržava Fridu ili Drozer).
{% 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 male 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
Treba da aktivirate opcije za debagovanje i bilo bi dobro ako ga možete rutovati:
- 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 programere.
Kada instalirate aplikaciju, prva stvar koju treba da uradite je da je isprobate i istražite šta radi, kako radi i udobno se osećate sa njom.
Predlažem da izvršite ovu početnu dinamičku analizu korišćenjem MobSF dinamičke analize + pidcat, tako ćemo moći saznati kako aplikacija funkcioniše dok MobSF snima mnogo interesantnih podataka koje možete pregledati kasnije.
Neželjeno curenje podataka
Logovanje
Programeri treba da budu oprezni prilikom izlaganja informacija o otklanjanju 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 se preferira zbog jednostavnosti korišćenja i čitljivosti.
{% hint style="warning" %}
Imajte na umu da od kasnijih verzija novijih od Android 4.0, aplikacije mogu pristupiti samo svojim logovima. Dakle, aplikacije ne mogu pristupiti logovima drugih aplikacija.
U svakom slučaju, preporučuje se ne logovati osetljive informacije.
{% endhint %}
Keširanje kopiranja/lepljenja u baferu
Android-ov sistem 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 padovima
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 padova, a ako logovi moraju biti preneti preko mreže, osigurajte da se šalju 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 treba 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 (Iskorišćavanje aktivnosti, pružaoca sadržaja i usluga)
Iz Drozer Dokumenata: Drozer vam omogućava da preuzmete ulogu Android aplikacije i interagujete sa drugim aplikacijama. Može raditi sve što i 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 iskorišćavanje izloženih aktivnosti, izloženih usluga i pružalaca sadržaja, kako ćete naučiti u narednim sekcijama.
Iskorišćavanje 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. Dakle, ako je aktivnost sa osetljivim informacijama izložena, mogli biste bajpasovati mehanizme autentifikacije da biste joj pristupili.
Naučite kako iskoristiti izložene aktivnosti pomoću Drozera.
Takođe možete pokrenuti izloženu aktivnost iz 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 vraćati 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 ubacivanja i putanjske prelaske jer bi mogli biti ranjivi.
Naučite kako da iskoristite Provajdere Sadržaja sa Drozerom.
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 Drozerom.
Iskorišćavanje Prijemnika Emitovanja
Pročitajte ovo ako želite da osvežite šta je Prijemnik Emitovanja.
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 Drozerom.
Iskorišćavanje Šema / Dubokih linkova
Možete ručno tražiti duboke linkove, koristeći alate poput MobSF-a ili skripte poput ove.
Možete otvoriti deklarisanu šemu 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 duboki 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 duboki 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 krajnja tačka koristi odgovarajuću metodu) i bilo koju drugu ranjivost. Više informacija o tome ovde.
Više primera
Jedan interesantan izveštaj o nagradi za otkrivanje grešaka o linkovima (/.well-known/assetlinks.json).
Inspekcija i neuspesi provere sloja transportnog sloja
- Sertifikati se ne inspiciraju uvek pravilno od strane Android aplikacija. Često je za ove aplikacije uobičajeno da zanemare upozorenja i prihvate samopotpisane sertifikate ili, u nekim slučajevima, da se vrate 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 usred (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 bezbednosti. Ovo 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đenje.
SSL Pinning
SSL Pinning je sigurnosna mera gde aplikacija proverava serverski sertifikat prema poznatoj kopiji koja je smeštena unutar same aplikacije. Ova metoda je ključna za sprečavanje napada čoveka usred (MITM). 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 vam 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 neki 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 unutar aplikacije. Detaljne informacije o identifikaciji i ublažavanju ovih ranjivosti su van obima ovog sažetka, ali su obuhvaćene detaljno na drugim mestima.
Frida
Frida je dinamički alat za instrumentaciju za programere, inženjere za reverzno inženjerstvo i istraživače sigurnosti.
Možete pristupiti pokrenutoj aplikaciji i kvačiti metode u vreme izvršavanja da biste promenili ponašanje, vrednosti, izvukli vrednosti, izvršili drugačiji 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 tamo 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]+$"
{% endcode %}
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 čuvaju ovde osetljive podatke u obliku čistog teksta, pentesti bi trebalo da provere da li su takvi podaci prisutni, jer korisnik sa root pristupom ili fizičkim pristupom uređaju može da ukrade ove podatke.
Čak i ako je aplikacija sačuvala 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 otiska 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).
Snapshoti 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
Injekcija Intenata
Programeri često kreiraju proxy komponente poput aktivnosti, servisa i broadcast receivera koji obrađuju ove Intente 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 Intenata. 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 injekcija Intenata.
Ključne informacije
- Injekcija Intenata je slična problemu otvorenog preusmeravanja na vebu.
- Eksploatacije uključuju prosleđivanje
Intent
objekata kao dodatnih informacija, koje mogu biti preusmerene 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.
Injekcije na Android klijentskoj strani i ostalo
Verovatno već znate za ovu vrstu ranjivosti sa veba. Morate biti posebno oprezni sa ovim ranjivostima 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 brzim svetom hakovanja kroz vesti i uvide u realnom vremenu
Poslednje najave
Budite informisani o najnovijim nagradama za pronalaženje bagova i ključ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 web-based 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 moraju biti analizirane sa MobSF instaliranim na Windows hostu).
Takođe, ako kreirate ZIP fajl sa izvornim kodom Android ili IOS aplikacije (idite u korenski folder aplikacije, izaberite sve i kreirajte ZIP fajl), MobSF će moći 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 vašem 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 samo saobraćaj 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 dva 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 %}
Pomoćna dinamička analiza pomoću Inspeckage alata
Možete preuzeti alat sa Inspeckage.
Ovaj alat koristi neke kuke da vam omogući 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š
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, 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 alat koji radi na više platformi i pomaže programerima, lovcima na bagove i etičkim hakerima prilikom izvođenja 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 vizualni 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: izvlačenje telefonskih identifikatora, presretanje audio/video tokova, modifikaciju PIM podataka, izvršavanje 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šćene 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 profesionalcima za sigurnost.
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
- Deobfuskovati APK putem apk-deguard.com
Koodous
Korisno za otkrivanje malvera: https://koodous.com/
Obfuskacija/Deobfuskacija koda
Imajte na umu da zavisi od usluge i konfiguracije koju koristite za obfuskaciju koda. Tajne mogu ili ne moraju biti obfuskovane.
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 se distribuira 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 FilterInputStream da ga dešifruje;
- obaviti nekoliko beskorisnih obfuskacija kako bi se potrošilo nekoliko minuta vremena od osobe koja reverzira;
- prosleđivanje dešifrovanog rezultata ZipInputStream-u da bi se dobio DEX fajl;
- 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 obfuskovani 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 načinu na koji je APK napravljen. Identifikuje mnoge kompajlere, pakere, obfuskatore i druge čudne stvari. To je PEiD za Android.
Ručno
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!
Hakerski uvidi
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 objave
Budite informisani o najnovijim nagradama 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!
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.