
☠ मैन-इन-द-मिडल वायरलेस एक्सेस पॉइंट एक docker कंटेनर के अंदर 🐳
किसी भी लिनक्स कंप्यूटर को एक सार्वजनिक वाई-फाई नेटवर्क में बदलें जो चुपचाप सभी HTTP ट्रैफिक को mitm करता है। यह hostapd, dnsmasq, और mitmproxy का उपयोग करके एक खुला हनीपॉट वायरलेस नेटवर्क "Public" नाम से बनाने के लिए डॉकर कंटेनर के अंदर चलता है। अतिरिक्त मनोरंजन के लिए, नेटवर्क का नाम "xfinitywifi" में बदलें ताकि उन सभी से स्वतः कनेक्ट हो सकें जिन्होंने कभी उन नेटवर्कों से कनेक्ट किया है... वे हर जगह हैं।
अस्वीकरण: यह सॉफ्टवेयर केवल शैक्षिक उद्देश्यों के लिए है। इसका उपयोग अवैध गतिविधियों के लिए नहीं किया जाना चाहिए। लेखक इसके उपयोग के लिए जिम्मेदार नहीं है। मूर्ख मत बनो।
# clone the repo
git clone https://github.com/brannondorsey/mitm-router
cd mitm-router
# build the image this step can be omitted if you prefer to pull
# the image from the docker hub repository
docker build . -t brannondorsey/mitm-router
निम्नलिखित चलाएं, AP_IFACE और INTERNET_IFACE को अपने वायरलेस डिवाइस और इंटरनेट से जुड़े ईथरनेट/वायरलेस डिवाइसों से बदलें। आप ifconfig चलाकर अपने नेटवर्क डिवाइसों के नाम देख सकते हैं।
# run the container
docker run -it --net host --privileged \
-e AP_IFACE="wlan0" \
-e INTERNET_IFACE="eth0" \
-e SSID="Public" \
-v "$(pwd)/data:/root/data" \
brannondorsey/mitm-router
यदि सब ठीक रहा, तो आपको कुछ इस तरह दिखना चाहिए:
Current MAC: a5:ae:f9:a4:b7:e3 (TP-LINK TECHNOLOGIES CO.,LTD.)
Permanent MAC: a5:ae:f9:a4:b7:e3 (TP-LINK TECHNOLOGIES CO.,LTD.)
New MAC: 00:d2:6b:d5:fe:bd (PHOTRON USA)
[ ok ] Starting system message bus: dbus.
[ ok ] Starting DNS forwarder and DHCP server: dnsmasq.
[ ok ] Starting advanced IEEE 802.11 management: hostapd.
Proxy server listening at http://0.0.0.0:1337
mitm-router पारदर्शी रूप से राउटर 10.0.0.1:80 पर भेजे गए सभी HTTP ट्रैफिक को कैप्चर करता है। यह HTTPS ट्रैफिक (पोर्ट 443) को नहीं रोकता क्योंकि ऐसा करने से उपयोगकर्ता को संभावित मैन-इन-द-मिडल हमले के बारे में सचेत हो जाएगा। https:// से शुरू होने वाले URL के बीच का ट्रैफिक कैप्चर नहीं किया जाएगा।
mitm-router/data/ फ़ोल्डर डॉकर कंटेनर के साथ साझा किया जाता है ताकि हम उन कैप्चर फ़ाइलों को देख सकें जो वह हमारे होस्ट मशीन पर रखता है। डिफ़ॉल्ट रूप से, आपको mitmdump कैप्चर फ़ाइल mitm-router/data/http-traffic.cap में मिलेगी।
आप अपने INTERNET_IFACE को अपने फोन पर चल रहे हॉटस्पॉट से भी कनेक्ट कर सकते हैं ताकि चलते-फिरते mitm पोनेज किया जा सके ;)
यदि कुछ गलत लगता है, तो समस्या निवारण पृष्ठ देखें।
iptable रूटिंग नियमों को रीसेट करने के लिए डॉकर कंटेनर को नीचे लाएं।
# get the name of your container
docker ps
# attach to the container
docker stop <CONTAINER_NAME>
Proxy server listening at http://0.0.0.0:1337
[ ok ] Stopping DNS forwarder and DHCP server: dnsmasq.
[ ok ] Stopping advanced IEEE 802.11 management: hostapd.
[ ok ] Stopping system message bus: dbus.
received shutdown signal, exiting.
डिफ़ॉल्ट रूप से, mitm-router आपके नेटवर्क डिवाइस को गुमनाम करने के लिए आपके AP_IFACE के MAC पते को रैंडमाइज़ करता है। इसे MAC="unchanged" पर्यावरण चर के साथ अक्षम किया जा सकता है। आप MAC="XX:XX:XX:XX:XX:XX" के साथ AP_IFACE MAC पते को स्पष्ट रूप से भी सेट कर सकते हैं।
समर्थित पर्यावरण चर उनके डिफ़ॉल्ट मानों के साथ नीचे सूचीबद्ध हैं:
# wireless device name that will be used for the Access Point
AP_IFACE="wlan0"
# device name that is used for the router's internal internet connection
# packets from AP_IFACE will be forwarded to this device
INTERNET_IFACE="eth0"
# wireless network name
SSID="Public"
# optional WPA2 password; if left empty network will be public
PASSWORD=""
# optional randomization of AP_IFACE MAC address
# can be set to a specific value like "XX:XX:XX:XX:XX:XX"
# or "unchanged" to leave the device MAC alone
MAC="random"
# tcpdump output file location inside the container
CAPTURE_FILE="/root/data/http-traffic.cap"
# optional mitmproxy filter
# see http://docs.mitmproxy.org/en/stable/features/filters.html
FILTER=""
अधिक जानकारी के लिए समस्या निवारण पृष्ठ देखें।
यह एक्सेस पॉइंट आइसोलेशन के लिए डॉकर के अंदर चलता है, यह सुनिश्चित करता है कि एक्सेस पॉइंट में शोषणीय होने वाली कोई भी कमजोरी किसी प्रतिद्वंद्वी को आपके कंप्यूटर या होम नेटवर्क तक पहुंचने की अनुमति नहीं देगी। यह कहने के बाद, कुछ बातों का ध्यान रखना चाहिए:
--net host होस्ट मशीन से सभी नेटवर्क इंटरफेस और iptables प्रविष्टियों को डॉकर कंटेनर के साथ साझा करता है। मान लें कि एक कमजोर डॉकर कंटेनर को इन उपकरणों तक रूट पहुंच होगी।--privileged मोड में चलाने से डॉकर कंटेनर को विस्तारित अनुमतियां मिलती हैंufw लिनक्स पर) का उपयोग करें ताकि "Public" नेटवर्क पर कंप्यूटर आपकी मशीन की उजागर सेवाओं तक पहुंच न सकें।अतिरिक्त सुरक्षा के लिए, मैं इस डॉकर कंटेनर को एक समर्पित कंप्यूटर, जैसे रास्पबेरी पाई पर चलाना पसंद करता हूं।
यह कोड simonschuang के rpi-hostapd के हार्ड फोर्क के रूप में शुरू हुआ। कोड को mitm उद्देश्यों के लिए भारी रूप से संशोधित किया गया है।