بررسی اسیب پذیری Image File Execution
به صورت خلاصه عرض میکم
یکی از امکانات جالبی که ویندوز در ویندوز وجود دارد این است که وقتی که یک فایلی را اجرا میکنیم همزمان با اجرا شدن اون فایل یک فایل Exe دیگری هم اجرا شود .
این کار بیشتر در برنامه ویژوال استدیو برای اجرای یک فایل دیگر به کار برده میشه اما خوب فکر کنم وظیفه ی ما به عنوان یک محقق امنیت سیستم عامل ویندوز بررسی آسیب پذیری های این سیستم عامل هست
بسیاری از ویروس نویسان و هکر ها سو استفاده های جالبی می توانند از این امکان بکنند .
اما چونگی انجام این کار
می توانید به مسیر زیر در رجیستری بروید .
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options
در این مسیر شما لیستی از فایل های اجرایی مختلف را می بینید . اینجا من میام برنامه ای رو با نام مثلا notepad.exe را پیدا می کنم و می خوام هرکسی که می خواد یک فایل txt رو باز کرد به جای برنامه ی notepad برنامه ی CMD.exe اجرا بشه
خوب میام مراحل زیر رو اجرا میکنم
1 - یک زیر کلید با نام notepad.exe در این مسیر می سازم
2 – مقدار Debugger را از نوع REG_SZ می سازم
3 – آدرس فایلی که می خوام اجرا بشه به جای notepad.exe را در آن میندازم .
4 – یک فایل txt و یا برنامه ی notepad را اجرا میکنم
5 – سلامتی شما
می بینید که اینجا به جای فایل notepad.exe برنامه ی CMD.exe اجرا میشه
خوب حالا هکر ها چه سو استفاده هایی از اون می کنند ؟
یک هکر می تونه به جای Startup کردن برنامه ی خودش از اون استفاده کنه یعنی میگه هر وقت فایل notepad یا هرچی اجرا شد تو بیا Trojan.exe رو اجرا کن
به مانند تروجان زیر http://blogs.mcafee.com/mcafee-labs/...cution-options
ما می تونیم به جای فایل cmd.exe هر فایل دیگه ای رو هم بنویسیم مثلا BAd File.exe
یا مثلا اینجا
http://about-threats.trendmicro.com/...ROJ_INJECT.SMI
اومدن به جای فایل Explorer.exe فایل malware خودشون رو اجرا کردن حالا بسته به هوش فرد مثلا وقتی کسی میاد تروجان خودش رو به جای Explorer اجرا میکنه یعنی اینکه از همون اول ویندوز که فایل Explorer.exe اجرا میشه جلوش رو بگیر ( پس دسکتاپ و ایکون هاش اجرا نمیشه ) و بعد تروجان خودم رو اجرا کن و سپس بیا دوباره مقدار debugger رو ححذف کن و Explorer.exe رو اجرا کن
خوب این کار باعث میشه که حتی اگه فایل تروجان تغییراتی رو در رجیستری ویندوز بده با فعال کردن فایل Explorer تغییرات تثبیت بشه و نیازی به logoff یا راه اندازی دوباره نباشه
و نمونه های دیگه
http://www.pandasecurity.com/homeuse...on/AKStealer.A
http://www.eset.com/us/threat-center...win32agentksq/
http://www.symantec.com/security_res...050-99&tabid=2
و ...
یک قدم به جلوتر
حالا من که از این امکان خبر دارم میام می خوام شروع به هک سیستم عامل ویندوز کنم البته در دسترسی لوکال
اینجا می دونم که یک سری فایل داریم که در Welcom screen هم اجرا می شن یعنی فایل های Exe خوب میام جایگزین می کنم
در زیر این فایل ها در قسمت welcome screen اجرا می شن
Displayswitch.exe – sethc.exe – narrattor.exe – magnify.exe – OSK.exe - utilman.exe
و اینو می دونید که هر فایلی که در Welcom screen اجرا بشه دارای دسترسی authority\system هست و اینم می دونیم که هر فایلی هم از طریق یک فایل دیگه اجرا بشه اونم دارای همین سطح دسترسی هست
پس میایم یک کلید با نام OSK.exe در این مسیر از رجیستری می سازیم و بعد مقدار Debugger از نوع REG_SZ
حالا من اگه از اسکریپت نویسی در ویندوز استفاده کنم می تونیم از کد های زیر این کار رو انجام بدیم
'baraye sakhtane key dar kelide registry
Const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
strComputer & "\root\default:StdRegProv")
strKeyPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\OSK.exe"
oReg.CreateKey HKEY_LOCAL_MACHINE,strKeyPath
'------------------------------------
' sakhtane ye value ba name debugger va meghdar an = addresse CMD.exe
Const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
strComputer & "\root\default:StdRegProv")
strKeyPath = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\OSK.exe"
strValueName = "Debugger"
strValue = "C:\windows\system32\cmd.exe"
oReg.SetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue
'---------------------
یا اینکه می تونیم از همان دستور REG از طریق CMD این کار را انجام بدیم
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\OSK.exe" /v Debugger /t REG_SZ /d "C:\windows\system32\cmd.exe"
کافیه در فایل BAT ذخیره بشه و بعد اجرا کنید .
حالا سیستم رو restart یا logoff می کنیم و در صعحه ی خوش آمد گویی فایل OSK.exe که همان کیبورد مجازی ویندوز هست را اجرا می کنیم و میبینیم که به جای اون فایل cmd.exe اجرا شده و اینجا ما میتونیم بیایم با استفاده از فرمان های زیر پسورد حساب کاربری که می خواهیم رو حذف و یا تغییر بدیم
Net user "username" "password"
یک قدم به جلوتر می رویم
UAC ویندوز را فعال میکنیم و پسورد روی اون میزاریم
حالا دوباره logoff میکنیم و OSK.exe را اجرا میکنیم تا CMD.exe اجرا بشه و بعد ان را نمی بندیم و میریم داخل ویندوز و login میکنیم به حساب کاربری
و اینجا مثلا در Run فایل Secpol.msc را اجرا میکنیم و میبینیم که UAC ویندوز از ما پسورد می خواد ولی اینجا وقتی که ALT + Tab رو بزنیم می بینیم که فایل UAC هم اجرا شده خوب میایم اونجا اون قسمتی که می خوایم باز کنیم رو می زنیم دیگه UAC ویندوز جلوشون میگیره
و اصطلاحا Bypass میشه UAC
حالا می خوایم علاوه بر اینکه BYPASS کردیم اون رو هم غیر فعال کنیم کلا
میایم رجیستری ویندوز رو از طریق CMD.exe باز میکنیم ( همون cmd )
و بعد داخل مسیر زیر میشیم
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
در اینجا 2 مقدار وجود داره به اسم های
EnableLUA ConsentPromptBehaviorAdmin
اون 2 تا رو حذف میکنیم و بعد UAC که همین جوری باز هست رو می بندیم و دوباره مقدار Secpol.msc رو باز میکنیم و میبینیم که دیگه UAC فعال نیست
روش مقابله :
نگران نباشید هنوز جای کار زیاد داره که نشه با این مورد مقابله کرد
UAC رو فعال کنید و مقدار اون رو به آخرین حدش برسونید و مقدارم ConsentPromptBehaviorAdmin از نوع Dword را در مسیر
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion\Policies\System بسازید و بعد مقدار اون رو برابر 3 قرار دهید
و یک پسورد خوب بر روس حساب کاربری خودتون قرار بدید و ویندوز رو اپدیت کنید
اینجوری کسی اگه بخواد بره داخل رجیستری و اون تغییرات رو اعمال کنه ازش پسورد می خواد پس نمی تونه کاری کنه