<summary><strong>Leer AWS-hacking vanaf nul tot held met</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
Dit word sterk aanbeveel om hierdie bladsy te begin lees om meer te wete te kom oor die **belangrikste dele wat verband hou met Android-sekuriteit en die gevaarlikste komponente in 'n Android-toepassing**:
Dit is die hoofinstrument wat jy nodig het om aan 'n Android-toestel (nageboots of fisies) te koppel.\
**ADB** maak dit moontlik om toestelle te beheer oor **USB** of **Netwerk** vanaf 'n rekenaar. Hierdie nut stel die **kopieer** van lêers in beide rigtings, **installeer** en **deïnstalleer** van programme, **uitvoer** van skelopdragte, **back-up** van data, **lees** van logboeke, onder andere funksies, moontlik.
Dit is soms interessant om die toepassingskode te **verander om toegang te verkry tot****verskuilde inligting** (miskien goed verduisterde wagwoorde of vlae). Dan kan dit interessant wees om die apk te dekompilieer, die kode te wysig en dit weer saam te stel.\
[**In hierdie handleiding** kan jy **leer hoe om 'n APK te dekompilieer, Smali-kode te wysig en die APK weer saam te stel** met die nuwe funksionaliteit](smali-changes.md). Dit kan baie nuttig wees as 'n **alternatief vir verskeie toetse tydens die dinamiese analise** wat aangebied gaan word. Hou dus altyd hierdie moontlikheid in gedagte.
Deur net na die **strings** van die APK te kyk, kan jy soek na **wagwoorde**, **URL's** ([https://github.com/ndelphit/apkurlgrep](https://github.com/ndelphit/apkurlgrep)), **api** sleutels, **enkripsie**, **bluetooth uuids**, **tokens** en enige iets interessant... soek selfs vir kode-uitvoer **agterdeure** of outentiseringsagterdeure (hardgekoppelde administrateurskredensiaal vir die app).
Betaal spesiale aandag aan **firebase URL's** en kyk of dit sleg geconfigureer is. [Meer inligting oor wat Firebase is en hoe om dit te benut hier.](../../network-services-pentesting/pentesting-web/buckets/firebase-database.md)
Die **ondersoek van 'n aansoek se **_**Manifest.xml**_** en **_**strings.xml**_** lêers kan potensiële sekuriteitskwessies aan die lig bring**. Hierdie lêers kan benader word deur decompilers of deur die APK-lêernaamuitbreiding na .zip te verander en dit dan te ontzip.
* **Toepassings wat gedebug kan word**: Toepassings wat as gedebug kan word (`debuggable="true"`) ingestel is in die _Manifest.xml_ lêer, stel 'n risiko as hulle verbindings toelaat wat tot uitbuiting kan lei. Vir 'n verdere begrip van hoe om gedebugbare toepassings te benut, verwys na 'n handleiding oor die vind en benutting van gedebugbare toepassings op 'n toestel.
* **Agtergrondinstellings**: Die `android:allowBackup="false"` eienskap moet uitdruklik ingestel word vir toepassings wat met sensitiewe inligting werk om ongemagtigde databack-ups via adb te voorkom, veral wanneer usb-debogging geaktiveer is.
* **Netwerksekuriteit**: Aangepaste netwerksekuriteitskonfigurasies (`android:networkSecurityConfig="@xml/network_security_config"`) in _res/xml/_ kan sekuriteitsbesonderhede soos sertifikaatpennetjies en HTTP-verkeersinstellings spesifiseer. 'n Voorbeeld is om HTTP-verkeer vir spesifieke domeine toe te laat.
* **Geëksporteerde Aktiwiteite en Dienste**: Die identifisering van geëksporteerde aktiwiteite en dienste in die manifest kan komponente uitlig wat misbruik kan word. Verdere analise tydens dinamiese toetsing kan onthul hoe om hierdie komponente te benut.
* **Inhoudsverskaffers en Lêerverskaffers**: Blootgestelde inhoudsverskaffers kan ongemagtigde toegang of wysiging van data toelaat. Die konfigurasie van Lêerverskaffers moet ook deeglik ondersoek word.
* **Uitsaai-ontvangers en URL-skemas**: Hierdie komponente kan benut word vir uitbuiting, met spesiale aandag aan hoe URL-skemas bestuur word vir insetkwessies.
* **SDK-weergawes**: Die `minSdkVersion`, `targetSDKVersion`, en `maxSdkVersion` eienskappe dui die ondersteunde Android-weergawes aan, wat die belangrikheid beklemtoon om verouderde, kwesbare Android-weergawes nie te ondersteun vir sekuriteitsredes nie.
Uit die **strings.xml** lêer kan sensitiewe inligting soos API-sleutels, aangepaste skemas, en ander ontwikkelaarsnotas ontdek word, wat die noodsaaklikheid van 'n sorgvuldige hersiening van hierdie bronne beklemtoon.
**Tikjacking** is 'n aanval waar 'n **boosaardige****aansoek** gelanseer word en **sigself bo-op 'n slagoffer-aansoek posisioneer**. Wanneer dit die slagoffer-aansoek sigbaar verduister, is sy gebruikerskoppelvlak so ontwerp dat dit die gebruiker mislei om daarmee te interageer, terwyl dit die interaksie na die slagoffer-aansoek deurgee.\
In werklikheid verblind dit die gebruiker om te weet dat hulle eintlik handelinge op die slagoffer-aansoek uitvoer.
'N **aktiwiteit** met die **`launchMode`** ingestel op **`singleTask` sonder enige `taskAffinity`** gedefinieer is vatbaar vir taakontvoering. Dit beteken dat 'n **aansoek** geïnstalleer kan word en as dit voor die werklike aansoek begin word, kan dit die taak van die werklike aansoek **ontvoer** (sodat die gebruiker met die **boosaardige aansoek dink hy gebruik die regte een**).
In Android is lêers wat in **interne** opberging **gestoor** word, **ontwerp** om eksklusief deur die **aansoek** wat dit **geskep** het, toeganklik te wees. Hierdie sekuriteitsmaatreël word **afgedwing** deur die Android-bedryfstelsel en is gewoonlik voldoende vir die sekuriteitsbehoeftes van die meeste aansoeke. Ontwikkelaars gebruik egter soms modusse soos `MODE_WORLD_READABLE` en `MODE_WORLD_WRITABLE` om lêers toe te laat om tussen verskillende aansoeke gedeel te word. Tog **beperk hierdie modusse nie toegang** tot hierdie lêers deur ander aansoeke nie, insluitend moontlik boosaardige aansoeke.
* **Verseker** dat die gebruik van `MODE_WORLD_READABLE` en `MODE_WORLD_WRITABLE`**sorgvuldig ondersoek** word. Hierdie modusse **kan potensieel lêers blootstel aan onbedoelde of ongemagtigde toegang**.
* **Verifieer** die **toestemmings** wat op lêers geskep deur die aansoek ingestel is. Spesifiek, **kontroleer** of enige lêers **ingestel is om wêreldwyd leesbaar of skryfbaar te wees**. Dit kan 'n beduidende sekuriteitsrisiko inhou, aangesien dit enige aansoek wat op die toestel geïnstalleer is, ongeag sy oorsprong of bedoeling, toelaat om hierdie lêers te **lees of te wysig**.
* Voer altyd **insetvalidering** uit op data wat van eksterne opberging herwin word. Dit is krities omdat die data van 'n onbetroubare bron afkomstig is.
* Dit word sterk afgeraai om uitvoerbare lêers of klaslêers op eksterne opberging vir dinamiese laai te stoor.
* As jou aansoek uitvoerbare lêers van eksterne opberging moet herwin, verseker dan dat hierdie lêers **onderteken en kriptografies geverifieer** word voordat hulle dinamies gelaai word. Hierdie stap is noodsaaklik vir die handhawing van die sekuriteitsintegriteit van jou aansoek.
Van Android 4.4 (**API 17**) af, het die SD-kaart 'n gidsstruktuur wat **toegang van 'n aansoek tot die gids wat spesifiek vir daardie aansoek is, beperk**. Dit voorkom dat boosaardige aansoeke lees- of skryftoegang tot 'n ander aansoek se lêers verkry.
{% endhint %}
**Sensitiewe data in teks**
* **Gedeelde voorkeure**: Android laat elke aansoek toe om maklik xml-lêers in die pad `/data/data/<pakketnaam>/shared_prefs/` te stoor en soms is dit moontlik om sensitiewe inligting in teks in daardie vouer te vind.
* **Databasisse**: Android laat elke aansoek toe om maklik sqlite-databasisse in die pad `/data/data/<pakketnaam>/databases/` te stoor en soms is dit moontlik om sensitiewe inligting in teks in daardie vouer te vind.
### Gebreekte TLS
**Aanvaar Alle Sertifikate**
Om een of ander rede aanvaar ontwikkelaars soms al die sertifikate selfs al stem die gasheernaam nie ooreen met reëls van kode soos die volgende:
Sommige ontwikkelaars stoor sensitiewe data in die plaaslike stoor en enkripteer dit met 'n sleutel wat hardgekodel/voorspelbaar in die kode is. Dit behoort nie gedoen te word nie, aangesien sommige omkeerwerk dit vir aanvallers moontlik kan maak om die vertroulike inligting te onttrek.
Ontwikkelaars behoort nie **verouderde algoritmes** te gebruik om **gemagtigheidskontroles**, **stoor** of **stuur** data uit te voer nie. Sommige van hierdie algoritmes is: RC4, MD4, MD5, SHA1... As **hashe** byvoorbeeld gebruik word om wagwoorde te stoor, behoort hashe wat bestand is teen kragtige aanvalle, gebruik te word saam met sout.
* Dit word aanbeveel om die **APK te verduister** om die omkeerder se werk vir aanvallers te bemoeilik.
* As die program sensitief is (soos bankprogramme), behoort dit sy eie kontroles uit te voer om te sien of die mobiele toestel gewortel is en daarna op te tree.
* As die program sensitief is (soos bankprogramme), behoort dit te kontroleer of 'n **emuleerder** gebruik word.
* As die program sensitief is (soos bankprogramme), behoort dit **sy eie integriteit te kontroleer voordat dit uitgevoer word** om te sien of dit gewysig is.
* Gebruik [**APKiD**](https://github.com/rednaga/APKiD) om te sien watter samesteller/pakker/verduisteraar gebruik is om die APK te bou.
Volgens hierdie [**blogpos**](https://clearbluejar.github.io/posts/desuperpacking-meta-superpacked-apks-with-github-actions/) is supergepakte 'n Meta-algoritme wat die inhoud van 'n toepassing in 'n enkele lêer saampers. Die blog praat oor die moontlikheid om 'n toepassing te skep wat hierdie soort toepassings dekompresseer... en 'n vinniger manier wat behels om **die toepassing uit te voer en die gedekomprimeerde lêers van die lêersisteem te versamel.**
Die instrument [**mariana-trench**](https://github.com/facebook/mariana-trench) is in staat om **kwesbaarhede** te vind deur die **kode** van die toepassing te **skandeer**. Hierdie instrument bevat 'n reeks **bekende bronne** (wat die instrument die **plekke** aandui waar die **invoer deur die gebruiker beheer word**), **sinks** (wat die instrument **gevaarlike plekke** aandui waar skadelike gebruikersinvoer skade kan veroorsaak) en **reëls**. Hierdie reëls dui die **kombinasie** van **bronne-sinks** aan wat 'n kwesbaarheid aandui.
'n Toepassing mag geheime (API-sleutels, wagwoorde, verskuilde URL's, subdomeine...) binne-in hê wat jy dalk kan ontdek. Jy kan 'n instrument soos [https://github.com/dwisiswant0/apkleaks](https://github.com/dwisiswant0/apkleaks) gebruik
> Eerstens, jy benodig 'n omgewing waar jy die toepassing kan installeer en al die omgewing (Burp CA-sertifikaat, Drozer en Frida hoofsaaklik). Daarom word 'n gewortelde toestel (geëmuleer of nie) sterk aanbeveel.
Jy kan 'n **gratis rekening** skep by: [https://appetize.io/](https://appetize.io). Hierdie platform stel jou in staat om APK's te **laai** en **uit te voer**, sodat dit nuttig is om te sien hoe 'n apk optree.
* [**Android Studio**](https://developer.android.com/studio) (Jy kan **x86** en **arm** toestelle skep, en volgens **hierdie** ](https://android-developers.googleblog.com/2020/03/run-arm-apps-on-android-emulator.html)**nuutste x86** weergawes **ondersteun ARM-biblioteke** sonder 'n stadige arm-emuleerder nodig te hê).
* [**Genymotion**](https://www.genymotion.com/fun-zone/) **(Gratis weergawe:** Persoonlike Uitgawe, jy moet 'n rekening skep. _Dit word aanbeveel om die weergawe **MET**__**VirtualBox** af te laai om potensiële foute te vermy._)
* [**Nox**](https://es.bignox.com) (Gratis, maar dit ondersteun nie Frida of Drozer nie).
Wanneer jy 'n nuwe emuleerder op enige platform skep, onthou dat hoe groter die skerm is, hoe stadiger die emuleerder sal loop. Kies dus klein skerms as moontlik.
Let ook daarop dat in die **konfigurasie van die Android VM in Genymotion** jy **Brugnetwerkmodus** kan kies (dit sal nuttig wees as jy vanaf 'n ander VM met die gereedskap na die Android VM koppel).
> Nadat jy die aansoek geïnstalleer het, is die eerste ding wat jy moet doen om dit te probeer en ondersoek wat dit doen, hoe dit werk en gemaklik daarmee te voel.\
> Ek sal voorstel om **hierdie aanvanklike dinamiese analise met MobSF dinamiese analise + pidcat uit te voer**, sodat ons in staat sal wees om **te leer hoe die aansoek werk** terwyl MobSF 'n baie **interessante data** vasvang wat jy later kan deurkyk.
Ontwikkelaars moet versigtig wees om **foutopsporingsinligting** openlik bloot te stel, aangesien dit tot gevoelige datalekke kan lei. Die gereedskap [**pidcat**](https://github.com/JakeWharton/pidcat) en `adb logcat` word aanbeveel vir die monitor van aansoeklogs om sensitiewe inligting te identifiseer en te beskerm. **Pidcat** word verkies vanweë sy gebruiksgemak en leesbaarheid.
Let daarop dat van **later nuwer as Android 4.0**, **toepassings slegs in staat is om toegang tot hul eie logs te verkry**. So toepassings kan nie toegang tot ander toepassings se logs verkry nie.\
Dit word steeds aanbeveel om **nie sensitiewe inligting te log nie**.
Android se **klembord-gebaseerde** raamwerk maak kopieer/plak-funksionaliteit in aansoeke moontlik, maar hou 'n risiko in aangesien **ander aansoeke** die klembord kan **toegang** en sodoende gevoelige data kan blootstel. Dit is noodsaaklik om kopieer/plak-funksies vir sensitiewe dele van 'n aansoek, soos kredietkaartbesonderhede, te **deaktiveer** om datalekke te voorkom.
As 'n aansoek **afskryf** en **logs stoor**, kan hierdie logs aanvallers help, veral wanneer die aansoek nie omgekeer-ontgin kan word nie. Om hierdie risiko te verminder, moet jy vermy om tydens afkruie te log, en as logs oor die netwerk gestuur moet word, verseker dat hulle via 'n SSL-kanaal vir sekuriteit gestuur word.
Aansoeke integreer dikwels dienste soos Google Adsense, wat onbedoeld **gevoelige data kan lek** as gevolg van onvanpaste implementering deur ontwikkelaars. Om potensiële datalekke te identifiseer, is dit raadsaam om die aansoek se verkeer te **onderskep** en te kyk of enige gevoelige inligting aan derdepartydiensverskaffers gestuur word.
Meeste aansoeke sal **interne SQLite-databasisse** gebruik om inligting te stoor. Tydens die pentest moet jy kyk na die geskepde **databasisse**, die name van **tabelle** en **kolomme** en al die **data** wat gestoor is, omdat jy **gevoelige inligting** (wat 'n kwesbaarheid sou wees) kan vind.\
Databasisse behoort in `/data/data/die.pakket.naam/databasisse` soos `/data/data/com.mwr.example.sieve/databasisse` geleë te wees.
As die databasis vertroulike inligting stoor en **geënkripteer** is, maar jy kan die **wagwoord binne die aansoek vind**, is dit steeds 'n **kwesbaarheid**.
Vanaf [Drozer-dokumente](https://labs.mwrinfosecurity.com/assets/BlogFiles/mwri-drozer-user-guide-2015-03-23.pdf): **Drozer** stel jou in staat om die rol van 'n Android-aansoek aan te neem en met ander aansoeke te interaksioneer. Dit kan **enigiets doen wat 'n geïnstalleerde aansoek kan doen**, soos gebruik maak van Android se Interproseskommunikasie (IPC)-meganisme en interaksie met die onderliggende bedryfstelsel.\
Drozer is 'n nuttige gereedskap om **uitgevoerde aktiwiteite, uitgevoerde dienste en Inhoudsverskaffers** uit te buit soos jy in die volgende afdelings sal leer.
Wanneer 'n Aktiwiteit uitgevoer word, kan jy sy skerm vanaf 'n eksterne aansoek aanroep. Daarom, as 'n aktiwiteit met **gevoelige inligting****uitgevoer** word, kan jy die **outentiseringsmeganismes omseil** om daartoe **toegang te verkry**.
**NOTA**: MobSF sal as skadelik beskou die gebruik van _**singleTask/singleInstance**_ as `android:launchMode` in 'n aktiwiteit, maar as gevolg van [hierdie](https://github.com/MobSF/Mobile-Security-Framework-MobSF/pull/750), blyk dit dat dit slegs gevaarlik is op ou weergawes (API weergawes <21).
Let daarop dat 'n outorisasie-omleiding nie altyd 'n kwesbaarheid is nie, dit sal afhang van hoe die omleiding werk en watter inligting blootgestel word.
**Aktiwiteite kan ook resultate teruggee**. As jy 'n uitgevoerde en onbeskermde aktiwiteit vind wat die **`setResult`** metode aanroep en **sensitiewe inligting teruggee**, is daar 'n sensitiewe inligting lekkasie.
As tapjacking nie voorkom word nie, kan jy die uitgevoerde aktiwiteit misbruik om die **gebruiker onverwagte aksies te laat uitvoer**. Vir meer inligting oor [**wat is Tapjacking volg die skakel**](./#tapjacking).
Inhoudsverskaffers word basies gebruik om **data te deel**. As 'n toepassing beskikbare inhoudsverskaffers het, kan jy moontlik **sensitiewe** data daaruit **onttrek**. Dit is ook interessant om moontlike **SQL-injeksies** en **Padaflitsings** te toets aangesien hulle kwesbaar kan wees.
'n Diens is basies iets wat **data kan ontvang**, dit kan **verwerk** en 'n antwoord **teruggee** (of nie). As 'n toepassing sekere dienste uitvoer, moet jy die **kode** nagaan om te verstaan wat dit doen en dit **dinamies** toets vir die onttrekking van vertroulike inligting, omseilings van outentiseringsmaatreëls...\
Jy kan handmatig vir diep skakels soek, hulpmiddels soos MobSF gebruik of skripte soos [hierdie](https://github.com/ashleykinguk/FBLinkBuilder/blob/master/FBLinkBuilder.py).\
Jy kan 'n verklaarde **skema****open** met **adb** of 'n **blaaier**:
Om die **kode wat in die program uitgevoer sal word** te vind, gaan na die aktiwiteit wat deur die deeplink geroep word en soek die funksie **`onNewIntent`**.
Elke keer as jy 'n deeplink vind, moet jy nagaan dat **dit nie sensitiewe data (soos wagwoorde) via URL-parameters ontvang nie**, omdat enige ander program die deeplink kan naboots en daardie data kan steel!
Jy **moet ook nagaan of enige deeplink 'n parameter binne die pad** van die URL gebruik soos: `https://api.example.com/v1/users/{username}`, in daardie geval kan jy 'n padtraversie afdwing deur iets soos te benader: `example://app/users?username=../../unwanted-endpoint%3fparam=value`.\
Let daarop dat as jy die korrekte eindpunte binne die program vind, jy dalk 'n **Oop Aanstuur** kan veroorsaak (as deel van die pad as domeinnaam gebruik word), **rekening-oorneem** (as jy gebruikersbesonderhede sonder CSRF-token kan wysig en die kwesbare eindpunt die korrekte metode gebruik) en enige ander kwesbaarheid. Meer [inligting hieroor hier](http://dphoeniixx.com/2020/12/13-2/).
* **Sertifikate word nie altyd behoorlik geïnspekteer** deur Android-toepassings nie. Dit is algemeen vir hierdie toepassings om waarskuwings te ignoreer en selfondertekende sertifikate te aanvaar of, in sommige gevalle, terug te keer na die gebruik van HTTP-verbindinge.
* **Onderhandelinge tydens die SSL/TLS-handdruk is soms swak**, waar onveilige siferreeksse gebruik word. Hierdie kwesbaarheid maak die verbinding vatbaar vir man-in-die-middel (MITM) aanvalle, wat aanvallers in staat stel om die data te ontsiffer.
* **Lekkasie van private inligting** is 'n risiko wanneer toepassings gebruik maak van veilige kanale vir verifikasie, maar dan kommunikeer oor nie-veilige kanale vir ander transaksies. Hierdie benadering slaag daarin om sensitiewe data, soos sessiekoekies of gebruikersbesonderhede, te beskerm teen onderskepping deur skadelike entiteite.
Ons sal fokus op **sertifikaatverifikasie**. Die integriteit van die bediener se sertifikaat moet geverifieer word om die veiligheid te verbeter. Dit is noodsaaklik omdat onveilige TLS-konfigurasies en die oordrag van sensitiewe data oor ongekripteerde kanale aansienlike risiko's kan inhou. Vir gedetailleerde stappe oor die verifikasie van bedienersertifikate en die aanspreek van kwesbaarhede, bied [**hierdie bron**](https://manifestsecurity.com/android-application-security-part-10/) omvattende leiding.
SSL Pinning is 'n sekuriteitsmaatreël waar die toepassing die bediener se sertifikaat teen 'n bekende kopie wat binne die toepassing self gestoor word, verifieer. Hierdie metode is noodsaaklik om MITM-aanvalle te voorkom. Die implementering van SSL Pinning word sterk aanbeveel vir toepassings wat sensitiewe inligting hanteer.
Om HTTP-verkeer te inspekteer, is dit nodig om die sertifikaat van die proksigereedskap te **installeer** (bv. Burp). Sonder die installering van hierdie sertifikaat mag gekripteerde verkeer nie sigbaar wees deur die proksi nie. Vir 'n gids oor die installeer van 'n aangepaste CA-sertifikaat, [**klik hier**](avd-android-virtual-device.md#install-burp-certificate-on-a-virtual-machine).
Toepassings wat **API-vlak 24 en hoër** teiken, vereis wysigings aan die Netwerksekuriteitskonfigurasie om die proksi se CA-sertifikaat te aanvaar. Hierdie stap is krities vir die inspeksie van gekripteerde verkeer. Vir instruksies oor die wysiging van die Netwerksekuriteitskonfigurasie, [**verwys na hierdie handleiding**](make-apk-accept-ca-certificate.md).
Wanneer SSL Pinning geïmplementeer is, word dit nodig om dit te omseil om HTTPS-verkeer te inspekteer. Verskeie metodes is beskikbaar vir hierdie doel:
* Outomaties **verander** die **apk** om SSLPinning te **omseil** met [**apk-mitm**](https://github.com/shroudedcode/apk-mitm). Die groot voordeel van hierdie opsie is dat jy nie 'n wortel nodig het om die SSL Pinning te omseil nie, maar jy sal die toepassing moet verwyder en die nuwe een herinstalleer, en dit sal nie altyd werk nie.
* Jy kan **Frida** (hieronder bespreek) gebruik om hierdie beskerming te omseil. Hier het jy 'n gids om Burp+Frida+Genymotion te gebruik: [https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/](https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/)
* Jy kan ook probeer om **outomaties SSL Pinning te omseil** deur [**objection**](frida-tutorial/objection-tutorial.md)**:** `objection --gadget com.package.app explore --startup-command "android sslpinning disable"`
* Jy kan ook probeer om **outomaties SSL Pinning te omseil** deur **MobSF dinamiese analise** (hieronder verduidelik)
* As jy steeds dink dat daar verkeer is wat jy nie vasvang nie, kan jy probeer om **die verkeer na burp deur te stuur deur iptables**. Lees hierdie blog: [https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62](https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62)
Dit is belangrik om ook na algemene webkwesbaarhede binne die toepassing te soek. Gedetailleerde inligting oor die identifisering en beperking van hierdie kwesbaarhede val buite die bestek van hierdie opsomming, maar word elders uitgebreid gedek.
[Frida](https://www.frida.re) is 'n dinamiese instrumenteringstoolkit vir ontwikkelaars, omgekeerde-ingenieurs en sekuriteitsnavorsers.\
**Jy kan die lopende toepassing toegang en metodes op tyd hardloop om die gedrag te verander, waardes te verander, waardes te onttrek, verskillende kode uit te voer...**\
* 'n "GUI" vir aksies met Frida: [**https://github.com/m0bilesecurity/RMS-Runtime-Mobile-Security**](https://github.com/m0bilesecurity/RMS-Runtime-Mobile-Security)
* Ojection is groot om die gebruik van Frida te outomatiseer: [**https://github.com/sensepost/objection**](https://github.com/sensepost/objection) **,** [**https://github.com/dpnishant/appmon**](https://github.com/dpnishant/appmon)
* Jy kan hierdie fantastiese Frida-skripte vind: [**https://codeshare.frida.re/**](https://codeshare.frida.re)
In Android is die Keystore die beste plek om sensitiewe data te stoor, maar met genoeg regte is dit steeds **moontlik om dit te benader**. Aangesien programme geneig is om hier **sensitiewe data in teksformaat** te stoor, moet die pentests hiervoor nagaan, aangesien 'n root-gebruiker of iemand met fisieke toegang tot die toestel in staat kan wees om hierdie data te steel.
Om toegang tot die data binne die keystore te verkry, kan jy hierdie Frida-skrip gebruik: [https://github.com/WithSecureLabs/android-keystore-audit/blob/master/frida-scripts/tracer-cipher.js](https://github.com/WithSecureLabs/android-keystore-audit/blob/master/frida-scripts/tracer-cipher.js)
Deur die volgende Frida-skrip te gebruik, kan dit moontlik wees om **vingerafdruk-verifikasie** wat Android-toepassings mag uitvoer om **sekere sensitiewe areas te beskerm,** te **omseil:**
Wanneer jy 'n aansoek in die agtergrond plaas, stoor Android 'n **momentopname van die aansoek** sodat wanneer dit na die voorgrond herstel word, dit die beeld begin laai voordat die aansoek dit lyk asof die aansoek vinniger gelaai is.
Maar, as hierdie momentopname **sensitiewe inligting** bevat, kan iemand met toegang tot die momentopname dalk daardie inligting **steel** (let wel dat jy worteltoegang nodig het om dit te kan benader).
Android bied 'n manier om **die skermafbeelding vas te vang deur die FLAG\_SECURE** uitlegparameter in te stel. Deur hierdie vlag te gebruik, word die vensterinhoud as veilig beskou, wat voorkom dat dit in skermafbeeldings verskyn of op nie-veilige vertonings besigtig kan word.
Hierdie instrument kan jou help om verskillende gereedskap tydens die dinamiese analise te bestuur: [https://github.com/NotSoSecure/android\_application\_analyzer](https://github.com/NotSoSecure/android\_application\_analyzer)
Ontwikkelaars skep dikwels pligkomponente soos aktiwiteite, dienste, en uitsaai-ontvangers wat hierdie Intents hanteer en hulle deurgee na metodes soos `startActivity(...)` of `sendBroadcast(...)`, wat riskant kan wees.
Die gevaar lê daarin dat aanvallers nie-uitgevoerde app-komponente kan aktiveer of toegang tot sensitiewe inhoudsverskaffers kan verkry deur hierdie Intents te mislei. 'n Noemenswaardige voorbeeld is die `WebView`-komponent wat URL's na `Intent`-voorwerpe omskakel via `Intent.parseUri(...)` en dit dan uitvoer, wat moontlik kan lei tot skadelike Intent-inspuitings.
* **SQL-inspuiting:** Wanneer jy met dinamiese navrae of Inhoudsverskaffers werk, moet jy verseker dat jy geparametriseerde navrae gebruik.
* **JavaScript-inspuiting (XSS):** Verifieer dat JavaScript- en Invoegtoepassing-ondersteuning gedeaktiveer is vir enige WebViews (standaard gedeaktiveer). [Meer inligting hier](webview-attacks.md#javascript-enabled).
* **Plaaslike lêer-insluiting:** WebViews moet nie toegang tot die lêersisteem hê nie (standaard geaktiveer) - `(webview.getSettings().setAllowFileAccess(false);)`. [Meer inligting hier](webview-attacks.md#javascript-enabled).
* **Ewige koekies:** In verskeie gevalle, wanneer die Android-toepassing die sessie afsluit, word die koekie nie herroep nie of dit kan selfs na die skyf gestoor word.
* [**Veilige Vlag** in koekies](../../pentesting-web/hacking-with-cookies/#cookies-flags)
**Kwesbaarheidsassessering van die toepassing** deur 'n aangename web-gebaseerde voorkant. Jy kan ook dinamiese analise uitvoer (maar jy moet die omgewing gereed maak).
Let daarop dat MobSF **Android**(apk)**, IOS**(ipa) **en Windows**(apx) programme kan analiseer (_Windows programme moet geanaliseer word vanaf 'n MobSF wat op 'n Windows gasheer geïnstalleer is_).\
Verder, as jy 'n **ZIP**-lêer skep met die bronkode van 'n **Android** of 'n **IOS**-toep (gaan na die hoofmap van die toepassing, kies alles en skep 'n ZIP-lêer), sal dit ook in staat wees om dit te analiseer.
MobSF laat jou ook toe om **diff/Vergelyk** analise te doen en om **VirusTotal** te integreer (jy sal jou API-sleutel in _MobSF/settings.py_ moet instel en dit aktiveer: `VT_ENABLED = TRUE``VT_API_KEY = <Jou API-sleutel>``VT_UPLOAD = TRUE`). Jy kan ook `VT_UPLOAD` op `False` instel, dan sal die **hash** in plaas van die lêer **opgelaai** word.
**MobSF** kan ook baie nuttig wees vir **dinamiese analise** in **Android**, maar in daardie geval sal jy MobSF en **genymotion** op jou gasheer moet installeer ( 'n VM of Docker sal nie werk nie). _Nota: Jy moet **eers 'n VM in genymotion** begin en **dan MobSF.**_\
* **Toepassingsdata dump** (URL's, logboeke, knipbuiskakels, skermskote wat deur jou geneem is, skermskote wat deur "**Geëksporteerde Aktiwiteitstoetser**" geneem is, e-posse, SQLite-databasisse, XML-lêers, en ander geskepte lêers). Al hierdie word outomaties gedoen behalwe vir die skermskote, jy moet druk wanneer jy 'n skermskoot wil hê of jy moet "**Geëksporteerde Aktiwiteitstoetser**" druk om skermskote van al die geëksporteerde aktiwiteite te verkry.
* Vang **HTTPS-verkeer**
* Gebruik **Frida** om **runtime-inligting** te verkry
Vanaf Android **weergawes > 5**, sal dit **outomaties Frida begin** en sal globale **proksi-instellings** stel om verkeer **vas te vang**. Dit sal slegs verkeer van die getoetste toepassing vasvang.
Standaard sal dit ook van sommige Frida-skripte gebruik maak om **SSL-pinning te omseil**, **root-opsporing** en **debugger-opsporing** en om **interessante API's te monitor**.\
MobSF kan ook **geëksporteerde aktiwiteite aanroep**, **skermskote** daarvan neem en dit vir die verslag **stoor**.
Om die dinamiese toetsing te **begin**, druk die groen knoppie: "**Begin Instrumentasie**". Druk die "**Frida Lewende Logboeke**" om die logboeke wat deur die Frida-skripte gegenereer is te sien en "**Lewende API Monitor**" om al die aanroepings na gehaakte metodes, argumente wat oorgedra is en teruggekeerde waardes te sien (dit sal verskyn nadat jy "Begin Instrumentasie" gedruk het).\
MobSF laat jou ook toe om jou eie **Frida-skripte** te laai (om die resultate van jou Vrydag-skripte na MobSF te stuur, gebruik die funksie `send()`). Dit het ook **verskeie voorafgeskrewe skripte** wat jy kan laai (jy kan meer byvoeg in `MobSF/DynamicAnalyzer/tools/frida_scripts/others/`), kies net hulle, druk "**Laai**" en druk "**Begin Instrumentasie**" (jy sal die logboeke van daardie skripte binne "**Frida Lewende Logboeke**" kan sien).
* **Tel Gelaai Klas**: Dit sal al die gelaai klas druk
* **Vang Strings**: Dit sal al die gevangen strings druk terwyl jy die toepassing gebruik (baie lawaaierig)
* **Vang String Vergelykings**: Kan baie nuttig wees. Dit sal die **2 strings wat vergelyk word wys** en of die resultaat Waar of Vals was.
* **Tel Klas Metodes op**: Plaas die klasnaam (soos "java.io.File") en dit sal al die metodes van die klas druk.
* **Soek Klaspatroon**: Soek klasse volgens patroon
* **Spoor Klas Metodes op**: **Spoor** 'n **hele klas** (sien insette en uitsette van al die metodes van die klas). Onthou dat MobSF standaard verskeie interessante Android Api-metodes nagaan.
Sodra jy die hulpmodule wat jy wil gebruik gekies het, moet jy "**Begin Instrumentasie**" druk en jy sal al die uitsette in "**Frida Lewende Logboeke**" sien.
Mobsf bring ook 'n skul met 'n paar **adb**-opdragte, **MobSF-opdragte**, en algemene **skul****opdragte** aan die onderkant van die dinamiese analisepagina. Sommige interessante opdragte:
Wanneer http-verkeer vasgelê word, kan jy 'n lelike aansig van die vasgelê verkeer sien op die "**HTTP(S) Verkeer**" onderkant of 'n mooier aansig in "**Begin HTTPTools**" groen onderkant. Van die tweede opsie af kan jy die **vasgelê versoek** na **proksi's** soos Burp of Owasp ZAP **stuur**.\
Om dit te doen, _skakel Burp aan -->__skakel Intercept af --> in MobSB HTTPTools kies die versoek_ --> druk "**Stuur na Fuzzer**" --> _kies die proksi-adres_ ([http://127.0.0.1:8080\\](http://127.0.0.1:8080)).
Na die uitvoering van 'n dinamiese analise met MobSF kan die proksi-instellings verkeerd geconfigureer wees en sal jy dit nie van die GUI kan regstel nie. Jy kan die proksi-instellings regstel deur die volgende te doen:
Hierdie instrument is ontwerp om te soek na verskeie **sekuriteitsverwante Android-toepassingskwesbaarhede**, of in **bronkode** of **verpakte APK's**. Die instrument is ook **in staat om 'n "Proof-of-Concept" implementeerbare APK** en **ADB-opdragte** te skep, om van die gevonde kwesbaarhede te misbruik (Blootgestelde aktiwiteite, bedoelings, tapjacking...). Soos met Drozer, is daar geen behoefte om die toestel te root nie.
SUPER is 'n opdraggereëltoepassing wat in Windows, MacOS X en Linux gebruik kan word, wat _.apk_ lêers ontleed op soek na kwesbaarhede. Dit doen dit deur APK's te dekompresseer en 'n reeks reels toe te pas om daardie kwesbaarhede op te spoor.
StaCoAn is 'n **kruisplatform**-werktuig wat ontwikkelaars, foutbeloningsjagters en etiese hackers help om [statische kode-analise](https://en.wikipedia.org/wiki/Static\_program\_analysis) op mobiele toepassings uit te voer.
Die konsep is dat jy jou mobiele toepassingslêer (‘n .apk of .ipa lêer) na die StaCoAn-toepassing sleep en afsit, en dit sal 'n visuele en draagbare verslag vir jou genereer. Jy kan die instellings en woordlyste aanpas om 'n aangepaste ervaring te kry.
AndroBugs Framework is 'n Android kwetsbaarheidsanalise-sisteem wat ontwikkelaars of hackers help om potensiële sekuriteitskwetsbaarhede in Android-toepassings te vind.\
**Androwarn** is 'n instrument wat hoofsaaklik ontwerp is om potensiële skadelike gedrag wat deur 'n Android-toepassing ontwikkel is, op te spoor en die gebruiker te waarsku.
Die opsporing word uitgevoer met die **statische analise** van die toepassing se Dalvik-bytekode, voorgestel as **Smali**, met die [`androguard`](https://github.com/androguard/androguard) biblioteek.
Hierdie instrument soek na **algemene gedrag van "slegte" toepassings** soos: Telefoonidentifiseerders wat uitgelek word, Klank-/videovloei onderskepping, PIM-data-wysiging, Willekeurige kode-uitvoering...
**MARA** is 'n **M**obiele **A**pplikasie **R**everse engineering en **A**nalise-raamwerk. Dit is 'n instrument wat algemeen gebruikte mobiele applikasie reverse engineering en analise-instrumente saambring, om te help met die toetsing van mobiele toepassings teen die OWASP mobiele sekuriteitsbedreigings. Die doel is om hierdie taak makliker en vriendeliker te maak vir mobiele toepassingsontwikkelaars en sekuriteitsprofessionals.
Vanaf [Wikipedia](https://en.wikipedia.org/wiki/ProGuard\_\(software\)): **ProGuard** is 'n oopbron-kommalyn-instrument wat Java-kode verklein, optimaliseer en obfuskasie. Dit kan bytecode optimaliseer sowel as ongebruikte instruksies opspoor en verwyder. ProGuard is vrye sagteware en word versprei onder die GNU Algemene Openbare Lisensie, weergawe 2.
**DeGuard keer die proses van obfuskasie wat deur Android obfuskasie-instrumente uitgevoer is, om. Dit maak verskeie sekuriteitsontledings moontlik, insluitend kode-inspeksie en voorspelling van biblioteke.**
Dit is 'n **generiese Android deobfuskator.** Vereenvoudig **voer feitlik 'n app uit** om sy gedrag te verstaan en probeer dan die kode **te optimaliseer** sodat dit identies optree, maar makliker vir 'n mens is om te verstaan. Elke optimiseringssoort is eenvoudig en generies, dus maak dit nie saak watter spesifieke tipe obfuskasie gebruik word nie.
APKiD gee jou inligting oor **hoe 'n APK gemaak is**. Dit identifiseer baie **kompilers**, **pakkers**, **obfuskators**, en ander vreemde goed. Dit is [_PEiD_](https://www.aldeid.com/wiki/PEiD) vir Android.
AndroL4b is 'n Android-sekuriteitsvirtuele masjien gebaseer op ubuntu-mate wat die versameling van die nuutste raamwerk, tutoriale en laboratoriums van verskillende sekuriteitsgeek en navorsers insluit vir omgekeerde ingenieurswese en malware-analise.
<summary><strong>Leer AWS-hack van nul tot held met</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kontroleer die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)!
* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Deel jou hack-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.