PsTools之PsExec執行遠端電腦上的指令或批次檔

PsExec 是PsTool中的一項工具,可讓我們在本地端執行遠端電腦的程式,甚至遠端電腦無該程式,也可直接從本地端下參數,啟動時複製到遠端電腦直接執行。

語法

1
psexec [\\computer[,computer2[,...] | @file]][-u user [-p psswd]][-n s][-r servicename][-h][-l][-s|-e][-x][-i [session]][-c [-f|-v]][-w directory][-d][-<priority>][-a n,n,...][-verbose] cmd [arguments]

參數

ParameterDescription
-a以逗號分隔應用程式可執行檔處理器,其中 1 是最低的編號 CPU。 例如,若要在 CPU 2 和 CPU 4 上執行應用程式,請輸入:「-a 2,4」
-c將指定的可執行檔案複製到遠端系統以供執行。 如果您省略此選項,應用程式必須位於遠端系統上的系統路徑中。
-d請勿等候進程終止 (非互動式) 。
-e不會載入指定的帳號設定檔。
-f即使檔案已存在於遠端系統上,仍複製指定的程式。
-i執行程式,使其與遠端系統上指定會話的桌面互動。 如果未指定任何會話,進程就會在主控台會話中執行。 嘗試使用重新導向的標準 IO) ,以互動方式 (執行主控台應用程式時 ,需要 此旗標。
-h如果目標系統是 Vista 或更高版本,請讓進程在有帳戶提升許可權的權杖的情況下執行。
-l以有限使用者身分執行程式 (移除 Administrators 群組,並只允許指派給 Users 群組的許可權) 。 在 Windows Vista 上,進程會以低完整性執行。
-n指定連線到遠端電腦的秒數逾時。
-p指定使用者名稱的選擇性密碼。 如果您省略此專案,系統會提示您輸入隱藏的密碼。
-r指定要建立或互動的遠端服務名稱。
-s在系統帳戶中執行遠端進程。
-u指定登入遠端電腦的選擇性使用者名稱。
-v只有在指定檔案的版本號碼較高或比遠端系統上的版本更新時,才複製指定的檔案。
-w設定相對於遠端電腦) 的程式工作目錄 (。
-x僅) 在 Winlogon 安全桌面上顯示 UI (本機系統。
-priority指定 -low、-belownormal、-abovenormal、-high 或 -realtime,以不同的優先順序執行進程。 使用 -background 在 Vista 上以低記憶體和 I/O 優先順序執行。
computer指示 PsExec 在指定的遠端電腦或電腦上執行應用程式。 如果您省略電腦名稱稱,PsExec 會在本機系統上執行應用程式,而且如果您指定萬用字元 (\*) ,PsExec 會在目前網域的所有電腦上執行 命令。
@filePsExec 會在檔案中列出的每部電腦上執行 命令。
cmd要執行的應用程式名稱。
arguments要傳遞 (的引數請注意,檔案路徑必須是目標系統上的絕對路徑) 。
-accepteula此旗標會隱藏授權對話方塊的顯示。

其他PsTools工具

工具描述
PsExec可讓您在任何使用者內容中執行處理序。
PsFile顯示系統上以遠端方式開啟的檔案。
PsGetSid顯示電腦或使用者的 Windows 安全性識別碼 (SID)。
PsInfo列出有關 Windows 系統的資訊。
PsKill根據名稱或處理序識別碼刪除處理序。
PsList列出有關執行中處理序的詳細資訊。
PsLoggedOn顯示所有本機登入使用者,以及遠端資源共用使用者。
PsLogList傾印 Windows 事件記錄檔記錄。
PsPasswd變更使用者帳戶密碼。
PsService檢視和控制 Windows 服務。
PsShutdown讓電腦關閉、重新啟動、休眠或暫止。
PsSuspend暫止執行中的處理序。

取得最高SYSTEM權限

系統管理員身分執行CMD(命令提示字元)

執行指令

1
psexec.exe -s -i cmd.exe

應該就會彈出另一個視窗
成功拿到 systemroot 的cmd.exe
可以下指令whoami確認,身分會是nt authority\system
你就成功取得了傳說中的最高system權限
超越administrator的權限

Run local bat file on a remote machine

1
psexec \\remotemachine -u remoteuser -i -d cmd -c localdisk:\folder\batchfile.bat

-c will copy from local path