Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
Invoke-Obfuscation — مشفر PowerShell | Kitploit
أدوات/GitHubGitHub/danielbohannon/invoke-obfuscation
أدوات دفاعيةتوليد الحمولةالتعلم والتعليمالفريق الأحمر
GitHubdanielbohannon/invoke-obfuscation

Invoke-Obfuscation

مشفر PowerShell

عرض المستودع
4.3k815منذ 7 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

Invoke-Obfuscation v1.8

لقطة شاشة Invoke-Obfuscation

مقدمة

Invoke-Obfuscation هي أداة تشويش لأوامر ونصوص PowerShell متوافقة مع الإصدار v2.0+.

خلفية

في خريف عام 2015، قررت البدء في البحث عن مرونة لغة PowerShell وبدأت في فهرسة الطرق المختلفة لتحقيق مجموعة من التقنيات الشائعة التي يستخدمها معظم المهاجمين بشكل منتظم.

في البداية، ركزت على تركيبات الأوامر المشفرة وأوامر التحميل عن بُعد (download cradle)، واكتشفت أن العديد من أحرف الهروب التي لا تعيق تنفيذ الأمر تبقى في وسائط سطر الأوامر، سواء في العملية الجارية أو فيما يتم تسجيله في سجلات الأحداث Security EID 4688 و Sysmon EID 1. قادني هذا إلى استكشاف طرق منهجية لتشويش كل نوع من "الرموز" (token) الموجودة في أي أمر أو نص PowerShell.

ثم استكشفت طرقًا أكثر غموضًا لتشويش على مستوى السلاسل النصية، وتقنيات ترميز/تشفير مختلفة (مثل ASCII/hex/octal/binary وحتى SecureString)، وأخيرًا تقنيات تشغيل PowerShell لتجريد وسائط سطر الأوامر من powershell.exe ودفعها إلى العملية الأم وحتى العملية الجد.

الغرض

بدأ المهاجمون والبرامج الضارة في استخدام تقنيات تشويش أساسية جدًا لإخفاء الجزء الأكبر من الأمر عن وسائط سطر الأوامر الخاصة بـ powershell.exe. قمت بتطوير هذه الأداة لمساعدة الفريق الأزرق (Blue Team) في محاكاة الأوامر المشوشة بناءً على ما أعرفه حاليًا أنه ممكن نحويًا في PowerShell 2.0-5.0، حتى يتمكنوا من اختبار قدراتهم على اكتشاف هذه التقنيات.

الغرض الوحيد من الأداة هو كسر أي افتراضات قد تكون لدينا كمدافعين حول كيفية ظهور أوامر PowerShell على سطر الأوامر. أملي هو أن تشجع الفريق الأزرق على التحول إلى البحث عن مؤشرات التشويش على سطر الأوامر بالإضافة إلى تحديث تسجيل PowerShell ليشمل تسجيل الوحدات (Module)، وسكريبت بلوك (ScriptBlock)، والنسخ الحرفي (Transcription)، حيث أن هذه المصادر تبسط معظم جوانب تقنيات التشويش التي تنتجها هذه الأداة.

الاستخدام

على الرغم من أن جميع طبقات التشويش قد تم بناؤها في نصوص منفصلة، إلا أن معظم المستخدمين سيجدون أن وظيفة Invoke-Obfuscation هي أسهل طريقة لاستكشاف وتصور تقنيات التشويش التي يدعمها هذا الإطار حاليًا.

التثبيت

الكود المصدري لـ Invoke-Obfuscation مستضاف على Github، ويمكنك تنزيله، عمل fork له، ومراجعته من هذا المستودع (https://github.com/danielbohannon/Invoke-Obfuscation). يرجى الإبلاغ عن المشكلات أو طلبات الميزات من خلال متتبع الأخطاء الخاص بـ Github المرتبط بهذا المشروع.

للتثبيت:

root@kitploit:~
Import-Module ./Invoke-Obfuscation.psd1
Invoke-Obfuscation

الترخيص

تم إصدار Invoke-Obfuscation بموجب ترخيص Apache 2.0.

ملاحظات الإصدار

v1.0 - 2016-09-25 DerbyCon 6.0 (Louisville, Kentucky USA): إصدار عام لـ Invoke-Obfuscation.

v1.1 - 2016-10-09 SANS DFIR Summit (Prague, Czech Republic): تمت إضافة وظيفة إعادة ترتيب عامل التنسيق -f لجميع وظائف تشويش TOKEN المناسبة. كما تمت إضافة خيارات تركيب إضافية لتعيين قيم المتغيرات.

v1.2 - 2016-10-20 CODE BLUE (Tokyo, Japan): تمت إضافة تشويش على نوع TOKEN (التحويل المباشر للنوع مع خيارات تشويش سلسلة نصية لاسم النوع).

v1.3 - 2016-10-22 Hacktivity (Budapest, Hungary): تمت إضافة اثنين من LAUNCHERs جديدين: CLIP+ و CLIP++. كما تمت إضافة صيغة تحويل مصفوفة أحرف إضافية (وأبسط) لجميع وظائف ENCODING لا تتطلب For-EachObject/%.

v1.4 - 2016-10-28 BruCON (Ghent, Belgium): تمت إضافة وظيفة ENCODING جديدة BXOR. كما تم تحسين الحالة العشوائية لجميع مكونات جميع وظائف ENCODING وكذلك لأعلام تنفيذ PowerShell لجميع LAUNCHERs. أخيرًا، تمت إضافة خيار اختصار -EP لـ -ExecutionPolicy لجميع LAUNCHERs بالإضافة إلى التمثيل العددي الاختياري لعلم تنفيذ PowerShell -WindowStyle: عادي (0)، مخفي (1)، مصغر (2)، معظم (3).

v1.5 - 2016-11-04 Blue Hat (Redmond, Washington USA): تمت إضافة LAUNCHER WMIC مع بعض العشوائية في وسائط سطر أوامر WMIC.

v1.6 - 2017-01-24 Blue Hat IL (Tel Aviv, Israel):

  • تمت إضافة وظيفة CLI: مثال: Invoke-Obfuscation -ScriptBlock {Write-Host 'CLI FTW!'} -Command 'Token\All\1, Encoding\1, Launcher\Stdin++\234, Clip' -Quiet -NoExit
  • تمت إضافة وظيفة UNDO لإزالة طبقة تشويش واحدة في كل مرة.
  • تمت إزالة تشويش المسافات البيضاء من Token\All\1 لتسريع تشويش النصوص الكبيرة.
  • تمت إضافة إخراج شجرة وسيطات العملية (Process Argument Tree) لجميع المشغلات لمساعدة المدافعين.
  • تمت إضافة وظيفة الكشف التلقائي عن القائمة الأساسية لتجنب الحاجة إلى استخدام BACK أو HOME: مثال: إذا قمت بتشغيل TOKEN ثم ALL ثم 1، اكتب فقط LAUNCHER وستصل إلى قائمة LAUNCHER دون الحاجة إلى كتابة HOME أو BACK للعودة إلى القائمة الرئيسية.
  • تمت إضافة صيغة متعددة الأوامر تستخدمها CLI والوضع التفاعلي: مثال: Token\All\1, String\3, Encoding\5, Launcher\Ps\234, Clip
  • تمت إضافة إمكانية التعبير العادي (regex) لجميع أوامر القائمة والتشويش: مثال: Token\*\*, String\[13], Encoding\(1|6), Launcher\.*[+]{2}\234, Clip
  • تمت إضافة وظيفة أمر واحد لـ OUT FILEPATH.
  • تمت إضافة فك التشفير إذا تم إدخال صيغة powershell -enc كقيمة SCRIPTBLOCK.
  • تمت إضافة الاسم المستعار ForEach إلى خيارات الصيغة العشوائية لـ ForEach-Object/% في جميع وظائف ENCODING.
  • تمت إضافة خيارات السلسلة الفرعية للمفتاح -Key -Ke -K إلى Out-SecureStringCommand.ps1.
  • تمت إضافة عشوائية حالة أكثر شمولاً لجميع وظائف تشويش \Home\String.
  • تمت إضافة أعلام -ST/-STA (الشقة أحادية الخيط) لوظائف LAUNCHER CLIP+ و CLIP++ لأنها مطلوبة إذا كان التشغيل على PowerShell 2.0.
  • تمت إضافة صيغة Get-Item/GI/Item في كل مكان يُستخدم فيه للحصول على قيم المتغيرات.

v1.7 - 2017-03-03 nullcon (Goa, India):

  • تمت إضافة 3 LAUNCHERs جديدة: RUNDLL، RUNDLL++ و MSHTA++
  • تمت إضافة سلاسل متغيرات بدل ExecutionContext إضافية

v1.8 - 2017-07-27 Black Hat (Las Vegas, Nevada USA):

  • تمت إضافة خيارين ENCODING جديدين: الأحرف الخاصة والمسافات البيضاء

v1.8.1 - 2017-12-19:

  • تمت إضافة وظيفة COMPRESS لتحويل النصوص متعددة الأسطر بسهولة إلى أمر سطر واحد مع تقليل طول الأمر بشكل كبير لأغراض حد طول سطر أوامر cmd.exe.

v1.8.2 - 2018-01-04:

  • تمت إضافة وظائف تشويش AST، والتي تقوم بالتشويش عن طريق معالجة هيكل شجرة النحو المجرد (AbstractSyntaxTree) دون استخدام العديد من الأحرف الخاصة.
تنزيل الأداة
Get-ChildItem
  • تمت إضافة صيغة إنشاء متغير Set-Item إلى وظيفة تشويش TYPE.
  • تمت إضافة صيغ إضافية لـ Invoke-Expression/IEX باستخدام المتغيرات التلقائية لـ PowerShell وتركيب قيم متغيرات البيئة في وظيفة Out-EncapsulatedInvokeExpression التابعة لـ Out-ObfuscatedStringCommand.ps1 ونسخها إلى جميع LAUNCHERs، ووظائف STRING و ENCODING لإضافة العديد من صيغ سطر الأوامر لـ IEX.
  • تمت إضافة صيغتي JOIN جديدتين لـ String\Reverse وجميع خيارات تشويش ENCODING:
    1. إضافة صيغة JOIN باستخدام [String]::Join('',$string)
    2. إضافة صيغة JOIN باستخدام متغير OFS (متغير فاصل الحقول التلقائي Output Field Separator)
  • تمت إضافة صيغتي SecureString إضافيتين إلى Encoding\5:
    1. PtrToStringAnsi / SecureStringToGlobalAllocAnsi
    2. PtrToStringBSTR / SecureStringToBSTR
  • تمت إضافة ست صيغ بديلة لـ GetMember للعديد من أعضاء SecureString:
    1. PtrToStringAuto, ([Runtime.InteropServices.Marshal].GetMembers()[3].Name).Invoke
    2. PtrToStringAuto, ([Runtime.InteropServices.Marshal].GetMembers()[5].Name).Invoke
    3. PtrToStringUni , ([Runtime.InteropServices.Marshal].GetMembers()[2].Name).Invoke
    4. PtrToStringUni , ([Runtime.InteropServices.Marshal].GetMembers()[4].Name).Invoke
    5. PtrToStringAnsi, ([Runtime.InteropServices.Marshal].GetMembers()[0].Name).Invoke
    6. PtrToStringAnsi, ([Runtime.InteropServices.Marshal].GetMembers()[1].Name).Invoke
  • تم تحديث Out-ObfuscatedTokenCommand.ps1 بحيث لا يقوم تشويش VARIABLE بتغليف المتغيرات بين ${} إذا كانت مغلفة بالفعل (لذا لن يحدث ${${var}} لأن ذلك يسبب أخطاء).
  • تم استبدال Invoke-Obfuscation.psm1 بـ Invoke-Obfuscation.psd1 (شكرًا @Carlos_Perez).
  • تم إصلاح العديد من أخطاء تشويش TOKEN التي أبلغ عنها @cobbr_io و @IISResetMe.