Pengguna di Windows dapat diberikan berbagai hak istimewa
Hak istimewa menentukan jenis operasi sistem yang dapat dilakukan oleh akun pengguna. Administrator menetapkan hak istimewa untuk akun pengguna dan grup. Setiap hak pengguna termasuk hak yang diberikan kepada pengguna dan grup yang menjadi milik pengguna.
Saat ini ada 35 hak istimewa. Beberapa yang lebih menarik adalah:
- SeSystemtimePrivilege : Diperlukan untuk mengubah waktu sistem.
- SeTimeZonePrivilege : Diperlukan untuk menyesuaikan zona waktu yang terkait dengan jam internal komputer
- SeBackupPrivilege : Hak istimewa ini menyebabkan sistem memberikan semua kontrol akses baca ke file apa pun, apa pun daftar kontrol akses (ACL) yang ditentukan untuk file tersebut.
- SeCreatePagefilePrivilege : Diperlukan untuk membuat file paging.
- SeRemoteShutdownPrivilege : Diperlukan untuk mematikan sistem menggunakan permintaan jaringan.
- SeDebugPrivilege : Diperlukan untuk melakukan debug dan menyesuaikan memori dari proses yang dimiliki oleh akun lain.
Tapi yang saya tertarik adalah:
- SeShutdownPrivilege : Diperlukan untuk mematikan sistem lokal.
Saya perhatikan bahwa saya sebenarnya tidak memiliki hak istimewa ini. Dari prompt perintah yang ditinggikan:
>whoami /priv
PRIVILEGES INFORMATION
----------------------
Privilege Name Description State
=============================== ========================================= ========
SeIncreaseQuotaPrivilege Adjust memory quotas for a process Disabled
SeSecurityPrivilege Manage auditing and security log Disabled
SeTakeOwnershipPrivilege Take ownership of files or other objects Disabled
...
SeShutdownPrivilege Shut down the system Disabled
...
Ini dikonfirmasi ketika menggunakan Process Explorer untuk memeriksa token keamanan dari proses tinggi yang berjalan seperti saya:
Namun saya dapat mematikan sistem. Mengapa?
Kebijakan Grup mengatakan saya harus memilikinya
Jika Anda menggunakan snapin editor Kebijakan Keamanan Lokal ( secpol.msc
), Anda dapat melihat bahwa saya harus memiliki hak istimewa:
The Explaination dari hak istimewa:
Matikan sistem
Pengaturan keamanan ini menentukan pengguna mana yang masuk secara lokal ke komputer yang dapat mematikan sistem operasi menggunakan perintah Shut Down. Penyalahgunaan hak pengguna ini dapat mengakibatkan penolakan layanan.
Default pada Workstation: Administrator, Operator Cadangan, Pengguna.
Default pada Server: Administrator, Operator Cadangan.
Default pada pengontrol Domain: Administrator, Operator Cadangan, Operator Server, Operator Cetak.
Saya seorang pengguna . Terkadang saya seorang Administrator , dan di lain waktu saya seorang Notadministrator .
Mungkin pertanyaannya adalah mengapa saya tidak memiliki hak istimewa.
Tetapi kenyataannya adalah bahwa saya tidak memiliki hak istimewa; namun ketika secara lokal masuk saya dapat mematikan sistem lokal.
Mengapa?
@Mehrdad punya jawaban yang bagus, yang dia hapus, yang menurut saya layak mendapat perhatian dan menjawab pertanyaan dengan baik dan ringkas:
Anda memiliki hak istimewa. Ini hanya dinonaktifkan secara default. Jika Anda tidak memiliki hak istimewa maka itu tidak akan terdaftar sama sekali .
Perhatikan bahwaSE_PRIVILEGE_REMOVED
berbeda dengan kurangSE_PRIVILEGE_ENABLED
atauSE_PRIVILEGE_ENABLED_BY_DEFAULT
.
Pembacaan Bonus
- MSDN: Konstanta Privilege
- Technet: Matikan sistem - penetapan hak pengguna
sumber
Jawaban:
Anda memiliki izin, tetapi dinonaktifkan . Itulah yang diberitahukan PowerShell kepada Anda.
Untuk mematikan sistem Anda menggunakan fungsi Win32API yang disebut
InitiateSystemShutdown
atauExitWindowsEx
:Fungsi-fungsi ini mencatat:
Seperti yang Anda lihat, Windows memeriksa hak utas (semua utas memiliki hak istimewa). Jika Anda menelepon
ExitWindowsEx
tanpa hak SE_SHUTDOWN_NAME , fungsinya akan gagal dengan kesalahan:Utas yang Anda buat secara bawaan mewarisi hak istimewa Anda; tetapi suatu program dapat mengaktifkan hak istimewa yang dinonaktifkan yang diberikan dengan menggunakan
AdjustTokenPrivileges
:Mengubah Keistimewaan dalam Token mengatakan:
Jadi, mengapa hak istimewa ini dinonaktifkan secara default? Untuk memastikan bahwa tidak ada program yang dapat mematikan Windows secara tidak sengaja. Aplikasi harus meminta ini secara eksplisit.
Ada buku kuno tetapi sangat bagus: https://www.amazon.com/Programming-Windows-Security-Keith-Brown/dp/0201604426/ tentang semua hal itu.
sumber
Itu karena pengguna Anda milik grup yang mengaktifkan hak istimewa itu.
Untuk melihat sendiri grup mana:
secedit /export /areas USER_RIGHTS /cfg OUTFILE.CFG
.SeShutdownPrivilege
entri. Anda akan (harus) melihat beberapa / beberapa SID untuk pengguna dan / atau grup yang memiliki hak istimewa yang diaktifkan.Jadi saya punya tiga SID pendek yang terdaftar. SID pendek biasanya adalah akun / grup tingkat komputer. Sebagai contoh, salah satunya adalah
S-1-5-32-545
.Dengan menggunakan PowerShell kita dapat menentukan akun / grup mana yang diwakili oleh SID:
Ini kembali
BUILTIN\Users
.Karena Anda adalah pengguna di komputer itu, Anda secara otomatis menjadi anggota grup itu, artinya Anda dapat mematikan komputer.
Dua lainnya yang saya miliki adalah
S-1-5-32-544
, danS-1-5-32-551
. Ini adalahBUILTIN\Administrators
grup standar , danBUILTIN\Backup Operators
grup. Yang sejajar dengan grup yang Anda lihat dalamsecpol.msc
dialog.sumber