it-swarm-vi.tech

Làm thế nào để bạn chạy CMD.exe trong Tài khoản hệ thống cục bộ?

Tôi hiện đang chạy Vista và tôi muốn hoàn thành thủ công các hoạt động tương tự như Dịch vụ Windows của mình. Vì Dịch vụ Windows đang chạy trong Tài khoản Hệ thống cục bộ, tôi muốn mô phỏng hành vi tương tự. Về cơ bản, tôi muốn chạy CMD.EXE trong Tài khoản hệ thống cục bộ.

Tôi đã tìm thấy thông tin trực tuyến trong đó đề xuất việc xóa CMD.exe bằng lệnh AT của Trình lập lịch tác vụ DOS, nhưng tôi nhận được cảnh báo của Vista rằng "do cải tiến bảo mật, tác vụ này sẽ chạy vào thời điểm ngoại trừ nhưng không tương tác." Đây là một lệnh mẫu:

AT 12:00 /interactive cmd.exe

Một giải pháp khác đề nghị tạo một Dịch vụ Windows thứ cấp thông qua Điều khiển dịch vụ (sc.exe) chỉ đơn thuần là khởi chạy CMD.exe. 

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

Trong trường hợp này, dịch vụ không khởi động được và dẫn đến thông báo lỗi sau:

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

Gợi ý thứ ba là khởi chạy CMD.exe thông qua tác vụ theo lịch trình. Mặc dù bạn có thể chạy các tác vụ theo lịch trình trong các tài khoản khác nhau, tôi không tin Tài khoản hệ thống cục bộ là một trong số đó.

Tôi cũng đã thử sử dụng Runas, nhưng nghĩ rằng tôi đang gặp phải hạn chế tương tự như khi tìm thấy một tác vụ theo lịch trình.

Cho đến nay, mỗi nỗ lực của tôi đã kết thúc trong thất bại. Bất kỳ đề xuất?

124
Ben Griswold

Mặc dù tôi chưa thử nghiệm cá nhân nhưng tôi có lý do chính đáng để tin rằng giải pháp AT đã nêu ở trên sẽ hoạt động cho XP, 2000 và Server 2003. Theo thử nghiệm của tôi và Bryant, chúng tôi đã xác định rằng cách tiếp cận tương tự không hoạt động với Vista hoặc Windows Server 2008 - rất có thể là do bảo mật được thêm vào và công tắc/tương tác bị phản đối. 

Tuy nhiên, tôi đã xem qua bài viết này trong đó thể hiện việc sử dụng PSTools từ SysIternals (được Microsoft mua lại vào tháng 7 năm 2006.) Tôi đã khởi chạy dòng lệnh thông qua sau và đột nhiên tôi đã chạy dưới Tài khoản quản trị cục bộ như ma thuật:

psexec -i -s cmd.exe

PSTools hoạt động tốt. Đó là một bộ công cụ gọn nhẹ, được ghi chép đầy đủ, cung cấp một giải pháp thích hợp cho vấn đề của tôi.

Rất cám ơn những người đã đề nghị giúp đỡ.

196
Ben Griswold
  1. Tải xuống psexec.exe từ Sysiternals .
  2. Đặt nó vào ổ C:\của bạn.
  3. Đăng nhập như một người dùng tiêu chuẩn hoặc quản trị viên và sử dụng lệnh sau: cd \. Điều này đặt bạn vào thư mục gốc của ổ đĩa của bạn, nơi psexec được đặt.
  4. Sử dụng lệnh sau: psexec -i -s cmd.exe trong đó -i dành cho tương tác và -s dành cho tài khoản hệ thống.
  5. Khi lệnh hoàn thành, Shell cmd sẽ được khởi chạy. Loại whoami; nó sẽ nói "hệ thống"
  6. Mở taskmanager. Giết Explorer.exe.
  7. Từ một lệnh nâng cao Loại Shell start Explorer.exe.
  8. Khi Explorer được khởi chạy, hãy chú ý tên "system" trong thanh menu start. Bây giờ bạn có thể xóa một số tệp trong thư mục system32 mà với tư cách là quản trị viên, bạn không thể xóa hoặc là quản trị viên, bạn sẽ phải cố gắng hết sức để thay đổi quyền để xóa các tệp đó.

Người dùng cố gắng đổi tên hoặc xóa các tệp hệ thống trong bất kỳ thư mục được bảo vệ nào của windows nên biết rằng tất cả các tệp windows được bảo vệ bởi DACLS trong khi đổi tên tệp bạn phải thay đổi chủ sở hữu và thay thế TrustedInstaller sở hữu tệp và tạo bất kỳ người dùng nào giống như người dùng Thuộc nhóm quản trị viên với tư cách là chủ sở hữu tệp, sau đó thử đổi tên tệp sau khi thay đổi quyền, nó sẽ hoạt động và trong khi bạn đang chạy windows Explorer với quyền riêng tư, bạn hơi bị hạn chế về quyền truy cập Mạng vì lý do bảo mật và đây vẫn là một chủ đề nghiên cứu cho tôi để có được quyền truy cập trở lại

39
raven

Tìm thấy câu trả lời ở đây dường như để giải quyết vấn đề bằng cách thêm/k bắt đầu vào tham số binPath. Vì vậy, nó sẽ cung cấp cho bạn:

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

Tuy nhiên, Ben nói rằng nó không hoạt động với anh ta và khi tôi dùng thử trên Windows Server 2008, nó đã tạo ra quy trình cmd.exe trong hệ thống cục bộ, nhưng nó không tương tác (tôi không thể nhìn thấy cửa sổ). 

Tôi không nghĩ có một cách dễ dàng để làm những gì bạn yêu cầu, nhưng tôi tự hỏi tại sao bạn lại làm điều đó? Bạn chỉ đang cố gắng để xem những gì đang xảy ra khi bạn chạy dịch vụ của bạn? Có vẻ như bạn chỉ có thể sử dụng đăng nhập để xác định những gì đang xảy ra thay vì phải chạy exe như hệ thống cục bộ ...

9
Bryant

Tôi sẽ khuyên bạn nên tìm ra bộ quyền tối thiểu mà dịch vụ của bạn thực sự cần và sử dụng, thay vì bối cảnh Hệ thống cục bộ quá đặc quyền. Ví dụ: Dịch vụ địa phương .

Các dịch vụ tương tác không còn hoạt động - hoặc ít nhất, không còn hiển thị UI - trên Windows Vista và Windows Server 2008 do cách ly phiên 0 .

6
Mike Dimmick

Sử dụng Secure Desktop để chạy cmd.exe dưới dạng system

Chúng tôi có thể dễ dàng truy cập kernel thông qua CMD trong Windows XP/Vista/7/8.1 bằng cách đính kèm trình gỡ lỗi:

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. Chạy CMD với tư cách Quản trị viên

  2. Sau đó sử dụng lệnh này trong 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. Sau đó chạy osk (onscreenkeyboard). Nó vẫn không chạy với mức toàn vẹn hệ thống nếu bạn kiểm tra qua process Explorer, nhưng nếu bạn có thể sử dụng OSK trong phiên dịch vụ, nó sẽ chạy dưới dạng NT Authority\SYSTEM

vì vậy, tôi đã có ý tưởng bạn phải chạy nó trên Secure Desktop.

Bắt đầu bất kỳ tập tin như Quản trị viên. Khi lời nhắc UAC xuất hiện, chỉ cần nhấn Win+U và bắt đầu OSK và nó sẽ bắt đầu CMD thay vào đó. Sau đó, trong Nhắc nhở nâng cao, nhập whoami và bạn sẽ nhận được NT Authority\System. Sau đó, bạn có thể khởi động Explorer từ lệnh hệ thống Shell và sử dụng cấu hình Hệ thống, nhưng bạn phần nào bị hạn chế những gì bạn có thể làm trên mạng thông qua các đặc quyền HỆ THỐNG vì lý do bảo mật. Tôi sẽ thêm lời giải thích sau khi tôi phát hiện ra nó một năm trước.

Giải thích ngắn gọn về việc này xảy ra như thế nào

Chạy Cmd.exe trong tài khoản hệ thống cục bộ mà không sử dụng PsExec. Phương pháp này chạy kỹ thuật Bẫy gỡ lỗi đã được phát hiện trước đó, nhưng kỹ thuật này có lợi ích riêng của nó, nó có thể được sử dụng để bẫy một số sâu độc hại hoặc độc hại trong trình gỡ lỗi và chạy một số exe khác để ngăn chặn sự lây lan hoặc thiệt hại tạm thời. Ở đây, khóa đăng ký này bẫy bàn phím trên màn hình trong trình gỡ lỗi riêng của windows và chạy cmd.exe thay vào đó, nhưng cmd vẫn sẽ chạy với đặc quyền của Logged on người dùng, tuy nhiên nếu chúng tôi chạy cmd trong session0, chúng tôi có thể lấy Shell hệ thống. Vì vậy, chúng tôi thêm vào đây một ý tưởng khác, chúng tôi mở rộng cmd trên máy tính để bàn an toàn, hãy nhớ máy tính để bàn an toàn chạy trong phiên 0 trong tài khoản hệ thống và chúng tôi có hệ thống Shell. Vì vậy, bất cứ khi nào bạn chạy bất cứ thứ gì khi nâng cao, bạn phải trả lời lời nhắc UAC và nhắc nhở UAC trên màn hình tối, không tương tác và một khi bạn thấy nó, bạn phải nhấn Win+U và sau đó chọn OSK bạn sẽ nhận được CMD.exe chạy dưới đặc quyền hệ thống cục bộ. Thậm chí còn có nhiều cách hơn để có quyền truy cập hệ thống cục bộ với CMD

3
raven

một thay thế cho điều này là Process hacker nếu bạn chạy như ... (Tương tác không hoạt động với những người có cải tiến bảo mật nhưng điều đó không quan trọng) và khi hộp mở, hãy đặt Service vào loại hộp và đưa HỆ THỐNG vào hộp người dùng và đặt C:\Users\Windows\system32\cmd.exe để phần còn lại nhấp vào ok và boch bạn đã có một cửa sổ với cmd trên đó và chạy như hệ thống bây giờ hãy tự làm các bước khác vì tôi đề nghị bạn biết chúng

3
James5001

Có một cách khác. Có một chương trình gọi là PowerRun cho phép chạy cmd nâng cao. Ngay cả với quyền TrustedInstaller. Nó cho phép cả hai lệnh console và GUI. 

2
Alexander Haakan

nếu bạn có thể viết một tệp bó không cần tương tác, hãy thử chạy tệp bó đó như một dịch vụ, để làm những gì cần phải làm.

1

Sử dụng bộ lập lịch tác vụ, lên lịch chạy CMDKEY chạy trong HỆ THỐNG với các đối số thích hợp của/add:/user: và/pass:

Không cần cài đặt gì cả.

0
Paul Harris

Tôi sử dụng tiện ích RunAsTi để chạy dưới dạng TrustedInstaller (đặc quyền cao). Tiện ích có thể được sử dụng ngay cả trong chế độ khôi phục của Windows (chế độ bạn nhập bằng cách thực hiện Shift + Restart), psexec tiện ích không hoạt động ở đó. Nhưng bạn cần thêm C:\WindowsC:\Windows\System32 (không phải X:\WindowsX:\Windows\System32) vào biến môi trường PATH, nếu không RunAsTi sẽ không hoạt động trong chế độ khôi phục, nó sẽ chỉ in: Điều chỉnhTokenPriv đặc quyền cho SeImpersonateName: Không phải tất cả các đặc quyền hoặc nhóm được tham chiếu đều được gán cho người gọi .

0
anton_rh