Netsh.exe (also referred to as Netshell) is a command-line scripting utility used to interact with the network configuration of a system. It contains functionality to add helper DLLs for extending functionality of the utility. (Citation: TechNet Netsh) The paths to registered netsh.exe helper DLLs are entered into the Windows Registry at HKLM\SOFTWARE\Microsoft\Netsh.
Adversaries can use netsh.exe with helper DLLs to proxy execution of arbitrary code in a persistent manner when netsh.exe is executed automatically with another Persistence technique or if other persistent software is present on the system that executes netsh.exe as part of its normal functionality. Examples include some VPN software that invoke netsh.exe. (Citation: Demaske Netsh Persistence)
Proof of concept code exists to load Cobalt Strike's payload using netsh.exe helper DLLs. (Citation: Github Netsh Helper CS Beacon)
T1128 は、「Netsh Helper DLL(NetshヘルパーDLLの悪用)」です。
Windowsの標準ネットワーク管理ツールである netsh.exe の拡張機能を悪用し、悪意のあるDLLをシステムに登録することで「永続化(Persistence)」と「防御回避(Defense Evasion)」を同時に達成する巧妙な手法です。
この手法で攻撃者は、「ネットワーク設定ツールが起動するたびに、マルウェアを自動実行する隠れ蓑」を手に入れます。
高度な永続化:
netsh.exe はシステム起動時や、管理者・スクリプトがネットワーク状態を確認・変更する際(VPN接続やIPアドレス変更など)に頻繁に実行されます。ここにマルウェアを紐付けることで、自然な形で自動実行を繰り返せます。
防御回避と特権の便乗:
マルウェア単体でプロセスを立ち上げるのではなく、信頼されたWindows純正バイナリである netsh.exe のプロセス内部に同居してコードを実行するため、セキュリティソフト(EDRやアンチウイルス)のホワイトリストをすり抜けやすくなります。
netsh のヘルパーDLLをシステム全体に登録するため、攻撃者は事前に管理者権限(Administrator)を確保している必要があります。
悪意のあるDLLの作成と配置:
netsh の仕様(特定の関数エクスポートなど)に沿って作成した攻撃用DLL(例: evil_helper.dll)をシステム内(C:\Windows\System32\ など)に配置します。
DLLの登録(コマンドまたはレジストリ操作):
攻撃者はWindows標準の netsh.exe コマンドを悪用して、直接このDLLをヘルパーとして登録します。
コマンドの例:
netsh add helper C:\Windows\System32\evil_helper.dll
このコマンドが実行されると、Windowsは自動的に以下のレジストリキーにDLLのパスを書き込みます。
HKLM\SOFTWARE\Microsoft\Netsh
自動実行のトリガー:
それ以降、システムやユーザー、あるいは他のプログラムが netsh.exe を起動(例:ネットワーク情報の取得など)するたびに、OSは上記レジストリを参照します。
コード実行:
netsh.exe は登録された evil_helper.dll を自身のメモリ空間に自動的にロードし、中に仕込まれたマルウェアのコードがSYSTEM権限、あるいは実行したユーザーの権限でバックグラウンド実行されます。
「レジストリの監視」と「コマンド実行ログのチェック」が非常に有効です。
レジストリキーの常時監視:
HKLM\SOFTWARE\Microsoft\Netsh 配下に対する新規の値の追加や変更を、EDRやSysmon(Event ID 13: RegistryEvent)で監視します。正規のソフトウェアがここを変更することは滅多にないため、変更検知時は高確率で異常と判断できます。
Netshコマンド引数の監視:
SIEMやEDRで、プロセス netsh.exe が add helper という引数を伴って実行されていないかを監視(コマンドライン監視)します。
SysmonによるDLLロードの監視:
netsh.exe プロセスが起動した際、通常は読み込まれない不審なパス(一時フォルダやユーザーディレクトリなど)からDLL(Event ID 7: Image loaded)をロードしていないかを追跡します。
「Living off the Land」(自給自足攻撃)の典型例:
攻撃者は独自の不正なプログラムを常駐させるのではなく、Windowsに最初から入っている「netsh.exe というツールに用意された正規の拡張機能」をそのまま使います。そのため、ツール自体の実行を禁止することが難しく、セキュリティ運用者を悩ませる手法です。
インシデント時の見落としリスク:
タスクマネージャー上は単に「Netshell(netsh.exe)」が動いているようにしか見えないため、パッと見ではサイバー攻撃を受けていることに気づきにくいというステルス性を持っています。
CWE-15: External Control of System or Configuration Setting:
システムの設定(Netshヘルパーの登録リスト)を外部から不正に変更されてしまう不備。
CWE-427: Uncontrolled Search Path Element:
実行時に読み込まれるコンポーネント(DLL)の指定や検索方法が適切に制御されていない問題。
高度な標的型攻撃(APT)において、一般的な自動起動(Runキーなど)を警戒しているセキュリティ組織の目を盗むために選ばれることが多いです。
APT28 (Fancy Bear) / Dragonfly:
ロシア政府系とされるこれらのAPTグループは、標環境への潜伏期間中に既存の自動起動検知スクリプトを回避するため、この netsh のヘルパー機能を利用してバックドアのDLLを常駐させる手法を実戦で投入したことが確認されています。
Metasploit / Cobalt Strike:
侵入テスト用のフレームワークには、管理者権限を奪取した後の「永続化(Persistence)」オプションの一つとして、このNetshヘルパーDLLの登録を自動で行うモジュールが組み込まれています。
もし自社の環境で、セキュリティアラートに「netsh.exe が不審なDLLをロードした」あるいは「netsh add helper が実行された」という記録を見つけた場合は、即座に該当の端末の調査が必要です。その際は、HKLM\SOFTWARE\Microsoft\Netsh レジストリを開き、登録されているDLLのハッシュ値をVirusTotal等で確認するか、フォレンジック担当に提出して解析を行ってください。
この攻撃手法に関連する CVE は登録されていません。