PsExecは、Microsoftが提供するSysinternalsツール群の一つで、リモートのWindowsコンピュータ上でコマンドやプログラムを、常駐エージェントなしで実行できるツールです。
システム管理者にとって非常に便利な反面、攻撃者にとってもネットワーク内を移動する「横展開」の手段として悪用されやすいツールです。本記事では、PsExecの仕組みと使い方から、攻撃者による悪用の手口、利用時の注意点までを解説します。
PsExecとは
Sysinternalsツールとしての位置づけ
PsExecは、Microsoftが提供するSysinternalsツール群に含まれる、Windows環境向けのリモートコマンド実行ツールです。Windows環境でリモートのコンピュータ上にコマンドやプログラムを実行するためのツールで、インストール用のエージェントを常駐させずに、対象に一時的なサービスを展開してコマンドを実行し、終了後に後片付けを行うのが特徴です。
システム管理者が複数台のPCを一括で操作したり、トラブルシューティングで遠隔実行が必要なときによく使われます。
PsExecの内部動作の仕組み
PsExecは、対象のリモートPCに対してSMB(Server Message Block)プロトコルを使って実行ファイルを転送し、そのファイルをWindowsのサービスとして一時的にインストール・起動します。
起動したサービスとの間で、名前付きパイプを介してコマンドの入出力をやり取りすることで、あたかもローカルで実行しているかのような操作感を実現しています。処理が終わると、展開したサービスと実行ファイルは自動的に削除される仕組みになっています。
PsExecの主な機能・特徴
エージェント不要でのリモート実行
多くのリモート管理ツールが専用のエージェントソフトウェアの事前インストールを必要とするのに対し、PsExecは対象PC側に何もインストールしておく必要がありません。管理者側のPCにPsExecの実行ファイルさえあれば、必要なときに一時的な接続で操作を完結できます。
管理者権限での操作
PsExecで実行されるコマンドは、多くの場合、管理者権限またはSYSTEM権限で実行されます。これにより、通常のユーザー権限では行えないシステム設定の変更やサービスの制御といった操作が可能になります。
実行後の自動クリーンアップ
処理が完了すると、対象PCに一時的に展開したサービスや実行ファイルは自動的に削除されます。常駐する痕跡を残さない設計は、運用上の利便性である一方、後述するように悪用時の検知を難しくする一因にもなっています。
PsExecの基本的な使い方
リモートPCでコマンドを実行する
以下は、リモートPCのIP設定を確認するコマンドの例です(IPアドレスはダミーです)。
psexec \\192.0.2.10 ipconfig /all
このように、対象PCの指定と実行したいコマンドを続けて指定するだけで、リモート実行が完了します。
別ユーザー権限でプロセスを起動する
特定のユーザー権限でコマンドプロンプトを開きたい場合は、ユーザー名とパスワードを指定して実行します。
psexec \\example.com -u exampleuser -p ******** cmd.exe
PsExecの活用シーン
一括インストール・パッチ適用
ソフトウェアの一括インストールやセキュリティパッチの適用時に、複数台のPCへ順次コマンドを実行するといった用途で活用されます。
リモートでのトラブルシューティング
現地に赴かなくても、対象PCのイベントログや設定情報を収集できるため、リモートでのトラブル対応に役立ちます。
運用スクリプトからの自動化実行
自動化バッチや運用スクリプトから遠隔コマンドを呼び出す場面でも、PsExecはしばしば組み込まれています。
攻撃者に悪用される横展開(ラテラルムーブメント)の手口
MITRE ATT&CKにおける位置づけ
PsExecは正規の管理ツールですが、攻撃者もこれと同様の手法をネットワーク内での「横展開(ラテラルムーブメント)」に用いることが知られています。
侵入した端末から得た認証情報を使い、PsExecやそれに類する手法でネットワーク内の他の端末へ次々とアクセスを広げていく手口は、セキュリティ業界で広く参照される攻撃手法の分類体系(MITRE ATT&CK)においても、リモートサービスを悪用した横展開の一種として位置づけられています。
PsExecを悪用した著名なマルウェア事例
2017年に発生したマルウェア「NotPetya」は、窃取した管理者の認証情報をもとに、PsExecやWMIC(WMIのコマンドラインツール)といった正規のツールを悪用してネットワーク内の他の端末へ次々と感染を広げたことで知られています。
正規のIT運用で日常的に使われる手法を悪用することで、被害が短時間で組織全体に広がった典型的な事例です。
正規ツールであるがゆえの検知の難しさ
PsExecは多くの企業のIT運用現場で日常的に使われている正規のツールであるため、攻撃者がこれを使って横展開を行っても、一見しただけでは通常の管理業務との区別がつきにくいという課題があります。
この「見分けのつきにくさ」こそが、攻撃者に好んで利用される理由の一つです。
PsExec利用時によくある勘違い・注意点
管理者権限が前提であること
多くの操作は管理者権限(あるいはSYSTEM権限)で実行されるため、実行者の権限管理が重要です。誰がPsExecを使えるのかを組織内できちんと管理しておく必要があります。
通信経路・認証情報の露出リスク
通常はSMBや管理用のプロトコルを使うため、誤った設定だと認証情報が露出する恐れがあります。ネットワーク分離や適切なファイアウォール設定など、安全な運用ポリシーを事前に決めておきましょう。
アンチウイルス/EDRの検知対象になりやすいこと
正規の運用ツールである一方、悪意あるツールと似た挙動をするため、アンチウイルスやEDR製品によって検知・警告の対象になる場合があります。誤検知として運用に支障が出ないよう、事前に検知ルールの調整を検討するとよいでしょう。
GUIアプリの操作には不向きであること
PsExecはコンソールベースのコマンド実行が中心で、デスクトップ環境での操作やグラフィカルな操作には向きません。GUIアプリの遠隔操作が必要な場合は、リモートデスクトップなど別の手段を検討する必要があります。
より安全な代替手段との比較
セキュリティ面での懸念から、近年ではPsExecの代わりに、より安全に管理できる手段への移行も検討されています。PowerShell Remoting(WinRM)は、Windows標準の仕組みでリモート管理を行え、通信の暗号化や詳細なログ記録といった機能を備えています。
また、Linux環境などで広く使われるSSHも、暗号化された通信と柔軟な認証方式を提供する選択肢の一つです。PsExecの手軽さを取るか、より詳細な監査・制御が可能な代替手段を取るかは、組織のセキュリティ要件に応じて検討するとよいでしょう。
まとめ
PsExecは、Windows環境で手軽に遠隔コマンドを実行できる、運用担当者にとって非常に強力なツールです。しかし、常駐エージェント不要という利便性の裏側で、攻撃者による横展開の手段としても悪用されやすいという側面があります。
NotPetyaのような著名な事例が示す通り、正規の運用ツールが悪用されると被害の拡大が早いため、権限管理や通信経路の保護、EDRによる監視といった対策を講じたうえで、必要に応じてPowerShell RemotingやSSHといったより安全な代替手段も検討しながら運用することが重要です。



















![中小企業の情報瀬キィリティ相談窓口[30分無料]](/wp-content/uploads/2023/07/bnr_footer04.png)


