Làm cách nào để sử dụng psexec mà không có quyền quản trị viên trên máy đích?


27

Có thể sử dụng psexecđể thực thi một lệnh trên máy từ xa mà không có quyền quản trị viên trên máy từ xa không?

Tôi đã thử chạy psexec \\<machine> -u <username> -p <password>, ở đâu <username> <password>là thông tin không phải của quản trị viên, nhưng tôi gặp lỗi "truy cập bị từ chối"

Tôi có thể điều khiển máy tính từ xa vào máy từ xa với cùng thông tin mà không gặp vấn đề gì.

Máy cục bộ của tôi đang chạy Windows 7 Enterprise 64-bit và máy từ xa đang chạy Windows Server 2008 64-bit. Tôi có đặc quyền quản trị trên máy cục bộ.

EDIT : Đối với tất cả những người đang hạ thấp câu hỏi này: Tôi không cố gắng phá vỡ bất kỳ biện pháp bảo mật nào. Tôi đã có thể chạy quy trình trên máy từ xa bằng máy tính để bàn từ xa vào máy từ xa và chạy nó. Tôi chỉ đơn giản là tìm kiếm một cách dòng lệnh để làm một cái gì đó tôi có thể làm thông qua GUI.


Đó là một câu hỏi kém bởi vì trên trang web này, chúng tôi phản đối người dùng cuối hỏi chúng tôi cách phá vỡ các hệ thống bảo mật. Có lẽ bạn nên đọc bài này: meta.serverfault.com/questions/1659/ , sau đó là phần đọc Câu hỏi thường gặp.
John Gardeniers

7
Tôi không cố gắng phá vỡ bất kỳ hệ thống an ninh. Tôi đang cố gắng làm một cái gì đó tôi có thể làm thông qua GUI, thông qua dòng lệnh thay vào đó, mà tôi thấy thuận tiện hơn. Vui lòng giải thích cho tôi cách thức cấu thành hệ thống an ninh.
HC4 - phục hồi Monica

4
Có nhiều khi một người là quản trị viên có lý do chính đáng để tìm cách chạy quy trình mà không sử dụng toàn quyền quản trị. Đôi khi, tất nhiên, điều đó là không thể hoặc không thực tế, nhưng nếu một vài điều chỉnh cho hệ thống có thể tạo ra sự khác biệt giữa việc mở một hệ thống đầy đủ so với việc cấu hình nó để được truy cập bằng tài khoản hạn chế hơn, thì thường rất tốt để làm điều đó công việc cần thiết để chạy dưới tài khoản hạn chế hơn.
Shannon Wagner

8
Tôi quản trị các máy chủ Windows, Linux và UNIX trong vai trò công việc của mình và nếu tôi giải quyết một câu hỏi của người dùng bằng cách tấn công anh ta để hỏi câu hỏi tôi sẽ sớm bị mất việc. Người này không yêu cầu một phương thức phá vỡ quyền hành chính. Anh ta đang yêu cầu một phương pháp sử dụng PSEXEC với các quyền hạn chế để chạy một quy trình mà anh ta đã có quyền chạy qua GUI.
Robert Ebers

Câu trả lời:


26

Như được tìm thấy tại: https://stackoverflow.com/questions/534426/psexec-help-needed

Bạn cần có quyền quản trị trên mục tiêu vì một phần của psexec khởi động dịch vụ windows trên mục tiêu và bạn cần quyền quản trị để có thể làm điều đó.

psexec sao chép tệp psexecsvc vào chia sẻ của quản trị viên và sau đó sử dụng quản lý từ xa sẽ khởi động một dịch vụ sử dụng tệp đó. Nó mở ra các ống có tên và sử dụng nó để liên lạc. Khi nó kết thúc, nó tự dọn dẹp.

Mặc dù tôi không thể tìm thấy tài liệu CHÍNH THỨC nói điều tương tự.


5

Yêu cầu được quản trị viên cục bộ trên máy.

Chỉnh sửa: Hoặc chạy lệnh như một tác vụ theo lịch trình. Hoặc sử dụng công tắc -l trong PsExec: Chạy quy trình dưới dạng người dùng bị giới hạn (loại bỏ nhóm Quản trị viên và chỉ cho phép các đặc quyền được gán cho nhóm Người dùng). Trên Windows Vista, quy trình chạy với tính toàn vẹn thấp. Xem tại đây: http://technet.microsoft.com/en-us/sysiternals/bb897553 . Xin lỗi để nói nhưng RTFM!

Ví dụ: Để chạy Internet Explorer như với các đặc quyền người dùng hạn chế, hãy sử dụng lệnh này:

psexec -l -d "c: \ chương trình tập tin \ internet explorer \ iexplore.exe"

Lưu ý rằng mật khẩu được truyền dưới dạng văn bản rõ ràng đến hệ thống từ xa.


1
Các hệ thống sẽ không cho phép điều này và không cần thiết. Nó không cần thiết trên Linux.
HC4 - phục hồi Monica

4
@ HighCommander4, có vấn đề gì khác biệt dù có cần thiết trên Linux không? Đây là một môi trường Windows. Ngừng so sánh táo với cam.
John Gardeniers

2
@ John: Tôi chỉ giải thích rằng tôi không cố làm bất cứ điều gì cần có đặc quyền của quản trị viên. Tôi có hai máy, với một tài khoản trên mỗi máy và tôi đang cố gắng bắt đầu từ xa một quy trình trên một máy từ máy kia. Đây dường như là một điều rất tự nhiên để làm, và có vẻ vô lý khi yêu cầu đặc quyền của quản trị viên để làm điều đó.
HC4 - phục hồi Monica

@ HighCommander4, những gì bạn đang cố gắng thực hiện, đó là truy cập quản trị một máy tính từ xa, DOES yêu cầu quyền truy cập quản trị viên trên Windows. Mặc dù điều đó có vẻ vô lý với bạn nhưng nó có ý nghĩa hoàn hảo với những người phải quản trị mạng Windows.
John Gardeniers

4
@ John: "hành chính" về việc chạy một chương trình trên tài khoản của bạn là gì?
HC4 - phục hồi Monica

2

Không, không phải là một cách hữu ích. Tại sao bạn muốn làm điều này và không phải là một quản trị viên?


2
Yêu cầu Quản trị viên tên miền của bạn làm điều đó cho bạn. Đó không phải là một vấn đề trừ khi những gì bạn đang làm là tanh, phải không?
Safado

2
Hỏi Quản trị viên tên miền của tôi để làm gì cho tôi? Tôi đã có thể chạy quy trình bằng cách điều khiển máy tính từ xa vào máy bằng tài khoản không phải quản trị viên và chạy quy trình trong tài khoản đó, tức là bản thân quy trình không cần quyền quản trị viên để chạy. Tôi chỉ muốn có thể làm điều này từ dòng lệnh thay vì phải điều khiển máy tính từ xa vào máy.
HC4 - phục hồi Monica

1
Có thể cài đặt ssh trên Windows Server mà không có quyền quản trị viên không? Nếu vậy, bạn có thể chỉ cho tôi một liên kết? Tôi đã thử OpenSSH nhưng có vẻ như cần có đặc quyền của quản trị viên.
HC4 - phục hồi Monica

1
@tony roth: Bạn không cần perms nâng cao để chạy trình nền SSH trên Linux. Bạn chỉ cần perms nâng cao để chạy nó trên một cổng đặc quyền (0-1023). Bạn có thể định cấu hình cả máy khách và máy chủ để sử dụng cổng không có đặc quyền, mà không cần các phép nâng cao trên cả hai máy.
HC4 - phục hồi Monica

2
Và trên thực tế, tôi đã quản lý để thiết lập OpenSSH trên máy chủ Windows mà không có bất kỳ đặc quyền quản trị viên nào bằng cách chạy trình nền SSH trên một cổng không có đặc quyền. Hãy tiếp tục và hạ thấp tôi vì dám chủ động tăng năng suất trong công việc của tôi mà không hỏi ý kiến ​​của Sysadmin trước.
HC4 - phục hồi Monica


0

Một giải pháp sẽ là sử dụng tập lệnh AutoIT để đăng nhập vào máy tính để bàn từ xa theo lịch trình từ máy trạm của bạn. Có thư mục "khởi động" của bạn thực hiện quy trình của bạn thông qua tập lệnh bó hoặc tập lệnh AutoIT khác (để bạn có thể hủy nếu thực hiện công việc khác). Đây không phải là dòng lệnh, nhưng nó tự động hóa công việc của bạn trong các tham số mà sysadmin đã cung cấp cho bạn. Hy vọng nó giúp.


-1

Có lẽ có một cách để làm điều này. Nó có thể đơn giản như chỉnh sửa quyền WMI trên máy. Nếu không thể, thì sử dụng cái gì đó như WinRM chắc chắn sẽ hoạt động.

Tất cả điều đó là moot cho bạn mặc dù. Bạn hoàn toàn không có quyền truy cập quản trị viên vào máy. Do đó, bạn không thể thực hiện bất kỳ thay đổi cần thiết nào để thực hiện điều này. Bạn cần phải làm việc này với sysadmin của bạn thay vì yêu cầu chúng tôi giúp bạn đi vòng quanh anh ấy. Hãy nhớ một điều rất rõ ràng, hầu hết chúng ta ở đây là các hệ thống và chúng tôi không thích người dùng cố gắng đi xung quanh chúng ta. Điều đó không làm cho chúng tôi rất có thể giúp bạn cố gắng đi xung quanh hệ thống của bạn.


2
Tôi không thấy tôi đang cố gắng "đi vòng quanh" bất cứ điều gì. Các sysadins muốn tôi có thể chạy các tiến trình trên máy đó, nếu không tôi sẽ không thể điều khiển máy tính để bàn từ xa vào nó. Tất cả những gì tôi muốn là một cách để chạy quy trình bằng cách sử dụng dòng lệnh thay vì GUI trên máy tính từ xa. Bây giờ tôi có thể sửa lỗi hệ thống về điều này, hoặc đơn giản là tôi có thể tự tìm cách làm điều đó. Tôi nghĩ rằng một cộng đồng các sysadins chuyên nghiệp sẽ cố gắng giúp tôi chứ không phải giảng cho tôi.
HC4 - phục hồi Monica

@HighCommander - Câu trả lời là các hệ thống phải cung cấp khả năng này cho bạn. Bạn không thể tự làm điều đó vì bạn không có quyền quản trị trên máy. Nếu họ thực sự chấp thuận điều này, thì hãy yêu cầu họ cung cấp cho bạn các quyền bạn cần để có thể làm những gì bạn cần làm.
Jason Berg

-1

`const chuỗi subkey =" Phần mềm \ Sysiternals \ 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);
            }
        }`

4
Một cách chắc chắn để khiến bạn chú ý đến hệ thống là đăng câu trả lời giống hệt nhau cho các câu hỏi cũ. Chỉ cần bán mã mà không cần giải thích là không tốt. Vui lòng cập nhật câu trả lời của bạn với một số giải thích về những gì mã làm và cách giải quyết vấn đề OP.
user9517 hỗ trợ GoFundMonica

1
Ok, đôi khi sự kiện PsExec được cài đặt sẽ không gọi các exes khác khi được yêu cầu. Vấn đề là phải làm gì với việc đặt giá trị DWORD EulaAccepted thành 1. Tôi không thể tìm thấy một trang thảo luận về vấn đề này, vì vậy đã được thêm vào đây.
Shyam

-1

Tại sao ai đó không chỉ nói rằng điều đó là không thể? Tôi cần phải làm một cái gì đó tương tự (Remote Exec a SAS Program), mà tôi có quyền truy cập để thực hiện nếu tôi RDP vào máy chủ đó (tức là tôi có quyền truy cập đăng nhập vào máy chủ. Tôi có quyền truy cập hệ thống tệp vào thư mục mã nguồn và tôi có truy cập để chạy SAS).

Không có sysadmin là tâm trí đúng đắn của anh ấy / cô ấy sẽ cấp cho tôi quyền quản trị đầy đủ trên hộp đó chỉ để thực hiện từ xa. Về cơ bản PSTools là một công cụ sysadmin không được thiết kế để sử dụng cho việc triển khai các giải pháp hệ thống CNTT thực tế.


1
Câu nói này không trả lời câu hỏi nào cả.
Flup

Thật ra nó có. +1
Amit N Nikol
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.