.. | ||
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 |
Android-toepassingspentesting
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 met die nuutste foutbelonings wat bekendgestel word en belangrike platformopdaterings
Sluit by ons aan op Discord en begin vandag saamwerk met top hackers!
Basiese 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 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.
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 (hardgekoppelde administrateurskredensiaal vir die app).
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 te ontzip.
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 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
, 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 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.
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 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).
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 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.
- 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 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.
Eksterne Opberging
Wanneer daar met lêers op eksterne opberging, soos SD-kaarte, gewerk word, moet sekere voorbehoudsmaatreëls getref word:
- Toeganklikheid:
- Lêers op eksterne opberging is wêreldwyd leesbaar en skryfbaar. Dit beteken dat enige aansoek of gebruiker toegang tot hierdie lêers kan verkry.
- 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 aansoek 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 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.
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 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:
SSLSocketFactory sf = new cc(trustStore);
sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
Gebroke Kriptografie
Swak Sleutelbestuurprosesse
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 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.
Ander kontroles
- 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 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 die 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 die C#-kode van 'n Xamarin-toepassing 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 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.
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 gebruikersinvoer 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 Verifikasie 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 verklaar is as
inheems
: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!
Hacker-insigte
Betrokkenheid by inhoud wat die opwinding en uitdagings van hackery ondersoek
Nuus oor Hackery in Werklikheid
Bly op hoogte van die vinnige hackery-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 kan installeer en al die omgewing (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 dit nuttig is om te sien hoe 'n apk optree.
Jy kan selfs die logboeke van jou toepassing sien op die web en deur adb koppel.
Dankie aan die ADB-koppeling kan jy Drozer en Frida binne-in 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 te installeer (soos AppStore) in Genymotion 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 Brugnetwerkmodus kan kies (dit sal nuttig wees as jy vanaf 'n ander VM met die gereedskap na die Android VM koppel).
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 vanweë sy gebruiksgemak en leesbaarheid.
{% hint style="warning" %}
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.
{% 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 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.
Stortingslogs
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.
As pentester, probeer om na hierdie logs te kyk.
Analitiese Data wat na Derdepartye 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.
SQLite-databasisse
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.
Tel die tabelle op deur .tabelle
te gebruik en tel die kolomme van die tabelle op deur .schema <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 dit as jy wil onthou wat 'n Android-aktiwiteit is.
Onthou ook dat die kode van 'n aktiwiteit begin in die onCreate
-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 daartoe toegang te verkry.
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 Aktiwiteitsnaam 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 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.
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 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...
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 %}
Uitgevoerde kode
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
.
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 program 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 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.
Meer voorbeelde
'n Interessante bug bounty verslag oor skakels (/.well-known/assetlinks.json).
Inspeksie en Verifikasie van 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 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.
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 ongekripteerde 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 gekripteerde 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 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.
Bypassing SSL Pinning
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. 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/
- Jy kan ook probeer om outomaties SSL Pinning te omseil deur objection:
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
Soek na Algemene Webkwesbaarhede
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
Frida 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...
As jy Android-toepassings wil pentest, moet jy weet hoe om Frida te gebruik.
- Leer hoe om Frida te gebruik: Frida-tutoriaal
- 'n "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 hierdie fantastiese Frida-skripte vind: https://codeshare.frida.re/
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.
Deur Fridump3 te gebruik, kan jy die geheue van die program 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 soos volg met iets soos grep:
{% 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 %}
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 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
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>
{% endcode %}
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.
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).
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 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.
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 het waarskynlik van hierdie soort kwesbaarhede op die web gehoor. Wees spesifiek versigtig met hierdie kwesbaarhede in 'n Android-toepassing:
- 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.
- 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!
Hacker-insigte
Raak betrokke by inhoud wat die opwinding en uitdagings van hackery ondersoek
Nuus oor Hackery in Werklikheid
Bly op hoogte van die vinnige hackery-wêreld deur middel van nuus en insigte in werklikheid
Nuutste Aankondigings
Bly ingelig oor die nuutste foutbelonings wat bekendgestel word en kritieke platformopdaterings
Sluit by ons aan op Discord en begin vandag saamwerk met top hackers!
Outomatiese Analise
MobSF
Statiese analise
Kwesbaarheidsassessering van die toepassing deur 'n aangename web-gebaseerde voorkant. Jy kan ook dinamiese analise uitvoer (maar jy moet die omgewing gereed maak).
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 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.
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, 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.
Frida
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).
Verder het jy 'n paar Hulp Frida-funksies:
- 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.
Shell
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:
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) 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\).
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 al die 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 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.
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 binaê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 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.
Laai die nuutste vrystelling af:
./stacoan
AndroBugs
AndroBugs Framework is 'n Android kwetsbaarheidsanalise-sisteem wat ontwikkelaars of hackers help om potensiële sekuriteitskwetsbaarhede in Android-toepassings te vind.
Windows vrystellings
python androbugs.py -f [APK file]
androbugs.exe -f [APK file]
Androwarn
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
biblioteek.
Hierdie instrument soek na algemene gedrag van "slegte" toepassings soos: Telefoonidentifiseerders wat uitgelek word, Klank-/videovloei onderskepping, PIM-data-wysiging, Willekeurige kode-uitvoering...
python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3
MARA-raamwerk
MARA is 'n Mobiele Applikasie Reverse engineering en Analise-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.
Dit kan:
- Java en Smali-kode onttrek met verskillende instrumente
- APK's analiseer met: smalisca, ClassyShark, androbugs, androwarn, APKiD
- Privaatinligting uit die APK onttrek deur regexps te gebruik.
- Die Manifest analiseer.
- Gevonde domeine analiseer met: pyssltest, testssl en whatweb
- APK deobfuskeer 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 geobfuskeer eindig nie.
ProGuard
Vanaf Wikipedia: 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.
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 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 deur die
loadDex
-metode te gebruik.
DeGuard
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.
Jy kan 'n geobfuskeerde APK na hul platform oplaai.
Vereenvoudig
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
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 ondersoek
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 NFT's
- 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.