#JScript OBF #HTA Attack
یکی از رایجترین حملات, استفاده از فایل فرمت های Front-End هستش فایل فرمت هایی مانند sct-hta-js-xml و غیره اما یکی از چالش هایی که در تمام این فایل فرمت ها وجود دارد بحث شناسایی پترنی هستش که در خصوص initialize کردن یک #COM_Object برای اجرای پایلودهای پاورشی ایجاد میشود,
از این روی یکی از تکنیک های جالبی که میتوان استفاده کرد این است که ما مقادیر مربوط به مثلا نام #COM_Object هارا بصورت هگزادسیمال تعریف کرده و پروسه Initialize کردن آنرا بر بستر نام هایی انجام دهیم که بوصورت هگزادسیمال درون یک آرایه ریخته شده و سپس براساس موقعیت قرارگیری آنها در آرایه آنهارا فراخوانی کنیم,
این امر میتواند به بحث شناسایی نشدن پایلود کمک کند و البته اگر بیشتر به این موضوع پرداخته شود میتوان پایلود رو به Evasion شدن ۱۰۰٪ نزدیک نمود....
@Unk9vvN
یکی از رایجترین حملات, استفاده از فایل فرمت های Front-End هستش فایل فرمت هایی مانند sct-hta-js-xml و غیره اما یکی از چالش هایی که در تمام این فایل فرمت ها وجود دارد بحث شناسایی پترنی هستش که در خصوص initialize کردن یک #COM_Object برای اجرای پایلودهای پاورشی ایجاد میشود,
از این روی یکی از تکنیک های جالبی که میتوان استفاده کرد این است که ما مقادیر مربوط به مثلا نام #COM_Object هارا بصورت هگزادسیمال تعریف کرده و پروسه Initialize کردن آنرا بر بستر نام هایی انجام دهیم که بوصورت هگزادسیمال درون یک آرایه ریخته شده و سپس براساس موقعیت قرارگیری آنها در آرایه آنهارا فراخوانی کنیم,
این امر میتواند به بحث شناسایی نشدن پایلود کمک کند و البته اگر بیشتر به این موضوع پرداخته شود میتوان پایلود رو به Evasion شدن ۱۰۰٪ نزدیک نمود....
@Unk9vvN
#CVE-2025-30397 #JScript #UAF
تشریح اکسپلویتی برای مرورگر هایی که از موتور اجرایی
تکنیک اول: تعریف 16 بیت NOP برای ابتدای Shellcode اصلی، دوم تعریف Shellcode بصورت
تکنیک دوم: ایجاد یک حلقه
یک
به
در تابع
در انتها دقت کنید، تگ
@Unk9vvN
تشریح اکسپلویتی برای مرورگر هایی که از موتور اجرایی
JScript.dll
استفاده میکنند مانند IE 11 ویندوز.تکنیک اول: تعریف 16 بیت NOP برای ابتدای Shellcode اصلی، دوم تعریف Shellcode بصورت
unescape
.تکنیک دوم: ایجاد یک حلقه
for
برای اجرای تکنیک Heap Spray در حافظه Heap برای ایجاد یک فضای مناسب که بتوان در ارجاع دوم Pointer، اقدام به بازنویسی Shellcode کرده برای اجرا.یک
Element
از نوع iframe
ساخته میشود، و src
میشود به about:blank
، اینجا یک حافظه Heap رزرو خواهد شد.به
body
آن sprayTarget
وصل شده، و یک حلقه for
ساخته شده و داخل اون try
زده شده و درون اون contentWindow
میاد یک کد JS رو در eval
اجرا خواهد کرد.در تابع
eval
یک کد JS که final
درش هست که final
حاوی shellcode
بوده، اجرا میشود، همچنین در ادامه یک حلقه for
دیگر تعریف شده که تگ div
یک obj
تعریف شده که با innerHTML
یک Spray نیز اینجا انجام میشود.در انتها دقت کنید، تگ
object
دوباره در victim
تعریف شده و باز به body
اتچ شده است، اینجا UAF رخ خواهد داد و شلکد قبلا نوشته شده اجرا میشود.@Unk9vvN