Windows "Run As" tanpa mengetahui kata sandi

13

Kami memasang sistem media digital di stasiun radio kampus tempat saya bekerja. Kami mencoba memberi akses kepada programmer (baca; DJ, bukan coders) musik, tanpa mengizinkan mereka menyalinnya ke flash drive mereka atau mentransfernya di Internet.

Kami berjalan pada sistem Windows (Windows XP untuk mesin klien, dan Windows Server 2008 untuk server media). Ide saya adalah ini.

  • Buat pengguna (ProgramUser) yang tidak memiliki akses sama sekali ke media digital.
  • Buat pengguna (MediaUser) yang memiliki akses hanya baca ke media digital yang tidak diketahui oleh programmer dan tidak tahu kata sandinya.
  • Mintalah pengguna masuk ke Windows sebagai ProgramUser, memberi mereka tidak ada akses sama sekali ke media.
  • Jalankan aplikasi playback ( Traktor ) kami sebagai MediaUser, yang memungkinkan programmer untuk memutar kembali media tetapi tidak menyalin atau memodifikasinya.

Ini sepertinya solusi yang sempurna, tetapi ada satu gotcha. Jika aplikasi atau mesin pemutaran macet, programmer adalah satu-satunya orang yang dapat menjalankannya kembali dalam jumlah waktu yang wajar (kami adalah stasiun radio FM 15 kW, jadi downtime adalah masalah besar). Karena itu dilema saya ...

Bagaimana saya bisa memberi programmer kemampuan untuk memulai aplikasi pemutaran kami sebagai pengguna yang mereka tidak tahu kata sandinya?

Peter Mortensen
sumber

Jawaban:

32

sudo.bat

@echo off
runas /user:Administrator /savecred %1

anehnya ia tidak akan meminta kata sandi lagi bahkan setelah reboot atau kegagalan daya

Jonny
sumber
2
+1 untuk jawaban yang benar. Ya Tuhan adalah lubang keamanan
Dave Cheney
Serius bagaimana ini tidak dikenal sebagai lubang keamanan? Kenapa ini terbuka ?!
Marm0t
2
Saya cukup yakin ini hanya berfungsi jika kata sandi untuk akun telah disimpan di Credentials Manager, jadi itu bukan lubang keamanan yang lebih daripada di OSX atau sistem lain di mana kredensial dapat disimpan dan digunakan kembali.
Mark Henderson
Anda masih perlu mengetahui kata sandi untuk pertama kalinya, dan ini akan berhenti berfungsi jika itu berubah.
ivan_pozdeev
1

... tanpa mengizinkan mereka menyalinnya ke flash drive mereka atau mentransfernya melalui Internet

Nonaktifkan USB flash drive, akses Internet, dll. Pada mesin ini.

Duncan Smart
sumber
0

Ada beberapa cara yang dapat saya pikirkan secara langsung untuk mengatasi masalah ini. Pertama (dan lebih sulit) adalah menulis layanan windows kecil yang meluncurkan Traktor. Dengan demikian, ProgramUser dapat meminta layanan untuk instance Traktor baru, dan layanan berjalan sebagai MediaUser sehingga Traktor diluncurkan sebagai MediaUser.

Kemungkinan lain, dan jauh lebih mudah, adalah mengatur pintasan startup yang meluncurkan Traktor di setiap login - pintasan Windows memungkinkan Anda untuk mengatur kredensial pengguna yang sesuai dalam properti pintasan. Jika komputer mogok, programmer hanya perlu masuk, dan mereka memiliki Traktor baru yang berjalan sebagai MediaUser!

Semoga salah satu solusi ini akan bekerja untuk Anda!

Mike
sumber
Saya sendiri dan admin lainnya adalah Insinyur Perangkat Lunak sehingga ini tidak akan menjadi masalah. Kami juga menjalankan layanan lain yang memantau papan mixing kami untuk input GPIO, jadi itu adalah sesuatu yang sudah kami lakukan. Ini ide yang bagus, terima kasih!
0

Anda dapat membuat program yang memulai proses MediaUser untuk DJ. Ini dapat dilakukan sehingga akan berjalan sebagai ProgramUser.

Kata sandi / kredensial untuk MediaUser perlu dikompilasi ke dalam program, sehingga ia mengetahui kata sandi, tetapi pengguna akhir tidak perlu menyadari hal ini. Mereka hanya memiliki tombol atau program yang bertuliskan "Restart Tracktor", dan itu dapat melakukan semua pekerjaan.

Berikut adalah contoh proses C #. Satu-satunya perubahan adalah hard-coding kredensial sehingga DJ tidak melihatnya.

Reed Copsey
sumber
Ini pada dasarnya adalah apa yang akan saya sarankan tetapi dengan peringatan bahwa itu adalah keamanan melalui ketidakjelasan. Jika pengguna akhir dapat menemukan dan menjalankan salinan procmon atau procexp, mereka tidak akan mendapat masalah.
Ryan Bolger
@Ryan: Bagaimana Anda mendapatkan kata sandi dari procmon atau procexp dalam situasi ini? Anda bisa mendapatkan nama pengguna yang menjalankan suatu proses, tetapi saya tidak berpikir Anda bisa mendapatkan kredensial. Saya mengerti rev itu. merekayasa kata yang dapat dieksekusi dengan kata sandi yang dikode keras akan melakukannya, tetapi selain itu, bagaimana Anda mendapatkan info ini?
0

Lihatlah Steel RunAs. Saya telah menggunakannya untuk beberapa skrip dalam karir SysAdmin saya ketika tidak ada alternatif lain yang masuk akal. Ini pasti berguna. Ini menghasilkan file yang dapat dieksekusi, di mana ia mengenkripsi kredensial yang disimpan. Tautan

Nick Jacques
sumber
0

Situasi yang ideal bagi Anda untuk memodifikasi Traktor untuk dijalankan sebagai layanan, dengan GUI terpisah. Ini memberi Anda opsi keamanan terbaik - Traktor kemudian akan berjalan sebagai pengguna dengan kredensial yang benar, dan tidak ada yang perlu tahu apa itu, atau perlu mengetikkan kata sandi untuk memulai kembali. Bahkan, Anda dapat membuatnya me-restart sendiri jika macet di layanan snapin.

GUI Anda untuk menggerakkan Traktor kemudian ditulis sebagai aplikasi sendiri yang dijalankan pengguna sebagai dirinya sendiri, ia mengirimkan pesan ke layanan Traktor (melalui TCP / IP, RPC, memori bersama, atau bentuk lain dari IPC) untuk membuatnya melakukan apa yang diinginkan oleh pengguna. keinginan pengguna. Jika Anda membuat GUI berfungsi menggunakan protokol lintas jaringan (misalnya, TCP / IP) maka pengguna dapat masuk ke workstation-nya dan layanan traktor dapat berjalan pada server yang lebih andal, mungkin dikunci untuk mencegah reboot "tidak disengaja". Jika Anda baik, Anda bisa menulis aplikasi web untuk menggerakkan Traktor (yaitu, server web akan mengirim pesan ke layanan) dan pengguna Anda dapat menjalankan stasiun dari rumah!

Layanan traktor akan dimulai dengan server, tanpa perlu login.

Peter Mortensen
sumber
Ide yang menarik, tetapi Traktor sangat eksklusif dan tidak benar-benar memiliki API. Satu-satunya titik integrasi adalah MIDI, Send Keys, dan Plugins VST. Meskipun gagasan Traktor sebagai mesin playback berbasis servis dengan UI khusus menarik karena kami melihat ke UI kustom yang lebih kuat yang menangani hal-hal seperti pembuatan bagan dan pembuatan daftar putar.