56 KiB
Android Applications Pentesting
Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
- As jy jou maatskappy geadverteer wil sien in HackTricks of HackTricks in PDF wil aflaai Kyk na die INSKRYWINGSPLANNE!
- Kry die amptelike PEASS & HackTricks swag
- Ontdek Die PEASS-familie, ons versameling eksklusiewe NFT's
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg ons op Twitter 🐦 @carlospolopm.
- Deel jou haktruuks deur PR's in te dien by die HackTricks en HackTricks Cloud github-opslag.
Sluit aan by HackenProof Discord bediener om met ervare hackers en foutbeloningsjagters te kommunikeer!
Hakinsigte
Gaan in gesprek met inhoud wat die opwinding en uitdagings van hak bevat
Haknuus in Werklikheid
Bly op hoogte van die snelveranderende hakwêreld deur werklikheidsnuus en insigte
Nuutste Aankondigings
Bly ingelig oor die nuutste foutbelonings wat bekendgestel word en belangrike platformopdaterings
Sluit by ons aan op Discord en begin vandag saamwerk met top hackers!
Basiese beginsels van Android-toepassings
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:
{% content-ref url="android-applications-basics.md" %} android-applications-basics.md {% endcontent-ref %}
ADB (Android Debug Bridge)
Dit is die belangrikste gereedskap 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.
Neem 'n kykie na die volgende lys van ADB-opdragte om te leer hoe om adb te gebruik.
Smali
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. 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.
Ander interessante truuks
- Spoofing jou ligging in Play Store
- Laai APK's af: https://apps.evozi.com/apk-downloader/, https://apkpure.com/es/, https://www.apkmirror.com/, https://apkcombo.com/es-es/apk-downloader/
- Haal APK uit toestel:
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
Statische Analise
Eerstens, vir die analise van 'n APK moet jy 'n kykie neem na die Java-kode deur 'n decompiler te gebruik.
Lees asseblief hier om inligting oor verskillende beskikbare decompilers te vind.
Op soek na interessante Inligting
Deur net na die strings van die APK te kyk, kan jy soek na wagwoorde, URL's (https://github.com/ndelphit/apkurlgrep), api sleutels, enkripsie, bluetooth uuids, tokens en enige iets interessant... soek selfs vir kode-uitvoer agterdeure of outentiseringsagterdeure (hardgekode administratiewe geloofsbriewe vir die program).
Firebase
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.
Basiese begrip van die aansoek - Manifest.xml, strings.xml
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 uit te pak.
Kwessies wat geïdentifiseer word vanuit die Manifest.xml sluit in:
- Toepassings wat gedebug kan word: Toepassings wat as gedebug kan word (
debuggable="true"
) ingestel is in die Manifest.xml lêer, stel 'n risiko omdat dit 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 databekupings 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 sertifikaatpenne 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 aanwys 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
, enmaxSdkVersion
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
Tikjacking is 'n aanval waar 'n boosaardige toepassing bekend word en posisioneer homself bo-op 'n slagoffer-toepassing. Wanneer dit die slagofferprogram sigbaar verduister, is sy gebruikerskoppelvlak so ontwerp dat dit die gebruiker mislei om daarmee te interaksioneer, terwyl dit die interaksie na die slagofferprogram deurgee.
In werklikheid verblind dit die gebruiker om te weet dat hulle eintlik handelinge op die slagofferprogram uitvoer.
Vind meer inligting in:
{% content-ref url="tapjacking.md" %} tapjacking.md {% endcontent-ref %}
Taakontvoering
'n Aktiwiteit met die launchMode
ingestel op singleTask
sonder enige taskAffinity
gedefinieer is vatbaar vir taakontvoering. Dit beteken dat 'n toepassing geïnstalleer kan word en as dit voor die werklike toepassing begin word, kan dit die taak van die werklike toepassing ontvoer (sodat die gebruiker met die boosaardige toepassing sal interaksioneer en dink hy gebruik die regte een).
Meer inligting in:
{% content-ref url="android-task-hijacking.md" %} android-task-hijacking.md {% endcontent-ref %}
Onveilige data-opberging
Interne Opberging
In Android is lêers wat in interne opberging gestoor word, ontwerp om eksklusief deur die toepassing 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 toepassings. Ontwikkelaars gebruik egter soms modusse soos MODE_WORLD_READABLE
en MODE_WORLD_WRITABLE
om lêers toe te laat om tussen verskillende toepassings gedeel te word. Tog beperk hierdie modusse nie toegang tot hierdie lêers deur ander toepassings nie, insluitend moontlik boosaardige eenhede.
- Statische Analise:
- Verseker dat die gebruik van
MODE_WORLD_READABLE
enMODE_WORLD_WRITABLE
sorgvuldig ondersoek word. Hierdie modusse kan potensieel lêers blootstel aan onbedoelde of ongemagtigde toegang.
- Dinamiese Analise:
- Verifieer die toestemmings wat op lêers geskep deur die toepassing 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 toepassing wat op die toestel geïnstalleer is, ongeag sy oorsprong of bedoeling, toelaat om hierdie lêers te lees of te wysig.
Eksterne Opberging
Wanneer daar met lêers op eksterne opberging, soos SD-kaarte, gehandel word, moet sekere voorbehoudsmaatreëls getref word:
- Toeganklikheid:
- Lêers op eksterne opberging is wêreldwyd leesbaar en skryfbaar. Dit beteken enige toepassing of gebruiker kan by hierdie lêers kom.
- Sekuriteitskwessies:
- Gegewe die maklikheid van toegang, word dit aanbeveel om nie sensitiewe inligting op eksterne opberging te stoor nie.
- Eksterne opberging kan verwyder of deur enige toepassing benader word, wat dit minder veilig maak.
- Hantering van Data van Eksterne Opberging:
- 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 toepassing uitvoerbare lêers van eksterne opberging moet herwin, verseker 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 toepassing.
Eksterne opberging kan benader word in /storage/emulated/0
, /sdcard
, /mnt/sdcard
{% hint style="info" %} Van Android 4.4 (API 17) af, het die SD-kaart 'n gidsstruktuur wat toegang van 'n toepassing tot die gids wat spesifiek vir daardie toepassing is, beperk. Dit voorkom dat boosaardige toepassings lees- of skryftoegang tot 'n ander toepassing se lêers verkry. {% endhint %}
Sensitiewe data in teks
- Gedeelde voorkeure: Android laat elke toepassing 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 toepassing 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:
SSLSocketFactory sf = new cc(trustStore);
sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
Gebroke Kriptografie
Swak Sleutelbestuursprosesse
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.
Gebruik van Onveilige en/of Verouderde Algoritmes
Ontwikkelaars behoort nie verouderde algoritmes te gebruik om outorisasie kontroles, 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 aanvalle met sout gebruik te word.
Ander kontroles
- Dit word aanbeveel om die APK te verduister om die omkeerwerk van aanvallers te bemoeilik.
- As die app sensitief is (soos bankapps), behoort dit sy eie kontroles uit te voer om te sien of die mobiele toestel gewortel is en daarna op te tree.
- As die app sensitief is (soos bankapps), behoort dit te kontroleer of 'n emuleerder gebruik word.
- As die app sensitief is (soos bankapps), behoort dit sy eie integriteit te kontroleer voordat dit uitgevoer word om te sien of dit gewysig is.
- Gebruik APKiD om te sien watter samesteller/pakker/verduisteraar gebruik is om die APK te bou.
React Native-toepassing
Lees die volgende bladsy om te leer hoe om maklik toegang tot javascript-kode van React-toepassings te verkry:
{% content-ref url="react-native-application.md" %} react-native-application.md {% endcontent-ref %}
Xamarin-toepassings
Lees die volgende bladsy om te leer hoe om maklik toegang tot C#-kode van 'n Xamarin-toepassings te verkry:
{% content-ref url="../xamarin-apps.md" %} xamarin-apps.md {% endcontent-ref %}
Supergepakte Toepassings
Volgens hierdie blogpos is supergepakte 'n Meta-algoritme wat die inhoud van 'n toepassing in 'n enkele lêer saamdruk. Die blog praat oor die moontlikheid om 'n toepassing te skep wat hierdie soort toepassings dekomprimeer... en 'n vinniger manier wat behels om die toepassing uit te voer en die gedekomprimeerde lêers van die lêersisteem te versamel.
Geoutomatiseerde Statische Kode-analise
Die instrument 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 gebruikerinvoer skade kan veroorsaak) en reëls. Hierdie reëls dui die kombinasie van bronne-sinks aan wat 'n kwesbaarheid aandui.
Met hierdie kennis sal mariana-trench die kode deurkyk en moontlike kwesbaarhede daarop vind.
Gelekte Geheime
'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 gebruik
Om Biometriese Outentifikasie te Verbygaan
{% content-ref url="bypass-biometric-authentication-android.md" %} bypass-biometric-authentication-android.md {% endcontent-ref %}
Ander interessante funksies
- Kode-uitvoering:
Runtime.exec(), ProcessBuilder(), native kode:system()
- Stuur SMS'e:
sendTextMessage, sendMultipartTestMessage
- Inheemse funksies wat as
inheems
verklaar is:public inheems, System.loadLibrary, System.load
- Lees hier om te leer hoe om inheemse funksies om te keer
Ander truuks
{% content-ref url="content-protocol.md" %} content-protocol.md {% endcontent-ref %}
Sluit aan by HackenProof Discord bediener om met ervare hackers en foutbeloningsjagters te kommunikeer!
Hack-insigte
Betrokkenheid by inhoud wat die opwinding en uitdagings van hack bekyk
Nuus oor Hack in Werklikheid
Bly op hoogte van die vinnige hack-wêreld deur middel van nuus en insigte in werklikheid
Nuutste Aankondigings
Bly ingelig met die nuutste foutbelonings wat bekendgestel word en kritieke platformopdaterings
Sluit by ons aan op Discord en begin vandag saamwerk met top hackers!
Dinamiese Analise
Eerstens, jy benodig 'n omgewing waar jy die toepassing en al die omgewing kan installeer (Burp CA-sertifikaat, Drozer en Frida hoofsaaklik). Daarom word 'n gewortelde toestel (geëmuleer of nie) sterk aanbeveel.
Aanlyn Dinamiese analise
Jy kan 'n gratis rekening skep by: https://appetize.io/. Hierdie platform stel jou in staat om APK's te laai en uit te voer, sodat jy kan sien hoe 'n apk optree.
Jy kan selfs die logs van jou toepassing op die web sien en deur middel van adb koppel.
Dankie aan die ADB-koppeling kan jy Drozer en Frida binne die emuleerders gebruik.
Plaaslike Dinamiese Analise
Deur 'n emuleerder te gebruik
- Android 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ê).
- Leer om dit op te stel op hierdie bladsy:
{% content-ref url="avd-android-virtual-device.md" %} avd-android-virtual-device.md {% endcontent-ref %}
- Genymotion (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 (Gratis, maar dit ondersteun nie Frida of Drozer nie).
{% hint style="info" %} 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. {% endhint %}
Om Google-dienste (soos AppStore) in Genymotion te installeer, moet jy op die rooi gemerkte knoppie van die volgende beeld klik:
Let ook daarop dat in die konfigurasie van die Android VM in Genymotion jy Bridge Network mode kan kies (dit sal nuttig wees as jy die Android VM vanaf 'n ander VM met die gereedskap verbind).
Gebruik 'n fisiese toestel
Jy moet die afdeling vir foutopsporing aktiveer en dit sal goed wees as jy dit kan root:
- Instellings.
- (Vanaf Android 8.0) Kies Stelsel.
- Kies Oor telefoon.
- Druk Bou-nommer 7 keer.
- Gaan terug en jy sal die Ontwikkelaar-opsies vind.
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.
Onbedoelde Datalek
Logging
Ontwikkelaars moet versigtig wees om foutopsporingsinligting openlik bloot te stel, aangesien dit tot gevoelige datalekke kan lei. Die gereedskap pidcat en adb logcat
word aanbeveel vir die monitor van aansoeklogs om sensitiewe inligting te identifiseer en te beskerm. Pidcat word verkies vir sy gebruiksgemak en leesbaarheid.
{% hint style="info" %}
Let daarop dat van later nuwer as Android 4.0, kan aansoeke slegs toegang hê tot hul eie logs. So aansoeke kan nie toegang verkry tot ander aansoeke se logs nie.
In elk geval word dit steeds aanbeveel om nie sensitiewe inligting te log nie.
{% endhint %}
Kopieer/Plak Buffer Kaching
Android se klembord-gebaseerde raamwerk maak kopieer/plak-funksionaliteit in aansoeke moontlik, maar hou 'n risiko in aangesien ander aansoeke die klembord kan benader, wat moontlik 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.
Stortinglogs
As 'n aansoek afskryf en logs stoor, kan hierdie logs aanvallers help, veral wanneer die aansoek nie omgekeer-ingenieurswys kan wees nie. Om hierdie risiko te verminder, vermy om tydens afkortings te log, en as logs oor die netwerk gestuur moet word, verseker dat hulle via 'n SSL-kanaal vir sekuriteit gestuur word.
As pentester, probeer om na hierdie logs te kyk.
Analitiese Data Gestuur Na 3de Partye
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 vir enige gevoelige inligting wat na derdepartydiens gestuur word.
SQLite-databasisse
Meeste van die aansoeke sal interne SQLite-databasisse gebruik om inligting te stoor. Tydens die pentest moet jy kyk na die databasisse wat geskep is, die name van tabelle en kolomme en al die data wat gestoor is, omdat jy gevoelige inligting kan vind (wat 'n kwesbaarheid sou wees).
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 versleutel is maar jy kan die wagwoord vind binne die aansoek, is dit steeds 'n kwesbaarheid.
Tel die tabelle op deur .tabelle
te gebruik en tel die kolomme van die tabelle op deur .skema <tabel_naam>
te doen.
Drozer (Uitbuitingsaktiwiteite, Inhoudsverskaffers en Dienste)
Vanaf Drozer-dokumente: 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.
Uitbuiting van uitgevoerde Aktiwiteite
Lees hierdie as jy wil verfris wat 'n Android-aktiwiteit is.
Onthou ook dat die kode van 'n aktiwiteit begin in die onSkep
-metode.
Outorisasie-omleiding
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 dit te benader.
Leer hoe om uitgevoerde aktiwiteite met Drozer uit te buit.
Jy kan ook 'n uitgevoerde aktiwiteit vanaf adb begin:
- Pakketnaam is com.example.demo
- Uitgevoerde Aktiwiteitnaam is com.example.test.MainActivity
adb shell am start -n com.example.demo/com.example.test.MainActivity
NOTA: MobSF sal as skadelik beskou die gebruik van singleTask/singleInstance as android:launchMode
in 'n aktiwiteit, maar as gevolg van hierdie, blyk dit dat dit slegs gevaarlik is op ou weergawes (API weergawes < 21).
{% hint style="info" %} 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. {% endhint %}
Sensitiewe inligting lekkasie
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.
Tapjacking
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.
Uitbuiting van Inhoudsverskaffers - Toegang tot en manipulering van sensitiewe inligting
Lees dit as jy wil onthou wat 'n Inhoudsverskaffer is.
Inhoudsverskaffers word basies gebruik om data te deel. As 'n app 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.
Leer hoe om Inhoudsverskaffers uit te buit met Drozer.
Uitbuiting van Dienste
Lees dit as jy wil onthou wat 'n Diens is.
Onthou dat die aksies van 'n Diens begin in die metode onStartCommand
.
'n Diens is basies iets wat data kan ontvang, dit kan verwerk en 'n antwoord teruggee (of nie). As 'n aansoek 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...
Leer hoe om Dienste uit te buit met Drozer.
Uitbuiting van Uitsaai-Ontvangers
Lees dit as jy wil onthou wat 'n Uitsaai-Ontvanger is.
Onthou dat die aksies van 'n Uitsaai-Ontvanger begin in die metode onReceive
.
'n Uitsaai-ontvanger sal wag vir 'n tipe boodskap. Afhangende van hoe die ontvanger die boodskap hanteer, kan dit kwesbaar wees.
Leer hoe om Uitsaai-Ontvangers uit te buit met Drozer.
Uitbuiting van Skemas / Diep skakels
Jy kan handmatig vir diep skakels soek, hulpmiddels soos MobSF gebruik of skripte soos hierdie.
Jy kan 'n verklaarde skema open met adb of 'n blaaier:
{% code overflow="wrap" %}
adb shell am start -a android.intent.action.VIEW -d "scheme://hostname/path?param=value" [your.package.name]
{% endcode %}
Merk op dat jy die pakketnaam kan weglaat en die mobiele toestel sal outomaties die program oproep wat die skakel behoort te open.
{% 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 %}
Kode uitgevoer
Om die kode wat in die app uitgevoer sal word te vind, gaan na die aktiwiteit wat deur die deeplink geroep word en soek die funksie onNewIntent
.
Sensitiewe inligting
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 toepassing die deeplink kan naboots en daardie data kan steel!
Parameters in pad
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 toepassing vind, jy dalk 'n Open Redirect kan veroorsaak (as deel van die pad as domeinnaam gebruik word), rekeningoornames (as jy gebruikersbesonderhede sonder CSRF-token kan wysig en die kwesbare eindpunt die korrekte metode gebruik) en enige ander kwesbaarheid. Meer inligting hieroor hier.
Meer voorbeelde
'n Interessante bug bounty verslag oor skakels (/.well-known/assetlinks.json).
Inspeksie en Verifikasie van die Vervoerlaag
- 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 dekodeer.
- 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.
Sertifikaatverifikasie
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 ongeënkripteerde kanale aansienlike risiko's kan inhou. Vir gedetailleerde stappe oor die verifikasie van bedienersertifikate en die aanspreek van kwesbaarhede, bied hierdie bron omvattende leiding.
SSL Pinning
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.
Verkeersinspeksie
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 versleutelde verkeer nie sigbaar wees deur die proksi nie. Vir 'n gids oor die installeer van 'n aangepaste CA-sertifikaat, klik hier.
Toepassings wat API-vlak 24 en hoër teiken, vereis wysigings aan die Netwerksekuriteitskonfigurasie om die CA-sertifikaat van die proksi te aanvaar. Hierdie stap is krities vir die inspeksie van versleutelde verkeer. Vir instruksies oor die wysiging van die Netwerksekuriteitskonfigurasie, verwys na hierdie handleiding.
Bypassing SSL Pinning
Wanneer SSL Pinning geïmplementeer is, word dit nodig om dit te omseil vir die inspeksie van HTTPS-verkeer. Verskeie metodes is beskikbaar vir hierdie doel:
- Outomaties verander die apk om SSLPinning te omseil met 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 (bespreek hieronder) 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/
- Jy kan ook probeer om SSL Pinning outomaties te omseil deur objection:
objection --gadget com.package.app explore --startup-command "android sslpinning disable"
- Jy kan ook probeer om SSL Pinning outomaties te omseil deur MobSF dinamiese analise (verduidelik hieronder)
- As jy steeds dink dat daar verkeer is wat jy nie vasvang nie, kan jy probeer om die verkeer na burp te stuur deur iptables te gebruik. Lees hierdie blog: https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62
Soek na Gewone Webkwesbaarhede
Dit is belangrik om ook na gewone 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
Frida is 'n dinamiese instrumenteringstoolkit vir ontwikkelaars, omgekeerde-ingenieurs en sekuriteitsnavorsers.
Jy kan die lopende toepassing benader en metodes op tyd hardloop om die gedrag te verander, waardes te verander, waardes te onttrek, verskillende kode te hardloop...
As jy Android-toepassings wil pentest, moet jy weet hoe om Frida te gebruik.
- Leer hoe om Frida te gebruik: Frida tutorial
- Sommige "GUI" vir aksies met Frida: 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/dpnishant/appmon
- Jy kan 'n paar wonderlike Frida-skripte hier vind: https://codeshare.frida.re/
- Probeer om anti-debugging / anti-Frida-meganismes te omseil deur Frida soos aangedui in https://erfur.github.io/blog/dev/code-injection-without-ptrace te laai (werktuig linjector)
Gedagtegeheue aflaai - Fridump
Kyk of die toepassing sensitiewe inligting binne die geheue stoor wat dit nie behoort te stoor nie, soos wagwoorde of mnemoniese woorde.
Met Fridump3 kan jy die geheue van die app aflaai met:
# With PID
python3 fridump3.py -u <PID>
# With name
frida-ps -Uai
python3 fridump3.py -u "<Name>"
Dit sal die geheue in die ./dump vouer dump, en daar kan jy grep met iets soos:
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]+$"
Sensitiewe data in Keystore
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.
Selfs as 'n program data in die keystore stoor, moet die data versleutel word.
Om die data binne die keystore te benader, kan jy hierdie Frida-skrip gebruik: 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
Vingerafdruk/Biometriese Omgang
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:
frida --codeshare krapgras/android-biometric-bypass-update-android-11 -U -f <app.package>
Agtergrondbeelde
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.
Indien hierdie momentopname sensitiewe inligting bevat, kan iemand met toegang tot die momentopname dalk daardie inligting steel (let wel dat jy worteltoegang benodig om dit te kan bereik).
Die momentopnames word gewoonlik gestoor rondom: /data/system_ce/0/snapshots
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.
getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
Android-toepassingontleder
Hierdie instrument kan jou help om verskillende gereedskap tydens die dinamiese analise te bestuur: https://github.com/NotSoSecure/android_application_analyzer
Intent-inspuiting
Ontwikkelaars skep dikwels pligsgetroue komponente 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 kan verkry tot sensitiewe inhoudsverskaffers 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.
Belangrike punte
- Intent-inspuiting is soortgelyk aan die web se Oop Herlei-probleem.
- Uitbuitings behels die deurgang van
Intent
-voorwerpe as ekstra's, wat omgelei kan word om onveilige operasies uit te voer. - Dit kan nie-uitgevoerde komponente en inhoudsverskaffers aan aanvallers blootstel.
- Die omskakeling van
WebView
se URL naIntent
kan onbedoelde aksies fasiliteer.
Android-kliëntkant-inspuitings en ander
Jy ken waarskynlik van hierdie soort kwesbaarhede van die Web. Wees spesiaal versigtig met hierdie kwesbaarhede in 'n Android-toepassing:
- SQL-inspuiting: Wanneer jy te doen het met dinamiese navrae of Inhoudsverskaffers, verseker dat jy geparametriseerde navrae gebruik.
- JavaScript-inspuiting (XSS): Verifieer dat JavaScript- en Plugin-ondersteuning gedeaktiveer is vir enige WebViews (standaard gedeaktiveer). Meer inligting hier.
- Plaaslike lêer-insluiting: WebViews moet nie toegang tot die lêersisteem hê nie (standaard geaktiveer) -
(webview.getSettings().setAllowFileAccess(false);)
. Meer inligting hier. - 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
Sluit aan by HackenProof Discord bediener om met ervare hackers en foutbeloningsjagters te kommunikeer!
Hack-insigte
Raak betrokke by inhoud wat die opwinding en uitdagings van hack ondersoek
Hacknuus in Werklikheid
Bly op hoogte van die vinnige hackwêreld deur middel van werklike nuus en insigte
Nuutste Aankondigings
Bly ingelig met die nuutste foutbelonings wat bekendgestel word en kritieke platformopdaterings
Sluit aan by ons op Discord en begin vandag saamwerk met top hackers!
Outomatiese Analise
MobSF
Statiese analise
Kwesbaarheidsassessering van die aansoek deur 'n aangename webgebaseerde voorkant. Jy kan ook dinamiese analise uitvoer (maar jy moet die omgewing voorberei).
docker pull opensecurity/mobile-security-framework-mobsf
docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest
Let daarop dat MobSF Android(apk), IOS(ipa) en Windows(apx) programme kan analiseer (Windows programme moet geanaliseer word vanaf 'n Windows gasheer waarop MobSF geïnstalleer is).
Indien 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.
Ondersteunde Dinamiese analise met MobSF
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.
Die MobSF dinamiese analiseerder kan:
- Toepassingsdata dump (URL's, logboeke, knipbuisklips, skermskote wat deur jou geneem is, skermskote wat deur "Geëksporteerde Aktiwiteitstoetser" geneem is, e-posse, SQLite-databasisse, XML-lêers, en ander geskepde 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 uitgevoerde 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 proxy-instellings stel om verkeer vas te vang. Dit sal slegs verkeer van die getoetste toepassing vasvang.
Frida
Standaard sal dit ook van sommige Frida-skripte gebruik maak om SSL-pinning, root-deteksie en debugger-deteksie te vermy en om interessante API's te monitor.
MobSF kan ook uitgevoerde aktiwiteite aanroep, skermskote daarvan neem en dit vir die verslag stoor.
Om die dinamiese toetsing te begin, druk op die groen knoppie: "Begin Instrumentasie". Druk op 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).
Verder het jy 'n paar Hulp Frida-funksies:
- Tel Gelaai Klas: Dit sal al die gelaai klas druk
- Vang Strings: Dit sal al die gevangde 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 naspore.
Sodra jy die hulpmodule wat jy wil gebruik gekies het, moet jy op "Begin Instrumentasie" druk en jy sal al die uitsette in "Frida Lewende Logboeke" sien.
Shell
Mobsf bring ook 'n skaal met 'n paar adb-opdragte, MobSF-opdragte, en algemene skaalopdragte onder aan die dinamiese analisepagina. Sommige interessante opdragte:
help
shell ls
activities
exported_activities
services
receivers
HTTP-gereedskap
Wanneer http-verkeer vasgelê word, kan jy 'n lelike aansig van die vasgelê verkeer sien op die "HTTP(S) Traffic" 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\).
Nadat jy die dinamiese analise met MobSF voltooi het, kan jy op "Begin Web API Fuzzer" druk om http-versoeke te fuzz en kwesbaarhede te soek.
{% hint style="info" %} 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:
adb shell settings put global http_proxy :0
{% endhint %}
Ondersteunde Dinamiese Analise met Inspeckage
Jy kan die instrument kry vanaf Inspeckage.
Hierdie instrument gebruik Hooks om jou te laat weet wat in die aansoek gebeur terwyl jy 'n dinamiese analise uitvoer.
Yaazhini
Dit is 'n uitstekende instrument om statiese analise met 'n GUI uit te voer
Qark
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.
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
- Wys alle onttrekte lêers vir maklike verwysing
- Ontbind outomaties APK-lêers na Java- en Smali-formaat
- Analiseer AndroidManifest.xml vir algemene kwesbaarhede en gedrag
- Statische bronkode-analise vir algemene kwesbaarhede en gedrag
- Toestelinligting
- en meer
reverse-apk relative/path/to/APP.apk
SUPER Android Analyzer
SUPER is 'n opdraglyn-toepassing wat in Windows, MacOS X en Linux gebruik kan word, wat .apk lêers analiseer 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.
Alle reels is gesentreer in 'n rules.json
lêer, en elke maatskappy of toetsers kan hul eie reels skep om te analiseer wat hulle nodig het.
Laai die nuutste bineêre lêers af van die aflaaiblad
super-analyzer {apk_file}
StaCoAn
StaCoAn is 'n kruisplatform-werktuig wat ontwikkelaars, foutbeloningsjagters en etiese hackers help om statische kode-analise op mobiele aansoeke uit te voer.
Die konsep is dat jy jou mobiele aansoeklêer (‘n .apk of .ipa lêer) na die StaCoAn-toepassing sleep en laat dit ‘n visuele en draagbare verslag vir jou genereer. Jy kan die instellings en woordlyste aanpas om ‘n aangepaste ervaring te kry.
Laai die nuutste vrystelling af:
./stacoan
AndroBugs
AndroBugs Framework is 'n Android kwesbaarheidsanalise-sisteem wat ontwikkelaars of hackers help om potensiële sekuriteitskwesbaarhede in Android-toepassings te vind.
Windows vrystellings
python androbugs.py -f [APK file]
androbugs.exe -f [APK file]
Androwarn
Androwarn is 'n instrument met die hoofdoel 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, verteenwoordig as Smali, met die androguard
biblioteek.
Hierdie instrument soek na algemene gedrag van "slegte" toepassings soos: Telefoonidentifiseerders wat uitlek, Klank-/videovloei onderskepping, PIM-data-wysiging, Willekeurige kode-uitvoering...
python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3
MARA Framework
MARA is 'n Mobiele Applikasie Reverse engineering en Analise Raamwerk. Dit is 'n instrument wat gereeld gebruikte mobiele applikasie reverse engineering en analise gereedskap bymekaar sit, om te help met die toets van mobiele toepassings teen die OWASP mobiele sekuriteitsbedreigings. Sy doel is om hierdie taak makliker en vriendeliker te maak vir mobiele toepassing-ontwikkelaars en sekuriteitsprofessionals.
Dit is in staat om:
- Java en Smali kode te onttrek met verskillende gereedskap
- APK's te analiseer met behulp van: smalisca, ClassyShark, androbugs, androwarn, APKiD
- Privaat inligting uit die APK te onttrek deur regexps te gebruik.
- Die Manifest te analiseer.
- Gevonde domeine te analiseer met behulp van: pyssltest, testssl en whatweb
- APK te deobfuscate via apk-deguard.com
Koodous
Nuttig om malware op te spoor: https://koodous.com/
Kode Obfuskasie/Deobfuskasie
Let daarop dat afhangende van die diens en konfigurasie wat jy gebruik om die kode te obfuskasie. Geheime mag al dan nie geëindig obfuskasie nie.
ProGuard
Vanaf Wikipedia: ProGuard is 'n oopbron-kommalyn-instrument wat Java-kode verklein, optimaliseer en obfuskasie. Dit is in staat om bytecode te optimaliseer sowel as ongebruikte instruksies te identifiseer en te verwyder. ProGuard is vrye sagteware en word versprei onder die GNU Algemene Openbare Lisensie, weergawe 2.
ProGuard word versprei as deel van die Android SDK en hardloop wanneer die aansoek in vrystellingmodus gebou word.
DexGuard
Vind 'n stap-vir-stap-gids om die apk te deobfuskasie in https://blog.lexfo.fr/dexguard.html
(Uit daardie gids) Laaste keer wat ons gekyk het, was die Dexguard-modus van werking:
- laai 'n hulpbron as 'n InputStream;
- voer die resultaat aan 'n klas wat van FilterInputStream erf om dit te dekripteer;
- doen 'n paar nuttelose obfuskasie om 'n paar minute van 'n omkeerder se tyd te mors;
- voer die dekripteerde resultaat aan 'n ZipInputStream om 'n DEX-lêer te kry;
- laai uiteindelik die resulterende DEX as 'n Hulpbron met behulp van die
loadDex
-metode.
DeGuard
DeGuard keer die proses van obfuskasie wat deur Android obfuskasie-gereedskap uitgevoer is, om. Dit maak talle sekuriteitsontledings moontlik, insluitend kode-inspeksie en voorspelling van biblioteke.
Jy kan 'n obfuskasie APK na hul platform oplaai.
Simplify
Dit is 'n generiese Android deobfuskator. Simplify 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
APKiD gee jou inligting oor hoe 'n APK gemaak is. Dit identifiseer baie kompilers, pakkers, obfuskators, en ander vreemde goed. Dit is PEiD vir Android.
Handleiding
Lees hierdie handleiding om 'n paar truuks te leer oor hoe om aangepaste obfuskasie om te keer
Laboratoriums
Androl4b
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.
Verwysings
- https://owasp.org/www-project-mobile-app-security/
- https://appsecwiki.com/#/ Dit is 'n goeie lys van bronne
- https://maddiestone.github.io/AndroidAppRE/ Android vinnige kursus
- 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
Nog om te probeer
Sluit aan by HackenProof Discord bediener om met ervare hackers en foutbeloningsjagters te kommunikeer!
Hack-insigte
Gaan in gesprek met inhoud wat die opwinding en uitdagings van hack bekyk
Nuus oor Hack in Werklikheid
Bly op hoogte van die vinnige tempo van die hack-wêreld deur middel van nuus en insigte in werklikheid
Nuutste Aankondigings
Bly ingelig met die nuutste foutbelonings wat bekendgestel word en kritieke platformopdaterings
Sluit by ons aan op Discord en begin vandag saamwerk met top hackers!
Leer AWS-hack van nul tot held met htARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
- As jy wil sien dat jou maatskappy geadverteer word in HackTricks of HackTricks aflaai in PDF-formaat Kontroleer die INSKRYWINGSPLANNE!
- Kry die amptelike PEASS & HackTricks swag
- Ontdek Die PEASS Familie, ons versameling eksklusiewe NFTs
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg ons op Twitter 🐦 @carlospolopm.
- Deel jou hack-truuks deur PR's in te dien by die HackTricks en HackTricks Cloud github-opslag.