
Windows OS には、標準で多数のコマンド(以下「Windows コマンド」)が実装されています。しかし、一般的な利用者が日常的に使用するコマンドはその一部に過ぎません。一方で、侵入した攻撃者は、端末情報の収集やネットワーク内での横展開、権限昇格などを目的として、Windows に標準搭載されたコマンドを積極的に利用することが、JPCERT/CC をはじめとする各種調査から明らかになっています。
ここで重要なのは、「通常利用される Windows コマンド」と「攻撃者が利用する Windows コマンド」の間に存在するズレです。このズレに着目し、コマンドの実行状況を監視・制御することで、侵入後の攻撃者の行動を検知、あるいは抑止できる可能性があります。
さらに近年では、ログやプロセスといった OS 上の挙動だけでなく、ドライバ、ファームウェア、UEFI/BIOS など、より下位レイヤーの整合性を確認する視点も重要になっています。たとえ OS 上の挙動が一見正常に見えても、基盤となる構成要素が改ざんされていれば、検知そのものが回避されるリスクがあるためです。
本記事では、まず侵入後の各攻撃フェーズにおいて攻撃者がどのような Windows コマンドを利用するのかを整理し、その実行痕跡をどのように捉えるべきかを解説します。加えて、Windows 環境が本当に信頼できる状態にあるのかを確認するための、サプライチェーンおよび構成整合性の検証という観点についても触れていきます。
遠隔操作型マルウェア(RAT)などは、リモートからコマンドシェルを実行する機能を備えており、攻撃者はこれを足がかりに内部調査や横展開を進めます。一般的な攻撃は、次のような段階を踏んで進行します。
初期調査
攻撃者が侵入直後に行う初期調査フェーズでは、感染した端末の環境を把握するために、Windows に標準搭載された各種コマンドが多用されます。
初期調査フェーズで使用される Windows コマンド(Top10)
| 順位 | コマンド |
| 1 | tasklist |
| 2 | ver |
| 3 | ipconfig |
| 4 | systeminfo |
| 5 | net time |
| 6 | netstat |
| 7 | whoami |
| 8 | net start |
| 9 | qprocess |
| 10 | query |
これらの情報は、侵入した端末が実運用環境か、それともマルウェア解析や検知を目的としたおとり環境(サンドボックス)であるかを見極めるために利用されていると考えられます。
また、whoami や net start などのコマンドからは、現在の実行権限や稼働中のサービスが把握でき、後続の横展開や権限昇格が可能かどうかの判断材料になります。net time や netstat は、ドメイン環境の有無や通信状況の把握に用いられ、ネットワーク内での行動計画を立てる上で重要な情報源となります。
防御側の視点では、これらのコマンドは 「管理用途としては限定的にしか使われないが、侵入直後にまとめて実行されると不自然になりやすい」 という特徴があります。そのため、実行タイミングや実行主体(ユーザ、プロセス、リモート実行の有無)を組み合わせて監視することで、侵入初期段階での検知につなげられる可能性があります。
さらに近年では、OS 上の情報収集だけでなく、システム構成や環境が本当に想定どおりの状態にあるかを検証することも重要です。初期調査フェーズで収集された OS 情報や構成情報は、後続のフェーズに進む前提条件として利用されるため、ここで得られる情報の信頼性をどのように担保するかが、検知と抑止の観点で重要なポイントになります。
探索活動
侵入後、攻撃者は次の段階として、機密情報の探索 や ネットワーク内に存在する他端末・共有リソースの把握 を目的とした探索活動を行います。このフェーズでは、感染端末単体だけでなく、周辺のネットワーク環境を把握するための Windows コマンドが集中的に使用されます。
探索活動フェーズで使用される Windows コマンド(Top 10)
| 順位 | コマンド |
| 1 | dir |
| 2 | net view |
| 3 | ping |
| 4 | net use |
| 5 | type |
| 6 | net user |
| 7 | net localgroup |
| 8 | net group |
| 9 | net config |
| 10 | net share |
このフェーズにおいて、攻撃者は dir や type といったコマンドを使用し、端末内に保存されたファイルの探索や内容確認を行います。
特に dir コマンドに再帰的なオプションや拡張子指定を組み合わせることで、文書ファイルや設定ファイルなど、価値の高い情報を効率的に洗い出すことが可能になります。
一方、ネットワーク探索には net 系コマンドが多用されます。代表的な用途は以下のとおりです。
-
net view:接続可能なドメイン/ワークグループ内リソースの一覧取得
-
net user:ローカルおよびドメインアカウント情報の取得
-
net localgroup:ローカルグループに所属するユーザ一覧の取得
-
net group:ドメイン内グループとその所属ユーザの把握
-
net use / net share:共有リソースの確認および接続
これらの情報は、後続の横展開や権限昇格、さらなる侵害範囲拡大の足がかりとして利用されます。
防御側の視点では、通常業務では実行されにくい net 系コマンドが短時間に連続して実行される ことや、一般ユーザ権限でのネットワーク全体探索 は、不審な挙動として注目すべきポイントになります。
初期調査フェーズと同様に、実行主体や実行元プロセス、対話的実行かリモート実行かといった観点を組み合わせて監視することで、探索活動の段階で検知できる可能性があります。
感染拡大
探索活動によって得られた情報をもとに、攻撃者は次の段階として、ネットワーク内の他端末への侵入や感染拡大(横展開) を試みます。
このフェーズでは、管理用途としても利用される Windows 標準コマンドが、リモート実行や恒久化の手段として悪用される点が特徴です。
感染拡大フェーズで使用される Windows コマンド
| 順位 | コマンド |
| 1 | at |
| 2 | reg |
| 3 | wmic |
| 4 | wusa |
| 5 | netsh advfirewall |
| 6 | sc |
| 7 | rundll32 |
これらを利用することで、攻撃者は自らが直接ログインすることなく、他端末上でマルウェアや任意のコマンドを実行できます。
例えば at コマンドを用いることで、接続可能なリモート端末に対してタスクを登録し、指定した時刻に任意の実行ファイルを起動させることが可能です。
at \\[リモートホスト名 or IPアドレス] 12:00 cmd /c "C:\windows\temp\mal.exe"
また、wmicコマンドにより、次のような引数を指定することで、リモート端末上のコマンドを実行することができます。
wmic /node:[IPアドレス] /user:”[ユーザ名]” /password:”[パスワード]” process call create “cmd /c c:\Windows\System32\net.exe user”おわりに
標的型攻撃において、攻撃者はマルウェアに組み込まれた専用機能だけで目的を遂行するわけではありません。
むしろ多くのケースで、Windows に標準搭載されたコマンドを巧みに組み合わせながら、調査・探索・横展開を進めている ことが、本記事で見てきた各フェーズからも分かります。
こうした攻撃の特徴を踏まえると、Windows コマンドの実行状況に着目することは、侵入後の挙動を把握するうえで非常に有効なアプローチ だと言えます。
攻撃者が使うコマンドと、通常の業務で使われるコマンドの間には明確な偏りがあり、そのズレを捉えることで、比較的早い段階でインシデントの拡大を抑止できる可能性があります。
一方で、業務環境において Windows コマンドの使用を一律に制限することは現実的ではありません。
そのため、防御の第一歩としては、AppLocker や各種ログ機能を活用し、どのコマンドが、いつ、どのプロセスから実行されているのかを可視化すること が有効です。
可視化された情報をもとに、通常業務では想定されない実行パターンを洗い出していくことで、段階的な検知精度の向上が期待できます。
さらに近年では、OS 上の挙動だけでなく、その Windows 環境自体が本当に信頼できる状態にあるのか を検証する視点も欠かせません。
ログが正常に見えていても、基盤となる構成やコンポーネントが改ざんされていれば、検知そのものが回避されるリスクがあるためです。
本記事で紹介した 「コマンド実行の検知」 と 「環境の整合性を確認する検証」 という2つの視点を組み合わせることで、侵入後を前提とした現実的な防御に一歩近づくことができるはずです。
まずはログを取り、環境を知ることから始め、少しずつ自組織に合った検知・検証の仕組みを整えていくことが重要です。
出典:攻撃者が悪用するWindowsコマンド(2015-12-02)












































