diff --git a/mobile-pentesting/android-app-pentesting/README.md b/mobile-pentesting/android-app-pentesting/README.md index 7f1c5f94b..d8d5cdd00 100644 --- a/mobile-pentesting/android-app-pentesting/README.md +++ b/mobile-pentesting/android-app-pentesting/README.md @@ -19,15 +19,15 @@ Altri modi per supportare HackTricks: Unisciti al server [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) per comunicare con hacker esperti e cacciatori di bug bounty! **Approfondimenti sull'Hacking**\ -Coinvolgiti con contenuti che approfondiscono l'emozione e le sfide dell'hacking +Interagisci con contenuti che approfondiscono l'emozione e le sfide dell'hacking **Notizie sull'Hacking in Tempo Reale**\ Resta aggiornato con il mondo dell'hacking in rapida evoluzione attraverso notizie e approfondimenti in tempo reale **Ultime Annunci**\ -Rimani informato sui nuovi bug bounty in arrivo e sugli aggiornamenti cruciali delle piattaforme +Resta informato sui nuovi bug bounty in arrivo e sugli aggiornamenti cruciali della piattaforma -**Unisciti a noi su** [**Discord**](https://discord.com/invite/N3FrSbmwdy) e inizia a collaborare con i migliori hacker oggi! +**Unisciti a noi su** [**Discord**](https://discord.com/invite/N3FrSbmwdy) e inizia a collaborare con i migliori hacker oggi stesso! ## Concetti di Base delle Applicazioni Android @@ -61,7 +61,16 @@ 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 +adb pull /data/app/com.android.insecurebankv2-Jnf8pNgwy3QA_U5f-n_4jQ==/base.apk +``` +* Unisci tutti gli split e gli apk di base con [APKEditor](https://github.com/REAndroid/APKEditor): +```bash +mkdir splits +adb shell pm path com.android.insecurebankv2 | cut -d ':' -f 1 | xargs -n1 -i adb pull {} splits +java -jar ../APKEditor.jar m -i splits/ -o merged.apk + +# after merging, you will need to align and sign the apk, personally, I like to use the uberapksigner +java -jar uber-apk-signer.jar -a merged.apk --allowResign -o merged_signed ``` ## Analisi Statica @@ -70,7 +79,7 @@ Per favore, [**leggi qui per trovare informazioni sui diversi decompiler disponi ### Alla ricerca di informazioni interessanti -Semplicemente dando un'occhiata alle **stringhe** dell'APK puoi cercare **password**, **URL** ([https://github.com/ndelphit/apkurlgrep](https://github.com/ndelphit/apkurlgrep)), chiavi **API**, **crittografia**, **UUID Bluetooth**, **token** e qualsiasi altra cosa interessante... cerca anche eventuali **backdoor** di esecuzione del codice o backdoor di autenticazione (credenziali admin codificate nell'app). +Semplicemente guardando le **stringhe** dell'APK puoi cercare **password**, **URL** ([https://github.com/ndelphit/apkurlgrep](https://github.com/ndelphit/apkurlgrep)), chiavi **API**, **crittografia**, **UUID Bluetooth**, **token** e qualsiasi altra cosa interessante... cerca anche **backdoor** di esecuzione del codice o backdoor di autenticazione (credenziali admin codificate nell'app). **Firebase** @@ -78,24 +87,24 @@ Presta particolare attenzione agli **URL di Firebase** e controlla se sono confi ### Comprensione di base dell'applicazione - Manifest.xml, strings.xml -L'**esame dei file \_Manifest.xml**_\*\* e \*\*_**strings.xml**\_\*\* di un'applicazione può rivelare potenziali vulnerabilità di sicurezza\*\*. Questi file possono essere accessibili utilizzando decompiler o rinominando l'estensione del file APK in .zip e quindi decomprimendolo. +L'**esame dei file \_Manifest.xml** e **strings.xml** di un'applicazione può rivelare potenziali vulnerabilità di sicurezza. Questi file possono essere accessati utilizzando decompiler o rinominando l'estensione del file APK in .zip e quindi decomprimendolo. Le **vulnerabilità** identificate dal **Manifest.xml** includono: -* **Applicazioni debuggabili**: Le applicazioni impostate come debuggabili (`debuggable="true"`) nel file _Manifest.xml_ rappresentano un rischio in quanto consentono connessioni che possono portare a sfruttamenti. Per una maggiore comprensione su come sfruttare le applicazioni debuggabili, consulta un tutorial su come trovare ed esplorare le applicazioni debuggabili su un dispositivo. -* **Impostazioni di backup**: L'attributo `android:allowBackup="false"` dovrebbe essere esplicitamente impostato per le applicazioni che gestiscono informazioni sensibili per impedire il backup non autorizzato dei dati tramite adb, specialmente quando il debug USB è abilitato. -* **Sicurezza di rete**: Le configurazioni personalizzate di sicurezza di rete (`android:networkSecurityConfig="@xml/network_security_config"`) in _res/xml/_ possono specificare dettagli di sicurezza come i pin dei certificati e le impostazioni del traffico HTTP. Un esempio è consentire il traffico HTTP per domini specifici. -* **Attività e servizi esportati**: Identificare attività e servizi esportati nel manifesto può evidenziare componenti che potrebbero essere abusati. Un'ulteriore analisi durante i test dinamici può rivelare come sfruttare questi componenti. -* **Provider di contenuti e FileProvider**: I provider di contenuti esposti potrebbero consentire l'accesso o la modifica non autorizzati dei dati. Anche la configurazione dei FileProvider dovrebbe essere scrutinata. -* **Ricevitori di trasmissione e schemi di URL**: Questi componenti potrebbero essere sfruttati per l'exploit, con particolare attenzione a come vengono gestiti gli schemi di URL per le vulnerabilità di input. -* **Versioni SDK**: Gli attributi `minSdkVersion`, `targetSDKVersion` e `maxSdkVersion` indicano le versioni di Android supportate, evidenziando l'importanza di non supportare versioni obsolete e vulnerabili di Android per motivi di sicurezza. +- **Applicazioni debuggabili**: Le applicazioni impostate come debuggabili (`debuggable="true"`) nel file _Manifest.xml_ rappresentano un rischio in quanto consentono connessioni che possono portare a sfruttamenti. Per una maggiore comprensione su come sfruttare le applicazioni debuggabili, consulta un tutorial su come trovare ed esplorare le applicazioni debuggabili su un dispositivo. +- **Impostazioni di backup**: L'attributo `android:allowBackup="false"` dovrebbe essere esplicitamente impostato per le applicazioni che gestiscono informazioni sensibili per impedire il backup non autorizzato dei dati tramite adb, specialmente quando il debug USB è abilitato. +- **Sicurezza di rete**: Le configurazioni personalizzate di sicurezza di rete (`android:networkSecurityConfig="@xml/network_security_config"`) in _res/xml/_ possono specificare dettagli di sicurezza come i pin dei certificati e le impostazioni del traffico HTTP. Un esempio è consentire il traffico HTTP per domini specifici. +- **Attività e servizi esportati**: Identificare attività e servizi esportati nel manifesto può evidenziare componenti che potrebbero essere abusati. Un'ulteriore analisi durante i test dinamici può rivelare come sfruttare questi componenti. +- **Provider di contenuti e FileProvider**: I provider di contenuti esposti potrebbero consentire l'accesso o la modifica non autorizzati dei dati. Anche la configurazione dei FileProvider dovrebbe essere scrutinata. +- **Ricevitori di trasmissione e schemi di URL**: Questi componenti potrebbero essere sfruttati per l'exploit, con particolare attenzione a come vengono gestiti gli schemi di URL per le vulnerabilità di input. +- **Versioni SDK**: Gli attributi `minSdkVersion`, `targetSDKVersion` e `maxSdkVersion` indicano le versioni di Android supportate, evidenziando l'importanza di non supportare versioni obsolete e vulnerabili di Android per motivi di sicurezza. -Dal file **strings.xml**, possono essere scoperte informazioni sensibili come chiavi API, schemi personalizzati e altre note per sviluppatori, sottolineando la necessità di una revisione attenta di queste risorse. +Dal file **strings.xml**, possono essere scoperte informazioni sensibili come chiavi API, schemi personalizzati e altre note degli sviluppatori, sottolineando la necessità di una revisione attenta di queste risorse. ### Tapjacking -**Tapjacking** è un attacco in cui un'applicazione **malintenzionata** viene avviata e si **posiziona sopra un'applicazione vittima**. Una volta che oscura visivamente l'app vittima, la sua interfaccia utente è progettata in modo tale da ingannare l'utente affinché interagisca con essa, mentre passa l'interazione all'app vittima.\ -Di fatto, **acceca l'utente dal sapere che sta effettivamente eseguendo azioni sull'app vittima**. +**Tapjacking** è un attacco in cui un'applicazione **malintenzionata** viene avviata e **si posiziona sopra un'applicazione vittima**. Una volta che oscura visivamente l'applicazione vittima, la sua interfaccia utente è progettata in modo tale da ingannare l'utente affinché interagisca con essa, mentre passa l'interazione all'applicazione vittima.\ +Di fatto, **acceca l'utente dal sapere che sta effettivamente eseguendo azioni sull'applicazione vittima**. Trova ulteriori informazioni in: @@ -105,7 +114,7 @@ Trova ulteriori informazioni in: ### Task Hijacking -Un'**attività** con il **`launchMode`** impostato su **`singleTask` senza alcun `taskAffinity`** definito è vulnerabile al Task Hijacking. Ciò significa che un'applicazione può essere installata e se avviata prima dell'applicazione reale potrebbe **dirottare il task dell'applicazione reale** (quindi l'utente interagirà con l'applicazione malintenzionata pensando di usare quella reale). +Un'**attività** con il **`launchMode`** impostato su **`singleTask` senza alcun `taskAffinity`** definito è vulnerabile al Task Hijacking. Ciò significa che un'**applicazione** può essere installata e se avviata prima dell'applicazione reale potrebbe **dirottare il task dell'applicazione reale** (quindi l'utente interagirà con l'**applicazione malintenzionata pensando di usare quella reale**). Ulteriori informazioni in: @@ -122,7 +131,7 @@ In Android, i file **archiviati** nella **memoria interna** sono **progettati** 1. **Analisi Statica:** * **Assicurarsi** che l'uso di `MODE_WORLD_READABLE` e `MODE_WORLD_WRITABLE` sia **scrutinato attentamente**. Queste modalità **potrebbero esporre** i file a **accessi non intenzionali o non autorizzati**. 2. **Analisi Dinamica:** -* **Verificare** le **autorizzazioni** impostate sui file creati dall'app. In particolare, **verificare** se alcuni file sono **impostati come leggibili o scrivibili a livello globale**. Ciò potrebbe rappresentare un rischio significativo per la sicurezza, poiché consentirebbe a **qualsiasi applicazione** installata sul dispositivo, indipendentemente dalla sua origine o intento, di **leggere o modificare** questi file. +* **Verificare** le **autorizzazioni** impostate sui file creati dall'app. In particolare, **verificare** se alcuni file sono **impostati come leggibili o scrivibili globalmente**. Ciò potrebbe rappresentare un rischio significativo per la sicurezza, poiché consentirebbe a **qualsiasi applicazione** installata sul dispositivo, indipendentemente dalla sua origine o intento, di **leggere o modificare** questi file. **Archiviazione esterna** @@ -131,11 +140,11 @@ Quando si tratta di file su **memoria esterna**, come le schede SD, dovrebbero e 1. **Accessibilità**: * I file su memoria esterna sono **leggibili e scrivibili globalmente**. Ciò significa che qualsiasi applicazione o utente può accedere a questi file. 2. **Preoccupazioni per la sicurezza**: -* Date la facilità di accesso, è consigliabile **non memorizzare informazioni sensibili** su memoria esterna. +* Date le facilità di accesso, è consigliabile **non memorizzare informazioni sensibili** sulla memoria esterna. * La memoria esterna può essere rimossa o accessibile da qualsiasi applicazione, rendendola meno sicura. 3. **Gestione dei dati dalla memoria esterna**: * Effettuare sempre **validazione dell'input** sui dati recuperati dalla memoria esterna. Questo è cruciale perché i dati provengono da una fonte non attendibile. -* Memorizzare eseguibili o file di classe su memoria esterna per il caricamento dinamico è fortemente sconsigliato. +* Memorizzare eseguibili o file di classe sulla memoria esterna per il caricamento dinamico è fortemente sconsigliato. * Se la tua applicazione deve recuperare file eseguibili dalla memoria esterna, assicurati che questi file siano **firmati e verificati crittograficamente** prima di essere caricati dinamicamente. Questo passaggio è vitale per mantenere l'integrità della sicurezza della tua applicazione. La memoria esterna può essere **accessibile** in `/storage/emulated/0`, `/sdcard`, `/mnt/sdcard` @@ -146,8 +155,8 @@ A partire da Android 4.4 (**API 17**), la scheda SD ha una struttura delle direc **Dati sensibili memorizzati in chiaro** -* **Preferenze condivise**: Android consente a ogni applicazione di salvare facilmente file XML nel percorso `/data/data//shared_prefs/` e talvolta è possibile trovare informazioni sensibili in chiaro in quella cartella. -* **Database**: Android consente a ogni applicazione di salvare facilmente database sqlite nel percorso `/data/data//databases/` e talvolta è possibile trovare informazioni sensibili in chiaro in quella cartella. +* **Preferenze condivise**: Android permette a ogni applicazione di salvare facilmente file XML nel percorso `/data/data//shared_prefs/` e talvolta è possibile trovare informazioni sensibili in chiaro in quella cartella. +* **Database**: Android permette a ogni applicazione di salvare facilmente database sqlite nel percorso `/data/data//databases/` e talvolta è possibile trovare informazioni sensibili in chiaro in quella cartella. ### TLS non sicuro @@ -158,24 +167,22 @@ Per qualche motivo a volte gli sviluppatori accettano tutti i certificati anche SSLSocketFactory sf = new cc(trustStore); sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); ``` -Un buon modo per testare ciò è provare a catturare il traffico utilizzando un proxy come Burp senza autorizzare Burp CA all'interno del dispositivo. Inoltre, è possibile generare con Burp un certificato per un hostname diverso e utilizzarlo. - -### Crittografia non sicura +### Crittografia danneggiata **Processi di gestione delle chiavi scadenti** -Alcuni sviluppatori salvano dati sensibili nello storage locale e li crittografano con una chiave codificata/prevedibile nel codice. Questo non dovrebbe essere fatto poiché un'operazione di reverse engineering potrebbe consentire agli attaccanti di estrarre le informazioni confidenziali. +Alcuni sviluppatori salvano dati sensibili nella memoria locale e li crittografano con una chiave codificata/prevedibile nel codice. Questo non dovrebbe essere fatto poiché un'operazione di reverse engineering potrebbe consentire agli attaccanti di estrarre le informazioni confidenziali. **Utilizzo di algoritmi insicuri e/o deprecati** -Gli sviluppatori non dovrebbero utilizzare **algoritmi deprecati** per eseguire **controlli** di autorizzazione, **memorizzare** o **inviare** dati. Alcuni di questi algoritmi sono: RC4, MD4, MD5, SHA1... Se vengono utilizzati **hash** per memorizzare ad esempio le password, dovrebbero essere utilizzati hash **resistenti** all'attacco di forza bruta con salt. +Gli sviluppatori non dovrebbero utilizzare **algoritmi deprecati** per eseguire **controlli** di autorizzazione, **memorizzare** o **inviare** dati. Alcuni di questi algoritmi sono: RC4, MD4, MD5, SHA1... Se vengono utilizzati **hash** per memorizzare le password ad esempio, dovrebbero essere utilizzati hash **resistenti** all'attacco di forza bruta con salt. ### Altri controlli * È consigliabile **oscurare l'APK** per rendere più difficile il lavoro di reverse engineering agli attaccanti. -* Se l'app è sensibile (come le app bancarie), dovrebbe effettuare i suoi **propri controlli per verificare se il dispositivo mobile è stato sradicato** e agire di conseguenza. +* Se l'app è sensibile (come le app bancarie), dovrebbe effettuare i **propri controlli per verificare se il dispositivo mobile è stato sradicato** e agire di conseguenza. * Se l'app è sensibile (come le app bancarie), dovrebbe verificare se viene utilizzato un **emulatore**. -* Se l'app è sensibile (come le app bancarie), dovrebbe **verificare la propria integrità prima di eseguirsi** per controllare se è stata modificata. +* Se l'app è sensibile (come le app bancarie), dovrebbe **verificare la propria integrità prima di eseguirla** per controllare se è stata modificata. * Utilizzare [**APKiD**](https://github.com/rednaga/APKiD) per verificare quale compilatore/packer/obfuscator è stato utilizzato per compilare l'APK ### Applicazione React Native @@ -196,19 +203,19 @@ Leggi la seguente pagina per imparare come accedere facilmente al codice C# dell ### Applicazioni Superpacked -Secondo questo [**post sul blog**](https://clearbluejar.github.io/posts/desuperpacking-meta-superpacked-apks-with-github-actions/) superpacked è un algoritmo Meta che comprime il contenuto di un'applicazione in un singolo file. Il blog parla della possibilità di creare un'applicazione che decomprime questo tipo di app... e un modo più veloce che coinvolge **eseguire l'applicazione e raccogliere i file decompressi dal filesystem**. +Secondo questo [**post sul blog**](https://clearbluejar.github.io/posts/desuperpacking-meta-superpacked-apks-with-github-actions/) superpacked è un algoritmo Meta che comprime il contenuto di un'applicazione in un unico file. Il blog parla della possibilità di creare un'applicazione che decomprime questo tipo di app... e un modo più veloce che coinvolge **eseguire l'applicazione e raccogliere i file decompressi dal filesystem**. ### Analisi statica automatizzata del codice -Lo strumento [**mariana-trench**](https://github.com/facebook/mariana-trench) è in grado di individuare **vulnerabilità** esaminando il **codice** dell'applicazione. Questo strumento contiene una serie di **fonti conosciute** (che indicano allo strumento i **luoghi** in cui l'**input** è **controllato dall'utente**), **sinks** (che indicano allo strumento **luoghi pericolosi** in cui un input malintenzionato potrebbe causare danni) e **regole**. Queste regole indicano la **combinazione** di **fonti-sinks** che indica una vulnerabilità. +Lo strumento [**mariana-trench**](https://github.com/facebook/mariana-trench) è in grado di individuare **vulnerabilità** esaminando il **codice** dell'applicazione. Questo strumento contiene una serie di **fonti conosciute** (che indicano allo strumento i **luoghi** in cui l'**input** è **controllato dall'utente**), **sorgenti** (che indicano allo strumento i **luoghi pericolosi** in cui un input utente malintenzionato potrebbe causare danni) e **regole**. Queste regole indicano la **combinazione** di **sorgenti-sorgenti** che indica una vulnerabilità. Con questa conoscenza, **mariana-trench esaminerà il codice e individuerà possibili vulnerabilità al suo interno**. -### Informazioni riservate divulgate +### Segreti rivelati -Un'applicazione potrebbe contenere informazioni riservate (chiavi API, password, URL nascosti, sottodomini...) al suo interno che potresti essere in grado di scoprire. Potresti utilizzare uno strumento come [https://github.com/dwisiswant0/apkleaks](https://github.com/dwisiswant0/apkleaks) +Un'applicazione potrebbe contenere segreti (chiavi API, password, URL nascosti, sottodomini...) al suo interno che potresti essere in grado di scoprire. Potresti utilizzare uno strumento come [https://github.com/dwisiswant0/apkleaks](https://github.com/dwisiswant0/apkleaks) -### Eludere l'autenticazione biometrica +### Bypass dell'autenticazione biometrica {% content-ref url="bypass-biometric-authentication-android.md" %} [bypass-biometric-authentication-android.md](bypass-biometric-authentication-android.md) @@ -237,10 +244,10 @@ Unisciti al server [**HackenProof Discord**](https://discord.com/invite/N3FrSbmw Coinvolgiti con contenuti che esplorano l'emozione e le sfide dell'hacking **Notizie sull'hacking in tempo reale**\ -Resta aggiornato con il mondo dell'hacking in rapida evoluzione attraverso notizie e approfondimenti in tempo reale +Resta aggiornato con il mondo dell'hacking ad alta velocità attraverso notizie e approfondimenti in tempo reale **Ultime notizie**\ -Resta informato sui nuovi bug bounty in arrivo e sugli aggiornamenti cruciali della piattaforma +Rimani informato sui nuovi bug bounty in arrivo e sugli aggiornamenti cruciali della piattaforma **Unisciti a noi su** [**Discord**](https://discord.com/invite/N3FrSbmwdy) e inizia a collaborare con i migliori hacker oggi! @@ -248,7 +255,7 @@ Resta informato sui nuovi bug bounty in arrivo e sugli aggiornamenti cruciali de ## Analisi dinamica -> Prima di tutto, è necessario un ambiente in cui è possibile installare l'applicazione e tutto l'ambiente (certificato Burp CA, Drozer e Frida principalmente). Pertanto, è estremamente consigliato un dispositivo con permessi di root (emulato o meno). +> Prima di tutto, è necessario un ambiente in cui è possibile installare l'applicazione e tutto l'ambiente (certificato Burp CA, Drozer e Frida principalmente). Pertanto, è estremamente consigliato un dispositivo radicato (emulato o meno). ### Analisi dinamica online @@ -264,7 +271,7 @@ Grazie alla connessione ADB puoi utilizzare **Drozer** e **Frida** all'interno d #### Utilizzo di un emulatore -* [**Android Studio**](https://developer.android.com/studio) (Puoi creare dispositivi **x86** e **arm**, e secondo [**questo** ](https://android-developers.googleblog.com/2020/03/run-arm-apps-on-android-emulator.html)le **ultime versioni x86** supportano le librerie ARM senza necessità di un lento emulatore ARM). +* [**Android Studio**](https://developer.android.com/studio) (Puoi creare dispositivi **x86** e **arm**, e secondo [**questo** ](https://android-developers.googleblog.com/2020/03/run-arm-apps-on-android-emulator.html)**ultime versioni x86** supportano le librerie ARM senza necessità di un lento emulatore ARM). * Impara a configurarlo in questa pagina: {% content-ref url="avd-android-virtual-device.md" %} @@ -278,7 +285,7 @@ Grazie alla connessione ADB puoi utilizzare **Drozer** e **Frida** all'interno d Quando crei un nuovo emulatore su qualsiasi piattaforma, ricorda che maggiore è la dimensione dello schermo, più lento sarà l'emulatore. Quindi seleziona schermi piccoli se possibile. {% endhint %} -Per **installare i servizi Google** (come AppStore) in Genymotion è necessario fare clic sul pulsante evidenziato in rosso nell'immagine seguente: +Per **installare i servizi Google** (come AppStore) in Genymotion devi fare clic sul pulsante evidenziato di rosso nell'immagine seguente: ![](<../../.gitbook/assets/image (277).png>) @@ -286,7 +293,7 @@ Inoltre, nota che nella **configurazione della VM Android in Genymotion** puoi s #### Utilizzare un dispositivo fisico -È necessario attivare le opzioni di **debugging** e sarebbe utile se fosse **rootato**: +È necessario attivare le opzioni di **debugging** e sarebbe utile se potessi **eseguire il root**: 1. **Impostazioni**. 2. (Da Android 8.0) Seleziona **Sistema**. @@ -295,8 +302,8 @@ Inoltre, nota che nella **configurazione della VM Android in Genymotion** puoi s 5. Torna indietro e troverai le **Opzioni sviluppatore**. > Una volta installata l'applicazione, la prima cosa da fare è provarla e investigare cosa fa, come funziona e prendere confidenza con essa.\ -> Suggerisco di **effettuare questa analisi dinamica iniziale utilizzando l'analisi dinamica di MobSF + pidcat**, in modo da poter **imparare come funziona l'applicazione** mentre MobSF **cattura** molti **dati interessanti** che potrai esaminare in seguito. -### Perdita non intenzionale di dati +> Suggerisco di **effettuare questa analisi dinamica iniziale utilizzando l'analisi dinamica di MobSF + pidcat**, in modo da poter **imparare come funziona l'applicazione** mentre MobSF **cattura** molti **dati interessanti** che potrai rivedere in seguito. +### Perdita involontaria di dati **Registrazione** @@ -307,40 +314,40 @@ Nota che a partire da **versioni più recenti di Android 4.0**, **le applicazion In ogni caso, è comunque consigliabile **non registrare informazioni sensibili**. {% endhint %} -**Cache del Buffer di Copia/Incolla** +**Cache del buffer di copia/incolla** -Il framework **basato sulla clipboard** di Android consente la funzionalità di copia-incolla nelle app, ma rappresenta un rischio poiché **altre applicazioni** possono **accedere** alla clipboard, esponendo potenzialmente dati sensibili. È cruciale **disabilitare le funzioni di copia/incolla** per sezioni sensibili di un'applicazione, come i dettagli della carta di credito, per prevenire perdite di dati. +Il framework **basato sulla clipboard** di Android abilita la funzionalità di copia/incolla nelle app, ma rappresenta un rischio poiché **altre applicazioni** possono **accedere** alla clipboard, esponendo potenzialmente dati sensibili. È cruciale **disabilitare le funzioni di copia/incolla** per sezioni sensibili di un'applicazione, come i dettagli della carta di credito, per prevenire perdite di dati. -**Log dei Crash** +**Log dei crash** Se un'applicazione **va in crash** e **salva i log**, questi log possono aiutare gli attaccanti, specialmente quando l'applicazione non può essere decompilata. Per mitigare questo rischio, evitare di registrare i crash e, se i log devono essere trasmessi tramite la rete, assicurarsi che siano inviati tramite un canale SSL per la sicurezza. Come pentester, **prova a dare un'occhiata a questi log**. -**Dati di Analisi Inviati a Terze Parti** +**Dati di analisi inviati a terze parti** Le applicazioni spesso integrano servizi come Google Adsense, che possono involontariamente **leakare dati sensibili** a causa di un'implementazione impropria da parte degli sviluppatori. Per identificare potenziali perdite di dati, è consigliabile **intercettare il traffico dell'applicazione** e controllare se vengono inviate informazioni sensibili a servizi di terze parti. ### Database SQLite -La maggior parte delle applicazioni utilizzerà **database SQLite interni** per salvare informazioni. Durante il pentest dai un'**occhiata** ai **database** creati, ai nomi delle **tabelle** e delle **colonne** e a tutti i **dati** salvati perché potresti trovare **informazioni sensibili** (che sarebbero una vulnerabilità).\ +La maggior parte delle applicazioni utilizzerà **database SQLite interni** per salvare informazioni. Durante il pentest dai un'**occhiata** ai **database** creati, ai nomi delle **tabelle** e delle **colonne** e a tutti i **dati** salvati perché potresti trovare **informazioni sensibili** (che costituirebbero una vulnerabilità).\ I database dovrebbero trovarsi in `/data/data/nome.pacchetto/databases` come `/data/data/com.mwr.example.sieve/databases` Se il database sta salvando informazioni confidenziali ed è **criptato** ma puoi **trovare** la **password** all'interno dell'applicazione, è comunque una **vulnerabilità**. -Enumera le tabelle usando `.tables` e enumera le colonne delle tabelle facendo `.schema ` +Elenca le tabelle utilizzando `.tables` e elenca le colonne delle tabelle eseguendo `.schema ` -### Drozer (Attività di Sfruttamento, Provider di Contenuti e Servizi) +### Drozer (Attività di exploit, Provider di contenuti e Servizi) -Da [Documenti di Drozer](https://labs.mwrinfosecurity.com/assets/BlogFiles/mwri-drozer-user-guide-2015-03-23.pdf): **Drozer** ti permette di **assumere il ruolo di un'app Android** e interagire con altre app. Può fare **qualsiasi cosa che un'applicazione installata può fare**, come ad esempio utilizzare il meccanismo di Comunicazione tra Processi di Android (IPC) e interagire con il sistema operativo sottostante.\ -Drozer è uno strumento utile per **sfruttare attività esportate, servizi esportati e Provider di Contenuti** come imparerai nelle sezioni seguenti. +Da [Documenti di Drozer](https://labs.mwrinfosecurity.com/assets/BlogFiles/mwri-drozer-user-guide-2015-03-23.pdf): **Drozer** ti permette di **assumere il ruolo di un'app Android** e interagire con altre app. Può fare **qualsiasi cosa che un'applicazione installata può fare**, come utilizzare il meccanismo di Comunicazione tra Processi di Android (IPC) e interagire con il sistema operativo sottostante.\ +Drozer è uno strumento utile per **sfruttare attività esportate, servizi esportati e Provider di contenuti** come imparerai nelle sezioni seguenti. -### Sfruttare le Attività esportate +### Sfruttare attività esportate [**Leggi questo se vuoi rinfrescare cosa sia un'Attività Android.**](android-applications-basics.md#launcher-activity-and-other-activities)\ Ricorda anche che il codice di un'attività inizia nel metodo **`onCreate`**. -**Bypass dell'autorizzazione** +**Bypass di autorizzazione** Quando un'Attività è esportata, puoi invocare la sua schermata da un'app esterna. Pertanto, se un'attività con **informazioni sensibili** è **esportata**, potresti **bypassare** i **meccanismi di autenticazione** per accedervi. @@ -361,16 +368,16 @@ Nota che un bypass di autorizzazione non è sempre una vulnerabilità, dipender **Fuga di informazioni sensibili** -**Le attività possono anche restituire risultati**. Se riesci a trovare un'attività esportata e non protetta che chiama il metodo **`setResult`** e **restituisce informazioni sensibili**, si verifica una fuga di informazioni sensibili. +**Le attività possono anche restituire risultati**. Se riesci a trovare un'attività esportata e non protetta che chiama il metodo **`setResult`** e **restituisce informazioni sensibili**, si tratta di una fuga di informazioni sensibili. #### Tapjacking -Se il tapjacking non è impedito, potresti abusare dell'attività esportata per fare sì che l'**utente compia azioni inaspettate**. Per ulteriori informazioni su [**cosa è il Tapjacking segui il link**](./#tapjacking). +Se il tapjacking non è impedito, potresti abusare dell'attività esportata per fare sì che l'**utente compia azioni inaspettate**. Per ulteriori informazioni su [**cos'è il Tapjacking segui il link**](./#tapjacking). ### Sfruttare i Content Providers - Accesso e manipolazione di informazioni sensibili [**Leggi questo se vuoi rinfrescare cosa sia un Content Provider.**](android-applications-basics.md#content-provider)\ -I content provider sono fondamentalmente utilizzati per **condividere dati**. Se un'app dispone di content provider disponibili, potresti essere in grado di **estrarre dati sensibili** da essi. È anche interessante testare possibili **iniezioni SQL** e **traversali di percorsi** poiché potrebbero essere vulnerabili. +I content provider sono fondamentalmente utilizzati per **condividere dati**. Se un'app dispone di content provider disponibili, potresti essere in grado di **estrarre dati sensibili** da essi. È anche interessante testare possibili **iniezioni SQL** e **traversali di percorsi** in quanto potrebbero essere vulnerabili. [**Scopri come sfruttare i Content Providers con Drozer.**](drozer-tutorial/#content-providers) @@ -387,13 +394,13 @@ Un servizio è fondamentalmente qualcosa che **può ricevere dati**, **elaborarl [**Leggi questo se vuoi rinfrescare cosa sia un Ricevitore di Broadcast.**](android-applications-basics.md#broadcast-receivers)\ Ricorda che le azioni di un Ricevitore di Broadcast iniziano nel metodo `onReceive`. -Un ricevitore di broadcast aspetterà un tipo di messaggio. A seconda di come il ricevitore gestisce il messaggio, potrebbe essere vulnerabile.\ +Un ricevitore di broadcast sarà in attesa di un tipo di messaggio. A seconda di come il ricevitore gestisce il messaggio, potrebbe essere vulnerabile.\ [**Scopri come sfruttare i Ricevitori di Broadcast con Drozer.**](./#exploiting-broadcast-receivers) -### **Sfruttare gli Schema / Deep links** +### **Sfruttare gli Schemi / Deep links** Puoi cercare manualmente deep links, utilizzando strumenti come MobSF o script come [questo](https://github.com/ashleykinguk/FBLinkBuilder/blob/master/FBLinkBuilder.py).\ -Puoi **aprire** uno **schema** dichiarato usando **adb** o un **browser**: +Puoi **aprire** uno **schema** dichiarato utilizzando **adb** o un **browser**: {% code overflow="wrap" %} ```bash @@ -424,8 +431,8 @@ Ogni volta che trovi un deep link, controlla che **non stia ricevendo dati sensi **Parametri nel percorso** -Devi controllare anche se un deep link sta utilizzando un parametro all'interno del percorso dell'URL come: `https://api.example.com/v1/users/{username}`, in tal caso puoi forzare un accesso al percorso attraverso qualcosa del genere: `example://app/users?username=../../unwanted-endpoint%3fparam=value`.\ -Nota che se trovi gli endpoint corretti all'interno dell'applicazione potresti essere in grado di causare un **Reindirizzamento Aperto** (se parte del percorso viene utilizzata come nome di dominio), **acquisizione dell'account** (se puoi modificare i dettagli degli utenti senza token CSRF e il punto finale vulnerabile ha utilizzato il metodo corretto) e qualsiasi altra vulnerabilità. Maggiori [informazioni qui](http://dphoeniixx.com/2020/12/13-2/). +Devi controllare anche se un deep link sta utilizzando un parametro all'interno del percorso dell'URL come: `https://api.example.com/v1/users/{username}`, in tal caso puoi forzare una traversata del percorso accedendo a qualcosa del genere: `example://app/users?username=../../unwanted-endpoint%3fparam=value`.\ +Nota che se trovi gli endpoint corretti all'interno dell'applicazione potresti essere in grado di causare un **Reindirizzamento Aperto** (se parte del percorso viene utilizzata come nome di dominio), **acquisizione dell'account** (se puoi modificare i dettagli degli utenti senza token CSRF e l'endpoint vulnerabile ha utilizzato il metodo corretto) e qualsiasi altra vulnerabilità. Maggiori [informazioni qui](http://dphoeniixx.com/2020/12/13-2/). **Altri esempi** @@ -439,23 +446,23 @@ Un [interessante rapporto di bug bounty](https://hackerone.com/reports/855618) s #### Verifica del Certificato -Ci concentreremo sulla **verifica del certificato**. È fondamentale verificare l'integrità del certificato del server per migliorare la sicurezza. Questo è cruciale perché configurazioni TLS non sicure e la trasmissione di dati sensibili su canali non crittografati possono comportare rischi significativi. Per dettagliati passaggi sulla verifica dei certificati del server e sulla gestione delle vulnerabilità, [**questa risorsa**](https://manifestsecurity.com/android-application-security-part-10/) fornisce una guida completa. +Ci concentreremo sulla **verifica del certificato**. È fondamentale verificare l'integrità del certificato del server per migliorare la sicurezza. Questo è cruciale perché configurazioni TLS non sicure e la trasmissione di dati sensibili su canali non crittografati possono comportare rischi significativi. Per passaggi dettagliati sulla verifica dei certificati del server e sulla gestione delle vulnerabilità, [**questa risorsa**](https://manifestsecurity.com/android-application-security-part-10/) fornisce una guida completa. #### SSL Pinning -Lo SSL Pinning è una misura di sicurezza in cui l'applicazione verifica il certificato del server rispetto a una copia conosciuta memorizzata all'interno dell'applicazione stessa. Questo metodo è essenziale per prevenire attacchi MITM. Implementare lo SSL Pinning è fortemente consigliato per le applicazioni che gestiscono informazioni sensibili. +Lo SSL Pinning è una misura di sicurezza in cui l'applicazione verifica il certificato del server rispetto a una copia conosciuta memorizzata all'interno dell'applicazione stessa. Questo metodo è essenziale per prevenire attacchi MITM. L'implementazione dello SSL Pinning è fortemente raccomandata per le applicazioni che gestiscono informazioni sensibili. #### Ispezione del Traffico Per ispezionare il traffico HTTP, è necessario **installare il certificato dello strumento proxy** (ad esempio, Burp). Senza installare questo certificato, il traffico crittografato potrebbe non essere visibile attraverso il proxy. Per una guida sull'installazione di un certificato CA personalizzato, [**clicca qui**](avd-android-virtual-device.md#install-burp-certificate-on-a-virtual-machine). -Le applicazioni che mirano a **API Livello 24 e successivi** richiedono modifiche alla Configurazione della Sicurezza di Rete per accettare il certificato CA del proxy. Questo passaggio è fondamentale per ispezionare il traffico crittografato. Per istruzioni sulla modifica della Configurazione della Sicurezza di Rete, [**consulta questo tutorial**](make-apk-accept-ca-certificate.md). +Le applicazioni che mirano a **API Livello 24 e superiore** richiedono modifiche alla Configurazione della Sicurezza di Rete per accettare il certificato CA del proxy. Questo passaggio è fondamentale per ispezionare il traffico crittografato. Per istruzioni sulla modifica della Configurazione della Sicurezza di Rete, [**consulta questo tutorial**](make-apk-accept-ca-certificate.md). #### Bypass dello SSL Pinning Quando lo SSL Pinning è implementato, diventa necessario bypassarlo per ispezionare il traffico HTTPS. Sono disponibili vari metodi a tale scopo: -* Modificare automaticamente l'**apk** per **bypassare** lo SSLPinning con [**apk-mitm**](https://github.com/shroudedcode/apk-mitm). Il principale vantaggio di questa opzione è che non sarà necessario il root per bypassare lo SSL Pinning, ma sarà necessario eliminare l'applicazione e reinstallare la nuova, e ciò non funzionerà sempre. +* Modificare automaticamente l'**apk** per **bypassare** lo SSL Pinning con [**apk-mitm**](https://github.com/shroudedcode/apk-mitm). Il principale vantaggio di questa opzione è che non sarà necessario il root per bypassare lo SSL Pinning, ma sarà necessario eliminare l'applicazione e reinstallare la nuova, e ciò non funzionerà sempre. * È possibile utilizzare **Frida** (discusso di seguito) per bypassare questa protezione. Qui trovi una guida su come utilizzare Burp+Frida+Genymotion: [https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/](https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/) * Puoi anche provare a **bypassare automaticamente lo SSL Pinning** utilizzando [**objection**](frida-tutorial/objection-tutorial.md)**:** `objection --gadget com.package.app explore --startup-command "android sslpinning disable"` * Puoi anche provare a **bypassare automaticamente lo SSL Pinning** utilizzando **l'analisi dinamica di MobSF** (spiegata di seguito) @@ -467,7 +474,7 @@ Quando lo SSL Pinning è implementato, diventa necessario bypassarlo per ispezio ### Frida -[Frida](https://www.frida.re) è un toolkit di strumenti di strumentazione dinamica per sviluppatori, reverse-engineers e ricercatori di sicurezza.\ +[Frida](https://www.frida.re) è un toolkit di strumenti di strumentazione dinamica per sviluppatori, reverse engineer e ricercatori di sicurezza.\ **Puoi accedere all'applicazione in esecuzione e agganciare i metodi in tempo reale per cambiare il comportamento, i valori, estrarre valori, eseguire codice diverso...**\ Se vuoi fare pentesting delle applicazioni Android devi sapere come usare Frida. @@ -520,11 +527,11 @@ frida --codeshare krapgras/android-biometric-bypass-update-android-11 -U -f ) -**Valutazione delle vulnerabilità dell'applicazione** utilizzando un'interfaccia web frontend. È anche possibile eseguire un'analisi dinamica (ma è necessario preparare l'ambiente). +**Valutazione delle vulnerabilità dell'applicazione** utilizzando un'interfaccia web front-end. È anche possibile eseguire un'analisi dinamica (ma è necessario preparare l'ambiente). ```bash docker pull opensecurity/mobile-security-framework-mobsf docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest ``` -Si noti che MobSF può analizzare le applicazioni **Android**(apk), **IOS**(ipa) e **Windows**(apx) (_le applicazioni Windows devono essere analizzate da un MobSF installato in un host Windows_).\ -Inoltre, se si crea un file **ZIP** con il codice sorgente di un'app **Android** o **IOS** (andare alla cartella principale dell'applicazione, selezionare tutto e creare un file ZIP), sarà in grado di analizzarlo anche. +Si noti che MobSF può analizzare le applicazioni **Android**(apk), **IOS**(ipa) e **Windows**(apx) (_le applicazioni Windows devono essere analizzate da un MobSF installato in un host Windows).\ +Inoltre, se si crea un file **ZIP** con il codice sorgente di un'applicazione **Android** o **IOS** (andare alla cartella principale dell'applicazione, selezionare tutto e creare un file ZIP), sarà in grado di analizzarlo anche. MobSF consente anche di **diff/Confrontare** l'analisi e di integrare **VirusTotal** (è necessario impostare la propria chiave API in _MobSF/settings.py_ e abilitarla: `VT_ENABLED = TRUE` `VT_API_KEY = ` `VT_UPLOAD = TRUE`). È anche possibile impostare `VT_UPLOAD` su `False`, quindi l'**hash** verrà **caricato** invece del file. @@ -606,25 +613,25 @@ Dalle versioni di Android > 5, avvierà **automaticamente Frida** e imposterà l Per impostazione predefinita, utilizzerà anche alcuni script di Frida per **bypassare il pinning SSL**, **rilevare il root** e **rilevare il debugger** e per **monitorare API interessanti**.\ MobSF può anche **invocare attività esportate**, acquisire **screenshot** di esse e **salvarli** per il report. -Per **avviare** il test dinamico premere il pulsante verde: "**Avvia strumentazione**". Premere "**Frida Live Logs**" per visualizzare i log generati dagli script di Frida e "**Live API Monitor**" per visualizzare tutte le invocazioni ai metodi hookati, gli argomenti passati e i valori restituiti (questo apparirà dopo aver premuto "Avvia strumentazione").\ -MobSF consente anche di caricare i propri **script di Frida** (per inviare i risultati dei tuoi script di Frida a MobSF utilizzare la funzione `send()`). Ha anche **diversi script pre-scritti** che è possibile caricare (è possibile aggiungerne altri in `MobSF/DynamicAnalyzer/tools/frida_scripts/others/`), basta **selezionarli**, premere "**Carica**" e premere "**Avvia strumentazione**" (sarà possibile vedere i log di quegli script all'interno di "**Frida Live Logs**"). +Per **avviare** il test dinamico premere il pulsante verde: "**Start Instrumentation**". Premere "**Frida Live Logs**" per visualizzare i log generati dagli script di Frida e "**Live API Monitor**" per visualizzare tutte le invocazioni ai metodi hookati, gli argomenti passati e i valori restituiti (questo apparirà dopo aver premuto "Start Instrumentation").\ +MobSF consente anche di caricare i propri **script di Frida** (per inviare i risultati dei tuoi script di Frida a MobSF utilizzare la funzione `send()`). Ha anche **diversi script pre-scritti** che è possibile caricare (è possibile aggiungerne altri in `MobSF/DynamicAnalyzer/tools/frida_scripts/others/`), basta **selezionarli**, premere "**Load**" e premere "**Start Instrumentation**" (sarà possibile vedere i log di quegli script all'interno di "**Frida Live Logs**"). ![](<../../.gitbook/assets/image (419).png>) Inoltre, sono disponibili alcune funzionalità ausiliarie di Frida: -* **Enumerare Classi Caricate**: Stampa tutte le classi caricate -* **Cattura Stringhe**: Stampa tutte le stringhe catturate durante l'uso dell'applicazione (molto rumoroso) -* **Cattura Confronti di Stringhe**: Potrebbe essere molto utile. Mostrerà le **2 stringhe confrontate** e se il risultato è stato Vero o Falso. -* **Enumerare Metodi di Classe**: Inserisci il nome della classe (come "java.io.File") e stamperà tutti i metodi della classe. -* **Cerca Modello di Classe**: Cerca classi per modello -* **Traccia Metodi di Classe**: **Traccia** un'**intera classe** (vedi input e output di tutti i metodi della classe). Ricorda che per impostazione predefinita MobSF traccia diversi metodi di API Android interessanti. +* **Enumerate Loaded Classes**: Stampa tutte le classi caricate +* **Capture Strings**: Stampa tutte le stringhe catturate durante l'uso dell'applicazione (molto rumoroso) +* **Capture String Comparisons**: Potrebbe essere molto utile. Mostrerà le **2 stringhe confrontate** e se il risultato è stato Vero o Falso. +* **Enumerate Class Methods**: Inserire il nome della classe (come "java.io.File") e verranno stampati tutti i metodi della classe. +* **Search Class Pattern**: Cerca classi per modello +* **Trace Class Methods**: **Traccia** un'**intera classe** (vedi input e output di tutti i metodi della classe). Ricorda che per impostazione predefinita MobSF traccia diversi metodi di API Android interessanti. -Una volta selezionato il modulo ausiliario che si desidera utilizzare, è necessario premere "**Avvia strumentazione**" e si vedranno tutti gli output in "**Frida Live Logs**". +Una volta selezionato il modulo ausiliario che si desidera utilizzare, è necessario premere "**Start Intrumentation**" e si vedranno tutti gli output in "**Frida Live Logs**". **Shell** -Mobsf ti offre anche una shell con alcuni comandi **adb**, comandi **MobSF** e comandi **shell** comuni in fondo alla pagina di analisi dinamica. Alcuni comandi interessanti: +Mobsf ti offre anche una shell con alcuni comandi **adb**, comandi **MobSF** e comandi **shell** comuni nella parte inferiore della pagina di analisi dinamica. Alcuni comandi interessanti: ```bash help shell ls @@ -636,12 +643,12 @@ receivers **Strumenti HTTP** Quando il traffico http viene catturato, è possibile visualizzare una vista poco attraente del traffico catturato nella sezione "**HTTP(S) Traffic**" in basso o una vista più piacevole nel pulsante verde "**Start HTTPTools**". Dalla seconda opzione, è possibile **inviare** le **richieste catturate** a **proxy** come Burp o Owasp ZAP.\ -Per farlo, _accendere Burp -->_ _disattivare l'Intercept --> nella sezione MobSB HTTPTools selezionare la richiesta_ --> premere "**Invia a Fuzzer**" --> _selezionare l'indirizzo del proxy_ ([http://127.0.0.1:8080\\](http://127.0.1:8080)). +Per farlo, _accendere Burp -->_ _disattivare l'Intercept --> nella sezione MobSB HTTPTools selezionare la richiesta_ --> premere "**Send to Fuzzer**" --> _selezionare l'indirizzo del proxy_ ([http://127.0.0.1:8080\\](http://127.0.1:8080)). -Una volta completata l'analisi dinamica con MobSF, è possibile premere su "**Avvia Web API Fuzzer**" per **fuzzare le richieste http** e cercare vulnerabilità. +Una volta completata l'analisi dinamica con MobSF, è possibile premere su "**Start Web API Fuzzer**" per **fuzzare le richieste http** e cercare vulnerabilità. {% hint style="info" %} -Dopo aver eseguito un'analisi dinamica con MobSF, le impostazioni del proxy potrebbero essere configurate in modo errato e potresti non essere in grado di correggerle dall'interfaccia grafica. È possibile correggere le impostazioni del proxy facendo: +Dopo aver eseguito un'analisi dinamica con MobSF, le impostazioni del proxy potrebbero essere configurate in modo errato e potresti non essere in grado di correggerle dall'interfaccia grafica. È possibile correggere le impostazioni del proxy eseguendo: ``` adb shell settings put global http_proxy :0 ``` @@ -660,7 +667,7 @@ Questo è un **ottimo strumento per eseguire analisi statica con un'interfaccia ### [Qark](https://github.com/linkedin/qark) -Questo strumento è progettato per cercare diverse **vulnerabilità di sicurezza delle applicazioni Android**, sia nel **codice sorgente** che negli **APK confezionati**. Lo strumento è inoltre **in grado di creare un APK deployable "Proof-of-Concept"** e **comandi ADB**, per sfruttare alcune delle vulnerabilità trovate (attività esposte, intenti, tapjacking...). Come Drozer, non è necessario eseguire il root del dispositivo di test. +Questo strumento è progettato per cercare diverse **vulnerabilità di sicurezza delle applicazioni Android**, sia nel **codice sorgente** che negli **APK confezionati**. Lo strumento è inoltre **in grado di creare un APK deployable come "Proof-of-Concept"** e **comandi ADB**, per sfruttare alcune delle vulnerabilità trovate (attività esposte, intent, tapjacking...). Come Drozer, non è necessario eseguire il root del dispositivo di test. ```bash pip3 install --user qark # --user is only needed if not using a virtualenv qark --apk path/to/my.apk @@ -680,11 +687,11 @@ reverse-apk relative/path/to/APP.apk ``` ### [SUPER Android Analyzer](https://github.com/SUPERAndroidAnalyzer/super) -SUPER è un'applicazione da riga di comando che può essere utilizzata su Windows, MacOS X e Linux, che analizza i file _.apk_ alla ricerca di vulnerabilità. Fa ciò decomprimendo i file APK e applicando una serie di regole per rilevare tali vulnerabilità. +SUPER è un'applicazione da riga di comando che può essere utilizzata su Windows, MacOS X e Linux, che analizza i file _.apk_ alla ricerca di vulnerabilità. Fa ciò decomprimendo gli APK e applicando una serie di regole per rilevare tali vulnerabilità. Tutte le regole sono contenute in un file `rules.json`, e ogni azienda o tester potrebbe creare le proprie regole per analizzare ciò di cui hanno bisogno. -Scarica le ultime versioni binarie dalla [pagina di download](https://superanalyzer.rocks/download.html) +Scarica le ultime versioni eseguibili dalla [pagina di download](https://superanalyzer.rocks/download.html) ``` super-analyzer {apk_file} ``` @@ -722,7 +729,7 @@ python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3 ![](<../../.gitbook/assets/image (595).png>) -**MARA** è un **F**ramework di **A**nalisi e **R**everse engineering di **A**pplicazioni **M**obili. È uno strumento che riunisce strumenti comunemente utilizzati per il reverse engineering e l'analisi di applicazioni mobili, per assistere nel test delle applicazioni mobili contro le minacce alla sicurezza mobile di OWASP. Il suo obiettivo è rendere più facile e amichevole questo compito agli sviluppatori di applicazioni mobili e ai professionisti della sicurezza. +**MARA** è un **F**ramework di **R**everse engineering e **A**nalisi di **A**pplicazioni **M**obili. È uno strumento che riunisce strumenti comunemente utilizzati per il reverse engineering e l'analisi di applicazioni mobili, per assistere nel test delle applicazioni mobili contro le minacce alla sicurezza mobile di OWASP. Il suo obiettivo è rendere più facile e amichevole questo compito per gli sviluppatori di applicazioni mobili e i professionisti della sicurezza. È in grado di: @@ -743,7 +750,7 @@ Nota che a seconda del servizio e della configurazione che si utilizza per obfus ### [ProGuard](https://en.wikipedia.org/wiki/ProGuard\_\(software\)) -Da [Wikipedia](https://en.wikipedia.org/wiki/ProGuard\_\(software\)): **ProGuard** è uno strumento a riga di comando open source che riduce, ottimizza e obfusca il codice Java. È in grado di ottimizzare il bytecode e individuare ed eliminare istruzioni inutilizzate. ProGuard è un software gratuito e viene distribuito con licenza GNU General Public License, versione 2. +Da [Wikipedia](https://en.wikipedia.org/wiki/ProGuard\_\(software\)): **ProGuard** è uno strumento a riga di comando open source che riduce, ottimizza e obfusca il codice Java. È in grado di ottimizzare il bytecode e individuare ed eliminare istruzioni non utilizzate. ProGuard è un software gratuito e viene distribuito con la licenza pubblica generale GNU, versione 2. ProGuard è distribuito come parte dell'SDK Android e viene eseguito durante la compilazione dell'applicazione in modalità di rilascio. @@ -754,9 +761,9 @@ Trova una guida passo-passo per deobfuscare l'APK in [https://blog.lexfo.fr/dexg (Da quella guida) L'ultima volta che abbiamo controllato, la modalità di funzionamento di Dexguard era: * caricare una risorsa come un InputStream; -* alimentare il risultato a una classe che eredita da FilterInputStream per decodificarlo; +* alimentare il risultato a una classe che eredita da FilterInputStream per decifrarlo; * fare un'obfuscazione inutile per sprecare alcuni minuti di tempo a un reverser; -* alimentare il risultato decodificato a un ZipInputStream per ottenere un file DEX; +* alimentare il risultato decifrato a un ZipInputStream per ottenere un file DEX; * infine caricare il DEX risultante come una risorsa utilizzando il metodo `loadDex`. ### [DeGuard](http://apk-deguard.com) @@ -781,7 +788,7 @@ APKiD fornisce informazioni su **come è stato creato un APK**. Identifica molti ### [Androl4b](https://github.com/sh4hin/Androl4b) -AndroL4b è una macchina virtuale di sicurezza Android basata su ubuntu-mate che include la raccolta degli ultimi framework, tutorial e laboratori di diversi esperti di sicurezza e ricercatori per il reverse engineering e l'analisi malware. +AndroL4b è una macchina virtuale di sicurezza Android basata su ubuntu-mate che include la raccolta degli ultimi framework, tutorial e laboratori di diversi esperti di sicurezza e ricercatori per il reverse engineering e l'analisi di malware. ## Riferimenti @@ -799,7 +806,7 @@ AndroL4b è una macchina virtuale di sicurezza Android basata su ubuntu-mate che
-Unisciti al [**server Discord di HackenProof**](https://discord.com/invite/N3FrSbmwdy) per comunicare con hacker esperti e cacciatori di bug! +Unisciti al server [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) per comunicare con hacker esperti e cacciatori di bug! **Approfondimenti sull'Hacking**\ Interagisci con contenuti che approfondiscono l'emozione e le sfide dell'hacking @@ -808,7 +815,7 @@ Interagisci con contenuti che approfondiscono l'emozione e le sfide dell'hacking Resta aggiornato con il mondo dell'hacking ad alta velocità attraverso notizie e approfondimenti in tempo reale **Ultime Novità**\ -Resta informato sui nuovi bug bounty in arrivo e sugli aggiornamenti cruciali della piattaforma +Rimani informato sui nuovi bug bounty in arrivo e sugli aggiornamenti cruciali della piattaforma **Unisciti a noi su** [**Discord**](https://discord.com/invite/N3FrSbmwdy) e inizia a collaborare con i migliori hacker oggi!