#KernelCallbackTable #Injection
تکنیک دزدیدن اجرا از KernelCallbackTable در فرایند فراخوانی توابع سیستمی بازگشتی، یک تکنیک مورد استفاده تیم Lazarus بود تا بواسطه این تکنیک Payload ایجاد شده خود را اجرا نماید و موجب نا محسوس شدن و ارتقاء سطح دسترسی شود.

اما این فرایند چگونه کار میکند؟ برای فهم مختصر این تکنیک اول میبایست این موضوع رو درک کرد که KernelCallbackTable چیست؟

زمانی که یک برنامه برای مثال از توابع GUI که Callback هستند رو از کتابخانه user32.dll فراخوانی میکند، Process بهره برداری کننده در ساختمان Process Environment Block مقادیر KernelCallbackTable رو آماده سازی میکند.

مهاجم زمانی که Process قربانی، به تابع سیستمی Callback اشاره میکند، یک جا به جایی انجام داده و بجای تابع اصلی تابع خود را که اشاره به Payload مخرب دارد، قرار میدهد. برای اینکار اول میبایست مکان یابی PEB را بواسطه NtQueryInformationProcess انجام داد و به ستون های KernelCallbackTable بواسطه WriteProcessMemory ، آدرس Payload مخرب را قرار داد.

@Unk9vvN