it-swarm-id.com

Mengapa Anda harus menjadi admin untuk membuat symlink di Windows?

Di linux setiap pengguna dapat membuat symlink, tetapi pada Windows saya memerlukan baris perintah admin, atau mklink gagal. Mengapa demikian?

71
ripper234

Secara default, hanya administrator yang dapat membuat tautan simbolis, karena hanya mereka yang memiliki hak istimewa SeCreateSymbolicLinkPrivilege ditemukan di bawah Computer Configuration\Windows Settings\Security Settings\Local Policies\User Rights Assignment\ diberikan.

Dari Microsoft TechNet: Pengaturan Kebijakan Keamanan Baru untuk Windows Vista :

Tautan simbolik (symlinks) dapat mengekspos kerentanan keamanan dalam aplikasi yang tidak dirancang untuk menangani tautan simbolik.

23
ordag

Ini tidak sepenuhnya (lihat di bawah) kasusnya lagi pada Windows 10 Insiders build 14972 (pembaruan windows 10 creator ~ 1703).

Namun, dari komentar di bawah posting blog, kekhawatiran tentang masalah yang disebutkan dalam jawaban lain masih ada, dan untuk memanfaatkan perilaku baru ini, Anda perlu:

  • aktifkan mode pengembang di mesin Anda
  • lulus SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE menandai ke CreateSymbolicLink API
8
MayeulC

Linux memiliki struktur file/pengguna yang terkotak. Apa itu artinya "program A" tidak dapat melakukan "tugas B" kecuali jika itu terkait dengan "ruang disk C". Jadi symlinks tidak benar-benar mempengaruhi apa pun secara logistik dalam hal penetrasi risiko karena seluruh OS didasarkan pada asumsi tindakan-> izin.

Atau dengan kata lain, membuat trilyun symlink tidak membantu Anda jika Anda seorang hacker dengan izin tingkat rendah. Jadi, di Linux atau MacOS tidak membantu Anda.

Namun, pada Windows Anda tidak memiliki "program A" yang menjalankan program selain orang yang masuk ... sehingga orang yang masuk dapat melakukan "tugas B" di mana pun mereka suka. Jadi itu PASTI membantu Anda untuk memiliki penetrasi ke tingkat symlink karena Anda dapat mengganti file nyata yang ditemukan dengan viral load, dan menyembunyikan bahwa Anda melakukannya.

Jadi, tanpa tingkat perlindungan symlink, sebuah virus dapat menginfeksi Anda, berjalan karena payloadnya memiliki banyak symlink, katakanlah, redirect "Explorer.exe "ke palsu" exactly-as-windows-made-it-except-with-a-payload Explorer.exe ".

Kenapa kamu ingin melakukan itu? Sejujurnya itu adalah kunci menuju kerajaan. Anda dapat merekrut komputer tersebut secara andal ke dalam bot yang secara teoretis mengaktifkan jalannya ke masa depan dll. Ada sejuta cara mengapa ini lebih baik daripada hanya "memiliki infeksi" karena kebanyakan orang menghapusnya ketika mereka melihatnya, dan ini bisa disembunyikan.

5
Mr Heelis

Saya menemukan alasan ketika Vista diluncurkan. Alasan yang diberikan hanya untuk admin sangat sederhana. Ini bukan masalah keamanan yang tidak ditentukan, ribuan perangkat lunak harus ditingkatkan untuk menggunakan panggilan API yang benar-benar tidak ada sebelum ditambahkan untuk menghindari celah keamanan yang menganga ketika melintasi tautan simbolik.

Windows sangat rentan terhadap balap tautan simbolik; ada beberapa cara untuk menghindari ini, semacam, tetapi sebenarnya tidak ada aplikasi yang menggunakan API sedemikian rupa sama sekali. Bahkan Microsoft tidak menerima bug keamanan yang melibatkan balap tautan simbolik. Saya baru mencoba melaporkan satu tiga bulan lalu.

4
Joshua

Hardlink dan persimpangan direktori hanya berada di dalam satu partisi (tidak ada hardlink dari satu drive ke drive lain atau bahkan ke lokasi jaringan).

SymLinks di sisi lain juga dapat menghubungkan dari suatu tempat pada sistem yang tampaknya "aman" ke lokasi jaringan.

1
StefanA