「PsExec」の版間の差分

提供: セキュリティ
移動: 案内検索
(ページの作成:「PsExec とは、Windowsの軽量なリモートコマンド実行のクライアントです。PSToolsに含まれています。 '''読み方''' ;PsExec:...」)
 
 
(同じ利用者による、間の2版が非表示)
行6: 行6:
  
 
== 概要 ==
 
== 概要 ==
 
 
== ダウンロード ==
 
== ダウンロード ==
 
* [http://download.sysinternals.com/files/PSTools.zip PsTools]
 
* [http://download.sysinternals.com/files/PSTools.zip PsTools]
 
 
== インストール ==
 
== インストール ==
 
[[PsExec]]を実行可能なパスにコピーするだけです。
 
[[PsExec]]を実行可能なパスにコピーするだけです。
 
 
== 使い方 ==
 
== 使い方 ==
 
=== コマンドラインオプション ===
 
=== コマンドラインオプション ===
<syntaxhighlight lang="bash">
+
<syntaxhighlight lang="dos">
 
psexec [\\<コンピューター>[,<コンピューター2>[,...] | @<ファイル>]
 
psexec [\\<コンピューター>[,<コンピューター2>[,...] | @<ファイル>]
 
[-u <ユーザー> [-p <パスワード>]][-n s][-l][-s|-e][-x][-i [<セッション>]]
 
[-u <ユーザー> [-p <パスワード>]][-n s][-l][-s|-e][-x][-i [<セッション>]]
 
[-c [-f|-v]][-w <ディレクトリ>][-d][-<優先度>][-a n,n,... ] cmd [<引数>]
 
[-c [-f|-v]][-w <ディレクトリ>][-d][-<優先度>][-a n,n,... ] cmd [<引数>]
 
</syntaxhighlight>
 
</syntaxhighlight>
 
 
=== リモートでのコマンド実行 ===
 
=== リモートでのコマンド実行 ===
\\fooで対話型の[[コマンドプロンプト]]を起動します。
+
\\fooで対話型のコマンドプロンプトを起動します。
<syntaxhighlight lang="bash">
+
<syntaxhighlight lang="dos">
 
psexec \\foo cmd
 
psexec \\foo cmd
 
</syntaxhighlight>
 
</syntaxhighlight>
  
\\fooで[[ipconfig]]コマンドを実行します。
+
\\fooでipconfigコマンドを実行します。
<syntaxhighlight lang="bash">
+
<syntaxhighlight lang="dos">
 
psexec \\foo ipconfig /all
 
psexec \\foo ipconfig /all
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
\\fooでtest.exeを実行します。test.exe がパスが通っていることが前提です。
 
\\fooでtest.exeを実行します。test.exe がパスが通っていることが前提です。
<syntaxhighlight lang="bash">
+
<syntaxhighlight lang="dos">
 
psexec \\foo -c test.exe
 
psexec \\foo -c test.exe
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
\\fooでフルパスで指定したtest.exeを実行します。
 
\\fooでフルパスで指定したtest.exeを実行します。
<syntaxhighlight lang="bash">
+
<syntaxhighlight lang="dos">
 
psexec \\foo -c c:\bin\test.exe
 
psexec \\foo -c c:\bin\test.exe
 
</syntaxhighlight>
 
</syntaxhighlight>
行44: 行40:
 
=== ユーザー名とパスワードを指定して実行する ===
 
=== ユーザー名とパスワードを指定して実行する ===
 
ユーザー名と[[パスワード]]を指定してコマンドを実行します。
 
ユーザー名と[[パスワード]]を指定してコマンドを実行します。
<syntaxhighlight lang="bash">
+
<syntaxhighlight lang="dos">
 
psexec \\foo -u user -p password cmd
 
psexec \\foo -u user -p password cmd
 
</syntaxhighlight>
 
</syntaxhighlight>
 
 
=== リモートに存在しないコマンドをコピーして実行する ===
 
=== リモートに存在しないコマンドをコピーして実行する ===
 
リモートホストに実行したいコマンドがない場合は、[[PsExec]]はローカルのファイルをコピーして実行できます。
 
リモートホストに実行したいコマンドがない場合は、[[PsExec]]はローカルのファイルをコピーして実行できます。
行62: 行57:
 
-vオプションを追加することで、ファイルのバージョンとタイムスタンプが検査され、ローカルのプログラムが新しいバージョンか新しいタイムスタンプの場合に限り、ファイルがコピーされます。
 
-vオプションを追加することで、ファイルのバージョンとタイムスタンプが検査され、ローカルのプログラムが新しいバージョンか新しいタイムスタンプの場合に限り、ファイルがコピーされます。
  
<syntaxhighlight lang="bash">
+
<syntaxhighlight lang="dos">
 
psexec \\foo -c test.exe
 
psexec \\foo -c test.exe
 
psexec \\foo -c test.exe -f
 
psexec \\foo -c test.exe -f
 
psexec \\foo -c test.exe -f -v
 
psexec \\foo -c test.exe -f -v
 
</syntaxhighlight>
 
</syntaxhighlight>
 
 
=== 複数のホストでコマンド実行 ===
 
=== 複数のホストでコマンド実行 ===
<syntaxhighlight lang="bash">
+
<syntaxhighlight lang="dos">
 
psexec @hosts.txt test.exe
 
psexec @hosts.txt test.exe
 
</syntaxhighlight>
 
</syntaxhighlight>
行75: 行69:
 
-nオプションで、リモート接続に許可する最大の秒数を指定できます。
 
-nオプションで、リモート接続に許可する最大の秒数を指定できます。
 
以下の例では、接続ごとに10秒に指定します。
 
以下の例では、接続ごとに10秒に指定します。
<syntaxhighlight lang="bash">
+
<syntaxhighlight lang="dos">
 
psexec @hosts.txt -n 10 test.exe
 
psexec @hosts.txt -n 10 test.exe
 
</syntaxhighlight>
 
</syntaxhighlight>
 
 
=== システムアカウントで実行する ===
 
=== システムアカウントで実行する ===
 
-sオプションを指定した場合、対象のコマンドをシステムアカウントで実行します。
 
-sオプションを指定した場合、対象のコマンドをシステムアカウントで実行します。
行84: 行77:
  
 
この実行モードは、対話ユーザーがログオフした場合にもプロセスの実行を継続します。
 
この実行モードは、対話ユーザーがログオフした場合にもプロセスの実行を継続します。
<syntaxhighlight lang="bash">
+
<syntaxhighlight lang="dos">
 
psexec \\foo -s cmd.exe
 
psexec \\foo -s cmd.exe
 
</syntaxhighlight>
 
</syntaxhighlight>
 
 
== 関連項目 ==
 
== 関連項目 ==
 
* [[Windowsのパスワード]]
 
* [[Windowsのパスワード]]
 
* [[Windows]]
 
* [[Windows]]
 
* [[Pass the Hash]]
 
* [[Pass the Hash]]
* [[Metasploit]]
+
<!-- vim: filetype=mediawiki
<!-- vim: filetype=mediawiki -->
+
-->

2015年9月22日 (火) 15:07時点における最新版

PsExec とは、Windowsの軽量なリモートコマンド実行のクライアントです。PSToolsに含まれています。

読み方

PsExec
ぴーえす えぐぜっく

概要

ダウンロード

インストール

PsExecを実行可能なパスにコピーするだけです。

使い方

コマンドラインオプション

psexec [\\<コンピューター>[,<コンピューター2>[,...] | @<ファイル>]
[-u <ユーザー> [-p <パスワード>]][-n s][-l][-s|-e][-x][-i [<セッション>]]
[-c [-f|-v]][-w <ディレクトリ>][-d][-<優先度>][-a n,n,... ] cmd [<引数>]

リモートでのコマンド実行

\\fooで対話型のコマンドプロンプトを起動します。

psexec \\foo cmd

\\fooでipconfigコマンドを実行します。

psexec \\foo ipconfig /all

\\fooでtest.exeを実行します。test.exe がパスが通っていることが前提です。

psexec \\foo -c test.exe

\\fooでフルパスで指定したtest.exeを実行します。

psexec \\foo -c c:\bin\test.exe

ユーザー名とパスワードを指定して実行する

ユーザー名とパスワードを指定してコマンドを実行します。

psexec \\foo -u user -p password cmd

リモートに存在しないコマンドをコピーして実行する

リモートホストに実行したいコマンドがない場合は、PsExecはローカルのファイルをコピーして実行できます。

  1. PsExecは、ローカルのファイルシステムのファイルをリモートホストの System32 フォルダにコピーします。
  2. System32 からコマンドを実行します。
  3. System32 からコピーしたプログラムを削除します。

この機能を利用するには、-c オプションを使用します。 プログラムに関連するDLLやファイルはコピーされません。

-c オプションを単独で使用した場合、コピー先にすでにファイルが存在するときは、コピーされません。 -fを併用すると、ファイルを強制的にコピーします。 -vオプションを追加することで、ファイルのバージョンとタイムスタンプが検査され、ローカルのプログラムが新しいバージョンか新しいタイムスタンプの場合に限り、ファイルがコピーされます。

psexec \\foo -c test.exe
psexec \\foo -c test.exe -f
psexec \\foo -c test.exe -f -v

複数のホストでコマンド実行

psexec @hosts.txt test.exe

-nオプションで、リモート接続に許可する最大の秒数を指定できます。 以下の例では、接続ごとに10秒に指定します。

psexec @hosts.txt -n 10 test.exe

システムアカウントで実行する

-sオプションを指定した場合、対象のコマンドをシステムアカウントで実行します。 -iオプションをしていないばいい、システムアカウントで実行される他のWindowsサービスと同じ日対話環境(セッション0)でプロセスが実行され、コンソール出力は、PsExecを実行しているコンソールに来ダイレクトされます。

この実行モードは、対話ユーザーがログオフした場合にもプロセスの実行を継続します。

psexec \\foo -s cmd.exe

関連項目