Evet, yükseltilmiş ayrıcalıklarla çalışır.
Basit test:
Yükseltilmiş ve yükseltilmemiş bir komut istemi açarak bunu kolayca test edebilirsiniz. Komutu notepad.exe
her ikisinde de çalıştırın ve boş bir metin dosyasını olarak kaydetmeyi deneyin C:\Windows
. Biri kaydeder, biri izin hatası verir.
Kapsamlı test:
Bu sizin için onaylamak için yeterli değilse (beni tatmin etmedi) SysInternals'dan AccessChk kullanabilirsiniz . Bunu yükseltilmiş bir komut isteminden çalıştırmanız gerekir.
Çalışmakta olan iki Not Defteri işlemini kontrol ederek başlayalım:
Not defteri: ( 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
Biri alan adı kullanıcı adımın altında, diğeri Administrators yerleşik grubunun altında çalışıyor. Ayrıca yüksek bir zorunlu seviyeye sahiptir . -f
Ayrıcalıkların ve belirteçlerin dökümü için bayrakla da çalışabilirsiniz .
MSIExec ve MSI dosyaları
Koşarken işlerin biraz daha karmaşık olabileceğini düşündüm msiexec
. Test etmek için kullanışlı bir Google Chrome bağımsız yükleyicim var.
msiexec.exe, Chrome yükleyiciyi yükseltilmiş istemden başlatıyor:
D:\Users\tannerf>accesschk.exe -p msiexec.exe
[10540] msiexec.exe
RW BUILTIN\Administrators
RW NT AUTHORITY\SYSTEM
MSI tarafından oluşturulan chrome_installer.exe:
D:\Users\tannerf>accesschk.exe -p chrome_installer.exe
[5552] chrome_installer.exe
NT AUTHORITY\SYSTEM
OWNER RIGHTS
RW NT SERVICE\msiserver
Artık o kadar kesilmiş ve kuru değil! Görünüşe göre bir chrome_installer.exe
süreç MSIServer hizmeti üzerinden çalıştırıldı.
Bu bana diğer yükleyicilerin ne davranış olabilir merak ediyor, bu yüzden kullanışlı bir Evernote.msi koştu:
Bir Evernote yükleyicisini başlatan yükseltilmiş msiexec.exe:
[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
İlginç; Bu sefer sistem düzeyinde çalışan bir msiexec.exe var. Açılan gerçek yükleme penceresinin sistem düzeyinde msiexec işleminden geldiğini bulmak için Process Monitor'u kullandım. Yüksek zorunlu seviyenin öldürülmesi de sistem seviyesi sürecini öldürdü.
Yükseltilmemiş msiexec.exe bir Evernote yükleyicisi başlatır:
[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
Evernote, her iki şekilde de sistem düzeyinde erişim elde edecek gibi görünüyor. Yükleyiciyi çift tıklatmak aynı sonucu verir.
Sonuç:
Bence bir süreç aksi belirtilmedikçe izinleri devralacak. Bu, msiexec SomeProgram.msi
tüm süreç süreçlerinde yüksek bir zorunlu seviyede çalışacağını garanti etmez ; sistem düzeyinde veya MSIServer altında çalışabilir. Kilometreniz değişebilir ve bu kuralların "kırılmış" olduğu birçok örneği görmek beni şaşırtmaz.