it-swarm-id.com

Bagaimana Anda menjalankan CMD.exe di bawah Akun Sistem Lokal?

Saat ini saya sedang menjalankan Vista dan saya ingin secara manual menyelesaikan operasi yang sama dengan Layanan Windows saya. Karena Layanan Windows berjalan di bawah Akun Sistem Lokal, saya ingin meniru perilaku yang sama ini. Pada dasarnya, saya ingin menjalankan CMD.EXE di bawah Akun Sistem Lokal.

Saya menemukan informasi online yang menyarankan lauching CMD.exe menggunakan perintah DOS Task Scheduler AT, tetapi saya menerima peringatan Vista bahwa "karena peningkatan keamanan, tugas ini akan berjalan pada saat dikecualikan tetapi tidak secara interaktif." Berikut ini contoh perintah:

AT 12:00 /interactive cmd.exe

Solusi lain menyarankan membuat Layanan Windows sekunder melalui Kontrol Layanan (sc.exe) yang hanya meluncurkan CMD.exe. 

C:\sc create RunCMDAsLSA binpath= "cmd" type=own type=interact
C:\sc start RunCMDAsLSA

Dalam hal ini layanan gagal untuk memulai dan menghasilkan pesan kesalahan berikut:

FAILED 1053: The service did not respond to the start or control request in a timely fashion.

Saran ketiga adalah meluncurkan CMD.exe melalui Tugas Terjadwal. Meskipun Anda dapat menjalankan tugas terjadwal dalam berbagai akun, saya tidak percaya Akun Sistem Lokal adalah salah satunya.

Saya sudah mencoba menggunakan Runas juga, tetapi berpikir saya berlari ke batasan yang sama seperti yang ditemukan ketika menjalankan tugas yang dijadwalkan.

Sejauh ini, setiap upaya saya berakhir dengan kegagalan. Ada saran?

124
Ben Griswold

Meskipun saya belum diuji secara pribadi, saya punya alasan kuat untuk percaya bahwa solusi yang disebutkan di atas AT PERINTAH akan bekerja untuk XP, 2000 dan Server 2003. Per pengujian saya dan Bryant, kami telah mengidentifikasi bahwa pendekatan tidak bekerja dengan Vista atau Windows Server 2008 - kemungkinan besar karena keamanan tambahan dan/switch interaktif tidak digunakan lagi. 

Namun, saya menemukan artikel ini yang menunjukkan penggunaan PSTools dari SysInternals (yang diakuisisi oleh Microsoft pada Juli, 2006.) Saya meluncurkan baris perintah melalui yang berikut dan tiba-tiba saya sedang berjalan di bawah Akun Admin Lokal seperti sulap:

psexec -i -s cmd.exe

PSTools bekerja dengan baik. Ini adalah seperangkat alat yang ringan dan terdokumentasi dengan baik yang menyediakan solusi tepat untuk masalah saya.

Terima kasih banyak kepada mereka yang menawarkan bantuan.

196
Ben Griswold
  1. Unduh psexec.exe dari Sysinternals .
  2. Tempatkan di drive C:\Anda.
  3. Masuk sebagai pengguna standar atau admin dan gunakan perintah berikut: cd \. Ini menempatkan Anda di direktori root drive Anda, di mana psexec berada.
  4. Gunakan perintah berikut: psexec -i -s cmd.exe di mana -i untuk interaktif dan -s untuk akun sistem.
  5. Ketika perintah selesai, sebuah cmd Shell akan diluncurkan. Ketik whoami; ia akan mengatakan 'sistem "
  6. Buka taskmanager. Bunuh Explorer.exe.
  7. Dari perintah Shell yang ditinggikan, ketik start Explorer.exe.
  8. Ketika Explorer diluncurkan perhatikan nama "sistem" di bilah menu mulai. Sekarang Anda dapat menghapus beberapa file dalam direktori system32 yang sebagai admin Anda tidak dapat menghapus atau sebagai admin Anda harus berusaha keras untuk mengubah izin untuk menghapus file-file itu.

Pengguna yang mencoba mengubah nama atau menghapus file Sistem di direktori windows yang dilindungi harus tahu bahwa semua file windows dilindungi oleh DACLS saat mengganti nama file Anda harus mengubah pemilik dan mengganti TrustedInstaller yang memiliki file dan membuat pengguna seperti pengguna yang milik grup administrator sebagai pemilik file kemudian coba ganti namanya setelah mengubah izin, itu akan berfungsi dan saat Anda menjalankan windows Explorer dengan hak kernel Anda agak terbatas dalam hal akses Jaringan karena alasan keamanan dan itu masih merupakan topik penelitian bagi saya untuk mendapatkan akses kembali

39
raven

Menemukan jawaban di sini yang tampaknya menyelesaikan masalah dengan menambahkan/k mulai ke parameter binPath. Jadi itu akan memberi Anda:

sc create testsvc binpath= "cmd /K start" type= own type= interact

Namun, Ben mengatakan itu tidak berhasil untuknya dan ketika saya mencobanya di Windows Server 2008 ia membuat proses cmd.exe di bawah sistem lokal, tetapi itu tidak interaktif (saya tidak bisa melihat jendela). 

Saya tidak berpikir ada cara mudah untuk melakukan apa yang Anda minta, tapi saya bertanya-tanya mengapa Anda melakukannya? Apakah Anda hanya mencoba melihat apa yang terjadi ketika Anda menjalankan layanan Anda? Sepertinya Anda bisa menggunakan pencatatan untuk menentukan apa yang terjadi alih-alih harus menjalankan exe sebagai sistem lokal ...

9
Bryant

Saya akan merekomendasikan Anda bekerja mengatur izin minimum yang layanan Anda benar-benar butuhkan dan menggunakannya, daripada konteks Sistem Lokal yang terlalu istimewa. Misalnya, Layanan Lokal .

Layanan interaktif tidak lagi berfungsi - atau setidaknya, tidak lagi menampilkan UI - di Windows Vista dan Windows Server 2008 karena isolasi sesi 0 .

6
Mike Dimmick

Menggunakan Secure Desktop untuk menjalankan cmd.exe sebagai system

Kita bisa mendapatkan akses kernel melalui CMD di Windows XP/Vista/7/8.1 dengan mudah dengan melampirkan debugger:

REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\osk.exe" /v Debugger /t REG_SZ /d "C:\windows\system32\cmd.exe"
  1. Jalankan CMD sebagai Administrator

  2. Kemudian gunakan perintah ini di Elevated:

     CMD REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\osk.exe" /v Debugger /t REG_SZ /d "C:\windows\system32\cmd.exe"
    
  3. Kemudian jalankan osk (onscreenkeyboard). Itu masih tidak berjalan dengan tingkat integritas sistem jika Anda memeriksa melalui proses Explorer, tetapi jika Anda dapat menggunakan OSK di sesi layanan, itu akan berjalan sebagai NT Authority\SYSTEM

jadi saya punya ide Anda harus menjalankannya di Secure Desktop.

Mulai file apa saja sebagai Administrator. Saat UAC muncul, cukup tekan Win+U dan mulai OSK dan itu akan memulai CMD sebagai gantinya. Kemudian di Prompt yang ditinggikan, ketik whoami dan Anda akan mendapatkan NT Authority\System. Setelah itu, Anda dapat memulai Explorer dari perintah sistem Shell dan menggunakan profil Sistem, tetapi Anda agak terbatas apa yang dapat Anda lakukan pada jaringan melalui hak istimewa SISTEM untuk alasan keamanan. Saya akan menambahkan lebih banyak penjelasan nanti karena saya menemukannya setahun yang lalu.

Penjelasan Singkat tentang bagaimana ini terjadi

Menjalankan Cmd.exe Di Bawah Akun Sistem Lokal Tanpa Menggunakan PsExec. Metode ini menjalankan teknik Debugger Trap yang ditemukan sebelumnya, yah teknik ini memiliki manfaatnya sendiri, dapat digunakan untuk menjebak beberapa licik/cacing jahat atau malware di debugger dan menjalankan beberapa exe lain sebagai gantinya untuk menghentikan penyebaran atau kerusakan sementara. di sini kunci registri ini menjebak keyboard pada layar di windows native debugger dan menjalankan cmd.exe sebagai gantinya tetapi cmd masih akan berjalan dengan Logged pada hak pengguna, namun jika kita menjalankan cmd di session0 kita bisa mendapatkan sistem Shell. jadi kami tambahkan di sini ide lain kami span cmd pada desktop aman mengingat desktop aman berjalan di sesi 0 di bawah akun sistem dan kami mendapatkan sistem Shell. Jadi, setiap kali Anda menjalankan apa pun yang ditinggikan, Anda harus menjawab UAC Prompt dan UAC meminta pada desktop gelap, non-interaktif dan setelah Anda melihatnya, Anda harus menekan Win+U dan kemudian pilih OSK Anda akan mendapatkan CMD.exe berjalan di bawah hak istimewa sistem lokal. Bahkan ada lebih banyak cara untuk mendapatkan akses sistem lokal dengan CMD

3
raven

alternatif untuk ini adalah Proses peretas jika Anda menjalankannya sebagai ... (Interaktif tidak bekerja untuk orang-orang dengan peningkatan keamanan tetapi itu tidak masalah) dan ketika kotak terbuka masukkan Layanan ke jenis kotak dan masukkan SISTEM ke dalam kotak pengguna dan letakkan C:\Users\Windows\system32\cmd.exe biarkan sisanya klik ok dan boch Anda sudah punya jendela dengan cmd di atasnya dan jalankan sebagai sistem sekarang lakukan langkah-langkah lain untuk diri Anda sendiri karena saya menyarankan Anda mengenal mereka

3
James5001

Ada cara lain. Ada program yang disebut PowerRun yang memungkinkan cmd tinggi untuk dijalankan. Bahkan dengan hak TrustedInstaller. Memungkinkan untuk perintah konsol dan GUI. 

2
Alexander Haakan

jika Anda dapat menulis file batch yang tidak perlu interaktif, coba jalankan file batch itu sebagai layanan, untuk melakukan apa yang perlu dilakukan.

1

Saya menggunakan utilitas RunAsTi untuk dijalankan sebagai TrustedInstaller (hak istimewa tinggi). Utilitas dapat digunakan bahkan dalam mode pemulihan Windows (mode yang Anda masukkan dengan melakukan Shift + Restart), utilitas psexec tidak berfungsi di sana. Tetapi Anda perlu menambahkan path C:\Windows dan C:\Windows\System32 (bukan X:\Windows dan X:\Windows\System32) Anda ke variabel lingkungan PATH, jika tidak RunAsTi tidak akan bekerja dalam mode pemulihan, ini hanya akan mencetak: AdjustTokenPrivileges untuk SeImpersonateName: Tidak semua hak istimewa untuk SeImpersonateName: atau grup yang direferensikan ditugaskan ke pemanggil.

0
anton_rh