mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/generic-methodologies-and-resources/phishing-methodolog
This commit is contained in:
parent
8de124ebfb
commit
2f8c3f429a
@ -32,6 +32,7 @@
|
||||
- [Clone a Website](generic-methodologies-and-resources/phishing-methodology/clone-a-website.md)
|
||||
- [Detecting Phishing](generic-methodologies-and-resources/phishing-methodology/detecting-phising.md)
|
||||
- [Discord Invite Hijacking](generic-methodologies-and-resources/phishing-methodology/discord-invite-hijacking.md)
|
||||
- [Mobile Phishing Malicious Apps](generic-methodologies-and-resources/phishing-methodology/mobile-phishing-malicious-apps.md)
|
||||
- [Phishing Files & Documents](generic-methodologies-and-resources/phishing-methodology/phishing-documents.md)
|
||||
- [Basic Forensic Methodology](generic-methodologies-and-resources/basic-forensic-methodology/README.md)
|
||||
- [Baseline Monitoring](generic-methodologies-and-resources/basic-forensic-methodology/file-integrity-monitoring.md)
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
1. Riconoscere la vittima
|
||||
1. Selezionare il **dominio della vittima**.
|
||||
2. Eseguire alcune basi di enumerazione web **cercando portali di accesso** utilizzati dalla vittima e **decidere** quale impersonare.
|
||||
2. Eseguire alcune enumerazioni web di base **cercando portali di accesso** utilizzati dalla vittima e **decidere** quale impersonare.
|
||||
3. Utilizzare alcune **OSINT** per **trovare email**.
|
||||
2. Preparare l'ambiente
|
||||
1. **Acquistare il dominio** che si intende utilizzare per la valutazione di phishing
|
||||
@ -22,17 +22,17 @@
|
||||
### Tecniche di Variazione del Nome di Dominio
|
||||
|
||||
- **Parola chiave**: Il nome di dominio **contiene** una **parola chiave** importante del dominio originale (es., zelster.com-management.com).
|
||||
- **sottodominio con trattino**: Cambiare il **punto in un trattino** di un sottodominio (es., www-zelster.com).
|
||||
- **sottodominio con trattino**: Cambiare il **punto con un trattino** di un sottodominio (es., www-zelster.com).
|
||||
- **Nuovo TLD**: Stesso dominio utilizzando un **nuovo TLD** (es., zelster.org)
|
||||
- **Omo-glyph**: **sostituisce** una lettera nel nome di dominio con **lettere che sembrano simili** (es., zelfser.com).
|
||||
- **Trasposizione:** **scambia due lettere** all'interno del nome di dominio (es., zelsetr.com).
|
||||
- **Singolarizzazione/Plurale**: Aggiunge o rimuove “s” alla fine del nome di dominio (es., zeltsers.com).
|
||||
- **Singolarizzazione/Pluralizzazione**: Aggiunge o rimuove “s” alla fine del nome di dominio (es., zeltsers.com).
|
||||
- **Omissione**: **rimuove una** delle lettere dal nome di dominio (es., zelser.com).
|
||||
- **Ripetizione:** **ripete una** delle lettere nel nome di dominio (es., zeltsser.com).
|
||||
- **Sostituzione**: Come l'omo-glyph ma meno furtivo. Sostituisce una delle lettere nel nome di dominio, forse con una lettera vicina alla lettera originale sulla tastiera (es., zektser.com).
|
||||
- **Sottodominio**: Introduce un **punto** all'interno del nome di dominio (es., ze.lster.com).
|
||||
- **Inserimento**: **inserisce una lettera** nel nome di dominio (es., zerltser.com).
|
||||
- **Punto mancante**: Aggiungere il TLD al nome di dominio. (es., zelstercom.com)
|
||||
- **Punto mancante**: Aggiunge il TLD al nome di dominio. (es., zelstercom.com)
|
||||
|
||||
**Strumenti Automatici**
|
||||
|
||||
@ -53,7 +53,7 @@ Quando questo concetto è **applicato alle richieste DNS**, è possibile che il
|
||||
|
||||
Ad esempio, una singola modifica di bit nel dominio "windows.com" può cambiarlo in "windnws.com."
|
||||
|
||||
Gli attaccanti possono **sfruttare questo registrando più domini di bit-flipping** simili a quello della vittima. La loro intenzione è reindirizzare gli utenti legittimi alla propria infrastruttura.
|
||||
Gli attaccanti possono **sfruttare questo registrando più domini con bit-flipping** simili a quello della vittima. La loro intenzione è reindirizzare gli utenti legittimi alla propria infrastruttura.
|
||||
|
||||
Per ulteriori informazioni leggi [https://www.bleepingcomputer.com/news/security/hijacking-traffic-to-microsoft-s-windowscom-with-bitflipping/](https://www.bleepingcomputer.com/news/security/hijacking-traffic-to-microsoft-s-windowscom-with-bitflipping/)
|
||||
|
||||
@ -91,7 +91,7 @@ ssh -L 3333:127.0.0.1:3333 <user>@<ip>
|
||||
|
||||
**Configurazione del certificato TLS**
|
||||
|
||||
Prima di questo passaggio, dovresti **aver già acquistato il dominio** che intendi utilizzare e deve **puntare** all'**IP del VPS** dove stai configurando **gophish**.
|
||||
Prima di questo passaggio dovresti aver **già acquistato il dominio** che intendi utilizzare e deve **puntare** all'**IP del VPS** dove stai configurando **gophish**.
|
||||
```bash
|
||||
DOMAIN="<domain>"
|
||||
wget https://dl.eff.org/certbot-auto
|
||||
@ -239,7 +239,7 @@ Puoi usare [https://www.spfwizard.net/](https://www.spfwizard.net) per generare
|
||||
|
||||
.png>)
|
||||
|
||||
Questo è il contenuto che deve essere impostato all'interno di un record TXT nel dominio:
|
||||
Questo è il contenuto che deve essere impostato all'interno di un record TXT all'interno del dominio:
|
||||
```bash
|
||||
v=spf1 mx a ip4:ip.ip.ip.ip ?all
|
||||
```
|
||||
@ -264,7 +264,7 @@ Questo tutorial si basa su: [https://www.digitalocean.com/community/tutorials/ho
|
||||
> v=DKIM1; h=sha256; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0wPibdqPtzYk81njjQCrChIcHzxOp8a1wjbsoNtka2X9QXCZs+iXkvw++QsWDtdYu3q0Ofnr0Yd/TmG/Y2bBGoEgeE+YTUG2aEgw8Xx42NLJq2D1pB2lRQPW4IxefROnXu5HfKSm7dyzML1gZ1U0pR5X4IZCH0wOPhIq326QjxJZm79E1nTh3xj" "Y9N/Dt3+fVnIbMupzXE216TdFuifKM6Tl6O/axNsbswMS1TH812euno8xRpsdXJzFlB9q3VbMkVWig4P538mHolGzudEBg563vv66U8D7uuzGYxYT4WS8NVm3QBMg0QKPWZaKp+bADLkOSB9J2nUpk4Aj9KB5swIDAQAB
|
||||
> ```
|
||||
|
||||
### Testa il punteggio di configurazione della tua email
|
||||
### Testa il punteggio della tua configurazione email
|
||||
|
||||
Puoi farlo usando [https://www.mail-tester.com/](https://www.mail-tester.com)\
|
||||
Basta accedere alla pagina e inviare un'email all'indirizzo che ti forniscono:
|
||||
@ -339,7 +339,7 @@ Nota che **per aumentare la credibilità dell'email**, è consigliato utilizzare
|
||||
|
||||
- Invia un'email a un **indirizzo inesistente** e controlla se la risposta ha qualche firma.
|
||||
- Cerca **email pubbliche** come info@ex.com o press@ex.com o public@ex.com e invia loro un'email e aspetta la risposta.
|
||||
- Prova a contattare **alcune email valide scoperte** e aspetta la risposta.
|
||||
- Prova a contattare **qualche email valida scoperta** e aspetta la risposta.
|
||||
|
||||
.png>)
|
||||
|
||||
@ -356,13 +356,13 @@ Nota che **per aumentare la credibilità dell'email**, è consigliato utilizzare
|
||||
.png>)
|
||||
|
||||
> [!TIP]
|
||||
> Di solito dovrai modificare il codice HTML della pagina e fare alcuni test in locale (magari utilizzando un server Apache) **fino a quando non ti piacciono i risultati.** Poi, scrivi quel codice HTML nella casella.\
|
||||
> Di solito dovrai modificare il codice HTML della pagina e fare alcuni test in locale (magari usando un server Apache) **fino a quando non ti piacciono i risultati.** Poi, scrivi quel codice HTML nella casella.\
|
||||
> Nota che se hai bisogno di **utilizzare alcune risorse statiche** per l'HTML (magari alcune pagine CSS e JS) puoi salvarle in _**/opt/gophish/static/endpoint**_ e poi accedervi da _**/static/\<filename>**_
|
||||
|
||||
> [!TIP]
|
||||
> Per il reindirizzamento potresti **reindirizzare gli utenti alla legittima pagina web principale** della vittima, o reindirizzarli a _/static/migration.html_ per esempio, mettere qualche **ruota che gira (**[**https://loading.io/**](https://loading.io)**) per 5 secondi e poi indicare che il processo è stato completato con successo**.
|
||||
> Per il reindirizzamento potresti **reindirizzare gli utenti alla legittima pagina principale** della vittima, o reindirizzarli a _/static/migration.html_ per esempio, mettere qualche **ruota che gira (**[**https://loading.io/**](https://loading.io)**) per 5 secondi e poi indicare che il processo è stato completato con successo**.
|
||||
|
||||
### Utenti e Gruppi
|
||||
### Utenti & Gruppi
|
||||
|
||||
- Imposta un nome
|
||||
- **Importa i dati** (nota che per utilizzare il modello per l'esempio hai bisogno del nome, cognome e indirizzo email di ogni utente)
|
||||
@ -378,7 +378,7 @@ Nota che il **Profilo di Invio consente di inviare un'email di prova per vedere
|
||||
.png>)
|
||||
|
||||
> [!TIP]
|
||||
> Ti consiglio di **inviare le email di prova a indirizzi di 10min mail** per evitare di essere inserito in blacklist durante i test.
|
||||
> Ti consiglio di **inviare le email di prova a indirizzi di 10min mail** per evitare di essere inserito nella blacklist durante i test.
|
||||
|
||||
Una volta che tutto è pronto, lancia semplicemente la campagna!
|
||||
|
||||
@ -390,9 +390,9 @@ Se per qualche motivo desideri clonare il sito web, controlla la seguente pagina
|
||||
clone-a-website.md
|
||||
{{#endref}}
|
||||
|
||||
## Documenti e File Backdoor
|
||||
## Documenti & File con Backdoor
|
||||
|
||||
In alcune valutazioni di phishing (principalmente per Red Teams) vorrai anche **inviare file contenenti qualche tipo di backdoor** (magari un C2 o semplicemente qualcosa che attivi un'autenticazione).\
|
||||
In alcune valutazioni di phishing (principalmente per Red Teams) vorrai anche **inviare file contenenti qualche tipo di backdoor** (magari un C2 o magari solo qualcosa che attivi un'autenticazione).\
|
||||
Controlla la seguente pagina per alcuni esempi:
|
||||
|
||||
{{#ref}}
|
||||
@ -403,18 +403,18 @@ phishing-documents.md
|
||||
|
||||
### Via Proxy MitM
|
||||
|
||||
L'attacco precedente è piuttosto astuto poiché stai simulando un vero sito web e raccogliendo le informazioni fornite dall'utente. Sfortunatamente, se l'utente non ha inserito la password corretta o se l'applicazione che hai simulato è configurata con 2FA, **queste informazioni non ti permetteranno di impersonare l'utente ingannato**.
|
||||
L'attacco precedente è piuttosto astuto poiché stai falsificando un sito web reale e raccogliendo le informazioni fornite dall'utente. Sfortunatamente, se l'utente non ha inserito la password corretta o se l'applicazione che hai falsificato è configurata con 2FA, **queste informazioni non ti permetteranno di impersonare l'utente ingannato**.
|
||||
|
||||
Qui è dove strumenti come [**evilginx2**](https://github.com/kgretzky/evilginx2)**,** [**CredSniper**](https://github.com/ustayready/CredSniper) e [**muraena**](https://github.com/muraenateam/muraena) sono utili. Questo strumento ti permetterà di generare un attacco simile a MitM. Fondamentalmente, gli attacchi funzionano nel seguente modo:
|
||||
|
||||
1. Tu **impersoni il modulo di accesso** della vera pagina web.
|
||||
2. L'utente **invia** le sue **credenziali** alla tua pagina falsa e lo strumento le invia alla vera pagina web, **controllando se le credenziali funzionano**.
|
||||
3. Se l'account è configurato con **2FA**, la pagina MitM chiederà di inserirlo e una volta che l'**utente lo introduce**, lo strumento lo invierà alla vera pagina web.
|
||||
1. Tu **impersoni il modulo di accesso** della pagina web reale.
|
||||
2. L'utente **invia** le sue **credenziali** alla tua pagina falsa e lo strumento le invia alla pagina web reale, **controllando se le credenziali funzionano**.
|
||||
3. Se l'account è configurato con **2FA**, la pagina MitM chiederà di inserirlo e una volta che l'**utente lo introduce**, lo strumento lo invierà alla pagina web reale.
|
||||
4. Una volta che l'utente è autenticato, tu (come attaccante) avrai **catturato le credenziali, il 2FA, il cookie e qualsiasi informazione** di ogni interazione mentre lo strumento sta eseguendo un MitM.
|
||||
|
||||
### Via VNC
|
||||
|
||||
E se invece di **inviare la vittima a una pagina malevola** con lo stesso aspetto di quella originale, la invii a una **sessione VNC con un browser connesso alla vera pagina web**? Sarai in grado di vedere cosa fa, rubare la password, il MFA utilizzato, i cookie...\
|
||||
E se invece di **inviare la vittima a una pagina malevola** con lo stesso aspetto di quella originale, la invii a una **sessione VNC con un browser connesso alla pagina web reale**? Sarai in grado di vedere cosa fa, rubare la password, il MFA utilizzato, i cookie...\
|
||||
Puoi fare questo con [**EvilnVNC**](https://github.com/JoelGMSec/EvilnoVNC)
|
||||
|
||||
## Rilevare la rilevazione
|
||||
@ -436,12 +436,18 @@ Usa [**Phishious** ](https://github.com/Rices/Phishious) per valutare se la tua
|
||||
|
||||
## Hijacking degli Appunti / Pastejacking
|
||||
|
||||
Gli attaccanti possono silenziosamente copiare comandi malevoli negli appunti della vittima da una pagina web compromessa o typosquatted e poi ingannare l'utente a incollarli all'interno di **Win + R**, **Win + X** o una finestra del terminale, eseguendo codice arbitrario senza alcun download o allegato.
|
||||
Gli attaccanti possono silenziosamente copiare comandi malevoli negli appunti della vittima da una pagina web compromessa o typosquatted e poi ingannare l'utente a incollarli dentro **Win + R**, **Win + X** o una finestra del terminale, eseguendo codice arbitrario senza alcun download o allegato.
|
||||
|
||||
{{#ref}}
|
||||
clipboard-hijacking.md
|
||||
{{#endref}}
|
||||
|
||||
## Phishing Mobile & Distribuzione di App Malevole (Android & iOS)
|
||||
|
||||
{{#ref}}
|
||||
mobile-phishing-malicious-apps.md
|
||||
{{#endref}}
|
||||
|
||||
## Riferimenti
|
||||
|
||||
- [https://zeltser.com/domain-name-variations-in-phishing/](https://zeltser.com/domain-name-variations-in-phishing/)
|
||||
|
@ -0,0 +1,94 @@
|
||||
# Mobile Phishing & Malicious App Distribution (Android & iOS)
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
> [!INFO]
|
||||
> Questa pagina tratta delle tecniche utilizzate dagli attori delle minacce per distribuire **APK Android malevoli** e **profili di configurazione mobile iOS** attraverso il phishing (SEO, ingegneria sociale, negozi falsi, app di incontri, ecc.).
|
||||
> Il materiale è adattato dalla campagna SarangTrap esposta da Zimperium zLabs (2025) e da altre ricerche pubbliche.
|
||||
|
||||
## Flusso di Attacco
|
||||
|
||||
1. **Infrastruttura SEO/Phishing**
|
||||
* Registrare dozzine di domini simili (incontri, condivisione cloud, servizio auto…).
|
||||
– Utilizzare parole chiave e emoji nella lingua locale nell'elemento `<title>` per posizionarsi su Google.
|
||||
– Ospitare *sia* le istruzioni di installazione Android (`.apk`) che iOS sulla stessa pagina di atterraggio.
|
||||
2. **Download Prima Fase**
|
||||
* Android: link diretto a un APK *non firmato* o “negozio di terze parti”.
|
||||
* iOS: `itms-services://` o link HTTPS semplice a un profilo **mobileconfig** malevolo (vedi sotto).
|
||||
3. **Ingegneria Sociale Post-installazione**
|
||||
* Al primo avvio, l'app chiede un **codice di invito / verifica** (illusione di accesso esclusivo).
|
||||
* Il codice è **POSTato su HTTP** al Command-and-Control (C2).
|
||||
* C2 risponde `{"success":true}` ➜ il malware continua.
|
||||
* L'analisi dinamica di Sandbox / AV che non invia un codice valido non vede **comportamenti malevoli** (evasione).
|
||||
4. **Abuso dei Permessi a Runtime** (Android)
|
||||
* I permessi pericolosi vengono richiesti **solo dopo una risposta positiva dal C2**:
|
||||
```xml
|
||||
<uses-permission android:name="android.permission.READ_CONTACTS"/>
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
|
||||
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
|
||||
<!-- Le versioni più vecchie richiedevano anche permessi SMS -->
|
||||
```
|
||||
* Le varianti recenti **rimuovono `<uses-permission>` per SMS da `AndroidManifest.xml`** ma lasciano il percorso del codice Java/Kotlin che legge gli SMS tramite riflessione ⇒ abbassa il punteggio statico pur rimanendo funzionale su dispositivi che concedono il permesso tramite abuso di `AppOps` o obiettivi vecchi.
|
||||
5. **Interfaccia Facciata & Raccolta in Background**
|
||||
* L'app mostra viste innocue (visualizzatore SMS, selettore galleria) implementate localmente.
|
||||
* Nel frattempo, esfiltra:
|
||||
- IMEI / IMSI, numero di telefono
|
||||
- Dump completo di `ContactsContract` (array JSON)
|
||||
- JPEG/PNG da `/sdcard/DCIM` compressi con [Luban](https://github.com/Curzibn/Luban) per ridurre le dimensioni
|
||||
- Contenuto SMS opzionale (`content://sms`)
|
||||
I payload sono **compressi in batch** e inviati tramite `HTTP POST /upload.php`.
|
||||
6. **Tecnica di Consegna iOS**
|
||||
* Un singolo **profilo di configurazione mobile** può richiedere `PayloadType=com.apple.sharedlicenses`, `com.apple.managedConfiguration`, ecc. per iscrivere il dispositivo in una supervisione simile a “MDM”.
|
||||
* Istruzioni di ingegneria sociale:
|
||||
1. Aprire Impostazioni ➜ *Profilo scaricato*.
|
||||
2. Toccare *Installa* tre volte (screenshot sulla pagina di phishing).
|
||||
3. Fidarsi del profilo non firmato ➜ l'attaccante ottiene i diritti su *Contatti* & *Foto* senza revisione dell'App Store.
|
||||
7. **Livello di Rete**
|
||||
* HTTP semplice, spesso sulla porta 80 con intestazione HOST come `api.<phishingdomain>.com`.
|
||||
* `User-Agent: Dalvik/2.1.0 (Linux; U; Android 13; Pixel 6 Build/TQ3A.230805.001)` (no TLS → facile da individuare).
|
||||
|
||||
## Test Difensivi / Suggerimenti per il Red-Team
|
||||
|
||||
* **Bypass Analisi Dinamica** – Durante la valutazione del malware, automatizzare la fase del codice di invito con Frida/Objection per raggiungere il ramo malevolo.
|
||||
* **Manifest vs. Diff a Runtime** – Confrontare `aapt dump permissions` con `PackageManager#getRequestedPermissions()` a runtime; la mancanza di permessi pericolosi è un campanello d'allarme.
|
||||
* **Canarino di Rete** – Configurare `iptables -p tcp --dport 80 -j NFQUEUE` per rilevare picchi di POST non solidi dopo l'inserimento del codice.
|
||||
* **Ispezione mobileconfig** – Utilizzare `security cms -D -i profile.mobileconfig` su macOS per elencare `PayloadContent` e individuare diritti eccessivi.
|
||||
|
||||
## Idee di Rilevamento per il Blue-Team
|
||||
|
||||
* **Trasparenza dei Certificati / Analisi DNS** per catturare picchi improvvisi di domini ricchi di parole chiave.
|
||||
* **Regex User-Agent & Path**: `(?i)POST\s+/(check|upload)\.php` da client Dalvik al di fuori di Google Play.
|
||||
* **Telemetria Codice di Invito** – POST di codici numerici di 6–8 cifre poco dopo l'installazione dell'APK può indicare staging.
|
||||
* **Firma MobileConfig** – Bloccare profili di configurazione non firmati tramite politica MDM.
|
||||
|
||||
## Utili Frida Snippet: Auto-Bypass Codice di Invito
|
||||
```python
|
||||
# frida -U -f com.badapp.android -l bypass.js --no-pause
|
||||
# Hook HttpURLConnection write to always return success
|
||||
Java.perform(function() {
|
||||
var URL = Java.use('java.net.URL');
|
||||
URL.openConnection.implementation = function() {
|
||||
var conn = this.openConnection();
|
||||
var HttpURLConnection = Java.use('java.net.HttpURLConnection');
|
||||
if (Java.cast(conn, HttpURLConnection)) {
|
||||
conn.getResponseCode.implementation = function(){ return 200; };
|
||||
conn.getInputStream.implementation = function(){
|
||||
return Java.use('java.io.ByteArrayInputStream').$new("{\"success\":true}".getBytes());
|
||||
};
|
||||
}
|
||||
return conn;
|
||||
};
|
||||
});
|
||||
```
|
||||
## Indicatori (Generici)
|
||||
```
|
||||
/req/checkCode.php # invite code validation
|
||||
/upload.php # batched ZIP exfiltration
|
||||
LubanCompress 1.1.8 # "Luban" string inside classes.dex
|
||||
```
|
||||
## Riferimenti
|
||||
|
||||
- [The Dark Side of Romance: SarangTrap Extortion Campaign](https://zimperium.com/blog/the-dark-side-of-romance-sarangtrap-extortion-campaign)
|
||||
- [Luban – Android image compression library](https://github.com/Curzibn/Luban)
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
Loading…
x
Reference in New Issue
Block a user