
Invoke-ArgFuscator is an open-source, cross-platform PowerShell module that helps generate obfuscated command-lines for common system-native executables.
░█░█▄░█░█▒█░▄▀▄░█▄▀▒██▀░▒░ ▄▀▄▒█▀▄░▄▀▒▒█▀░█▒█░▄▀▀░▄▀▀▒▄▀▄░▀█▀░▄▀▄▒█▀▄░ ░█░█▒▀█░▀▄▀░▀▄▀░█▒█░█▄▄░▀▀░█▀█░█▀▄░▀▄█░█▀░▀▄█▒▄██░▀▄▄░█▀█░▒█▒░▀▄▀░█▀▄░
Invoke-ArgFuscator هي وحدة PowerShell مفتوحة المصدر ومتعددة المنصات تساعد في توليد أسطر أوامر مُعمّاة للملفات التنفيذية الشائعة المضمّنة في النظام عبر ويندوز ولينكس وماك.
👉 استخدم النسخة التفاعلية من ArgFuscator على ArgFuscator.net 🚀
تعمية سطر الأوامر (T1027.010) هي إخفاء النيّة الحقيقية لأمر ما من خلال التلاعب بسطر أوامر العملية. في كل من ويندوز ولينكس وماك، تقوم العديد من التطبيقات بتحليل وسيطات سطر الأوامر الممرّرة إليها بطرق غير متوقعة، مما يؤدي إلى حالات لا يؤدي فيها إدراج أو حذف و/أو استبدال أحرف معيّنة إلى تغيير تدفّق تنفيذ البرنامج. من المرجّح أن تُحبِط تعمية سطر الأوامر الناجحة الإجراءات الدفاعية مثل برامج مكافحة الفيروسات (AV) وأدوات كشف النقاط الطرفية والاستجابة (EDR)، وفي بعض الحالات تتجاوز الكشف تماماً.
على الرغم من أن الأبحاث السابقة سلّطت الضوء على مخاطر تعمية سطر الأوامر، وفي معظمها بأمثلة قصصية لتطبيقات (مضمّنة في النظام) معرّضة للخطر، إلا أن هناك فراغاً معرفياً يحيط بهذه التقنية. يهدف هذا المشروع إلى سدّ هذه الفجوة من خلال توفير مورد مركزي يوثّق ويعرض تقنيات تعمية سطر الأوامر المختلفة، ويسجّل مدى تأثّر التطبيقات الشائعة بكلٍّ منها.
تعمل هذه الوحدة على أي نظام تشغيل يدعم PowerShell/pwsh؛ ويشمل ذلك ويندوز وماك ولينكس.
brew مثبّتاً مسبقاً، شغّل brew install powershell/tap/powershell لتثبيت أحدث إصدار من PowerShell. للحصول على خيارات تثبيت بديلة، راجع وثائق مايكروسوفت.إنّ أبسط طريقة لتثبيت هذه الوحدة هي عبر أمر PowerShell التالي:
Install-Module -Name Invoke-ArgFuscator
لاستخدام الوحدة، استدعِ الدالة Invoke-ArgFuscator من داخل PowerShell، على سبيل المثال:
a. لمرور سطر أوامر تريد تعميته كوسيطة سطر أوامر (بافتراض أنه مدعوم من ArgFuscator.net):
# Windows
powershell /c "Invoke-ArgFuscator -Command 'certutil /f /urlcache https://www.example.org/ homepage.txt'"
# macOS and Linux
pwsh -c "Invoke-ArgFuscator -Command 'certutil /f /urlcache https://www.example.org/ homepage.txt'"
b. لاستخدام ملفات النماذج الخاصة بك1:
# Windows
powershell /c "Invoke-ArgFuscator -InputFile path\to\file.json"
# macOS and Linux
pwsh -c "Invoke-ArgFuscator -InputFile path/to/file.json"
استنسِخ هذا المستودع إلى جهازك.
استدعِ Invoke-ArgFuscator.ps1 عبر PowerShell، على سبيل المثال:
a. للتشغيل التفاعلي، مرّر مسار ملف نموذج1 عبر الإدخال القياسي (stdin):
# Windows
powershell .\Invoke-ArgFuscator.ps1
# macOS and Linux
pwsh ./Invoke-ArgFuscator.ps1
b. لمرور مسار ملف النموذج1 كوسيطة سطر أوامر:
# Windows
powershell .\Invoke-ArgFuscator.ps1 -InputFile "path\to\file.json"
# macOS and Linux
pwsh ./Invoke-ArgFuscator.ps1 -InputFile "path/to/file.json"
c. لمرور سطر أوامر تريد تعميته كوسيطة سطر أوامر:
لاحظ أن هذا يتطلب وجود مجلد models/ في نفس المجلد الذي يوجد فيه Invoke-ArgFuscator.ps1.
# Windows
powershell .\Invoke-ArgFuscator.ps1 -Command "certutil /f /urlcache https://www.example.org/ homepage.txt"
# macOS and Linux
pwsh ./Invoke-ArgFuscator.ps1 -Command "certutil /f /urlcache https://www.example.org/ homepage.txt"
نظراً لأن Invoke-ArgFuscator وحدة PowerShell، يمكنك إضافة وظائف هذا المشروع إلى مشروع PowerShell الخاص بك.
للاستفادة من Invoke-ArgFuscator، أضِف
Import-Module Invoke-ArgFuscator
إلى ملف PowerShell الخاص بك، واستدعه بإحدى الطريقتين التاليتين:
Invoke-ArgFuscator -InputFile $InputFile -n $n
Invoke-ArgFuscator -Command $Command -Platform $Platform -n $n
مع
$InputFile قيمة string تحتوي على مسار ملف (نسبي/مطلق) لملف النموذج، و$Profile عدداً صحيحاً أكبر من أو يساوي 0 يمثّل فهرس الملف التعريفي ضمن مسار الملف المُقدَّم الذي يجب استهدافه (اختياري)، و$n عدداً صحيحاً أكبر من 0 لعدد بدائل سطر الأوامر المُعمّاة المكافئة التي يجب توليدها (اختياري)؛ أو،$Command قيمة string تحتوي على سطر الأوامر الذي ترغب في تعميته، و$Platform قيمة string تحتوي على المنصة ذات الصلة (مثل windows، اختياري)، و$n عدداً صحيحاً أكبر من 0 لعدد بدائل سطر الأوامر المُعمّاة المكافئة التي يجب توليدها (اختياري).يمكن توليد ملفات النماذج هذه عبر ArgFuscator.net من خلال خيار 'Download'، أو تنزيلها من GitHub. ↩ ↩2 ↩3