Skip to content

ONHEXGROUP

اخبار دنیای امنیت سایبری

  • اخبار
    • آسیب پذیری امنیتی
    • آنالیز بدافزار
    • کنفرانس ،دوره ، وبینار ، لایو ، CTF
    • بازیگران تهدید
    • توسعه اکسپلویت
    • افشای اطلاعات
    • باگ بانتی
    • تیم آبی
    • تیم قرمز
    • امنیت وب
  • دوره های آموزشی
    • دوره رایگان مهندسی معکوس نرم افزار
  • لیست های ویژه
    • موتورهای جستجو برای امنیت سایبری
    • کاتالوگ KEV آژانس CISA
    • آسیب پذیری های وردپرس
      • آسیب پذیری پلاگین ها
      • آسیب پذیری های هسته
      • آسیب پذیری تم ها
    • محصولات خارج از پشتیبانی مایکروسافت
      • محصولات مایکروسافتی که در سال 2022 پشتیبانی نمیشن
      • محصولات مایکروسافتی که در سال 2023 پشتیبانی نمیشن
      • لیست محصولات مایکروسافتی که در سال 2024 پشتیبانی نمیشن
      • لیست محصولات مایکروسافتی که در سال 2025 پشتیبانی نمیشن
    • معرفی فیلم ها و سریالهای مرتبط با هک و امنیت
  • آموزش های ویدیویی
  • انتشارات
    • مجله
    • مقالات
    • پادکست
  • پروژه ها
    • ماشین آسیب پذیر
      • وردپرس آسیب پذیر
  • حمایت مالی ( Donate)
  • تماس با ما
 
  • Home
  • اخبار
  • استفاده از AI برای دیکامپایل Opcodeهای PHP
  • اخبار
  • امنیت وب

استفاده از AI برای دیکامپایل Opcodeهای PHP

On مهر 24, 1403
seyyid
Share
زمان مطالعه: 5 دقیقه

با توجه به پیشرفتهایی که در زمینه ی هوش مصنوعی صورت گرفته، این حوزه تبدیل به ابزاری کاربردی برای سایر رشته ها، از جمله امنیت سایبری شده. برای مثال قبلا در این پست، با استفاده از پلاگین Aidapal و هوش مصنوعی، کدهای دیکامپایل شده توسط IDA Pro رو به متن تبدیل کردیم.

در این پست، تحقیق اخیر محققای Ptsecurity رو بررسی کردیم که با استفاده از چت باتهای هوش مصنوعی، اپکدهای PHP رو به کدهای PHP تبدیل کردن.

 

برخی اوقات موقع جستجوی آسیب پذیری ها، با کدهای PHP محافظت شده روبرو میشیم. این کار اغلب با انکدرهای (Encoder) تجاری انجام میشه. این انکدرها یک کار ساده انجام میدن: سورس کد رو بصورت بایت کدهای Zend Engine کامپایل میکنن و بعدش اونو انکد میکنن. نتیجه مبهم سازی، یک چیزی مثله شکل زیر میشه:

 

خروجی مبهم شده PHP

 

متاسفانه ابزار متن باز یا رایگانی برای دیکد کردن، اسکریپتهای محافظت شده PHP، با انکدرهای تجاری وجود نداره. همونطور که دیکامپایلری برای بایت کدهای Zend VM وجود نداره. با این وجود آیا میشه کاری کرد؟ در این تحقیق این قضیه رو بررسی میکنیم.

 

نگاهی به Zend Engine:

Zend Engine نقش کلیدی در اجرای اسکریپتهای PHP بازی میکنه، این موتور هم بعنوان کامپایلر و هم بعنوان محیط اجرا، عمل میکنه. اجرای یک اسکریپت PHP با تجزیه سورس کدهای اون شروع میشه و بعدش به یک Abstract Syntax Tree (AST) تبدیل میشه. در ادامه، AST به اپکدهای (Opcode) ماشین مجازی Zend تبدیل و در نهایت اجرا میشه.

درخت نحو انتزاعی (Abstract Syntax Tree) یا به اختصار AST، یک ساختار داده درختی هستش که برای نمایش ساختار نحوی یک برنامه استفاده میشه. این ساختار، یک نمایش انتزاعی از سورس کد هستش و جزئیات سطح پایینی مانند علائم نگارشی و فاصله‌ها رو حذف میکنه.

برای مثال، کد PHP زیر رو در نظر بگیرید:

 

PHP
1
$X=2+3

 

AST این کد، ممکنه به این صورت باشه:

 

1
2
3
4
5
     =
    / \
   +   X
  / \
3   2

 

نحوه ی کار Zend Engine

 

همونطور که بالا اشاره شد، انکدرهای تجاری، به غیر از مرحله ی آخر که اجرای اپکدها هستش، همه ی مراحل رو انجام میدن. به جای این کار، اونارو همراه با متادیتاهاشون سریالایز میکنن، blob حاصل رو انکد میکنن و اونارو در یک اسکریپت بوت استرپ قرار میدن.

هنگام اجرای اسکریپت انکد شده، عملیات معکوس رخ میده: دیکد و سریالایز کردن blob، بارگذاری اپکدها و متادیتاهای اونا در ماشین مجازی Zend و در نهایت، اجرای اپکدها.

 

 

در حقیقت کدهای PHP (قسمت 1)، تبدیل به اپکدها میشن و این اپکدها هم به بایت کدها که بصورت هگز هستن (قسمت 3) تبدیل میشن. از طریق ابزار OPcache میتونید بایت کدها رو ببینید، از طریق ابزارهای دیس اسمبلر VLD (Vulcan Logic Disassembler) میتونید این بایت کدهارو آنالیز کنید و اپکدها رو مشاهده کنید.

 

 

دیکد و دیس اسمبل کردن:

پس از درک اصل کار، انکدرهای تجاری، قدم بعدی ما اینه که چطوری اپکدها و متادیتاهای اونارو از یک blob انکد شده استخراج کنیم. نویسنده این چالش رو به عهده ی خواننده گذاشته. برای این منظور اینجارو چک کنید.

در این مطالعه، محقق لودر یکی از پرکاربردترین انکدرهای تجاری PHP رو آنالیز کرده و تونسته ابزاری توسعه بده که امکان استخراج و دیس اسمبل کردن، اپکدهای Zend Engine از اسکریپت‌های PHP انکد شده رو فراهم میکنه.

سورس کد:

 

PHP
1
2
3
4
5
6
7
<?php
 
function get_hello_text($name) {
    return "Hello, " . $name;
}
 
echo get_hello_text("PT SWARM");

 

استخراج و پیاده سازی اپکدها از کدهای انکد شده ی بالا :

 

دیکد اسکریپت PHP

 

محقق اعلام کرده که همین کار، برای کشف آسیب پذیری و آنالیز کافیه، اما برای اینکه کار رو ساده تر کنه، خواسته این کدهارو هم تبدیل به کد معمولی PHP کنه.

 

مرحله ی دیکامپایل کردن:

توسعه ی دیکامپایلر، برای ماشین مجازی Zend، یک کار دشواری هستش. بیش از 200 اپکد وجود داره که کار توسعه رو سخت میکنه.

محقق گفته برای این کار میتونستم از زبان SLEIGH در Ghidra استفاده کنم، چیزی که اینجا برای v8 انجام دادن، اما دنبال یک راه ساده تر بوده.

Ghidra یک ابزار قدرتمند مهندسی معکوس هستش که توسط آژانس امنیت ملی آمریکا (NSA) توسعه داده شده. SLEIGH یک زبان توصیفی هستش که در Ghidra، برای توصیف ساختار و رفتار انواع مختلف پردازنده‌ها و فرمتهای فایل استفاده میشه. با استفاده از SLEIGH، میشه به Ghidra آموزش داد تا کدهای ماشین رو بصورت نمادین نمایش بده و تحلیل کنه.

 

هوش مصنوعی:

محقق برای سرگرمی، از چت بات Copilot مایکروسافت، خواسته تا اپکدهای Zend Engine رو دیکامپایل کنه.

 

استفاده از هوش مصنوعی در امنیت سایبری

 

و نتیجه ای که گرفته:

 

استفاده از هوش مصنوعی برای دیکد کردن ZendEngine

 

با توجه به اینکه، کدها ساده بودن، محقق خواسته یک چیز پیچیده تری رو بررسی کنه.

برای این کار، یک تابع تصادفی از وردپرس رو انتخاب کرده، اونو انکد کرده و در ادامه به اپکدها دیکامپایل و دیس اسمبلر کرده. در نهایت اپکدهای Zend Engine رو به چت بات فرستاده و خواسته تا اونارو به کدهای PHP تبدیل کنه.

 

کدهای انکد شده

 

و نتیجه ای که گرفته:

 

دیکامپایل ZendEngine

 

همین کار رو با تابع RC4 هم انجام داده :

 

کدهای انکد شده

 

و نتیجه ای که گرفته:

 

دیکامپایل ZendEngine با هوش مصنوعی

 

محقق برای اینکه مطمئن بشه، کدهای دیکامپایل شده توسط هوش مصنوعی رو اجرا کرده :

 

اجرای کدهای دیکامپایل شده PHP

 

در نهایت محقق اعلام کرده که کیفیت کدهای دیکامپایل شده توسط چت باتهای مختلف متفاوت بوده. در برخی موارد دقت 100 درصدی داشتن و در برخی موارد کدها مشکلاتی داشتن. همچنین چالش دیگه محدود بودن اندازه ی داده های ارسالی به چت باتها بوده. اگه کدهای ارسالی شما طولانی باشه، با توجه به این محدودیت اندازه، همه ی کدهای شما دیکامپایل نمیشن. برای حل این مشکل میتونید اونارو به قسمتهای کوچک تقسیم کنید، یا فقط قسمتهای مهم رو برای دیکامپایل کردن بفرستید.

با همه ی این مشکلات، به دلیل استفاده ی ساده، این ابزارهای هوش مصنوعی، ارزش وقت گذاشتن رو دارن.

 

منبع

 

 

اشتراک در شبکه های اجتماعی :

Facebook
Twitter
Pinterest
LinkedIn
In اخبار امنیت وبIn PHP , Zend Engine , هوش مصنوعی

راهبری نوشته

بررسی Patch Tuesday مایکروسافت برای اکتبر 2024 (مهر 1403)
هکرهای ایرانی، واسط فروش دسترسی به زیرساختهای حیاتی

دیدگاهتان را بنویسید لغو پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دسته‌ها

  • Osint
  • آسیب پذیری امنیتی
  • آموزش های ویدیویی
  • آنالیز بدافزار
  • اخبار
  • افشای اطلاعات
  • امنیت وب
  • انتشارات
  • اینترنت اشیاء
  • بازیگران تهدید
  • باگ بانتی
  • پادکست
  • پروژه ها
  • توسعه اکسپلویت
  • تیم آبی
  • تیم قرمز
  • دوره های آموزشی
  • فازینگ
  • کنفرانس ،دوره ، وبینار ، لایو ، CTF
  • لیست های ویژه
  • ماشین آسیب پذیر
  • مجله
  • مقالات
  • مهندسی معکوس نرم افزار

بایگانی‌ها

  • می 2025
  • آوریل 2025
  • مارس 2025
  • فوریه 2025
  • ژانویه 2025
  • دسامبر 2024
  • نوامبر 2024
  • اکتبر 2024
  • سپتامبر 2024
  • آگوست 2024
  • جولای 2024
  • ژوئن 2024
  • می 2024
  • آوریل 2024
  • مارس 2024
  • فوریه 2024
  • ژانویه 2024
  • دسامبر 2023
  • نوامبر 2023
  • اکتبر 2023
  • سپتامبر 2023
  • آگوست 2023
  • جولای 2023
  • ژوئن 2023
  • می 2023
  • آوریل 2023
  • مارس 2023
  • فوریه 2023
  • ژانویه 2023
  • دسامبر 2022

پست های مرتبط

  • آنالیز بدافزار
  • اخبار
  • بازیگران تهدید
seyyid
On شهریور 31, 1402مهر 1, 1402

ایران یکی از قربانیان گروه هکری Sandman

  • اخبار
  • افشای اطلاعات
seyyid
On تیر 27, 1402تیر 27, 1402

افشای اطلاعات این بار در VirusTotal

  • آسیب پذیری امنیتی
  • اخبار
seyyid
On آبان 17, 1402آبان 22, 1402

اصلاح 39 آسیب پذیری در بروزرسانی نوامبر اندروید

  • آسیب پذیری امنیتی
  • اخبار
  • باگ بانتی
  • فازینگ
  • کنفرانس ،دوره ، وبینار ، لایو ، CTF
seyyid
On بهمن 16, 1401تیر 25, 1403

افزایش پاداش گوگل برای OSS-Fuzz

درباره ما

بعد از چندین سال فعالیت تو حوزه امنیت سایبری و تولید محتوا در شبکه های اجتماعی ، بالاخره تصمیم گرفتیم تا یه سایت راه اندازی کنیم و مطالب رو ساده تر ، در یک محیط منسجم و طبقه بندی شده به دست مخاطب برسونیم. امیدوارم که قدمی در راستای رشد امنیت سایبری کشورمون برداشته باشیم.

تگ ها

0day APT command injection Deserialization of Untrusted Data Directory Traversal FBI Fortinet Heap buffer overflow integer overflow kali LockBit Memory Corruption nuclei Off By One Security out-of-bounds write Out of bounds read Patch Tuesday PWN2OWN Stack Buffer overflow type confusion use after free vulnerable wordpress XSS ZDI vulnerability آموزش اکسپلویت نویسی ارز دیجیتال اندروید اپل اکسپلویت باج افزار تلگرام زیرودی سیسکو فارنزیک فورتی نت فیشینگ لاک بیت مایکروسافت هوش مصنوعی وردپرس وردپرس آسیب پذیر ویندوز پلاگین کروم گوگل

شبکه های اجتماعی

    • Instagram
    • Telegram
    • Twitter
    • GitHub
    • YouTube
    • LinkedIn
      کپی مطالب با ذکر منبع بلامانع است | 1401-1404