Ya, itu mengeksekusi dengan privilege yang ditinggikan.
Tes sederhana:
Anda dapat menguji ini dengan mudah dengan membuka satu command prompt yang ditinggikan dan satu yang tidak ditinggikan. Jalankan perintah notepad.exe
di keduanya, dan cobalah menyimpan file teks kosong ke C:\Windows
. Satu akan menghemat, satu akan melemparkan kesalahan izin.
Tes menyeluruh:
Jika itu tidak cukup untuk mengonfirmasi itu untuk Anda (itu tidak benar-benar memuaskan saya), Anda dapat menggunakan AccessChk dari SysInternals. Anda harus menjalankan ini dari prompt perintah yang ditinggikan.
Mari kita mulai dengan memeriksa dua proses Notepad yang sedang berjalan:
Notepad: ( accesschk.exe -v -p notepad
)
[11140] notepad.exe
Medium Mandatory Level [No-Write-Up, No-Read-Up]
RW DOMAIN\Tannerf
PROCESS_ALL_ACCESS
RW NT AUTHORITY\SYSTEM
PROCESS_ALL_ACCESS
[11004] notepad.exe
High Mandatory Level [No-Write-Up, No-Read-Up]
RW BUILTIN\Administrators
PROCESS_ALL_ACCESS
RW NT AUTHORITY\SYSTEM
PROCESS_ALL_ACCESS
Satu berjalan di bawah nama pengguna domain saya, yang lain berjalan di bawah grup bawaan Administrator. Ini juga memiliki tingkat wajib yang tinggi . Anda juga dapat menjalankan dengan -f
bendera untuk penguraian hak istimewa dan token.
File MSIExec dan MSI
Saya pikir hal-hal mungkin menjadi sedikit lebih rumit ketika berlari msiexec
. Saya memiliki penginstal mandiri Google Chrome yang mudah untuk diuji.
msiexec.exe meluncurkan penginstal Chrome dari prompt yang tinggi:
D:\Users\tannerf>accesschk.exe -p msiexec.exe
[10540] msiexec.exe
RW BUILTIN\Administrators
RW NT AUTHORITY\SYSTEM
chrome_installer.exe dihasilkan oleh MSI:
D:\Users\tannerf>accesschk.exe -p chrome_installer.exe
[5552] chrome_installer.exe
NT AUTHORITY\SYSTEM
OWNER RIGHTS
RW NT SERVICE\msiserver
Tidak lagi dipotong dan kering! Sepertinya chrome_installer.exe
proses dijalankan melalui layanan MSIServer.
Ini membuat saya bertanya-tanya perilaku apa yang mungkin dimiliki oleh installer lain, jadi saya menjalankan Evernote.msi yang saya miliki:
Peningkatan msiexec.exe meluncurkan penginstal Evernote:
[6916] msiexec.exe
High Mandatory Level [No-Write-Up, No-Read-Up]
RW BUILTIN\Administrators
PROCESS_ALL_ACCESS
RW NT AUTHORITY\SYSTEM
PROCESS_ALL_ACCESS
[4652] msiexec.exe
System Mandatory Level [No-Write-Up, No-Read-Up]
R BUILTIN\Administrators
PROCESS_QUERY_INFORMATION
PROCESS_QUERY_LIMITED_INFORMATION
Menarik; ada msiexec.exe yang berjalan di bawah level sistem saat ini. Saya menggunakan Monitor Proses untuk menemukan bahwa jendela instal aktual yang muncul berasal dari proses msiexec tingkat sistem. Membunuh level wajib yang tinggi juga membunuh proses level sistem.
Msiexec.exe tidak terangkat meluncurkan installer Evernote:
[7472] msiexec.exe
Medium Mandatory Level [No-Write-Up, No-Read-Up]
RW DOMAIN\Tannerf
PROCESS_ALL_ACCESS
RW NT AUTHORITY\SYSTEM
PROCESS_ALL_ACCESS
[4404] msiexec.exe
System Mandatory Level [No-Write-Up, No-Read-Up]
R BUILTIN\Administrators
PROCESS_QUERY_INFORMATION
PROCESS_QUERY_LIMITED_INFORMATION
Sepertinya Evernote akan mendapatkan akses tingkat sistem dengan cara apa pun. Mengklik dua kali penginstal memiliki hasil yang sama.
Kesimpulan:
Saya pikir itu menunjukkan dengan cukup baik bahwa suatu proses akan mewarisi izin kecuali ditentukan lain. Itu tidak menjamin msiexec SomeProgram.msi
akan berjalan dengan tingkat wajib tinggi di semua proses proses; itu bisa berjalan di bawah level sistem atau di bawah MSIServer. Jarak tempuh Anda mungkin bervariasi, dan saya tidak akan terkejut melihat banyak contoh di mana aturan ini tampaknya "dilanggar".
C:\Windows
walaupun telah memulai Notepad dari cmd.exe yang tinggi. Apakah ada cara untuk melanggar aturan "yang seharusnya diwariskan dari induk"?Secara default, proses Windows akan mewarisi konteks keamanannya dari induk:
MSDN tentang keamanan proses dan hak akses
Namun, dimungkinkan untuk menelurkan proses dengan hak istimewa yang kurang:
Wikipedia tentang Kontrol Integritas Wajib terkait dengan halaman MSDN ini , juga disebutkan di sini . Presentasi lain juga menyebutkan proses pewarisan.
Namun, saya percaya cmd.exe akan meluncurkan proses anak dengan tingkat tertinggi hak istimewa yang mungkin, seperti yang ditunjukkan pengujian dan jawaban @ Tanner.
sumber
Mungkin ada dua cara untuk membatalkan hak istimewa dari perintah yang dieksekusi:
runas /trustlevel:0x20000 "msiexec SomeProgram.msi"
(jalankanrunas /showtrustlevels
untuk mengetahui bahwa itu0x20000
adalah tingkat kepercayaan pengguna default - ini bahkan berfungsi untuk menginstal / menjalankan program yang "memerlukan" hak istimewa yang ditingkatkan - tanpa benar-benar memberikannya ketika dijalankan sebagai admin. Ini melewati tes notepad Tanner ) sesuai jawaban SU inipsexec -l -d msiexec SomeProgram.msi
per jawaban SU ini (mungkin beberapa "" juga diperlukan, saya tidak menguji ini karenarunas
berfungsi cukup baik untuk saya)sumber