Has stolen valid OAuth credentials from DevOps personnel or a company GitHub repository.1 Additionally, ShinyHunters has stolen application access tokens to access cloud services and to bypass authentication mechanisms.2
Steal Application Access Token T1528
- Tactic
- Credential Access
- Platforms
- Containers, IaaS, Identity Provider, Office Suite, SaaS
- Version
- 1.5
- Created
- 04 September 2019
- Last modified
- 12 May 2026
- Contributors
- Suzy Schapperle - Microsoft Azure Red Team; Shailesh Tiwary (Indian Army); Mark Wee; Jeff Sakowicz, Microsoft Identity Developer Platform Services (IDPM Services); Saisha Agrawal, Microsoft Threat Intelligent Center (MSTIC); Ram Pliskin, Microsoft Azure Security Center; Jack Burns, HubSpot; Arun Seelagan, CISA; Eliraz Levi, Hunters Security; Alon Klayman, Hunters Security
Adversaries can steal application access tokens as a means of acquiring credentials to access remote systems and resources.
Steal Application Access Token MITRE reference T1528
4 groups have been recorded using this technique. Newest first; each entry carries MITRE’s procedure text and a link to the group’s full record. Click a name to filter the rules below.
Has used malware to steal access tokens from targeted cloud and developer environments.12345
Uses stolen tokens to access victim accounts, without needing a password.1
Has used several malicious applications to steal user OAuth access tokens including applications masquerading as "Google Defender" "Google Email Protection," and "Google Scanner" for Gmail users. They also targeted Yahoo users with applications masquerading as "Delivery Service" and "McAfee Email Protection".1
All 4 groups for this technique
1 campaign has been recorded using this technique. Listed newest first; dates are year-granularity and attribution is MITRE’s.
Leviathan abused access to compromised appliances to collect JSON Web Tokens (JWTs), used for creating virtual desktop sessions, during Leviathan Australian Intrusions.1
All 1 campaigns for this technique
8 software entries are documented implementing this technique. MITRE files each as a tool or as malware; newest first, then by how many groups carry them.
Has obtained OAuth access and refresh tokens by deceiving victims into completing actor-initiated device authorization requests, and intercepting authentication sessions with legitimate identity providers through adversary-in-the-middle reverse proxy infrastructure. 1234
Has stolen application access tokens and other tokens to include those associated with CI/CD.12345
Has gathered cloud access tokens.1
Can read runner.worker process memory to extract plaintext tokens.123145
Has gathered access tokens and API tokens from CI/CD pipeline solutions and repositories.1
Has stolen access tokens and API tokens from with CI/CD pipeline solutions and repositories.1234
All 8 software entries for this technique · 6 newest in this preview
Offense vs defense T1528
Is defensive coverage keeping up with adversary use? Eight counts, each ranked against all 697 ATT&CK techniques. Attack sits left, defense right, so a shape leaning left means adversaries are better documented here than defenders are equipped. Hover any spoke for its percentile and the share of techniques that have more. The timeline below shows when each side arrived.
How it got here
Adversary activity (campaign spans) over cumulative rule output. Each source is plotted independently from zero, so neither line includes the other. Campaign dates are year-granularity.
Steal Application Access Token detection strategy DET0515
MITRE names one behaviour worth catching for this technique and breaks it into 5 analytics, one per platform. Each carries the log sources it needs and the fields you tune per environment.
Detection Strategy for T1528 - Steal Application Access Token
AN1423 · Containers
Access and retrieval of container service account tokens followed by unauthorized API requests using those tokens to interact with the Kubernetes API server or internal services.
Log sources
The data this analytic draws on. You do not need every component — each one you already collect covers part of it. Each links to its ATT&CK record.
| Data component | Name | Channel |
|---|---|---|
| File AccessDC0055 | kubernetes:audit | GET or LIST requests to /var/run/secrets/kubernetes.io/serviceaccount/ followed by access to the Kubernetes API server |
Tunable fields
MITRE calls these the analytic’s mutable elements: the thresholds and filters you set for your own environment.
| Field | What you tune |
|---|---|
| TimeWindow | Adjust based on how quickly tokens are expected to be used post-access |
| UserContext | Tuning for known service accounts that legitimately access the API |
AN1424 · IaaS
Token retrieval from instance metadata endpoints such as AWS IMDS or Azure IMDS, followed by API usage using the obtained token from non-standard applications.
Log sources
The data this analytic draws on. You do not need every component — each one you already collect covers part of it. Each links to its ATT&CK record.
| Data component | Name | Channel |
|---|---|---|
| Cloud Service ModificationDC0069 | AWS:CloudTrail | Use of temporary credentials issued from IMDS access |
| Cloud Service EnumerationDC0083 | AWS:CloudTrail | GetInstanceIdentityDocument or IMDSv2 token requests |
Tunable fields
MITRE calls these the analytic’s mutable elements: the thresholds and filters you set for your own environment.
| Field | What you tune |
|---|---|
| UserAgent | May need tuning for known automation tools versus unexpected curl usage |
| TimeWindow | Correlate retrieval and use of token within expected timeout window |
AN1425 · Identity Provider
Unusual OAuth app registration followed by user-granted OAuth tokens and subsequent high-privilege resource access via those tokens.
Log sources
The data this analytic draws on. You do not need every component — each one you already collect covers part of it. Each links to its ATT&CK record.
| Data component | Name | Channel |
|---|---|---|
| Application Log ContentDC0038 | azure:audit | App registrations or consent grants by abnormal users or at unusual times |
Tunable fields
MITRE calls these the analytic’s mutable elements: the thresholds and filters you set for your own environment.
| Field | What you tune |
|---|---|
| ConsentScope | Tunable based on risky or privileged scopes in the environment |
| AppUserRatio | Threshold of how many users have authorized a given app |
AN1426 · Office Suite
Use of OAuth tokens by third-party apps to access user mail, calendar, or SharePoint resources where the token was granted recently or via spearphishing.
Log sources
The data this analytic draws on. You do not need every component — each one you already collect covers part of it. Each links to its ATT&CK record.
| Data component | Name | Channel |
|---|---|---|
| Cloud Storage AccessDC0025 | m365:unified | App-only or delegated access patterns where client_id != known enterprise apps |
Tunable fields
MITRE calls these the analytic’s mutable elements: the thresholds and filters you set for your own environment.
| Field | What you tune |
|---|---|
| ClientAppIDAllowList | Defenders may allow known app IDs, flag unknowns |
| AccessVolumeThreshold | Rate of resource access by a newly consented app |
AN1427 · SaaS
Programmatic access to user content via stolen access tokens in platforms like Slack, GitHub, Google Workspace — especially from new IPs, apps, or excessive resource access.
Log sources
The data this analytic draws on. You do not need every component — each one you already collect covers part of it. Each links to its ATT&CK record.
| Data component | Name | Channel |
|---|---|---|
| User Account AuthenticationDC0002 | saas:googleworkspace | Access via OAuth credentials with unusual scopes or from anomalous IPs |
| Application Log ContentDC0038 | saas:slack | OAuth token use by unknown app client_id accessing private channels or files |
Tunable fields
MITRE calls these the analytic’s mutable elements: the thresholds and filters you set for your own environment.
| Field | What you tune |
|---|---|
| GeoVelocity | Flag when token use appears across geographically distant logins |
| OAuthScopeSensitivity | Weight certain scopes (admin, file.read) as higher risk |
Administrators should audit all cloud and container accounts to ensure that they are necessary and that the permissions granted to them are appropriate. Additionally, administrators should perform an audit of all OAuth applications and the permissions they have been granted to access organizational data. This should be done extensively on all applications in order to establish a baseline, followed up on with periodic audits of new or updated applications. Suspicious applications should be investigated and removed.
Administrators can block end-user consent to OAuth applications, disabling users from authorizing third-party apps through OAuth 2.0 and forcing administrative consent for all requests. They can also block end-user registration of applications by their users, to reduce risk. A Cloud Access Security Broker can also be used to ban applications. Azure offers a couple of enterprise policy settings in the Azure Management Portal that may help: "Users -> User settings -> App registrations: Users can register applications" can be set to "no" to prevent users from registering new applications. "Enterprise applications -> User settings -> Enterprise applications: Users can consent to apps accessing company data on their behalf" can be set to "no" to prevent users from consenting to allow third-party multi-tenant applications
Enforce role-based access control to limit accounts to the least privileges they require. A Cloud Access Security Broker (CASB) can be used to set usage policies and manage user permissions on cloud applications to prevent access to application access tokens. In Kubernetes applications, set “automountServiceAccountToken: false” in the YAML specification of pods that do not require access to service account tokens.
Users need to be trained to not authorize third-party applications they don’t recognize. The user should pay particular attention to the redirect URL: if the URL is a misspelled or convoluted sequence of words related to an expected service or SaaS application, the website is likely trying to spoof a legitimate service. Users should also be cautious about the permissions they are granting to apps. For example, offline access and access to read emails should excite higher suspicions because adversaries can utilize SaaS APIs to discover credentials and other sensitive communications.
Tests from Atomic Red Team (MIT licence) · technique definition