Skip to content
Security
Skill

/attacking-oauth-with-device-code-phishing

Run OAuth 2.0 device-code and illicit-consent phishing attacks against

From plugin
cybersecurity-skills
36k200 skills

Claude Code

$ npx -y skills add mukul975/Anthropic-Cybersecurity-Skills --skill attacking-oauth-with-device-code-phishing --agent claude-code

SKILL.md

attacking-oauth-with-device-code-phishing.SKILL.md
name: attacking-oauth-with-device-code-phishing
description: Run OAuth 2.0 device-code and illicit-consent phishing attacks against
  Microsoft Entra ID, using TokenTactics-style tooling to steal access and refresh
  tokens, bypass MFA, and pivot across Microsoft 365 services. Use for authorized
  red-team engagements simulating device-code or consent-grant phishing against a
  tenant you have explicit written permission to test.
domain: cybersecurity
subdomain: identity-access-management
tags:
- device-code-phishing
- oauth
- entra-id
- token-theft
- mfa-bypass
- illicit-consent
- tokentactics
- red-team
version: '1.0'
author: mahipal
license: Apache-2.0
nist_csf:
- PR.AA-03
mitre_attack:
- T1528

Attacking OAuth with Device-Code Phishing

> **Legal Notice:** This skill is for authorized security testing, red-team engagements, and educational purposes only. Device-code and consent-grant phishing manipulate real users into authorizing attacker-controlled access to corporate identities. Execute only against tenants you own or have explicit written authorization (rules of engagement) to test. Unauthorized use violates the Computer Fraud and Abuse Act and equivalent laws worldwide.

Overview

The OAuth 2.0 Device Authorization Grant (RFC 8628) was designed for input-constrained devices (smart TVs, CLI tools) that cannot easily present a browser-based login. A device requests a short `user_code` and a `device_code`, displays the `user_code` and a verification URL to the user, and polls the token endpoint while the user authenticates on a separate, fully-featured device. Attackers weaponize this flow: instead of a smart TV, the "device" is the attacker's machine. The attacker initiates the device-code request, then phishes a victim to visit the legitimate Microsoft verification page (`https://microsoft.com/devicelogin`) and enter the attacker-generated `user_code`. Because the victim authenticates on the genuine Microsoft login page — completing MFA — the resulting tokens are minted to the attacker's polling session. This bypasses MFA entirely: the second factor is satisfied by the victim, but the bearer tokens land with the attacker (mapped to MITRE ATT&CK **T1528 – Steal Application Access Token**).

Microsoft Threat Intelligence, Volexity, and Proofpoint documented sharp growth in device-code phishing through 2025, with Russia-aligned actors (tracked by Microsoft as Storm-2372) among the most prolific. Mandiant's M-Trends reporting similarly highlights OAuth token theft as a leading cloud initial-access vector. A closely related technique is the **illicit consent grant** ("OAuth phishing"): the attacker registers a multi-tenant app and tricks the victim into clicking an `/adminconsent` or user-consent URL, granting the malicious app delegated Microsoft Graph permissions (Mail.Read, Files.ReadWrite.All, offline_access) that persist independently of password resets. This skill covers both, plus token replay across Microsoft 365 services using TokenTactics and validation/access mapping with ROADtools.

The defining property red teams exploit: access tokens minted via the device-code flow are valid for roughly 60–90 minutes, but the accompanying refresh token (with `offline_access` scope) survives for up to 90 days and can be redeemed for fresh tokens against any first-party resource the client is allowed to request — Outlook, SharePoint, Teams, Azure Resource Manager — enabling durable, MFA-surviving access.

When to Use

  • During an authorized red-team or assumed-breach engagement targeting Microsoft 365 / Entra ID where social-engineering is in scope
  • When validating Conditional Access policies, MFA enforcement, and token-protection controls against real phishing techniques
  • When testing whether an organization restricts the OAuth device-code flow or blocks unverified multi-tenant app consent
  • When demonstrating MFA-bypass risk to justify phishing-resistant authentication (FIDO2) and token-binding controls
  • When building detections (paired with the blue-team `hunting-saas-sso-token-abuse` skill) and you need realistic telemetry

Prerequisites

  • Written authorization / rules of engagement explicitly permitting phishing and token theft against the target tenant
  • A controlled pretext-delivery channel (sanctioned phishing infrastructure or an internal test mailbox)
  • Linux or Windows attacker host with Python 3.8+ and PowerShell 7+
  • TokenTactics (PowerShell) and ROADtools (Python) installed:
  # ROADtools (roadrecon + roadtx) — Dirk-jan Mollema / Outsider Security
  pip install roadtools roadtools_auth
  # roadtx (ROADtools Token eXchange) ships in roadtools_auth
  roadtx --help

  # TokenTactics v2 (rvrsh3ll)
  git clone https://github.com/rvrsh3ll/TokenTactics.git
  pwsh -c "Import-Module ./TokenTactics/TokenTactics.psd1"
  • Familiarity with OAuth 2.0 grant types, JWT structure, and Microsoft Graph scopes

Objectives

  • Initiate an OAuth device-code request against Entra ID using a first-party client ID
  • Deliver a credible pretext that drives the victim to the genuine Microsoft device-login page
  • Poll the token endpoint and capture the victim's access and refresh tokens
  • Refresh tokens across Microsoft 365 resources (Graph, Outlook, Azure management) to expand access
  • Execute the illicit-consent variant by registering and phishing consent for a malicious multi-tenant app
  • Enumerate accessible resources and data with ROADtools to demonstrate impact
  • Document MFA bypass and produce remediation recommendations

MITRE ATT&CK Mapping

| ID | Technique | Application in this skill | |----|-----------|---------------------------| | T1528 | Steal Application Access Token | Phishing the device-code flow / consent grant yields attacker-controlled OAuth access and refresh tokens that are reused to access cloud services without re-authenticating |

Related techniques frequently chained: **T1566** Phishing (delivery), **T1550.001** Application Access Toke

Read more
@mukul975
Ships withcybersecurity-skills

817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATT&CK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF & MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI & 20+ platforms · 29 security domains · Apache 2.0

Stars on GitHub

Momentum

stars in total
36.2k
Star history of mukul975/Anthropic-Cybersecurity-Skills on GitHub, a chart by star-history.com

Other skills on cybersecurity-skills.

More skills from other plugins.

api-security

api-security

Use for authorized security assessment of REST, GraphQL, WebSocket, or SOAP APIs, including discovery, authentication,…

@zhaoxuya520@zhaoxuya520Install Skill
nemoclaw-user-guide

nemoclaw-user-guide

Find official NemoClaw documentation for installation, configuration, operation, or troubleshooting. Also handles requested docs…

@nvidia@nvidiaInstall Skill
ai-sdk-5

ai-sdk-5

Vercel AI SDK patterns for the installed major (ui/package.json: `ai` 6.x, `@ai-sdk/react` 3.x). The skill name is historical;…

prowler5d15k
@prowler-cloud@prowler-cloudInstall Skill

Questions about attacking-oauth-with-device-code-phishing.

Which coding agents can use attacking-oauth-with-device-code-phishing?
attacking-oauth-with-device-code-phishing installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.