Akses ke drive jaringan dari program yang berjalan dengan hak istimewa yang tinggi

Salah satu peningkatan keamanan yang signifikan untuk sistem operasi Windows (dimulai dengan Vista) adalah pengenalan fungsionalitas User Account Control (UAC). Kontrol Akun Pengguna meminta konfirmasi pengguna setiap kali sebuah program diluncurkan yang mencoba melakukan perubahan pada pengaturan sistem. Salah satu efek samping dari UAC adalah ketidakmampuan untuk mengakses terhubung (melalui bersih gunakan) drive jaringan dari aplikasi yang berjalan dalam mode istimewa (Jalankan Sebagai Administrator). Ini berarti bahwa ketika Anda menjalankan command line atau file manager (dari Total Commander yang sama) dengan hak-hak tinggi, mereka tidak akan berisi (tidak dapat diakses) huruf drive dari folder jaringan yang terpasang.

Dalam catatan ini, kami akan menunjukkan caranya di Windows 10, Windows 8.1 dan Windows 7 memberikan akses ke drive jaringan dari aplikasi yang berjalan dalam mode istimewa (dijalankan sebagai administrator). Masalahnya dimanifestasikan baik untuk folder jaringan yang terhubung melalui kebijakan grup dan untuk folder pengguna yang terhubung secara mandiri.

Itu penting. Sangat tidak disarankan untuk sepenuhnya menonaktifkan UAC, bahkan untuk satu aplikasi tertentu.

Memang, ketika UAC diaktifkan dari aplikasi "istimewa" di Windows, Anda tidak dapat mengakses drive jaringan yang terhubung dalam mode normal. Mari kita tunjukkan bagaimana masalahnya terlihat. Misalnya, pastikan bahwa pada baris perintah yang diluncurkan dengan hak pengguna reguler sistem, Anda memiliki akses ke konten drive jaringan yang terhubung Z: \.

Jika dalam konteks pengguna yang sama untuk membuka jendela command prompt dengan hak administrator, maka ketika Anda mencoba mengakses drive yang sama, muncul pesan bahwa jalur yang ditentukan tidak ditemukan:

Sistem tidak dapat menemukan jalur yang ditentukan..

Perilaku sistem ini dapat menyebabkan sejumlah ketidaknyamanan ketika aplikasi sering diluncurkan dalam mode istimewa. Anda dapat menjalankan aplikasi tanpa hak administrator, tetapi ini tidak selalu berlaku.

Mengapa ini terjadi?? Fitur ini dikaitkan dengan mekanisme UAC untuk pengguna dengan hak administrator lokal. Faktanya adalah ketika pengguna seperti itu masuk ke sistem, dua token akses dibuat: satu token akses dengan hak administrator yang dinonaktifkan (token akses yang difilter - dari mana sebagian besar program diluncurkan) dan token administrator penuh dengan hak penuh dalam sistem (dalam konteks ini semua program yang telah menerima konfirmasi peningkatan hak di UAC dijalankan).

Jika menggunakan perintah whoami / all membandingkan hak istimewa saat ini dari pengguna yang sama dalam dua sesi cmd.exe (reguler dan istimewa), Anda dapat melihat bahwa mereka sangat berbeda. Tabel berikut mencantumkan perbedaan dalam kelompok dan kredensial saat ini di setiap sesi..

Sesi pengguna regulerSesi Pengguna yang Diistimewakan
Grup aksesLabel Wajib \ Label Wajib Tingkat Sedang S-1-16-8192Label Wajib \ Label Wajib Tingkat Tinggi S-1-16-12288
Hak istimewaSeLockMemoryPrivilege

SeMachineAccountPrivilege

SeShutdownPrivilege

SeChangeNotifyPrivilege

SeUndockPrivilege

SeIncreaseWorkingSetPrivilege

SeTimeZonePrivilege

SeLockMemoryPrivilege

SeIncreaseQuotaPrivilege

SeMachineAccountPrivilege

SeSecurityPrivilege

SeTakeOwnershipPrivilege

SeLoadDriverPrivilege

SeSystemProfilePrivilege

SeSystemtimePrivilege

SeProfileSingleProcessPrivilege

SeIncreaseBasePriorityPrivilege

SeCreatePagefilePrivilege

SeBackupPrivilege

SeRestorePrivilege

SeShutdownPrivilege

SeSystemEnvironmentPrivilege

SeChangeNotifyPrivilege

SeRemoteShutdownPrivilege

SeUndockPrivilege

SeManageVolumePrivilege

SeImpersonatePrivilege

SeCreateGlobalPrivilege

SeIncreaseWorkingSetPrivilege

SeTimeZonePrivilege

SeCreateSymbolicLinkPrivilege

SeDelegateSessionUserImpersonatePrivilege

Ketika UAC diaktifkan, aplikasi di bawah pengguna yang sama dapat diluncurkan dalam dua konteks (privilege dan unprivileged). Saat menghubungkan folder jaringan bersama, sistem membuat tautan simbolik (DosDevices), yang menyimpan pemetaan huruf drive dan jalur UNC. Tautan ini dikaitkan dengan sesi saat ini untuk token akses proses saat ini dan tidak dapat diakses dari bawah token lain.

Dengan demikian, masalah yang berlawanan juga dapat terjadi: jika pengguna memiliki hak administrator di komputernya, maka saat menghubungkan drive jaringan melalui skrip logon kebijakan grup, tugas penjadwal atau SCCM (yang dijalankan dengan hak istimewa yang ditingkatkan), drive ini tidak terlihat oleh pengguna di Windows Explorer. (proses unprivileged).

Catatan. Pada Windows Server, Anda dapat menjalankan Windows Explorer dengan hak yang lebih tinggi.

Sebagai solusinya, Anda dapat merekomendasikan menghubungkan (via penggunaan bersih atau rundll32 SHELL32.dll, SHHelpShortcuts_RunDLL Terhubung) drive jaringan dalam konteks prompt perintah yang dijalankan dengan hak administrator. Tetapi solusi ini tidak selalu berlaku, dan tidak terlalu nyaman..

Ada solusi yang lebih sederhana, untuk penerapannya Anda perlu membuat perubahan berikut pada registri:

  1. Buka Penyunting Registri (regedit.exe).
  2. Buka kunci registri HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Policies \ System .
  3. Buat parameter baru (dari jenis DWORD) bernama EnableLinkedConnections dan nilai 1 .
    Kiat. Anda dapat melakukan hal yang sama dengan satu perintah:
    reg tambahkan "HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows \ CurrentVersion \ Kebijakan \ Sistem" / v "EnableLinkedConnections" / t REG_DWORD / d 0x00000001 / f
  4. Nyalakan kembali komputer Anda (atau nyalakan kembali layanan LanmanWorkstation).

Setelah reboot, pastikan bahwa pengguna melihat drive jaringan dari program yang berjalan dengan hak administrator. Kebalikannya juga benar, semua drive jaringan yang terhubung dalam konteks sesi istimewa akan tersedia dalam sesi reguler.

Kiat. Sayangnya, dalam kebijakan grup tidak ada cara untuk mengaktifkan parameter EnableLinkedConnections, jadi untuk mendistribusikan pengaturan ini ke komputer domain, Anda harus mendistribusikan pengaturan registri ini ke komputer menggunakan GPP.

Bagaimana cara kerjanya. Setelah mengaktifkan entri registri EnableLinkedConnections, layanan LanmanWorkstation dan LSA akan memeriksa token akses kedua yang terkait dengan sesi pengguna saat ini. Jika token akses tersebut ditemukan, daftar drive jaringan yang dipetakan akan disalin dari satu token ke yang lain. Dengan demikian, drive jaringan yang terhubung dalam mode istimewa akan terlihat dalam mode normal dan sebaliknya.
Kiat. Solusi alternatif adalah membuat tautan simbolis ke direktori jaringan target. Misalnya saja
mklink / Dc: \ docs \\ msk-fs1 \ docs
Akses ke direktori ini akan dimungkinkan dalam mode normal dan istimewa. Di antara kelemahan metode ini, kami mencatat bahwa akses ke folder bersama dilakukan dengan hak istimewa pengguna saat ini. Anda tidak bisa, seperti dalam hal penggunaan internet, menggunakan akun pengguna lain.