※本記事にはアフィリエイトリンクが含まれます。詳しくはプライバシーポリシー・広告掲載についてをご覧ください。
Windowsコマンドシェル(cmd.exe)は、Windows OSの最も基本的なコマンドラインインターフェースです。長い歴史を持つこのツールは、攻撃者にも古くから悪用されてきました。MITRE ATT&CKではT1059.003 Windows Command Shellとして分類されており、バッチファイルやコマンドラインによる偵察・実行手法が体系化されています。本記事では、cmd.exeが攻撃でどのように利用されるか、検出方法、緩和策を日本語で解説します。
※本サイトはMITRE ATT&CK®の非公式日本語解説サイトです。Based on MITRE ATT&CK® v16。
T1059.003 Windows Command Shellの概要
T1059.003は、T1059 Command and Scripting InterpreterのSub-techniqueで、Execution(実行 / TA0002)タクティクスに分類されます。攻撃者はcmd.exeを使用して、システム情報の収集(偵察)、ファイル操作、ネットワーク設定の変更、他のマルウェアの実行など、多様な攻撃活動を行います。
cmd.exeが攻撃で利用される理由
- 全Windowsに標準搭載: Windows 95以来すべてのWindows OSに搭載され、確実に利用可能
- 低い検出率: cmd.exeの実行自体は正常な管理操作と区別が困難
- バッチファイル: .bat/.cmdファイルで複数コマンドを自動実行でき、攻撃スクリプトの配布が容易
- パイプとリダイレクト: コマンドの出力をファイルに保存したり、他のコマンドに渡すことで複雑な処理が可能
- 他のツールとの連携: PowerShellやwscript.exeなど他のインタプリタの起動元として使用される
攻撃シナリオ例
偵察フェーズでのcmd.exe利用
攻撃者は初期アクセス後、以下のようなコマンドでシステム・ネットワーク情報を収集します:
whoami /all
systeminfo
ipconfig /all
net user /domain
net group "Domain Admins" /domain
tasklist
netstat -ano
dir C:\Users\ /s /b
これらのコマンドは個々には正常な管理操作ですが、短時間に連続して実行される場合は不審な偵察活動の兆候です。
FIN7 — バッチファイルによる自動化攻撃
金融犯罪グループFIN7は、フィッシングメールの添付ファイルを起点に、cmd.exeでバッチファイルを実行する手法を多用します。VBAマクロからcmd.exe /cでバッチファイルを起動し、認証情報の窃取やバックドアのインストールを自動化します。
QakBot — cmd.exeを経由した多段実行
バンキングトロイのQakBotは、感染後にcmd.exeを使って複数の偵察コマンドを実行し、その結果をC2サーバーに送信します。cmd.exe /c "whoami & ipconfig /all & net view"のように&演算子で複数コマンドを一行に連結して実行する特徴があります。
ランサムウェアでのcmd.exe利用
多くのランサムウェアファミリー(Ryuk、Conti等)は、展開フェーズでcmd.exeを使用してシャドウコピーの削除やサービスの停止を行います:
cmd.exe /c vssadmin delete shadows /all /quiet
cmd.exe /c wmic shadowcopy delete
cmd.exe /c bcdedit /set {default} recoveryenabled No
検出方法
プロセス作成の監視
cmd.exeの実行を検出する際のポイントは、親プロセスとコマンドライン引数の組み合わせです。
- Windowsイベントログ 4688: プロセス作成イベント。コマンドライン引数の監査を有効化していれば実行内容を確認可能
- Sysmon Event ID 1: より詳細なプロセス作成情報(親プロセス、コマンドライン、ハッシュ)
高リスクな実行パターン
- 親プロセスがOfficeアプリ: winword.exe → cmd.exe は正常な業務ではほぼ発生しない高リスクパターン
/cパラメータ:cmd.exe /cはコマンド実行後に終了するため、スクリプトからの呼び出しに多用される- エンコードされた引数:
cmd.exe /c echoとパイプを組み合わせた難読化パターン - 偵察コマンドの連続実行: whoami、systeminfo、ipconfig、net等が短時間に連続実行される場合
- vssadmin / bcdedit: シャドウコピー削除やブートレコード変更はランサムウェアの兆候
コマンドライン引数のログ有効化
デフォルトではWindows 4688イベントにコマンドライン引数が含まれません。以下のグループポリシーで有効化します:
コンピューターの構成 → 管理用テンプレート → システム → プロセス作成の監査
→ 「プロセス作成イベントにコマンド ラインを含める」を有効化
緩和策(Mitigations)
| ID | 緩和策名 | 概要 |
|---|---|---|
| M1038 | 実行防止 | AppLocker/WDACで一般ユーザーのcmd.exe実行を制限 |
| M1042 | 機能の無効化・削除 | 不要なユーザーからのcmd.exeアクセスを制限 |
| M1049 | ウイルス対策/マルウェア対策 | バッチファイルのスキャン、不審なコマンドパターンの検出 |
| M1026 | 特権アカウント管理 | 管理者権限でのcmd.exe実行を最小限に制限 |
実装チェックリスト
- ☐ プロセス作成の監査ポリシーでコマンドライン引数の記録を有効化
- ☐ Sysmonを導入し、Event ID 1でプロセス作成を詳細監視
- ☐ AppLockerでcmd.exeの実行を許可されたユーザー・パスに制限
- ☐ SIEMに偵察コマンドの連続実行を検出するルールを作成
- ☐ Office製品からcmd.exeが起動するパターンのアラートを設定
- ☐ vssadmin/bcdeditの不審な使用を監視するルールを追加
- ☐ エンドポイント保護ソフトでバッチファイルの実行時スキャンを有効化

おすすめセキュリティ対策ツール
コマンドシェルベースの攻撃からシステムを保護するためのツールを紹介します。
🛡️ まず今日から始めるなら:エンドポイント保護ソフトの導入
cmd.exeを悪用した不審なコマンド実行パターンを検出・ブロックするためには、振る舞い検知に対応したセキュリティソフトの導入が効果的です。
- ESET(イーセット) — 誤検知が少なく軽量。中小企業に人気のコスパ重視セキュリティソフト
- ウイルスバスター — 日本語サポートが充実。国産ソフトで中小企業導入実績多数
- Norton(ノートン) — 世界最大手のセキュリティベンダー。VPN機能も含む総合対策
※ 上記はアフィリエイトリンクです。料金・機能は各公式サイトで必ずご確認ください。
まとめ:Windows Command Shell対策の要点
- cmd.exeは攻撃の基本ツール:偵察からランサムウェア展開まで、攻撃の全段階でcmd.exeは利用される。古典的だが現在も最も多用されるインタプリタの一つ
- 親プロセスとコマンドライン引数が検出の鍵:Office製品やブラウザからの起動、
/cパラメータ、偵察コマンドの連続実行を重点的に監視 - AppLockerと監査ポリシーを組み合わせる:実行制限と詳細なログ記録の両輪で、不正利用の防止と検出を同時に実現
参考資料:MITRE ATT&CK T1059.003 – Windows Command Shell / 情報セキュリティ10大脅威 2026(IPA) / JPCERT/CC
Based on MITRE ATT&CK®, © The MITRE Corporation. Licensed under Apache License 2.0. 本記事は非公式の日本語解説です。

コメント