PhanTap (फैंटम टैप)

PhanTap रेड टीमों के लिए एक ‘अदृश्य’ नेटवर्क टैप है। लक्ष्य भवन तक सीमित भौतिक पहुँच के साथ, इस टैप को नेटवर्क डिवाइस और कॉर्पोरेट नेटवर्क के बीच इनलाइन स्थापित किया जा सकता है। PhanTap नेटवर्क में मौन रहता है और पीड़ित के ट्रैफ़िक को प्रभावित नहीं करता, यहाँ तक कि NAC (Network Access Control 802.1X - 2004) वाले नेटवर्क में भी।
PhanTap नेटवर्क पर ट्रैफ़िक का विश्लेषण करेगा और अपने ट्रैफ़िक को पीड़ित डिवाइस के रूप में मास्क करेगा।
यह एक रिमोट सर्वर तक वापस टनल स्थापित कर सकता है, जिससे उपयोगकर्ता को आगे के विश्लेषण और पिवोटिंग के लिए नेटवर्क में पैठ बनाने का अवसर मिलता है।
PhanTap एक OpenWrt पैकेज है और इसे किसी भी डिवाइस के साथ संगत होना चाहिए। हमारे परीक्षण के लिए उपयोग किया जाने वाला भौतिक डिवाइस वर्तमान में एक छोटा, सस्ता राउटर है, GL.iNet GL-AR150।
आप PhanTap का वर्णन करने वाली विस्तृत ब्लॉगपोस्ट यहाँ पा सकते हैं।
विशेषताएँ:
- पारदर्शी नेटवर्क ब्रिज।
- मौन : कोई arp, multicast, broadcast नहीं।
- 802.1x पासथ्रू।
- स्वचालित कॉन्फ़िगरेशन:
- नेटवर्क में प्रवेश करने वाले ट्रैफ़िक को कैप्चर करें (स्रोत non RFC1918 है और गंतव्य RFC1918 है), गंतव्य IP और MAC हमारा पीड़ित है, स्रोत MAC हमारा गेटवे है,
- ब्रिज ट्रैफ़िक को पीड़ित MAC और IP पते पर SNAT करें,
- राउटर का डिफ़ॉल्ट गेटवे ठीक पहले पता चले गेटवे के MAC पर सेट करें।
- ARP, multicast और broadcast ट्रैफ़िक का निरीक्षण करता है और मशीन के IP पते के लिए रूट जोड़ता है तथा मशीन के MAC पते को पड़ोसी सूची में जोड़ता है, जिससे स्थानीय नेटवर्क की सभी मशीनों से बात करने की संभावना मिलती है।
- ट्रैफ़िक से DNS सर्वर सीखता है और राउटर पर मौजूद DNS को बदलकर समान कर देता है।
- गतिशील पुनर्विन्यास के लिए DHCP पैकेटों का निरीक्षण करता है।
- जब नया IP या DNS कॉन्फ़िगर होता है तो कमांड चला सकता है (उदा: /etc/init.d/openvpn restart)।
- आपको कोई भी VPN सॉफ़्टवेयर चुनने की सुविधा देता है, उदाहरण के लिए OpenVPN tcp पोर्ट 443, ताकि यह अधिकांश फ़ायरवॉल से गुजर सके।
- आप पीड़ित मशीन से बात कर सकते हैं (गेटवे IP का उपयोग करके)।
सेटअप
PhanTap का परीक्षण GL.iNet GL-AR150 के साथ किया गया है। इस डिवाइस में OpenWrt के अंतर्गत दो अलग-अलग नेटवर्क इंटरफ़ेस (eth0, eth1) हैं।
यदि आपका डिवाइस eth0.1, eth0.2 जैसे इंटरफ़ेस वाले आंतरिक स्विच(swconfig आधारित) का उपयोग कर रहा है, तो कुछ विशेष ट्रैफ़िक अवरुद्ध हो सकता है, उदा. 802.1Q(tagged vlan), लेकिन PhanTap को काम करना चाहिए।
- एक स्नैपशॉट बिल्ड स्थापित करें, GL.iNet GL-AR150 के लिए
- OpenWrt पैकेज सूची को अपडेट करें
- PhanTap पैकेज स्थापित करें:
- वाई-फाई कॉन्फ़िगर करें और उसके माध्यम से राउटर का प्रशासन शुरू करें।
- या तो डिवाइस को रीबूट करें, या
/etc/init.d/phantap setup चलाएँ।
- उस डिवाइस से इंटरफ़ेस नाम प्राप्त करें:
# uci show network | grep -E 'device=|ports='
network.loopback.device='lo'
network.@device[0].ports='eth0'
network.lan.device='br-lan'
network.wan.device='eth1'
network.wan6.device='eth1'
network.phantap.device='br-phantap'
इस उदाहरण में हम GL-AR150 का उपयोग कर रहे हैं, जिसमें केवल 2 इंटरफ़ेस हैं।
- यदि ऐसा है, तो इंटरफ़ेस को किसी भी नेटवर्क इंटरफ़ेस से हटा दें, जहाँ वे उपयोग हो सकते हैं, निम्न कमांड के माध्यम से cli
(मान लें कि हम GL-AR150 का उपयोग कर रहे हैं):
uci delete network.@device[0].ports
uci delete network.wan.device
uci delete network.wan6.device
- इंटरफ़ेस को phantap ब्रिज में जोड़ें और नेटवर्क सेवा को पुनः आरंभ करें, निम्न कमांड के माध्यम से cli
(मान लें कि हम GL-AR150 का उपयोग कर रहे हैं):
uci add_list network.br_phantap.ports='eth0'
uci add_list network.br_phantap.ports='eth1'
uci commit network
/etc/init.d/network reload
-
Phantap अब कॉन्फ़िगर हो गया है, जैसे ही आप इसे पीड़ित और उसके स्विच के बीच प्लग करते हैं, यह स्वचालित रूप से राउटर को कॉन्फ़िगर करेगा और उसे इंटरनेट एक्सेस देगा।
-
आप वापस रिमोट कनेक्शन पाने के लिए अपना पसंदीदा VPN जोड़ सकते हैं। हमने PhanTap का परीक्षण OpenVpn, पोर्ट TCP 443 के साथ किया है, ताकि कुछ डिटेक्शन विधियों से बचा जा सके।
-
आप जब नया IP या DNS कॉन्फ़िगर हो तो चलाई जाने वाली कमांड भी जोड़ सकते हैं, /etc/config/phantap में, उदा. /etc/init.d/openvpn restart (OpenVpn सेवा पुनः आरंभ करें)।
-
आप डिफ़ॉल्ट रूप से वाई-फाई को अक्षम करने और इसे शुरू करने के लिए हार्डवेयर बटन का उपयोग करने पर भी विचार कर सकते हैं (https://openwrt.org/docs/guide-user/hardware/hardware.button)।
सीमाएँ या इसका पता कैसे लगाया जा सकता है :
- GL.iNet GL-AR150 और अधिकांश सस्ते डिवाइस केवल 100Mbps का समर्थन करते हैं, जबकि आधुनिक नेटवर्क ट्रैफ़िक 1Gbps का होता है।
- नेटवर्क पोर्ट सक्रिय रहेगा, स्विच की तरफ, जब पीड़ित डिवाइस डिस्कनेक्ट/शटडाउन होती है।
- कुछ ट्रैफ़िक Linux ब्रिज द्वारा अवरुद्ध कर दिया जाता है (STP/Pause frames/LACP)।
- OpenWrt फेलसेफ मोड दस्तावेज़ में वर्णित अनुसार IPv4 और IPv6 पैकेट भेजता है: https://openwrt.org/docs/guide-user/troubleshooting/failsafe_and_factory_reset. यह प्रारंभिक बूट के दौरान होता है और इसके कारण डिवाइस का पता लगाया जा सकता है। इसे रनटाइम पर अक्षम करने का कोई आसान समाधान नहीं है, क्योंकि यह कॉन्फ़िगरेशन U-Boot में है। U-Boot पार्टीशन केवल-पठनीय रूप में माउंट किया जाता है और इसका कॉन्फ़िगरेशन केवल U-Boot शेल से एक्सेस और संशोधित किया जा सकता है (उदाहरण के लिए GL-AR150 पर UART के माध्यम से)। आसान समाधान OpenWrt को TARGET_PREINIT_DISABLE_FAILSAFE विकल्प सक्षम करके संकलित करना है।
रोडमैप :
- जब लिंक अप/डाउन होते हैं तो डिटेक्शन को पुनः आरंभ करने के लिए तर्क जोड़ें।
- IPv6 समर्थन जोड़ें।
- उन डिवाइसों की सीमाओं का परीक्षण करें जिनमें अलग-अलग इंटरफ़ेस के बजाय स्विच(swconfig) होते हैं।