攻撃者は偽の Microsoft Teams 会議スケジューラーを使い、建設会社の従業員をだましてデバイスコードによるサインインを承認させました。Huntress のセキュリティオペレーションセンター(SOC)がインシデントを特定する前に、攻撃者は有効なセッショントークンを入手していました。
デバイスコードフィッシングは、Microsoft の正規のサインインフローを悪用する手口です。攻撃者はサインインを開始して短いコードを取得し、被害者を説得して Microsoft の本物のデバイスログインページにそのコードを入力させます。被害者はコードを入力し、求められれば MFA も完了させますが、そうとは知らずに攻撃者のセッションを承認してしまいます。この承認により、攻撃者は被害者アカウントのアクセストークンを手にします。
「予約番号」の正体はデバイスコード
メールは、別の建設会社に実在する上級副社長になりすました、タイポスクワッティングのドメインから送られていました。メール内のリンクは Google の共有リンクに接続し、そこからおとりのページへリダイレクトされる仕組みです。攻撃者のドメインはメール本文に一度も現れないため、このメッセージは URL レピュテーションのチェックをすり抜けました。
おとりのページは Teams のスケジューラーのように見えました。ページには当該幹部の顔写真が表示され、長期的なサプライパートナーシップに関する最初の打ち合わせを持ちかけていました。「Continue」をクリックすると、攻撃者のバックエンドで Microsoft のデバイスコード要求が始まります。次のページでは、取得したコードが「Booking Reference(予約番号)」として表示され、カウントダウンタイマーで被害者を急かします。

おとりの確認ページ(出典:Huntress)
「Copy」または確認ボタンをクリックすると、コードがクリップボードにコピーされ、Microsoft の本物のサインインページがポップアップで開きます。攻撃者のバックエンドがサインインの成功を検知すると、ページはポップアップを閉じて「Verification complete(確認完了)」と表示し、被害者を Calendly の予約ページへ誘導します。不審な点が何もないように見せかけるためです。
スキャナーと MFA エラーを回避する作り込み
このフィッシングキットは AES-256-GCM で暗号化された状態で届き、復号鍵は同じページ内のすぐ隣に置かれていました。この構成は、JavaScript を実行しないメールスキャナーやクローラーを狙ったものです。こうしたツールには、おとりのページが暗号化されたデータの塊にしか見えません。
キットにはフォールバック機能もありました。MFA が必要な場合などに Microsoft がエラーを返すと、ページは被害者に新しい確認コードを準備中だと伝えます。その後、新たなデバイスコードのセッションを開始し、再度試行します。攻撃者は最終的なログインをニューオーリンズの住宅用プロキシ経由で行い、一般消費者のトラフィックに見せかけていました。
講じるべき対策
Huntress は、予期しないデバイスコードの入力要求を不審なものとして扱うよう勧めています。業務でデバイスコード認証が不要な場合は、条件付きアクセスで制限または監視してください。あわせて、フィッシング耐性のある MFA の導入と、見慣れないデバイスからのサインインの注意深い確認も推奨しています。
python-requests や node といったプログラム的なユーザーエージェントが対話型サインインのログに現れた場合は、攻撃者による自動化されたインフラが使われている兆候です。侵害が確認された後は、不正な MFA 方式、未知の登録デバイス、許可していないアプリへの同意、不審なメールボックスルール、不審な送信メールがないかを確認してください。
翻訳元: https://www.helpnetsecurity.com/2026/11/13/microsoft-teams-device-code-phishing/