USB経由のトロイの木馬・コインマイナー駆除完全ガイド|Microsoft Safety ScannerとAutorunsで「削除できない」「自己改名型」マルウェアを一掃【Windows 10/11】

学校PCから持ち帰ったUSBを挿した直後に「削除できない」「場所が見つからない」不審ファイルやコインマイナーが動き出す――そんな自己隠蔽・自己改名型マルウェアの駆除は、やり方さえ押さえれば確実に終わらせられます。この記事は、再感染防止までを含む実務的な手順書です。

目次

想定シナリオと症状の整理

USBメモリーを介して自宅のWindows 10/11ノートPCに感染。System32配下に実体があるのにエクスプローラーでは「ディレクトリが見つからない」と表示され、セーフモード↔通常モードでファイル名・場所が変わる自己隠蔽/自己改名型のトロイの木馬(コインマイナー)という状況を想定します。

症状起きていること直近の対処
System32に見えるのに「場所が見つからない」NTFSの再解析ポイント(ジャンクション)や不正ハンドル、ADS(代替データストリーム)、予約名や不可視属性の悪用実行中プロセスの停止→メモリ内を駆除→オブジェクト属性を戻してから削除
起動のたびにファイル名・場所が変わる自己改名・自己複製(テンポラリ配下/ユーザープロファイル配下/タスクスケジューラ/WMI)起動永続化の全形態(Logon・タスク・サービス・WMI・IFEO等)を総当たりで止める
CPU使用率が突発的に上がるマイニング実行(例:xmrig系)やプールへの常時通信ネットワーク遮断→駆除→通信設定(プロキシ/hosts/ファイアウォール)を初期化

初動対応:拡散と自己防衛を止める

  • 物理的切り離し:Wi‑Fi/有線LANを切断。Bluetooth・共有フォルダも停止。
  • 感染源USBは隔離:ラベルで「要廃棄/要フルフォーマット」と明記し再接続しない。
  • 記録:発見時刻、検出名、ファイル名、パス、プロセスID、タスク名をメモ。後の追跡に必須。
  • 管理者権限の確保:以降の操作は「管理者として実行」を基本に。

Microsoft Safety Scanner(msert.exe)で完全スキャン

Microsoft公式のスタンドアロン駆除ツールを用いて、実体化前後の残骸やメモリ上の隠しプロセスまで一括処理します。常駐型のWindows Defenderと競合せず併用できます。

  1. msert.exeを最新版に差し替え(毎日更新のため、古いコピーを使わない)。
  2. ネットワークを一時的に有効化してダウンロード後、再び遮断。
  3. 右クリック→管理者として実行→「フル スキャン」を選択。外付けドライブ(感染USBは後述のフルフォーマットまで接続禁止)を除き、全ローカルドライブを対象に。
  4. 検出は自動処理されます。完了後は「脅威なし」の状態で終了することを確認。
  5. ログ確認:C:\Windows\debug\msert.log を開き、検出名・処置結果(Removed/Quarantined/No Action)を確認・保全。

ここで「脅威なし」で終われない場合は、並行して後述のオフラインスキャン・Autoruns・手動処置を続けます。

Autoruns(Sysinternals)で起動永続化の目視監査

自己改名型は「起動時に毎回新しい自分を用意する」仕掛けを複数持ちます。AutorunsでLogon/Scheduled Tasks/Services/Drivers/WMI/IFEO/Browser Helperなどを横断的に洗います。

  1. Autorunsを展開し、Autoruns64.exe を管理者として実行。
  2. Options → Scan Optionsで「Verify Code Signatures」を有効化。必要に応じて「Check VirusTotal」を有効化(オフライン環境では未使用でOK)。
  3. ノイズを減らすため「Hide Microsoft Entries」を一時的に有効化し、明らかな非Microsoft項目を先に精査。最終確認では無効化して全表示で再チェック。
  4. 各タブを上から順に目視。不審エントリはチェックを外す(無効化)→右クリックでDelete(削除)は後で。
見る場所不審の典型例見るポイント
Logon乱数/ハッシュ風のEXE名、ユーザープロファイル直下の隠しフォルダPublisherが不明、パスが%AppData%や%Temp%配下
Scheduled Tasks意味不明なGUID名、1分ごと/ログオン時/アイドル時に実行Actionsでwscript.exeやpowershell -encを呼び出していないか
Services / DriversWindows風の偽装名(例:Windows Update Service Helper)デジタル署名の有無、説明が空欄、開始種類が自動
WMI永続化用のConsumer/Filter/Bindingスクリプト実行や不審なコマンドライン
Image Hijacks (IFEO)正規EXEに対するDebugger差し替え不審exeへリダイレクトされていないか
Explorer / Shell Extensionsコンテキストメニュー/シェル拡張に紛れ込む不明ベンダーのDLL

Autorunsで無効化したら再起動し、ふるまいが止まっているかを確認。問題なければ削除へ進みます。

Windows Defender オフライン スキャン

再起動前に予約され、OS起動前にスキャンするため、自己防衛ドライバやルートキット的な隠蔽も炙り出せます。

  1. 設定 → プライバシーとセキュリティ → Windows セキュリティ → ウイルスと脅威の防止 → スキャンのオプション → Microsoft Defender オフライン スキャンを実行。
  2. 完了後、検出内容をWindows セキュリティの履歴とイベントビューアで確認。

System32にあるのに削除できないファイルへの対処

自己隠蔽の多くはファイルシステムの仕掛けを悪用します。メモリ内の実行体を先に止める(前述のスキャンとAutoruns)ことが前提です。止めたうえで、以下の順で「実体」を見抜きます。

属性・短縮名・ADSを可視化

cmd.exe(管理者)で実行

REM 隠し/システム属性まで含め一覧
dir C:\Windows\System32 /a /x /r

REM 属性を戻す(必要に応じて)
attrib -s -h -r "C:\Windows\System32<疑わしいファイル>" 

ジャンクション/再解析ポイントの判定

fsutil reparsepoint query "C:\Windows\System32\&lt;対象&gt;"

再解析ポイントであれば実体は別の場所です。実体パスを特定してから処置します。

ハンドル保持・ロックの解除(Sysinternals)

handle.exe -a "&lt;ファイル名や一部の文字列&gt;"

ロックしているプロセスを特定し、可能ならプロセスを終了。終了できない場合は再起動時削除(MoveFileEx)やリカバリ環境での削除に切り替えます。

パス長/予約名/不可視名対策

del "\\?\C:\Windows\System32\&lt;対象&gt;"

\\?\ を付けるとWin32パス長制限の影響を受けにくくなります。

所有権とACLを取り戻す

takeown /f "C:\Windows\System32\&lt;対象&gt;"
icacls "C:\Windows\System32\&lt;対象&gt;" /grant administrators:F

最終削除

del /f /a "C:\Windows\System32\&lt;対象&gt;"

ここまでで消えない場合は、回復環境(Windows RE)やWinPEからオフラインで削除します。

PowerShell/コマンドでの補助チェック

GUIに頼らず、残骸と永続化の有無をスクリプトで点検します。

Defenderシグネチャ更新とフルスキャン

PowerShell(管理者):

Update-MpSignature
Start-MpScan -ScanType FullScan
Get-MpThreat 

起動項目・タスク・サービス

# スタートアップ(ユーザー/全体)
Get-CimInstance Win32_StartupCommand | Select-Object Name, Command, Location, User

# タスクスケジューラ

Get-ScheduledTask | Where-Object {$*.State -ne 'Disabled'} |
Select-Object TaskName,TaskPath,Author,@{n='Action';e={$*.Actions}}

# サービス

Get-Service | Where-Object {$_.Status -ne 'Stopped'} | Sort-Object DisplayName 

WMI永続化

Get-WmiObject -Namespace root\Subscription -Class __EventFilter
Get-WmiObject -Namespace root\Subscription -Class CommandLineEventConsumer
Get-WmiObject -Namespace root\Subscription -Class __FilterToConsumerBinding

ネットワーク常時接続・プロキシ/hosts改変

netstat -ano | findstr ESTABLISHED
netsh winhttp show proxy
ipconfig /displaydns
type C:\Windows\System32\drivers\etc\hosts

USBドライブの初期化(フルフォーマット)

感染源USBはクイックではなくフルフォーマットします。データ救出が不要な場合は上書き消去を推奨。

  1. 重要データの救出は別の安全なPC上の隔離VMで実施(コピー先は自動実行しない領域)。
  2. Windowsの「ディスクの管理」でボリュームを削除→再作成→フルフォーマット。
  3. コマンド例:format X: /FS=exFAT /P:1 /V:CLEANUSB(XはUSBのドライブレター、/P:1で1回上書き)。

復元ポイントと完全な「クリーン状態」づくり

  1. 古い復元ポイントの削除:感染期間のスナップショットを破棄。
  2. Windows Updateとドライバー更新を適用。
  3. 状態が安定したら新規の復元ポイントを作成。

アカウント保全と被害最小化

  • 別デバイスから主要アカウント(メール/クラウド/SNS/ゲーム/金融)のパスワード変更。
  • 二要素認証(Authenticatorアプリ/セキュリティキー)を有効化。
  • メール転送設定・ログイン履歴・不審なセッションを確認。

CoinMiner特有の痕跡チェック

  • CPU/GPU使用率のスパイク(アイドル時に上がる)。
  • プール接続(例:3333/4444/5555番台など)への継続通信。
  • 実行ファイルや設定に「xmr」「crypt」「pool」「rig」等の語。
  • 電源プランが「高パフォーマンス」に変更されている。

ブラウザ起因のマイニング回避

ブラウザ拡張やスクリプト型マイナーが混在することもあります。以下を点検:

  • chrome://extensions / edge://extensions / about:addons:不審な拡張を無効→削除。
  • キャッシュ・Service Workerのクリア。
  • 通知・バックグラウンド許可を見直し。

ネットワークとシステムの初期化

netsh winsock reset
netsh int ip reset
netsh winhttp reset proxy
ipconfig /flushdns

これでプロキシ挿げ替えやDNS毒盛りの後遺症を戻せます。

多層防御の実装(再感染を防ぐ)

層推奨設定理由
USB運用書き込み禁止スイッチ付きUSBを採用。未知PCから受け取るファイルは受領直後にスキャン。物理的にマルウェアの書き込みを封じる。
AutoPlay/AutoRunグループポリシーですべてのドライブでAutoPlayを無効化。レジストリのMountPoints2を清掃。USB挿入での自動実行をブロック。
Windows Defenderリアルタイム保護・クラウド提供保護・サンプル自動送信を有効化。定期的にオフラインスキャン。未知・ポリモーフィックな亜種にも対抗。
ASR(対応エディション)Officeからの子プロセス生成やスクリプト悪用をブロック。メール/USB経由のマクロ連鎖を遮断。
バックアップ3-2-1ルール:本体・別メディア・クラウドを組み合わせ、オフラインコピーを用意。破壊/暗号化/再感染時の迅速復旧。

学校や共有PCとファイル授受する人のための実践手順

  1. USBは受け取ったらまず読み取り専用(物理スイッチ or 書き込み禁止マウント)で開く。
  2. PC側はAutoPlay無効。拡張子は常に表示。
  3. USB直下のショートカットやスクリプト(.lnk .js .vbs .ps1 .bat等)は即開かない。
  4. ファイルは隔離領域にコピー→オンデマンドスキャン→必要なものだけ本環境へ。
  5. 提出・返却時はフルフォーマットでリセット。

チェックリスト(駆除完了判定)

  • Microsoft Safety Scanner:最新でフルスキャン完走、脅威なし。
  • Windows Defender オフライン スキャン:検出無し or 検出は全て処置済み。
  • Autoruns:Logon/Tasks/Services/WMI/IFEO/Explorerに不審項目が残っていない。
  • System32の不審ファイル:実体を確認のうえ削除成功。再起動後も復活しない。
  • ネットワーク・プロキシ・hosts:初期化済み。
  • USB:フルフォーマット済み(再接続時も何も起きない)。
  • 復元ポイント:クリーンな状態で作成済み。
  • 主要アカウント:別デバイスからパスワード更新・2段階認証有効化。

困ったときの代替ルート

  • セーフモードでも止められない:回復環境(Windows RE)で「コマンドプロンプト」を起動し、対象ファイルをオフライン削除。
  • システム破損が激しい:インプレース修復(上書きインストール)または「このPCをリセット」。機密性の観点で個人用ファイルを削除する選択肢を検討。
  • 企業/学校PC:自己判断で進めず、ポリシーに従ってISMS/情報システム部門へエスカレーション。

よくある落とし穴

  • クイックスキャンで「安心」:自己改名型は深部に潜む。フルスキャン前提。
  • クイックフォーマットのみ:USBに不良セクタや隠し領域が残ることがある。フルフォーマットを。
  • Autorunsで即削除:まず無効化→再起動で影響を切り分け、安定後に削除。
  • 検出ログを残さない:後で復活した時に追跡不能。msert.log等はバックアップ。

実運用に役立つコマンド早見表

目的コマンド備考
Defender更新Update-MpSignatureオフラインでも差分が入っていれば有効
DefenderフルスキャンStart-MpScan -ScanType FullScanUI操作ができない時に
現在の脅威Get-MpThreat検出名と処置結果
ネットワーク初期化netsh winsock resetプロキシ/フィルタの後遺症に
ADS列挙dir /r代替データストリームを確認
所有権取得takeown /f <path>System32内の不審ファイル
ACL修復icacls <path> /grant administrators:F削除前の事前作業
長いパスの削除del "\\?\<path>"Win32 APIの制限回避

ケーススタディ:自己改名型の挙動を見破る観察ポイント

  • 時刻:ログオン直後/1分周期/アイドル復帰のいずれかで発火。
  • 場所:%AppData%、%ProgramData%、%Temp%、%LocalAppData%に隠しフォルダを生成。
  • 命名規則:GUID/ハッシュ風、末尾に数字が増える、拡張子偽装(.scr .com .cpl)。
  • 通信:特定ポート宛の断続的接続、プロキシ設定書き換え。
  • 防衛:IFEOで解析ツールを差し替え、WMIで自己再生成。

まとめ

自己改名・自己隠蔽型のUSB経由マルウェアは、(1)メモリ常駐の停止(Safety Scanner/Defenderオフライン)→(2)起動永続化の無効化と削除(Autoruns)→(3)ファイルシステムの実体への直接対応(属性/ハンドル/ACL/オフライン削除)→(4)感染源USBのフルフォーマットの順で、理詰めに進めれば確実に根絶できます。最後に復元ポイントの作り直し、パスワード変更、AutoPlay無効化、書き込み禁止USBへの置き換えまで実施すれば、同種の再感染は大幅に抑えられます。


付録:作業フロー(印刷用)

  1. ネットワーク遮断・USB隔離・記録。
  2. Microsoft Safety Scannerでフルスキャン。
  3. AutorunsでLogon/Tasks/Services/WMI/IFEOを無効化。
  4. Defender オフライン スキャン。
  5. System32の不審ファイルを属性復旧→ハンドル解除→削除。
  6. ネットワーク/プロキシ/hosts初期化。
  7. USBをフルフォーマット。
  8. Windows/ドライバ更新→新規復元ポイント作成。
  9. アカウントのパスワード変更・2FA化。
  10. AutoPlay無効化、バックアップの3-2-1整備、書き込み禁止USBの運用開始。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次