Bagaimana cara menggunakan psexec tanpa hak admin di mesin target?

27

Apakah mungkin digunakan psexecuntuk menjalankan perintah pada mesin jarak jauh tanpa memiliki hak admin di mesin jarak jauh?

Saya mencoba menjalankan psexec \\<machine> -u <username> -p <password>, di mana <username>dan <password>merupakan kredensial non-admin, tetapi saya mendapatkan kesalahan "akses ditolak"

Saya dapat meremote desktop ke mesin jarak jauh dengan kredensial yang sama tanpa masalah.

Mesin lokal saya menjalankan Windows 7 Enterprise 64-bit, dan mesin jarak jauh menjalankan Windows Server 2008 64-bit. Saya memiliki hak admin di mesin lokal.

EDIT : Kepada semua orang yang menolak pertanyaan ini: Saya tidak berusaha mengelak dari segala bentuk keamanan. Saya sudah bisa menjalankan proses pada mesin jarak jauh dengan remote desktop-ing ke mesin jarak jauh dan menjalankannya. Saya hanya mencari cara baris perintah untuk melakukan sesuatu yang sudah bisa saya lakukan melalui GUI.

HC4 - mengembalikan Monica
sumber
Ini pertanyaan yang buruk karena di situs ini kami keberatan dengan pengguna akhir yang menanyakan kepada kami bagaimana cara menghindari sistem keamanan. Mungkin Anda harus membaca yang ini: meta.serverfault.com/questions/1659/… , diikuti dengan membaca FAQ.
John Gardeniers
7
Saya tidak berusaha mengelak dari sistem keamanan apa pun. Saya mencoba melakukan sesuatu yang sudah dapat saya lakukan melalui GUI, melalui baris perintah, yang menurut saya lebih nyaman. Tolong jelaskan kepada saya bagaimana itu merupakan pengelakan dari sistem keamanan.
HC4 - mengembalikan Monica
4
Ada banyak kali ketika seseorang yang merupakan administrator memiliki alasan yang baik untuk menemukan cara untuk menjalankan proses tanpa menggunakan hak administratif penuh. Kadang-kadang, tentu saja, itu tidak mungkin atau tidak praktis, tetapi jika beberapa penyesuaian pada sistem dapat membuat perbedaan antara membuka sistem sepenuhnya vs mengkonfigurasi untuk diakses menggunakan akun yang lebih terbatas, maka sering kali baik untuk melakukan pekerjaan yang diperlukan untuk berjalan di bawah akun yang lebih terbatas.
Shannon Wagner
8
Saya mengelola host Windows, Linux, dan UNIX dalam peran pekerjaan saya dan jika saya harus menjawab pertanyaan pengguna dengan menyerangnya karena mengajukan pertanyaan, saya akan segera keluar dari pekerjaan. Orang ini tidak meminta metode untuk menghindari hak administratif. Dia meminta metode menggunakan PSEXEC dengan hak terbatas untuk menjalankan proses yang sudah memiliki hak untuk dijalankan melalui GUI.
Robert Ebers

Jawaban:

26

Seperti yang ditemukan di: /programming/534426/psexec-help-needed

Anda harus memiliki hak admin pada target sebagai bagian dari psexec memulai layanan windows pada target, dan Anda memerlukan hak admin untuk dapat melakukan itu.

psexec menyalin file psexecsvc ke admin share dan kemudian menggunakan manajemen jarak jauh memulai layanan menggunakan file itu. Ini membuka pipa bernama dan menggunakannya untuk komunikasi lebih lanjut. Ketika sudah selesai itu merapikan setelah itu sendiri.

Walaupun saya tidak dapat menemukan dokumentasi RESMI yang mengatakan hal yang sama.

Safado
sumber
5

Minta menjadi admin lokal di mesin.

Edit: Atau jalankan perintah sebagai tugas yang dijadwalkan. Atau gunakan sakelar -l di PsExec: Jalankan proses sebagai pengguna terbatas (menghapus grup Administrator dan hanya mengizinkan hak istimewa yang diberikan pada grup Pengguna). Pada Windows Vista proses berjalan dengan Integritas Rendah. Lihat di sini: http://technet.microsoft.com/en-us/sysinternals/bb897553 . Maaf untuk mengatakan tapi RTFM!

Misalnya: Untuk menjalankan Internet Explorer dengan hak pengguna terbatas gunakan perintah ini:

psexec-l -d "c: \ program files \ internet explorer \ iexplore.exe"

Perhatikan bahwa kata sandi dikirimkan dalam bentuk teks yang jelas ke sistem jarak jauh.

Guido van Brakel
sumber
1
Sysadmin tidak akan mengizinkan ini, dan seharusnya tidak perlu. Itu tidak perlu di Linux.
HC4 - mengembalikan Monica
4
@ HighCommander4, apa bedanya apakah perlu atau tidak di Linux? Ini adalah lingkungan Windows. Berhenti membandingkan apel dengan jeruk.
John Gardeniers
2
@ John: Saya baru saja menjelaskan bahwa saya tidak mencoba melakukan apa pun yang seharusnya memerlukan hak admin. Saya memiliki dua mesin, dengan akun di masing-masing, dan saya mencoba untuk memulai proses pada satu mesin dari mesin lain dari jarak jauh. Bagi saya ini hal yang sangat wajar untuk dilakukan, dan tampaknya tidak masuk akal untuk meminta hak admin untuk melakukannya.
HC4 - mengembalikan Monica
@ HighCommander4, apa yang Anda coba lakukan, yang secara administratif mengakses komputer jarak jauh, TIDAK memerlukan akses admin pada Windows. Sementara itu mungkin tampak tidak masuk akal bagi Anda, masuk akal bagi mereka yang harus mengelola jaringan Windows.
John Gardeniers
4
@ John: Apa itu "administratif" tentang menjalankan program di akun Anda sendiri?
HC4 - mengembalikan Monica
2

Tidak, tidak dengan cara yang bermanfaat. Mengapa Anda ingin melakukan ini dan bukan menjadi admin?

tony roth
sumber
2
Minta Admin Domain Anda untuk melakukannya untuk Anda. Yang seharusnya tidak menjadi masalah kecuali apa yang Anda lakukan mencurigakan, kan?
Safado
2
Minta Admin Domain saya untuk melakukan apa untuk saya? Saya sudah bisa menjalankan proses dengan desktop jarak jauh ke dalam mesin menggunakan akun non-admin, dan menjalankan proses di bawah akun itu, yaitu proses itu sendiri tidak memerlukan hak admin untuk menjalankan. Saya hanya ingin dapat melakukan ini dari command-line daripada harus remote desktop ke mesin.
HC4 - mengembalikan Monica
1
Apakah mungkin untuk menginstal ssh di Server Windows tanpa hak admin? Jika demikian, dapatkah Anda mengarahkan saya ke tautan? Saya mencoba OpenSSH tetapi tampaknya membutuhkan hak admin.
HC4 - mengembalikan Monica
1
@tony roth: Anda tidak perlu perms tinggi untuk menjalankan daemon SSH di Linux. Anda hanya perlu izin tinggi untuk menjalankannya pada port istimewa (0-1023). Anda dapat mengonfigurasi klien dan server untuk menggunakan port yang tidak memiliki hak istimewa, tanpa memerlukan permisi yang ditinggikan di kedua mesin.
HC4 - mengembalikan Monica
2
Dan sebenarnya saya telah berhasil mengatur OpenSSH di server Windows tanpa hak admin apa pun dengan menjalankan daemon SSH pada port yang tidak memiliki hak istimewa. Teruskan dan pilih saya karena berani mengambil inisiatif untuk meningkatkan produktivitas saya di pekerjaan saya tanpa berkonsultasi terlebih dahulu dengan Sysadmin Suci.
HC4 - mengembalikan Monica
1

Anda mungkin lebih baik menggunakan perintah Powershell:

Robert Ebers
sumber
0

Solusi adalah dengan menggunakan skrip AutoIT untuk masuk ke desktop jarak jauh Anda pada jadwal dari workstation Anda. Minta folder "startup" Anda menjalankan proses Anda melalui skrip batch atau skrip AutoIT lainnya (sehingga Anda dapat membatalkan jika melakukan pekerjaan lain). Ini bukan baris perintah, tetapi itu mengotomatiskan pekerjaan Anda dalam parameter yang diberikan sysadmin Anda. Semoga ini bisa membantu.

Thrakorzog
sumber
-1

Mungkin ada cara untuk melakukan ini. Mungkin sesederhana mengedit izin WMI pada mesin. Jika tidak memungkinkan, maka menggunakan sesuatu seperti WinRM pasti akan berhasil.

Semua itu diperdebatkan untuk Anda. Anda tidak memiliki akses admin ke mesin sama sekali. Karenanya, Anda tidak dapat melakukan perubahan apa pun yang diperlukan untuk menjalankannya. Anda perlu menyelesaikan ini dengan sysadmin Anda alih-alih meminta kami untuk membantu Anda berkeliling dengannya. Ingat satu hal dengan sangat jelas, sebagian besar dari kita di sini adalah sysadmin dan kami tidak suka pengguna mencoba berkeliling kami. Itu tidak membuat kami sangat mungkin untuk membantu Anda mencoba berkeliling sysadmin Anda.

Jason Berg
sumber
2
Saya tidak melihat bagaimana saya mencoba "berkeliling" apa pun. Para sysadmin ingin agar saya dapat menjalankan proses pada mesin itu, jika tidak saya tidak akan bisa remote desktop ke dalamnya. Yang saya inginkan adalah cara untuk menjalankan proses menggunakan command-line daripada GUI desktop jarak jauh. Sekarang saya bisa bug sysadmin tentang hal ini, atau saya bisa menemukan cara untuk melakukannya sendiri. Saya pikir komunitas sysadmin profesional akan mencoba membantu saya, bukan menceramahi saya.
HC4 - mengembalikan Monica
@HighCommander - Jawabannya adalah sysadmin harus menyediakan kemampuan ini untuk Anda. Anda tidak dapat melakukannya sendiri karena Anda tidak memiliki hak administratif pada mesin. Jika mereka benar-benar menyetujui ini, maka minta mereka memberi Anda hak yang Anda butuhkan untuk dapat melakukan apa yang perlu Anda lakukan.
Jason Berg
-1

`const string subkey =" Software \ Sysinternals \ PsExec ";

        if (Environment.Is64BitOperatingSystem)
        {
            // For 64 Bit PC
            RegistryKey registryKey64 = RegistryKey.OpenBaseKey(RegistryHive.CurrentUser, RegistryView.Registry64);
            RegistryKey NDPKey64 = registryKey64.OpenSubKey(subkey);
            if (NDPKey64 != null)
            {
                Registry.CurrentUser.OpenSubKey(subkey, true).SetValue("EulaAccepted", 1, RegistryValueKind.DWord);
            }
            else
            {
                RegistryKey regKey64 = registryKey64.OpenSubKey("Software", true);
                regKey64.CreateSubKey("Sysinternals\\PsExec", RegistryKeyPermissionCheck.ReadWriteSubTree);
                Registry.CurrentUser.OpenSubKey(subkey, true).SetValue("EulaAccepted", 1, RegistryValueKind.DWord);
            }
        }
        else
        {
            //For 32 bit PC
            RegistryKey registryKey32 = Registry.CurrentUser.OpenSubKey(subkey);
            if (registryKey32 != null)
            {
                Registry.CurrentUser.OpenSubKey(subkey, true).SetValue("EulaAccepted", 1, RegistryValueKind.DWord);
            }
            else
            {
                RegistryKey regKey32 = Registry.CurrentUser.OpenSubKey("Software", true);
                regKey32.CreateSubKey("Sysinternals\\PsExec", RegistryKeyPermissionCheck.ReadWriteSubTree);
                Registry.CurrentUser.OpenSubKey(subkey, true).SetValue("EulaAccepted", 1, RegistryValueKind.DWord);
            }
        }`
Shyam
sumber
4
Satu cara pasti untuk membawa diri Anda ke perhatian sistem adalah dengan mengirim jawaban yang identik untuk pertanyaan lama. Hanya membuang kode tanpa penjelasan juga tidak bagus. Harap perbarui jawaban Anda dengan beberapa penjelasan tentang apa yang dilakukan kode dan bagaimana memecahkan masalah OPs.
user9517 mendukung GoFundMonica
1
Ok, kadang-kadang PsExec meskipun sudah diinstal tidak akan meminta exes lain ketika diminta. Masalahnya adalah dengan mengatur nilai DWORD EulaAccepted ke 1. Saya tidak dapat menemukan halaman yang membahas masalah ini, jadi ditambahkan di sini.
Shyam
-1

Mengapa seseorang tidak hanya mengatakan bahwa itu tidak mungkin? Saya perlu melakukan sesuatu yang serupa (Remote Exec a SAS Program), yang saya punya akses untuk melakukannya jika saya RDP ke server itu (yaitu saya punya akses masuk ke server. Saya punya akses sistem file ke folder kode sumber dan saya punya akses untuk menjalankan SAS).

Tidak ada sysadmin yang warasnya akan memberikan saya hak admin penuh pada kotak itu hanya untuk exec jarak jauh. Pada dasarnya PSTools adalah alat sysadmin yang tidak dirancang untuk digunakan untuk penyebaran solusi sistem TI yang sebenarnya.

waktu Greenwich
sumber
1
Kata-kata kasar ini tidak menjawab pertanyaan sama sekali.
Flup
Sebenarnya itu benar. +1
Amit Naidu