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
c86dffe63b
commit
b97ff22757
@ -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)
|
||||
|
@ -32,7 +32,7 @@
|
||||
- **Zamiana**: Jak homoglif, ale mniej dyskretny. Zastępuje jedną z liter w nazwie domeny, być może literą bliską oryginalnej literze na klawiaturze (np. zektser.com).
|
||||
- **Poddomenowana**: Wprowadza **kropkę** wewnątrz nazwy domeny (np. ze.lster.com).
|
||||
- **Wstawienie**: **Wstawia literę** do nazwy domeny (np. zerltser.com).
|
||||
- **Brakująca kropka**: Dołącz TLD do nazwy domeny. (np. zelstercom.com)
|
||||
- **Brak kropki**: Dołącz TLD do nazwy domeny. (np. zelstercom.com)
|
||||
|
||||
**Narzędzia automatyczne**
|
||||
|
||||
@ -223,7 +223,7 @@ service gophish stop
|
||||
|
||||
### Czekaj i bądź legitny
|
||||
|
||||
Im starsza domena, tym mniej prawdopodobne, że zostanie uznana za spam. Dlatego powinieneś czekać jak najdłużej (przynajmniej 1 tydzień) przed oceną phishingu. Co więcej, jeśli umieścisz stronę o reputacyjnym sektorze, uzyskana reputacja będzie lepsza.
|
||||
Im starsza domena, tym mniej prawdopodobne, że zostanie uznana za spam. Powinieneś więc czekać jak najdłużej (przynajmniej 1 tydzień) przed oceną phishingu. Co więcej, jeśli umieścisz stronę o reputacyjnym sektorze, uzyskana reputacja będzie lepsza.
|
||||
|
||||
Zauważ, że nawet jeśli musisz czekać tydzień, możesz teraz zakończyć konfigurację wszystkiego.
|
||||
|
||||
@ -235,7 +235,7 @@ Ustaw rekord rDNS (PTR), który rozwiązuje adres IP VPS na nazwę domeny.
|
||||
|
||||
Musisz **skonfigurować rekord SPF dla nowej domeny**. Jeśli nie wiesz, czym jest rekord SPF [**przeczytaj tę stronę**](../../network-services-pentesting/pentesting-smtp/index.html#spf).
|
||||
|
||||
Możesz użyć [https://www.spfwizard.net/](https://www.spfwizard.net) do wygenerowania swojej polityki SPF (użyj adresu IP maszyny VPS)
|
||||
Możesz użyć [https://www.spfwizard.net/](https://www.spfwizard.net), aby wygenerować swoją politykę SPF (użyj adresu IP maszyny VPS)
|
||||
|
||||
.png>)
|
||||
|
||||
@ -264,7 +264,7 @@ Ten samouczek oparty jest na: [https://www.digitalocean.com/community/tutorials/
|
||||
> v=DKIM1; h=sha256; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0wPibdqPtzYk81njjQCrChIcHzxOp8a1wjbsoNtka2X9QXCZs+iXkvw++QsWDtdYu3q0Ofnr0Yd/TmG/Y2bBGoEgeE+YTUG2aEgw8Xx42NLJq2D1pB2lRQPW4IxefROnXu5HfKSm7dyzML1gZ1U0pR5X4IZCH0wOPhIq326QjxJZm79E1nTh3xj" "Y9N/Dt3+fVnIbMupzXE216TdFuifKM6Tl6O/axNsbswMS1TH812euno8xRpsdXJzFlB9q3VbMkVWig4P538mHolGzudEBg563vv66U8D7uuzGYxYT4WS8NVm3QBMg0QKPWZaKp+bADLkOSB9J2nUpk4Aj9KB5swIDAQAB
|
||||
> ```
|
||||
|
||||
### Testuj wynik konfiguracji swojego e-maila
|
||||
### Sprawdź wynik konfiguracji swojego e-maila
|
||||
|
||||
Możesz to zrobić, korzystając z [https://www.mail-tester.com/](https://www.mail-tester.com)\
|
||||
Po prostu wejdź na stronę i wyślij e-mail na adres, który ci podadzą:
|
||||
@ -283,35 +283,35 @@ DKIM check: pass
|
||||
Sender-ID check: pass
|
||||
SpamAssassin check: ham
|
||||
```
|
||||
Możesz również wysłać **wiadomość do Gmaila, nad którym masz kontrolę**, i sprawdzić **nagłówki e-maila** w swojej skrzynce odbiorczej Gmail, `dkim=pass` powinno być obecne w polu nagłówka `Authentication-Results`.
|
||||
Możesz również wysłać **wiadomość do Gmaila pod swoją kontrolą** i sprawdzić **nagłówki e-maila** w swojej skrzynce odbiorczej Gmail, `dkim=pass` powinien być obecny w polu nagłówka `Authentication-Results`.
|
||||
```
|
||||
Authentication-Results: mx.google.com;
|
||||
spf=pass (google.com: domain of contact@example.com designates --- as permitted sender) smtp.mail=contact@example.com;
|
||||
dkim=pass header.i=@example.com;
|
||||
```
|
||||
### Usuwanie z Czarnej Listy Spamhouse
|
||||
### Usuwanie z czarnej listy Spamhouse
|
||||
|
||||
Strona [www.mail-tester.com](https://www.mail-tester.com) może wskazać, czy Twoja domena jest blokowana przez spamhouse. Możesz poprosić o usunięcie swojej domeny/IP pod adresem: [https://www.spamhaus.org/lookup/](https://www.spamhaus.org/lookup/)
|
||||
|
||||
### Usuwanie z Czarnej Listy Microsoft
|
||||
### Usuwanie z czarnej listy Microsoft
|
||||
|
||||
Możesz poprosić o usunięcie swojej domeny/IP pod adresem [https://sender.office.com/](https://sender.office.com).
|
||||
|
||||
## Utwórz i Uruchom Kampanię GoPhish
|
||||
## Utwórz i uruchom kampanię GoPhish
|
||||
|
||||
### Profil Wysyłania
|
||||
### Profil wysyłania
|
||||
|
||||
- Ustaw **nazwę identyfikującą** profil nadawcy
|
||||
- Zdecyduj, z którego konta będziesz wysyłać e-maile phishingowe. Sugestie: _noreply, support, servicedesk, salesforce..._
|
||||
- Możesz pozostawić puste pole na nazwę użytkownika i hasło, ale upewnij się, że zaznaczyłeś Ignoruj błędy certyfikatu
|
||||
- Możesz pozostawić puste nazwę użytkownika i hasło, ale upewnij się, że zaznaczyłeś Ignoruj błędy certyfikatu
|
||||
|
||||
 (1) (2) (1) (1) (2) (2) (3) (3) (5) (3) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (10) (15) (2).png>)
|
||||
|
||||
> [!TIP]
|
||||
> Zaleca się korzystanie z funkcji "**Wyślij e-mail testowy**", aby sprawdzić, czy wszystko działa.\
|
||||
> Rekomenduję **wysyłanie e-maili testowych na adresy 10min mail**, aby uniknąć dodania do czarnej listy podczas testów.
|
||||
> Zalecałbym **wysyłanie e-maili testowych na adresy 10min mail**, aby uniknąć dodania do czarnej listy podczas testów.
|
||||
|
||||
### Szablon E-mail
|
||||
### Szablon e-maila
|
||||
|
||||
- Ustaw **nazwę identyfikującą** szablon
|
||||
- Następnie napisz **temat** (nic dziwnego, po prostu coś, co można by się spodziewać w zwykłym e-mailu)
|
||||
@ -360,7 +360,7 @@ Zauważ, że **aby zwiększyć wiarygodność e-maila**, zaleca się użycie jak
|
||||
> Zauważ, że jeśli musisz **użyć jakichś statycznych zasobów** dla HTML (może jakieś strony CSS i JS), możesz je zapisać w _**/opt/gophish/static/endpoint**_ i następnie uzyskać do nich dostęp z _**/static/\<filename>**_
|
||||
|
||||
> [!TIP]
|
||||
> W przypadku przekierowania możesz **przekierować użytkowników na legalną główną stronę** ofiary lub przekierować ich na _/static/migration.html_, na przykład, umieścić jakiś **kręcący się kółko (**[**https://loading.io/**](https://loading.io)**) przez 5 sekund, a następnie wskazać, że proces zakończył się sukcesem**.
|
||||
> W przypadku przekierowania możesz **przekierować użytkowników na legitną główną stronę internetową** ofiary lub przekierować ich na _/static/migration.html_, na przykład, umieścić jakiś **kręcący się kółko (**[**https://loading.io/**](https://loading.io)**) przez 5 sekund, a następnie wskazać, że proces zakończył się sukcesem**.
|
||||
|
||||
### Użytkownicy i grupy
|
||||
|
||||
@ -403,18 +403,18 @@ phishing-documents.md
|
||||
|
||||
### Poprzez Proxy MitM
|
||||
|
||||
Poprzedni atak jest dość sprytny, ponieważ podszywasz się pod prawdziwą stronę internetową i zbierasz informacje podane przez użytkownika. Niestety, jeśli użytkownik nie wpisał poprawnego hasła lub jeśli aplikacja, którą podrobiłeś, jest skonfigurowana z 2FA, **te informacje nie pozwolą ci na podszywanie się pod oszukanego użytkownika**.
|
||||
Poprzedni atak jest dość sprytny, ponieważ fałszuje prawdziwą stronę internetową i zbiera informacje podane przez użytkownika. Niestety, jeśli użytkownik nie wpisał poprawnego hasła lub jeśli aplikacja, którą sfałszowałeś, jest skonfigurowana z 2FA, **te informacje nie pozwolą ci na podszywanie się pod oszukanego użytkownika**.
|
||||
|
||||
Tutaj przydatne są narzędzia takie jak [**evilginx2**](https://github.com/kgretzky/evilginx2)**,** [**CredSniper**](https://github.com/ustayready/CredSniper) i [**muraena**](https://github.com/muraenateam/muraena). To narzędzie pozwoli ci wygenerować atak typu MitM. Zasadniczo atak działa w następujący sposób:
|
||||
|
||||
1. **Podszywasz się pod formularz logowania** prawdziwej strony internetowej.
|
||||
2. Użytkownik **wysyła** swoje **dane logowania** na twoją fałszywą stronę, a narzędzie wysyła je na prawdziwą stronę internetową, **sprawdzając, czy dane logowania działają**.
|
||||
3. Jeśli konto jest skonfigurowane z **2FA**, strona MitM poprosi o to, a gdy **użytkownik wprowadzi** to, narzędzie wyśle to na prawdziwą stronę internetową.
|
||||
4. Gdy użytkownik zostanie uwierzytelniony, ty (jako atakujący) będziesz miał **przechwycone dane logowania, 2FA, ciasteczka i wszelkie informacje** z każdej interakcji, podczas gdy narzędzie wykonuje atak MitM.
|
||||
4. Gdy użytkownik jest uwierzytelniony, ty (jako atakujący) będziesz miał **przechwycone dane logowania, 2FA, ciasteczka i wszelkie informacje** z każdej interakcji, podczas gdy narzędzie wykonuje atak MitM.
|
||||
|
||||
### Poprzez VNC
|
||||
|
||||
Co jeśli zamiast **wysyłać ofiarę na złośliwą stronę** o takim samym wyglądzie jak oryginalna, wyślesz ją do **sesji VNC z przeglądarką połączoną z prawdziwą stroną internetową**? Będziesz mógł zobaczyć, co robi, ukraść hasło, używane MFA, ciasteczka...\
|
||||
Co jeśli zamiast **wysyłać ofiarę na złośliwą stronę** o takim samym wyglądzie jak oryginalna, wyślesz go na **sesję VNC z przeglądarką połączoną z prawdziwą stroną internetową**? Będziesz mógł zobaczyć, co robi, ukraść hasło, używane MFA, ciasteczka...\
|
||||
Możesz to zrobić za pomocą [**EvilnVNC**](https://github.com/JoelGMSec/EvilnoVNC)
|
||||
|
||||
## Wykrywanie wykrycia
|
||||
@ -442,6 +442,12 @@ Atakujący mogą cicho kopiować złośliwe polecenia do schowka ofiary z kompro
|
||||
clipboard-hijacking.md
|
||||
{{#endref}}
|
||||
|
||||
## Phishing mobilny i dystrybucja złośliwych aplikacji (Android i iOS)
|
||||
|
||||
{{#ref}}
|
||||
mobile-phishing-malicious-apps.md
|
||||
{{#endref}}
|
||||
|
||||
## Odniesienia
|
||||
|
||||
- [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]
|
||||
> Ta strona omawia techniki stosowane przez aktorów zagrożeń do dystrybucji **złośliwych APK Androida** i **profilów konfiguracji mobilnej iOS** poprzez phishing (SEO, inżynieria społeczna, fałszywe sklepy, aplikacje randkowe itp.).
|
||||
> Materiał jest dostosowany z kampanii SarangTrap ujawnionej przez Zimperium zLabs (2025) oraz innych publicznych badań.
|
||||
|
||||
## Attack Flow
|
||||
|
||||
1. **SEO/Phishing Infrastructure**
|
||||
* Zarejestruj dziesiątki podobnych domen (randkowe, chmurowe, usługi samochodowe…).
|
||||
– Użyj lokalnych słów kluczowych i emotikonów w elemencie `<title>`, aby uzyskać wysoką pozycję w Google.
|
||||
– Umieść *zarówno* instrukcje instalacji Androida (`.apk`), jak i iOS na tej samej stronie docelowej.
|
||||
2. **First Stage Download**
|
||||
* Android: bezpośredni link do *niepodpisanego* lub „sklepu zewnętrznego” APK.
|
||||
* iOS: `itms-services://` lub zwykły link HTTPS do złośliwego **mobileconfig** (patrz poniżej).
|
||||
3. **Post-install Social Engineering**
|
||||
* Przy pierwszym uruchomieniu aplikacja prosi o **kod zaproszenia / weryfikacji** (iluzja ekskluzywnego dostępu).
|
||||
* Kod jest **wysyłany metodą POST przez HTTP** do Command-and-Control (C2).
|
||||
* C2 odpowiada `{"success":true}` ➜ złośliwe oprogramowanie kontynuuje.
|
||||
* Analiza dynamiczna w piaskownicy / AV, która nigdy nie przesyła ważnego kodu, nie widzi **złośliwego zachowania** (unikanie).
|
||||
4. **Runtime Permission Abuse** (Android)
|
||||
* Niebezpieczne uprawnienia są żądane **dopiero po pozytywnej odpowiedzi 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"/>
|
||||
<!-- Starsze wersje również prosiły o uprawnienia SMS -->
|
||||
```
|
||||
* Ostatnie warianty **usuwają `<uses-permission>` dla SMS z `AndroidManifest.xml`**, ale pozostawiają ścieżkę kodu Java/Kotlin, która odczytuje SMS-y przez refleksję ⇒ obniża wynik statyczny, a jednocześnie działa na urządzeniach, które przyznają uprawnienia poprzez nadużycie `AppOps` lub stare cele.
|
||||
5. **Facade UI & Background Collection**
|
||||
* Aplikacja pokazuje nieszkodliwe widoki (przeglądarka SMS, wybieracz galerii) zaimplementowane lokalnie.
|
||||
* W międzyczasie eksfiltruje:
|
||||
- IMEI / IMSI, numer telefonu
|
||||
- Pełny zrzut `ContactsContract` (tablica JSON)
|
||||
- JPEG/PNG z `/sdcard/DCIM` skompresowane z [Luban](https://github.com/Curzibn/Luban), aby zmniejszyć rozmiar
|
||||
- Opcjonalna zawartość SMS (`content://sms`)
|
||||
Ładunki są **spakowane w paczki** i wysyłane przez `HTTP POST /upload.php`.
|
||||
6. **iOS Delivery Technique**
|
||||
* Pojedynczy **profil konfiguracji mobilnej** może żądać `PayloadType=com.apple.sharedlicenses`, `com.apple.managedConfiguration` itp., aby zarejestrować urządzenie w nadzorze podobnym do „MDM”.
|
||||
* Instrukcje inżynierii społecznej:
|
||||
1. Otwórz Ustawienia ➜ *Profil pobrany*.
|
||||
2. Stuknij *Zainstaluj* trzy razy (zrzuty ekranu na stronie phishingowej).
|
||||
3. Zaufaj niepodpisanemu profilowi ➜ atakujący zyskuje uprawnienia *Kontakty* i *Zdjęcia* bez przeglądu App Store.
|
||||
7. **Network Layer**
|
||||
* Zwykły HTTP, często na porcie 80 z nagłówkiem HOST jak `api.<phishingdomain>.com`.
|
||||
* `User-Agent: Dalvik/2.1.0 (Linux; U; Android 13; Pixel 6 Build/TQ3A.230805.001)` (bez TLS → łatwe do wykrycia).
|
||||
|
||||
## Defensive Testing / Red-Team Tips
|
||||
|
||||
* **Dynamic Analysis Bypass** – Podczas oceny złośliwego oprogramowania, zautomatyzuj fazę kodu zaproszenia za pomocą Frida/Objection, aby dotrzeć do złośliwej gałęzi.
|
||||
* **Manifest vs. Runtime Diff** – Porównaj `aapt dump permissions` z runtime `PackageManager#getRequestedPermissions()`; brak niebezpiecznych uprawnień to czerwony flag.
|
||||
* **Network Canary** – Skonfiguruj `iptables -p tcp --dport 80 -j NFQUEUE`, aby wykryć niesolidne wybuchy POST po wprowadzeniu kodu.
|
||||
* **mobileconfig Inspection** – Użyj `security cms -D -i profile.mobileconfig` na macOS, aby wylistować `PayloadContent` i zauważyć nadmierne uprawnienia.
|
||||
|
||||
## Blue-Team Detection Ideas
|
||||
|
||||
* **Certificate Transparency / DNS Analytics** w celu wychwycenia nagłych wybuchów domen bogatych w słowa kluczowe.
|
||||
* **User-Agent & Path Regex**: `(?i)POST\s+/(check|upload)\.php` z klientów Dalvik poza Google Play.
|
||||
* **Invite-code Telemetry** – POST 6–8 cyfrowych kodów numerycznych krótko po instalacji APK może wskazywać na staging.
|
||||
* **MobileConfig Signing** – Zablokuj niepodpisane profile konfiguracji za pomocą polityki MDM.
|
||||
|
||||
## Useful Frida Snippet: Auto-Bypass Invitation Code
|
||||
```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;
|
||||
};
|
||||
});
|
||||
```
|
||||
## Wskaźniki (Ogólne)
|
||||
```
|
||||
/req/checkCode.php # invite code validation
|
||||
/upload.php # batched ZIP exfiltration
|
||||
LubanCompress 1.1.8 # "Luban" string inside classes.dex
|
||||
```
|
||||
## Odniesienia
|
||||
|
||||
- [Ciemna strona romansu: kampania extorsyjna SarangTrap](https://zimperium.com/blog/the-dark-side-of-romance-sarangtrap-extortion-campaign)
|
||||
- [Luban – biblioteka kompresji obrazów dla Androida](https://github.com/Curzibn/Luban)
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
Loading…
x
Reference in New Issue
Block a user