PDA

View Full Version : نقطه ضعف در کرنل ویندوز XP



Inprise
جمعه 01 اسفند 1382, 06:42 صبح
سلام ،

نقطه ضعف امنیتی موجود در کرنل ویندوز XP به کاربرانی با حقوق [ احتمالا" ] کمتر از مدیر اجازهء اجرای کد با بالاترین اختیارات را میدهد . تابع ZwSystemDebugControl که به ماژول ntdll.dll متعلق است تابع دیگری بنام NtSystemDebugControl رو اجرا میکنه که از طریق تابع دوم و بدون Bound checking میشه کد باینری مخرب رو در Ring 0 ( سطح کرنل ) اجرا کرد . کلیه نسخه های ویندوز اکس پی حتی با سرویس پک اول و ویندوز 2003 سرور نسخ مختلف دارای این نقطه ضعف هستند . ( وقتی کدی در Ring صفر اجرا میشه اجازهء دسترسی به سخت افزار رو داره . نابود کردن چیپ بایوس ، تغییر شدید در فرکانس مانیتور و سوزاندن مانیتور ، تخریب دیسک سخت ، تغییر BIOS و ... از خطراتی است که ویروسهای مبتنی بر این نقطه ضعف میتونن ایجاد کنند )

هر کاربر با سطح اختیارات SeDebugPrivilege و بالاتر از اون میتونه اینکار رو انجام بده . عموما" مدیر سیستم این توانائی رو داره اما برای اینکه چک کنید فرد دیگری امتیاز Debug Privilage رو نداشته باشه از کامند پرامپت دستور gpedit.msc رو اجرا کنید . در فرم نمایان شده این مسیر رو دنبال کنید :

computer configuration / windows Settings / Local Policies / User Rights assignment

لیست موجود رو بررسی کنید تا آیتم " Debug Programs " رو پیدا کنید و مطمئن بشید فقط گروه مدیران به این مجوز دسترسی دارند . مایکروسافت هنوز افزونه ای برای مقابله با این خطر منتشر نکرده . ضد ویروستون رو حتما" به روز نگهدارید .

( برام خیلی جالب بود که یکبار وسط دیباگ یکی از ماژولهای ویندوز و بر خوردن به یک مشکل به این فکر افتادم که میشه از چنین کلکهای برای پل زدن بین دو تا تابع و Overrun دومی استفاده کرد و البته پیگیری اش نکردم تا این نقطه ضعف رو دیدم . حالا فکر میکنم مدتها باید خبر انتشار چنین نقاط ضعفی رو در کرنل ویندوز بشنویم چون تا اونجائیکه من برای هدف دیگری کرنل رو بررسی میکردم بخش قابل توجهی از توابع خصوصا NT Advanced API's به هیچ وجه ورودهائیکه از سایر توابع API دریافت میکنند ، Bound Checking نمیکنن و این یعنی "کویت" ! :wink: )

موفق و به روز باشید .

Inprise , Excellence endures