تا اینجا شما متوجه شدید که حمله DLL Injection چیست. حال می خواهیم ببینیم به چه صورت این اتفاق می افتد؛ حمله DLL Injection با تزریق کدهای خراب و یا اجرا کردن آن کدها از طریق قرار دادن فایل DLL در یک فرآیند در حال اجرا رخ خواهد داد از این رو بهتر است فایل های DLL در لحظه اجرا کنند.
یک واقعیت مهم این است که هیچ صادراتی از بارگذار DLL فراخوانی نمی شود، اما در عوض تمام مقداردهی اولیه از DllMain انجام می شود. تنها صادرات initData است که پارامترهای داده شده توسط فرآیند تزریق را از طریق بارگذار DLL دریافت می کند و باید توجه داشت که رشته ایجاد شده از یک تابع DllMain تا زمانی که عملکرد DLL_THREAD_ATTACH آن موفقیت آمیز نباشد، برنامه ریزی نمی شود. بنابراین ممکن است هیچ هماهنگی از داخل DllMain با موضوع ایجاد شده وجود نداشته باشد. این حمله توسط API ویندوز صورت می پذیرد که شامل مراحل زیر می باشد:
- فایل DLL بر روی سیستم قرار گرفته می شود، قرار گرفتن این فایل بر روی سیستم هدف می تواند به هر شکلی رخ دهد.
- در مرحله دوم هدف اجرایی مشخص می شود و فضای حافظه برای حمله DLL Injection به وجود می آید یا بهتر بگوییم در هنگام اجرا و پردازش هدف، فضای ایده آل برای حمله DLL Injection ایجاد می شود.
- با قرار گرفتن فایل DLL مخرب در Process، آدرس های حافظه به آن تخصیص داده می شود.
- مرحله چهارم، مرحله ای است که فایل مخرب اجرا می شود، با اجرا شدن آن فایل مخرب در کنار فایل DLL انجام سازی می گردد.
منبع: حمله DLL Injection چیست
- دوشنبه ۱۶ مهر ۰۳ ۰۹:۴۲ ۴۸ بازديد
- ۰ نظر