
MITM के माध्यम से बाइनरी पैच करें: BackdoorFactory + mitmProxy।
BLOG: http://secureallthethings.blogspot.com/2017/08/closing-door-end-of-backdoor-factory.html
केवल सुरक्षा पेशेवरों और शोधकर्ताओं के लिए।
###अब केवल v.0.17 >= MITMPROXY >= v.0.11 के साथ काम करता है
Docker:
# sudo echo 1 > /proc/sys/net/ipv4/ip_forward # linux
# sudo sysctl -w net.inet.ip.forwarding=1 # macOS
docker pull secretsquirrel/bdfproxy
docker run -it -p 8080:8080 secretsquirrel/bdfproxy bash
# ./bdf_proxy.py
Kali पर स्थापित करने के लिए:
apt-get update
apt-get install bdfproxy
Black Hat USA 2015:
Video: https://www.youtube.com/watch?v=OuyLzkG16Uk
Paper: https://www.blackhat.com/docs/us-15/materials/us-15-Pitts-Repurposing-OnionDuke-A-Single-Case-Study-Around-Reusing-Nation-State-Malware-wp.pdf
DerbyCon 2014:
Video: http://www.youtube.com/watch?v=LjUN9MACaTs
लगभग 18 मिनट के बाद BDFProxy वाला भाग है।
डेवलपर से संपर्क करें:
IRC:
irc.freenode.net #BDFactory
Twitter:
@midnite_runr
यह स्क्रिप्ट उपयोग के लिए दो लाइब्रेरीज़ पर निर्भर है: The Backdoor Factory (BDF) और mitmProxy।
###अवधारणा: डाउनलोड के दौरान बाइनरी को MITM शैली में पैच करें।
###क्यों: क्योंकि कई सुरक्षा उपकरण वेबसाइटें अभी भी बाइनरी को गैर-SSL/TLS माध्यम से सर्व करती हैं।
यहाँ एक छोटी सूची है:
sysinternals.com
Microsoft - MS Security Essentials
लगभग सभी एंटी-वायरस कंपनियाँ
Malwarebytes
Sourceforge
gpg4win
Wireshark
आदि...
हाँ, उनमें से कुछ ऐप्स स्व-जाँच तंत्र द्वारा सुरक्षित हैं। मैं एक प्रमाण-अवधारणा के रूप में NSIS जाँच को स्वचालित रूप से बायपास करने के तरीके पर काम कर रहा हूँ। हालाँकि, यह डाउनलोड के दौरान बिट फ़्लिपिंग और दुर्भावनापूर्ण पेलोड के निष्पादन की प्रारंभिक समस्या को नहीं रोकता है। साथ ही, BDF डिफ़ॉल्ट रूप से डाउनलोड के दौरान विंडोज़ PE प्रमाणपत्र तालिका पॉइंटर को पैच कर देगा, जिससे बाइनरी से हस्ताक्षर हट जाएगा।
##निर्भरताएँ:
Pefile - सबसे नया
ConfigObj
mitmProxy - Kali Build .10
BDF - सबसे नया
Capstone (BDF का हिस्सा)
##समर्थित वातावरण: सभी Kali Linux बिल्ड्स पर परीक्षण किया गया है, चाहे वह एक भौतिक शक्तिशाली लैपटॉप हो, Raspberry Pi, या VM, प्रत्येक BDFProxy चला सकता है।
##स्थापना: BDF bdf/ में है
सबसे नया संस्करण प्राप्त करने के लिए निम्नलिखित चलाएँ:
./install.sh
या:
git clone https://github.com/secretsquirrel/the-backdoor-factory bdf/
यदि आपको प्रमाणपत्र त्रुटि मिलती है, तो निम्नलिखित चलाएँ:
mitmproxy
और mitmProxy लोड होने के बाद [Ctr+C] से बाहर निकलें।
##उपयोग: प्रत्येक उपयोग से पहले सब कुछ अपडेट करें:
./update.sh
CONFIG पढ़ें!!!
-->bdfproxy.cfg
BDFProxy चलाने से पहले आपको अपनी C2 होस्ट और पोर्ट सेटिंग्स कॉन्फ़िगर करनी होंगी। विभिन्न पेलोड के बीच C2 PORT सेटिंग्स को ओवरलैप न करें। आप विंडोज़ मशीनों पर लिनक्स शेल भेज रहे होंगे और चीज़ें हर जगह segfault होंगी। चलाने के बाद, आपके C2 संचार को स्थापित करने में मदद के लिए एक metasploit रिसोर्स स्क्रिप्ट बनाई जाएगी। इसे ध्यान से जाँचें। वैसे, [Overall] अनुभाग के बाहर की हर चीज़ तुरंत अपडेट होती है, इसलिए अपने वातावरण के साथ काम करने के लिए सेटिंग्स बदलने हेतु आपको अपना प्रॉक्सी बंद करने की आवश्यकता नहीं है।
लेकिन रुकिए! आपको अपनी mitm मशीन को mitm-ing के लिए कॉन्फ़िगर करना होगा! यदि आप wifiPineapple का उपयोग कर रहे हैं, तो मैंने hack5 द्वारा जारी एक स्क्रिप्ट को संशोधित किया है जो कॉन्फ़िगरेशन में आपकी मदद करेगी। ./wpBDF.sh चलाएँ और अपने वातावरण के लिए सही कॉन्फ़िग दर्ज करें। यह स्क्रिप्ट iptables को कॉन्फ़िगर करती है ताकि केवल http (गैर-ssl) ट्रैफ़िक को प्रॉक्सी के माध्यम से भेजा जा सके। बाकी सभी ट्रैफ़िक सामान्य रूप से फ़ॉरवर्ड किया जाता है।
फिर:
./bdf_proxy.py
प्रॉक्सी की संभावित भौतिक सेटिंग्स के लिए यहाँ कुछ बढ़िया ascii कला है:
Lan उपयोग:
<Internet>----<mitmMachine>----<userLan>
Wifi उपयोग:
<Internet>----<mitmMachine>----<wifiPineapple>))
##परीक्षण:
मान लीजिए कि आप अपने सेटअप का परीक्षण करने के लिए Firefox और FoxyProxy के साथ अपने ब्राउज़र का उपयोग करना चाहते हैं।
अपने कॉन्फ़िग को इस प्रकार अपडेट करें:
transparentProxy = None
FoxyProxy को BDFProxy को एक प्रॉक्सी के रूप में उपयोग करने के लिए कॉन्फ़िगर करें।
कॉन्फ़िग में डिफ़ॉल्ट पोर्ट 8080 है।
##लॉगिंग:
हमारे पास है। आप जिस क्लाइंट का परीक्षण कर रहे हैं उसके आधार पर प्रॉक्सी विंडो जल्दी से भारी मात्रा में cat लिंक्स से भर जाएगी। देखने के लिए tail -f proxy.log का उपयोग करें कि आपकी ब्लैकलिस्ट सेटिंग्स द्वारा क्या पैच और ब्लॉक किया जा रहा है। हालाँकि, यदि आपने बाइनरी को मैन्युअल रूप से पैच करना चुना है तो मुख्य प्रॉक्सी विंडो पर नज़र रखें, चीज़ें तेज़ी से चलती हैं और पर्दे के पीछे ट्रैफ़िक की मल्टी-थ्रेडिंग होती है, लेकिन प्रारंभिक अनुरोध और प्रतिक्रियाएँ आपके देखने के आनंद के लिए लॉक होती हैं।
##हमले के परिदृश्य (सभी लक्ष्यों की अनुमति के साथ): -Evil Wifi AP -Arp Redirection -वायरिंग क्लोज़ेट में भौतिक संयंत्र -आपके पसंदीदा ISP पर लॉजिकल संयंत्र
##बग रिपोर्टिंग
बग होते हैं, लेकिन यदि मैं आपकी समस्या नहीं समझ सकता, तो मैं आपकी मदद नहीं कर सकता।
यहाँ मुद्दे सबमिट करें: https://github.com/secretsquirrel/BDFProxy/issues
इन कमांड्स के आउटपुट से निम्नलिखित जानकारी शामिल करें (लंबे कमांड्स के लिए pastebin का उपयोग करें):
# bdfproxy केवल v11 -> v17 का समर्थन करता है
$ mitmproxy --version
$ uname -a
# शायद pastebin उपयोग करें
$ cat bdfproxy.cfg
$ ./bdf_proxy.py
###परिवर्तन लॉग:
####07/04/2016
BDF Preprocessor और mitmProxy v17 के लिए समर्थन
####12/20/2015
BDF => CODE_SIGN से PE कोड साइनिंग का समर्थन करने के लिए bdfproxy.cfg में कॉन्फ़िगरेशन विकल्प जोड़े गए विवरण के लिए BDF README देखें
####11/13/2015
python-magic निर्भरताएँ हटाई गईं क्योंकि इस नाम की दो लाइब्रेरीज़ हैं। जो भ्रमित करने वाला है।
####10/19/2015
नए अनुभाग के बजाय कोड गुफा में BDF Import Directory Patching के लिए समर्थन जोड़ा गया। इसके लिए bdfproxy.cfg फ़ाइल में IDA_IN_CAVE को True में अपडेट करें। प्रयोगात्मक...
####8/12/2015
PE replace विधि के लिए समर्थन जोड़ा गया, डाउनलोड की गई बाइनरी को हमलावर द्वारा प्रदान की गई बाइनरी से बदलें। उपयोग करने के लिए PATCH_METHOD को replace में बदलें और SUPPLIED_BINARY प्रदान करें
####8/6/2015
onionduke के लिए समर्थन जोड़ा गया। उपयोग करने के लिए PATCH_METHOD को onionduke में बदलें और SUPPLIED_BINARY को उस बाइनरी पर सेट करें जिसे आप लक्ष्य निष्पादन योग्य से बाँधना चाहते हैं।
x86 और x86_64 दोनों PE बाइनरीज़ के लिए PE मैनिफेस्ट में requestedExecutionLevel को highestAvailable के रूप में जाँचने और पैच करने की सेटिंग के लिए समर्थन जोड़ा गया। RUNAS_ADMIN को True के रूप में सेट करें।
XP_MODE फ़्लैग के माध्यम से लीगेसी XP मशीनों का समर्थन करने की सेटिंग के लिए समर्थन जोड़ा गया। यदि यह सेटिंग FALSE पर सेट है तो यह AVs के विरुद्ध evasion हो सकता है क्योंकि उनके इम्यूलेटर विफल हो सकते हैं।