1. Windows Scripting Host(WSH)とは
Windows Scripting Host(WSH) は、Windows に標準搭載されている スクリプト実行基盤 であり、
GUI・CUI の両方からスクリプトを実行できる「Windows ネイティブの自動化エンジン」です。
WSH 自体は アプリケーションではなくランタイム であり、
スクリプト言語を Windows OS と直接接続 する役割を担います。
2. WSH を構成する 2 つの実行エンジン
WSH には、用途が明確に分かれた 2 種類の実行エンジンがあります。
| 実行エンジン | 特徴 | 主な用途 |
|---|---|---|
wscript.exe |
GUI 向け | MsgBox、ユーザー操作 |
cscript.exe |
CUI 向け | ログ出力、自動処理 |
重要
同じ VBScript でも、どちらで実行するかによって挙動が変わります。
3. 対応スクリプト言語(代表例)
WSH は複数のスクリプト言語をサポートしますが、
実戦で最も使われるのは VBScript です。
| 拡張子 | 内容 |
|---|---|
.vbs |
VBScript(平文) |
.vbe |
VBScript(エンコード) |
.js |
JScript(古い JavaScript) |
4. なぜ Red Team にとって WSH が重要なのか
WSH が攻撃者視点で価値を持つ理由は、次の一点に集約されます。
WSH は「Windows 標準」であり、ユーザー権限そのままで動作する
つまり:
- PowerShell が制限されている
- Office マクロが無効化されている
- 外部ツールの実行が監視されている
こうした環境でも WSH だけは生き残っているケースが非常に多い。
WSH は典型的な LOLBins(Living Off the Land Binaries) です。
5. 最小構成の VBScript(MsgBox)
Dim message
message = "Welcome to THM"
MsgBox message
解説
-
Dim:変数宣言 -
MsgBox:Windows GUI のメッセージ表示
実行
wscript hello.vbs
結果:
👉 Windows のメッセージボックスが表示される
6. VBScript から EXE を実行する仕組み
WSH の本当の威力は 外部プログラム実行 にあります。
Set shell = WScript.CreateObject("Wscript.Shell")
shell.Run "C:\Windows\System32\calc.exe", 0, True
内部構造の理解(重要)
-
Wscript.Shell
→ Windows Shell への COM インターフェース -
Run()
→ 任意のコマンド・EXE を実行可能 - 第2引数
0
→ ウィンドウ非表示 - 第3引数
True
→ 実行完了まで待機
calc.exe は PoC
→ 実戦ではここに 任意のペイロード が入る。
7. wscript と cscript の違い(実戦視点)
| 観点 | wscript | cscript |
|---|---|---|
| 実行形態 | GUI | CLI |
| MsgBox | 表示 | 非表示 |
| 出力取得 | 不可 | 可能 |
| ステルス性 | 高い | 低い |
使い分け指針
-
静かに動かす →
wscript -
出力を回収する →
cscript
8. 拡張子ブラックリスト回避テクニック
.vbs がブロックされている場合でも、
WSH は 拡張子ではなくエンジン指定で実行 できます。
wscript /e:VBScript payload.txt
なぜ動くのか?
-
/e:VBScriptにより 明示的に言語指定 - ファイル拡張子は無関係
- 中身が VBScript なら実行可能
メール添付・DL チェーンで頻出
9. WSH が検知されにくい理由
| 理由 | 内容 |
|---|---|
| 標準搭載 | 管理者も削除しない |
| 署名済み | Microsoft 正規バイナリ |
| 日常利用 | 管理スクリプトと区別困難 |
| 低ノイズ | PowerShell より目立たない |
10. 実戦での典型的な利用シナリオ
- 初期侵入後の 横展開補助
- PowerShell 制限下での コマンド実行
- LOLbins チェーンの 中継役
- 権限昇格前の 環境偵察
11. 防御側(Blue Team)視点の対策
| 対策 | 内容 |
|---|---|
| AppLocker / WDAC | wscript / cscript 制限 |
| EDR | LOLbins 振る舞い検知 |
| 拡張子監視 |
.vbe /e: オプション |
| ログ監査 | Script Host 実行履歴 |
まとめ
Windows Scripting Host は一見すると古く、地味な技術です。
しかし Red Team の世界では、こう評価されます。
「最後まで残っている実行手段」
派手さはありません。
でも 生き残った時点で勝ち筋になる。
WSH は、
静かに、確実に、Windows を動かすためのエンジン です。