[{"data":1,"prerenderedAt":6279},["ShallowReactive",2],{"application-flags":3,"navbar":7,"always-visible-banner":36,"navbar-about-highlight":108,"navbar-resource-highlight":182,"blog/device-code-phishing":226},[4],{"name":5,"enabled":6},"maintenanceMode",false,[8],{"createdDate":9,"id":10,"name":11,"modelId":12,"published":13,"query":14,"data":15,"variations":20,"lastUpdated":21,"firstPublished":22,"testRatio":23,"createdBy":24,"lastUpdatedBy":25,"folders":26,"meta":27,"rev":35},1742208588866,"1c7a4e423bf54ac1a328bb4063459ef2","Banner","1c6207a5f24948ab82d4a0b17f251193","published",[],{"type":16,"url":17,"text":18,"link":19},"web-banner","https://pushsecurity.com/resources/browser-attacks-report","Get our latest report analyzing browser attack techniques in 2026",{},{},1774258294825,1742208637545,1,"CydmZnOWU1XuAaLhEDCoYNM4Z8W2","jKjF9r5jcvXU8tzZEfFQm31Iyvr2",[],{"kind":28,"lastPreviewUrl":29,"breakpoints":30,"hasAutosaves":34},"data","",{"xsmall":31,"small":32,"medium":33},320,640,768,true,"ga0kpxjhh76",{"createdDate":37,"id":38,"name":39,"modelId":40,"published":13,"stageModifiedSincePublish":6,"query":41,"data":42,"variations":97,"lastUpdated":98,"firstPublished":99,"testRatio":23,"createdBy":100,"lastUpdatedBy":101,"folders":102,"meta":103,"rev":107},1774965361051,"fd266d0172cc47429be7ad10f48c99ad","always visible banner","0678d178ec8b41efb8a23c09dba7874d",[],{"ctaText":43,"text":44,"url":29,"blocks":45,"state":93},"ewrererw","testrfesssssssssss",[46,73,81],{"@type":47,"@version":48,"id":49,"component":50,"responsiveStyles":63},"@builder.io/sdk:Element",2,"builder-ca12c06a52de41d7b8743da53118cd38",{"name":51,"tag":51,"options":52,"isRSC":62},"TopBannerContent",{"text":53,"ctaText":54,"url":55,"mainText":56,"cta":59},"New Webinar Series: Join John Hammond, Troy Hunt, and Matt Johansen for the State of Browser Attacks","Save Your Spot","https://pushsecurity.com/webinar/state-of-browser-security",{"content":57,"fontSize":58},"\u003Cp>Meet Push's browser security experts at BlackHat 2026.\u003C/p>","text-base",{"content":60,"fontSize":58,"url":61},"\u003Cp>Book a meeting →\u003C/p>","https://pushsecurity.com/events/blackhat-2026-meeting",null,{"large":64},{"display":65,"flexDirection":66,"position":67,"flexShrink":68,"boxSizing":69,"marginTop":70,"marginBottom":70,"fontSize":71,"fontWeight":72},"flex","column","relative","0","border-box",".56rem","1.125rem","700",{"@type":47,"@version":48,"id":74,"component":75,"responsiveStyles":79},"builder-a2e1f4b9f30b464bb814d7f5de5b0aa7",{"name":76,"options":77,"isRSC":62},"Custom Code",{"code":78,"scriptsClientOnly":6},"\u003Cstyle>\n  .top-banner.bg-web-orange{background:rgb(114, 79, 255);}\n\u003C/style>\n",{"large":80},{"display":65,"flexDirection":66,"position":67,"flexShrink":68,"boxSizing":69},{"id":82,"@type":47,"tagName":83,"properties":84,"responsiveStyles":88},"builder-pixel-o503s4fpvk","img",{"src":85,"aria-hidden":86,"alt":29,"role":87,"width":68,"height":68},"https://cdn.builder.io/api/v1/pixel?apiKey=f3a1111ff5be48cdbb123cd9f5795a05","true","presentation",{"large":89},{"height":68,"width":68,"display":90,"opacity":68,"overflow":91,"pointerEvents":92},"block","hidden","none",{"deviceSize":94,"location":95},"large",{"path":29,"query":96},{},{},1783541846936,1774968080803,"ST0tXQM8slWpFrmioqKHmENB2qe2","kYgMv6WsbvfmlOUYqR2SFwGzw6e2",[],{"kind":104,"lastPreviewUrl":105,"hasLinks":6,"breakpoints":106,"hasErrors":6,"hasAutosaves":6},"component","https://pushsecurity.com/?builder.space=f3a1111ff5be48cdbb123cd9f5795a05&builder.user.permissions=read%2Ccreate%2Cpublish%2CeditDesigns%2CeditLayouts%2CeditLayers%2CeditContentPriority%2CeditFolders%2CcreateProjects%2CsendPullRequests&builder.user.role.name=Designer&builder.user.role.id=creator&builder.cachebust=true&builder.preview=always-visible-banner&builder.noCache=true&builder.allowTextEdit=true&__builder_editing__=true&builder.overrides.always-visible-banner=fd266d0172cc47429be7ad10f48c99ad&builder.overrides.fd266d0172cc47429be7ad10f48c99ad=fd266d0172cc47429be7ad10f48c99ad&builder.options.locale=Default",{"xsmall":31,"small":32,"medium":33},"kyujw1aptq",[109,145],{"createdDate":110,"id":111,"name":112,"modelId":113,"published":13,"stageModifiedSincePublish":6,"query":114,"data":115,"variations":138,"lastUpdated":139,"firstPublished":140,"testRatio":23,"createdBy":24,"lastUpdatedBy":24,"folders":141,"meta":142,"rev":144},1776247359804,"9136a8f18b3b4a6ba29b8653a99372b1","testimonial-inductive-automation","20d9eaa352304613b3d1a794b400703d",[],{"link":116,"type":117,"testimonialLink":118,"testimonial":119},{},"testimonial","/customer-stories/inductive-automation",{"@type":120,"id":121,"model":117,"value":122},"@builder.io/core:Reference","f028f2b685bb47cd8bf9e82a26dd5a79",{"query":123,"folders":124,"createdDate":125,"id":121,"name":126,"modelId":127,"published":13,"data":128,"variations":132,"lastUpdated":133,"firstPublished":134,"testRatio":23,"createdBy":100,"lastUpdatedBy":100,"meta":135,"rev":137},[],[],1735823466309,"We found Push to be more accurate when compared to competitors and the browser agent offered features that others couldn’t match.","42035571a56940ac98bff4544aa79aa5",{"author":129,"jobTitle":130,"quote":126,"image":131},"Jason Waits","\u003Cp>CISO at Inductive Automation\u003C/p>","https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2Ff04c0c0689ce4a89ac0f0708d78c0a07",{},1735910703862,1735823501152,{"kind":28,"lastPreviewUrl":29,"breakpoints":136,"hasAutosaves":34},{"small":32,"medium":33},"e8bsg4qrgtu",{},1776247404986,1776247404973,[],{"breakpoints":143,"kind":28,"lastPreviewUrl":29,"hasAutosaves":6},{"xsmall":31,"small":32,"medium":33},"g9lqcuxphw7",{"createdDate":146,"id":147,"name":148,"modelId":113,"published":13,"meta":149,"stageModifiedSincePublish":6,"query":151,"data":152,"variations":178,"lastUpdated":179,"firstPublished":180,"testRatio":23,"createdBy":24,"lastUpdatedBy":24,"folders":181,"rev":144},1776255761419,"05a9322735fc427db12e2740e4302300","Report: 2026 Browser Attack Techniques",{"breakpoints":150,"kind":28,"lastPreviewUrl":29,"hasAutosaves":6},{"xsmall":31,"small":32,"medium":33},[],{"testimonial":153,"link":172,"type":175,"title":148,"description":176,"image":177},{"@type":120,"id":154,"model":117,"value":155},"192acbb1f9ca4cac918c0ec435a8bae3",{"query":156,"folders":157,"createdDate":158,"id":154,"name":159,"modelId":127,"published":13,"data":160,"variations":166,"lastUpdated":167,"firstPublished":168,"testRatio":23,"createdBy":100,"lastUpdatedBy":24,"meta":169,"rev":171},[],[],1728981467463,"Push does for identity what CrowdStrike did for the endpoint",{"video":161,"jobTitle":162,"author":163,"qoute":29,"quote":164,"image":165},"https://cdn.builder.io/o/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2F8b30e8ca50064058bbaef0f3c6164575%2Fcompressed?apiKey=f3a1111ff5be48cdbb123cd9f5795a05&token=8b30e8ca50064058bbaef0f3c6164575&alt=media&optimized=true","\u003Cp>Deputy CISO at Microsoft\u003C/p>\u003Cp>Former LinkedIn, Slack, Palantir\u003C/p>","Geoff Belknap","Push does for identity what CrowdStrike did for the endpoint.","https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2F748f0ad0a5064a00a13f4721fcc8dea1",{},1742902158597,1728981782923,{"kind":28,"lastPreviewUrl":29,"breakpoints":170,"hasAutosaves":34},{"small":32,"medium":33},"ulhc0im1hfo",{"text":173,"url":174},"Download now","/resources/browser-attacks-report","resource","Learn about the latest techniques being used in the wild.","https://cdn.builder.io/api/v1/image/assets%2Ff3a1111ff5be48cdbb123cd9f5795a05%2F7b4a5ebf81d64e8c9d7fc35f6c96c4a9",{},1776255810913,1776255810900,[],[183,205],{"createdDate":184,"id":185,"name":148,"modelId":186,"published":13,"meta":187,"stageModifiedSincePublish":6,"query":189,"data":190,"variations":200,"lastUpdated":201,"firstPublished":202,"testRatio":23,"createdBy":24,"lastUpdatedBy":24,"folders":203,"rev":204},1776256900280,"1f429607996e4e5fae8fe3f9b9610e55","4829faa81e7c4ee8bd2d000e160e8d3c",{"breakpoints":188,"kind":28,"lastPreviewUrl":29,"hasAutosaves":6},{"xsmall":31,"small":32,"medium":33},[],{"testimonial":191,"link":199,"type":175,"title":148,"description":176,"image":177},{"@type":120,"id":154,"model":117,"value":192},{"query":193,"folders":194,"createdDate":158,"id":154,"name":159,"modelId":127,"published":13,"data":195,"variations":196,"lastUpdated":167,"firstPublished":168,"testRatio":23,"createdBy":100,"lastUpdatedBy":24,"meta":197,"rev":171},[],[],{"video":161,"jobTitle":162,"author":163,"qoute":29,"quote":164,"image":165},{},{"kind":28,"lastPreviewUrl":29,"breakpoints":198,"hasAutosaves":34},{"small":32,"medium":33},{"text":173,"url":174},{},1776256937553,1776256937540,[],"xggsv10v1q9",{"createdDate":206,"id":207,"name":208,"modelId":186,"published":13,"stageModifiedSincePublish":6,"query":209,"data":210,"variations":220,"lastUpdated":221,"firstPublished":222,"testRatio":23,"createdBy":24,"lastUpdatedBy":24,"folders":223,"meta":224,"rev":204},1776256949234,"ce043785b71b4ece98eac811ecf4ba10","inductive-automation",[],{"link":211,"type":117,"testimonial":212,"testimonialLink":118},{},{"@type":120,"id":121,"model":117,"value":213},{"query":214,"folders":215,"createdDate":125,"id":121,"name":126,"modelId":127,"published":13,"data":216,"variations":217,"lastUpdated":133,"firstPublished":134,"testRatio":23,"createdBy":100,"lastUpdatedBy":100,"meta":218,"rev":137},[],[],{"author":129,"jobTitle":130,"quote":126,"image":131},{},{"kind":28,"lastPreviewUrl":29,"breakpoints":219,"hasAutosaves":34},{"small":32,"medium":33},{},1776256974140,1776256974130,[],{"breakpoints":225,"kind":28,"lastPreviewUrl":29,"hasAutosaves":6},{"xsmall":31,"small":32,"medium":33},{"id":227,"title":228,"authorsCollection":229,"content":237,"extension":3773,"faqItemsCollection":3774,"faqTitle":62,"featured":6,"hashTags":62,"meta":3776,"metaTitle":3777,"ogImage":62,"publishedDate":3778,"relatedBlogPostsCollection":3779,"slug":6255,"stem":6256,"subtitle":62,"summary":6257,"synopsis":6268,"sys":6269,"tagsCollection":6272,"__hash__":6278},"blog/blog/device-code-phishing.json","Device code phishing attacks have skyrocketed: here’s what you need to know",{"items":230},[231],{"fullName":232,"firstName":233,"jobTitle":234,"profilePicture":235},"Luke Jennings","Luke","Vice President, R&D",{"url":236},"https://images.ctfassets.net/y1cdw1ablpvd/4Hosb4zKi1dA0PUyDLMe1h/27e09d894861f2196ba794037986fb08/T016S22KZ96-U02NVQM7ZD4-57761d542d83-512.jpeg",{"json":238,"links":3263},{"nodeType":239,"data":240,"content":241},"document",{},[242,251,275,294,301,307,314,321,325,335,341,426,446,452,459,580,586,589,597,604,610,613,622,664,670,677,684,691,698,718,724,730,736,742,748,754,760,766,1033,1036,1044,1179,1185,1188,1196,1236,1370,1376,1379,1387,1534,1540,1543,1551,1557,1698,1704,1710,1713,1721,1868,1874,1877,1885,2031,2037,2040,2048,2143,2149,2152,2160,2254,2260,2263,2271,2277,2410,2416,2419,2427,2476,2482,2485,2493,2632,2638,2641,2649,2781,2787,2790,2798,2810,2817,2823,2829,2836,2857,2873,2879,2882,2890,2898,2919,2940,2945,2952,2959,2967,2974,2981,2988,2996,3003,3054,3060,3063,3071,3078,3085,3132,3138,3145,3148,3156,3163,3170,3190,3196,3203,3211,3218],{"nodeType":243,"data":244,"content":250},"embedded-entry-block",{"target":245},{"sys":246},{"id":247,"type":248,"linkType":249},"XOFOeNqmRHeiRbkPOJrP1","Link","Entry",[],{"nodeType":252,"data":253,"content":254},"paragraph",{},[255,260,271],{"nodeType":256,"value":257,"marks":258,"data":259},"text","The OAuth 2.0 ",[],{},{"nodeType":261,"data":262,"content":264},"hyperlink",{"uri":263},"https://www.rfc-editor.org/rfc/rfc8628",[265],{"nodeType":256,"value":266,"marks":267,"data":270},"device authorization grant",[268],{"type":269},"underline",{},{"nodeType":256,"value":272,"marks":273,"data":274}," was designed to enable input-constrained devices to sign-in to apps by asking the user to complete the login on a separate device by entering a code. But today, it’s mainly used when accessing CLI tools, meaning that many users encounter the device code flow daily. ",[],{},{"nodeType":252,"data":276,"content":277},{},[278,281,290],{"nodeType":256,"value":29,"marks":279,"data":280},[],{},{"nodeType":261,"data":282,"content":284},{"uri":283},"https://github.com/pushsecurity/saas-attacks/blob/main/techniques/device_code_phishing/description.md",[285],{"nodeType":256,"value":286,"marks":287,"data":289},"Device code phishing",[288],{"type":269},{},{"nodeType":256,"value":291,"marks":292,"data":293}," attacks designed to exploit this authorization flow are not new — it was among the first techniques that we added to the SaaS attacks matrix back in 2023. But it’s taken until now for it to really enter mainstream adoption. ",[],{},{"nodeType":252,"data":295,"content":296},{},[297],{"nodeType":256,"value":298,"marks":299,"data":300},"The technique tricks a user into issuing access tokens for an attacker-controlled application (not a device, confusingly). Any app that supports device code logins can be a target. Popular examples include Microsoft, Google, Salesforce, GitHub, and AWS. That said, Microsoft is, as always, much more heavily targeted at scale now than any other app.",[],{},{"nodeType":243,"data":302,"content":306},{"target":303},{"sys":304},{"id":305,"type":248,"linkType":249},"Al0pGH8vmOYiufDFiAbt0",[],{"nodeType":252,"data":308,"content":309},{},[310],{"nodeType":256,"value":311,"marks":312,"data":313},"We’ve always been surprised that attackers haven’t commonly used device code phishing in their standard toolkit, preferring session-stealing AITM phishing and other social engineering attacks like ClickFix. But it’s pretty clear from the recent data that the shift to mainstream adoption has now happened. ",[],{},{"nodeType":252,"data":315,"content":316},{},[317],{"nodeType":256,"value":318,"marks":319,"data":320},"In this blog post, we’ll explore the history of device code phishing, what’s changed for it to enter mainstream adoption, how it works under the hood (with recent examples), and what security teams can do about it. ",[],{},{"nodeType":322,"data":323,"content":324},"hr",{},[],{"nodeType":326,"data":327,"content":328},"heading-1",{},[329],{"nodeType":256,"value":330,"marks":331,"data":334},"A brief history of device code phishing",[332],{"type":333},"bold",{},{"nodeType":243,"data":336,"content":340},{"target":337},{"sys":338},{"id":339,"type":248,"linkType":249},"6u3DgvSGChtTJu7l9I7PG1",[],{"nodeType":252,"data":342,"content":343},{},[344,348,357,361,370,374,383,387,396,400,409,413,422],{"nodeType":256,"value":345,"marks":346,"data":347},"The technique was first documented in 2020, before Secureworks released the first tooling framework ",[],{},{"nodeType":261,"data":349,"content":351},{"uri":350},"https://github.com/secureworks/PhishInSuits",[352],{"nodeType":256,"value":353,"marks":354,"data":356},"PhishInSuits",[355],{"type":269},{},{"nodeType":256,"value":358,"marks":359,"data":360}," a year later. A host of research followed, including ",[],{},{"nodeType":261,"data":362,"content":364},{"uri":363},"https://github.com/secureworks/squarephish",[365],{"nodeType":256,"value":366,"marks":367,"data":369},"SquarePhish",[368],{"type":269},{},{"nodeType":256,"value":371,"marks":372,"data":373}," v1 (using QR codes to trigger the 15 minute code expiration window), Dirk-Jan Mollema’s ",[],{},{"nodeType":261,"data":375,"content":377},{"uri":376},"https://dirkjanm.io/phishing-for-microsoft-entra-primary-refresh-tokens/",[378],{"nodeType":256,"value":379,"marks":380,"data":382},"key research",[381],{"type":269},{},{"nodeType":256,"value":384,"marks":385,"data":386}," (chaining device code phishing via Microsoft apps into Primary Refresh Token (PRT) acquisition to gain full browser-level access) and Dennis Kniep’s ",[],{},{"nodeType":261,"data":388,"content":390},{"uri":389},"https://github.com/denniskniep/DeviceCodePhishing",[391],{"nodeType":256,"value":392,"marks":393,"data":395},"DeviceCodePhishing tool",[394],{"type":269},{},{"nodeType":256,"value":397,"marks":398,"data":399}," which automates the entire flow with a headless browser. (Other recent noteworthy tools include ",[],{},{"nodeType":261,"data":401,"content":403},{"uri":402},"https://github.com/nromsdahl/squarephish2",[404],{"nodeType":256,"value":405,"marks":406,"data":408},"SquarePhish2",[407],{"type":269},{},{"nodeType":256,"value":410,"marks":411,"data":412}," and ",[],{},{"nodeType":261,"data":414,"content":416},{"uri":415},"https://github.com/praetorian-inc/GitPhish",[417],{"nodeType":256,"value":418,"marks":419,"data":421},"GitPhish",[420],{"type":269},{},{"nodeType":256,"value":423,"marks":424,"data":425},", so shout out to those too). ",[],{},{"nodeType":252,"data":427,"content":428},{},[429,433,442],{"nodeType":256,"value":430,"marks":431,"data":432},"It wasn’t until August 2024 that in-the-wild exploitation was first identified, with Russia-linked campaigns then continuing into 2025 before entering mainstream criminal adoption. This trend has continued to gather momentum in 2026 with ",[],{},{"nodeType":261,"data":434,"content":436},{"uri":435},"https://thehackernews.com/2026/03/device-code-phishing-hits-340-microsoft.html",[437],{"nodeType":256,"value":438,"marks":439,"data":441},"EvilTokens",[440],{"type":269},{},{"nodeType":256,"value":443,"marks":444,"data":445},", the first reported criminal PhaaS kit for device code phishing, already powering massive campaigns after launching in February. ",[],{},{"nodeType":243,"data":447,"content":451},{"target":448},{"sys":449},{"id":450,"type":248,"linkType":249},"6xsfmbYEzpW7CdDiNzO6cu",[],{"nodeType":252,"data":453,"content":454},{},[455],{"nodeType":256,"value":456,"marks":457,"data":458},"Some of the noteworthy in-the-wild campaigns include:",[],{},{"nodeType":460,"data":461,"content":462},"unordered-list",{},[463,497,519],{"nodeType":464,"data":465,"content":466},"list-item",{},[467],{"nodeType":252,"data":468,"content":469},{},[470,474,482,485,493],{"nodeType":256,"value":471,"marks":472,"data":473},"Storm-2372, tracked by ",[],{},{"nodeType":261,"data":475,"content":477},{"uri":476},"https://www.microsoft.com/en-us/security/blog/2025/02/13/storm-2372-conducts-device-code-phishing-campaign/",[478],{"nodeType":256,"value":479,"marks":480,"data":481},"Microsoft",[],{},{"nodeType":256,"value":410,"marks":483,"data":484},[],{},{"nodeType":261,"data":486,"content":488},{"uri":487},"https://www.volexity.com/blog/2025/02/13/multiple-russian-threat-actors-targeting-microsoft-device-code-authentication/",[489],{"nodeType":256,"value":490,"marks":491,"data":492},"Volexity",[],{},{"nodeType":256,"value":494,"marks":495,"data":496},", linked to multiple Russia-aligned clusters, combining spear-phishing and social engineering with device code phishing payloads against strategic intelligence targets.",[],{},{"nodeType":464,"data":498,"content":499},{},[500],{"nodeType":252,"data":501,"content":502},{},[503,507,515],{"nodeType":256,"value":504,"marks":505,"data":506},"The massive Salesforce campaign operated by ",[],{},{"nodeType":261,"data":508,"content":510},{"uri":509},"https://pushsecurity.com/blog/scattered-lapsus-hunters/",[511],{"nodeType":256,"value":512,"marks":513,"data":514},"Scattered Lapsus$ Hunters",[],{},{"nodeType":256,"value":516,"marks":517,"data":518}," (SLH) combined vishing with a device code phishing payload targeting Salesforce. The attacks morphed into a broader supply chain campaign using stolen credentials, ultimately resulting in 1000+ organizations being compromised and over 1.5 billion stolen records claimed. ",[],{},{"nodeType":464,"data":520,"content":521},{},[522],{"nodeType":252,"data":523,"content":524},{},[525,529,537,541,550,554,563,567,576],{"nodeType":256,"value":526,"marks":527,"data":528},"A massive spike in activity in late 2025 and 2026. This includes ",[],{},{"nodeType":261,"data":530,"content":532},{"uri":531},"https://www.proofpoint.com/us/blog/threat-insight/access-granted-phishing-device-code-authorization-account-takeover",[533],{"nodeType":256,"value":534,"marks":535,"data":536},"multiple threat clusters",[],{},{"nodeType":256,"value":538,"marks":539,"data":540}," tracked using device code phishing techniques, more ",[],{},{"nodeType":261,"data":542,"content":544},{"uri":543},"https://www.bleepingcomputer.com/news/security/hackers-target-microsoft-entra-accounts-in-device-code-vishing-attacks/",[545],{"nodeType":256,"value":546,"marks":547,"data":549},"criminal operations linked to SLH",[548],{"type":269},{},{"nodeType":256,"value":551,"marks":552,"data":553},", and ",[],{},{"nodeType":261,"data":555,"content":557},{"uri":556},"https://newtonpaul.com/blog/device-code-phish-update/",[558],{"nodeType":256,"value":559,"marks":560,"data":562},"hundreds of organizations being targeted via PhaaS architecture,",[561],{"type":269},{},{"nodeType":256,"value":564,"marks":565,"data":566}," which looks to be the same campaign as the recently uncovered EvilTokens PhaaS reported by ",[],{},{"nodeType":261,"data":568,"content":570},{"uri":569},"https://www.huntress.com/blog/railway-paas-m365-token-replay-campaign",[571],{"nodeType":256,"value":572,"marks":573,"data":575},"Huntress",[574],{"type":269},{},{"nodeType":256,"value":577,"marks":578,"data":579}," (featuring abuse of the Railway PaaS platform). ",[],{},{"nodeType":243,"data":581,"content":585},{"target":582},{"sys":583},{"id":584,"type":248,"linkType":249},"3WLt6qLCK8CSwr0QZxZiMv",[],{"nodeType":322,"data":587,"content":588},{},[],{"nodeType":326,"data":590,"content":591},{},[592],{"nodeType":256,"value":593,"marks":594,"data":596},"What we’re seeing in the wild",[595],{"type":333},{},{"nodeType":252,"data":598,"content":599},{},[600],{"nodeType":256,"value":601,"marks":602,"data":603},"As mentioned, we’ve also seen a huge spike in device code phishing activity this year, with multiple kits, page designs, and lure types. We’ve now identified 14+ distinct kits in circulation in the wild, with EvilTokens being the most prevalent. It’s clear that attackers are both spinning up their own kits and creative derivatives of others — we’ve seen kits that are visually similar to EvilTokens (close enough to be clones or forks) but with very different backends, for example AWS, Digital Ocean, 2cloud, and more. ",[],{},{"nodeType":243,"data":605,"content":609},{"target":606},{"sys":607},{"id":608,"type":248,"linkType":249},"nJCbTw85GKXdqrlIkzZwi",[],{"nodeType":322,"data":611,"content":612},{},[],{"nodeType":614,"data":615,"content":616},"heading-2",{},[617],{"nodeType":256,"value":618,"marks":619,"data":621},"“ANTIBOT” (EvilTokens)",[620],{"type":333},{},{"nodeType":252,"data":623,"content":624},{},[625,628,635,639,648,652,660],{"nodeType":256,"value":29,"marks":626,"data":627},[],{},{"nodeType":261,"data":629,"content":630},{"uri":569},[631],{"nodeType":256,"value":572,"marks":632,"data":634},[633],{"type":269},{},{"nodeType":256,"value":636,"marks":637,"data":638},", ",[],{},{"nodeType":261,"data":640,"content":642},{"uri":641},"https://blog.sekoia.io/new-widespread-eviltokens-kit-device-code-phishing-as-a-service-part-1/",[643],{"nodeType":256,"value":644,"marks":645,"data":647},"Sekoia",[646],{"type":269},{},{"nodeType":256,"value":649,"marks":650,"data":651},", and researcher ",[],{},{"nodeType":261,"data":653,"content":654},{"uri":556},[655],{"nodeType":256,"value":656,"marks":657,"data":659},"Paul Newton",[658],{"type":269},{},{"nodeType":256,"value":661,"marks":662,"data":663}," have already done a great job of providing IOCs for the recent EvilTokens activity spike, including multiple backend Railway IPs in authentication events. ",[],{},{"nodeType":243,"data":665,"content":669},{"target":666},{"sys":667},{"id":668,"type":248,"linkType":249},"1XNviq5OvMf5TEAc59F6g5",[],{"nodeType":252,"data":671,"content":672},{},[673],{"nodeType":256,"value":674,"marks":675,"data":676},"Beyond the most widely observed implementation featuring a Cloudflare Workers frontend and Railway backend for authentication, we’ve also tracked additional versions of EvilTokens in circulation since January 2026 (many of which remain live along with the current “production” version of the kit). ",[],{},{"nodeType":252,"data":678,"content":679},{},[680],{"nodeType":256,"value":681,"marks":682,"data":683},"You can see an evolution of the kit in the videos and screenshots below, from early precursors seen in mid-January, the first mentions of ANTIBOT in the page code in late-January, the parallel development of a “Courts Access” fork that lacks the ANTIBOT references, and finally production EvilTokens in February. One of the key threads between the versions is the presence of a generateFallbackCode() JS function and use of a /generate-codes API call. ",[],{},{"nodeType":252,"data":685,"content":686},{},[687],{"nodeType":256,"value":688,"marks":689,"data":690},"Early implementations were quite different, for example using ScrapingBee to generate the displayed code, and varied hosting on vercel, fastly, edgeone, and others. ",[],{},{"nodeType":252,"data":692,"content":693},{},[694],{"nodeType":256,"value":695,"marks":696,"data":697},"After initially appearing on custom domains, the production version is now predominantly hosted on Cloudflare Workers, as per the broader tracking of the campaign. The descriptive HTML comments around ANTIBOT functions have also been removed in later versions. ",[],{},{"nodeType":252,"data":699,"content":700},{},[701,705,714],{"nodeType":256,"value":702,"marks":703,"data":704},"The production version of EvilTokens showcases common ",[],{},{"nodeType":261,"data":706,"content":708},{"uri":707},"https://phishing-techniques.pushsecurity.com/",[709],{"nodeType":256,"value":710,"marks":711,"data":713},"detection evasion techniques",[712],{"type":269},{},{"nodeType":256,"value":715,"marks":716,"data":717}," we've come to associate with PhaaS kits in the AiTM space — using multiple redirects through trusted sites before serving the malicious page, using bot protection to block security tools from analyzing the page, and so on. It also uses a pop-up window for the device code entry rather than a redirect, reducing the friction for the victim (it looks pretty convincing, too).",[],{},{"nodeType":243,"data":719,"content":723},{"target":720},{"sys":721},{"id":722,"type":248,"linkType":249},"73rNOIEDPfP5IJwpFaxVc2",[],{"nodeType":243,"data":725,"content":729},{"target":726},{"sys":727},{"id":728,"type":248,"linkType":249},"5BJSvOQUW9UpsQtoDNtgTC",[],{"nodeType":243,"data":731,"content":735},{"target":732},{"sys":733},{"id":734,"type":248,"linkType":249},"3dbePPxVb4h4SauGg3glIL",[],{"nodeType":243,"data":737,"content":741},{"target":738},{"sys":739},{"id":740,"type":248,"linkType":249},"1UOLcmNQvOsL5tdLSVuviq",[],{"nodeType":243,"data":743,"content":747},{"target":744},{"sys":745},{"id":746,"type":248,"linkType":249},"55XRqLSwUUi2D4ZVpJboml",[],{"nodeType":243,"data":749,"content":753},{"target":750},{"sys":751},{"id":752,"type":248,"linkType":249},"5wg5yr2Lo8t3f72ZV815c",[],{"nodeType":243,"data":755,"content":759},{"target":756},{"sys":757},{"id":758,"type":248,"linkType":249},"35cowlL6i3rkGXOGmSxlI1",[],{"nodeType":252,"data":761,"content":762},{},[763],{"nodeType":256,"value":29,"marks":764,"data":765},[],{},{"nodeType":767,"data":768,"content":769},"table",{},[770,796,880,932,956],{"nodeType":771,"data":772,"content":773},"table-row",{},[774,786],{"nodeType":775,"data":776,"content":777},"table-cell",{},[778],{"nodeType":252,"data":779,"content":780},{},[781],{"nodeType":256,"value":782,"marks":783,"data":785},"Frontend infrastructure",[784],{"type":333},{},{"nodeType":775,"data":787,"content":788},{},[789],{"nodeType":252,"data":790,"content":791},{},[792],{"nodeType":256,"value":793,"marks":794,"data":795},"Workers.dev, vercel.app, github.io, fastly.net, edgeone.dev",[],{},{"nodeType":771,"data":797,"content":798},{},[799,810],{"nodeType":775,"data":800,"content":801},{},[802],{"nodeType":252,"data":803,"content":804},{},[805],{"nodeType":256,"value":806,"marks":807,"data":809},"Backend infrastructure",[808],{"type":333},{},{"nodeType":775,"data":811,"content":812},{},[813,843],{"nodeType":252,"data":814,"content":815},{},[816,821,825,830,834,839],{"nodeType":256,"value":817,"marks":818,"data":820},"Example IP: (V3) ",[819],{"type":333},{},{"nodeType":256,"value":822,"marks":823,"data":824},"162.220.232.71 (Railway AS400940) ",[],{},{"nodeType":256,"value":826,"marks":827,"data":829},"(V2)",[828],{"type":333},{},{"nodeType":256,"value":831,"marks":832,"data":833}," 71.11.42.193 ",[],{},{"nodeType":256,"value":835,"marks":836,"data":838},"(V1) ",[837],{"type":333},{},{"nodeType":256,"value":840,"marks":841,"data":842},"72.218.25.107",[],{},{"nodeType":252,"data":844,"content":845},{},[846,851,855,860,864,868,872,876],{"nodeType":256,"value":847,"marks":848,"data":850},"Backend User Agent:",[849],{"type":333},{},{"nodeType":256,"value":852,"marks":853,"data":854}," ",[],{},{"nodeType":256,"value":856,"marks":857,"data":859},"(V3) ",[858],{"type":333},{},{"nodeType":256,"value":861,"marks":862,"data":863},"node, ",[],{},{"nodeType":256,"value":826,"marks":865,"data":867},[866],{"type":333},{},{"nodeType":256,"value":869,"marks":870,"data":871},", Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683 Safari/537.36 OPR/57.0.3098.91 ",[],{},{"nodeType":256,"value":835,"marks":873,"data":875},[874],{"type":333},{},{"nodeType":256,"value":877,"marks":878,"data":879},"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36 OPR/56.0.3051.52 ",[],{},{"nodeType":771,"data":881,"content":882},{},[883,894],{"nodeType":775,"data":884,"content":885},{},[886],{"nodeType":252,"data":887,"content":888},{},[889],{"nodeType":256,"value":890,"marks":891,"data":893},"Network paths",[892],{"type":333},{},{"nodeType":775,"data":895,"content":896},{},[897,904,911,918,925],{"nodeType":252,"data":898,"content":899},{},[900],{"nodeType":256,"value":901,"marks":902,"data":903},"/api/rate-limit ",[],{},{"nodeType":252,"data":905,"content":906},{},[907],{"nodeType":256,"value":908,"marks":909,"data":910},"/api/fingerprint ",[],{},{"nodeType":252,"data":912,"content":913},{},[914],{"nodeType":256,"value":915,"marks":916,"data":917},"/api/captcha-verify ",[],{},{"nodeType":252,"data":919,"content":920},{},[921],{"nodeType":256,"value":922,"marks":923,"data":924},"/api/init /api/generate-code ",[],{},{"nodeType":252,"data":926,"content":927},{},[928],{"nodeType":256,"value":929,"marks":930,"data":931},"/api/check-auth",[],{},{"nodeType":771,"data":933,"content":934},{},[935,946],{"nodeType":775,"data":936,"content":937},{},[938],{"nodeType":252,"data":939,"content":940},{},[941],{"nodeType":256,"value":942,"marks":943,"data":945},"Lure themes",[944],{"type":333},{},{"nodeType":775,"data":947,"content":948},{},[949],{"nodeType":252,"data":950,"content":951},{},[952],{"nodeType":256,"value":953,"marks":954,"data":955},"Various MS lures (e.g. Outlook, SharePoint, Teams) DocuSign, Adobe",[],{},{"nodeType":771,"data":957,"content":958},{},[959,970],{"nodeType":775,"data":960,"content":961},{},[962],{"nodeType":252,"data":963,"content":964},{},[965],{"nodeType":256,"value":966,"marks":967,"data":969},"Example Domain",[968],{"type":333},{},{"nodeType":775,"data":971,"content":972},{},[973,985,997,1009,1021],{"nodeType":252,"data":974,"content":975},{},[976,981],{"nodeType":256,"value":977,"marks":978,"data":980},"Precursor A:",[979],{"type":333},{},{"nodeType":256,"value":982,"marks":983,"data":984}," teams-zpfvwnpxuc[.]edgeone.dev",[],{},{"nodeType":252,"data":986,"content":987},{},[988,993],{"nodeType":256,"value":989,"marks":990,"data":992},"Precursor B: ",[991],{"type":333},{},{"nodeType":256,"value":994,"marks":995,"data":996},"authenticate-m365-accountsecurity-m-pi[.]vercel.app",[],{},{"nodeType":252,"data":998,"content":999},{},[1000,1005],{"nodeType":256,"value":1001,"marks":1002,"data":1004},"Courts Access: ",[1003],{"type":333},{},{"nodeType":256,"value":1006,"marks":1007,"data":1008},"secure-systems-validations-courts[.]vercel.app",[],{},{"nodeType":252,"data":1010,"content":1011},{},[1012,1017],{"nodeType":256,"value":1013,"marks":1014,"data":1016},"Early ANTIBOT:",[1015],{"type":333},{},{"nodeType":256,"value":1018,"marks":1019,"data":1020}," interface-auth-en-useast[.]global.ssl.fastly.net",[],{},{"nodeType":252,"data":1022,"content":1023},{},[1024,1029],{"nodeType":256,"value":1025,"marks":1026,"data":1028},"Production ANTIBOT: ",[1027],{"type":333},{},{"nodeType":256,"value":1030,"marks":1031,"data":1032},"index-z059-document-pending-reviewsign-xlss7994824[.]awalizer[.]workers.dev",[],{},{"nodeType":322,"data":1034,"content":1035},{},[],{"nodeType":614,"data":1037,"content":1038},{},[1039],{"nodeType":256,"value":1040,"marks":1041,"data":1043},"“SHAREFILE”",[1042],{"type":333},{},{"nodeType":767,"data":1045,"content":1046},{},[1047,1070,1109,1132,1155],{"nodeType":771,"data":1048,"content":1049},{},[1050,1060],{"nodeType":775,"data":1051,"content":1052},{},[1053],{"nodeType":252,"data":1054,"content":1055},{},[1056],{"nodeType":256,"value":782,"marks":1057,"data":1059},[1058],{"type":333},{},{"nodeType":775,"data":1061,"content":1062},{},[1063],{"nodeType":252,"data":1064,"content":1065},{},[1066],{"nodeType":256,"value":1067,"marks":1068,"data":1069},"No hosting markers visible.",[],{},{"nodeType":771,"data":1071,"content":1072},{},[1073,1083],{"nodeType":775,"data":1074,"content":1075},{},[1076],{"nodeType":252,"data":1077,"content":1078},{},[1079],{"nodeType":256,"value":806,"marks":1080,"data":1082},[1081],{"type":333},{},{"nodeType":775,"data":1084,"content":1085},{},[1086,1098],{"nodeType":252,"data":1087,"content":1088},{},[1089,1094],{"nodeType":256,"value":1090,"marks":1091,"data":1093},"Example IP:",[1092],{"type":333},{},{"nodeType":256,"value":1095,"marks":1096,"data":1097}," 147.45.60.47 (Global Connectivity Solutions LLP AS215540)",[],{},{"nodeType":252,"data":1099,"content":1100},{},[1101,1105],{"nodeType":256,"value":847,"marks":1102,"data":1104},[1103],{"type":333},{},{"nodeType":256,"value":1106,"marks":1107,"data":1108}," node",[],{},{"nodeType":771,"data":1110,"content":1111},{},[1112,1122],{"nodeType":775,"data":1113,"content":1114},{},[1115],{"nodeType":252,"data":1116,"content":1117},{},[1118],{"nodeType":256,"value":890,"marks":1119,"data":1121},[1120],{"type":333},{},{"nodeType":775,"data":1123,"content":1124},{},[1125],{"nodeType":252,"data":1126,"content":1127},{},[1128],{"nodeType":256,"value":1129,"marks":1130,"data":1131},"POST /api/device/start  POST /api/device/poll",[],{},{"nodeType":771,"data":1133,"content":1134},{},[1135,1145],{"nodeType":775,"data":1136,"content":1137},{},[1138],{"nodeType":252,"data":1139,"content":1140},{},[1141],{"nodeType":256,"value":942,"marks":1142,"data":1144},[1143],{"type":333},{},{"nodeType":775,"data":1146,"content":1147},{},[1148],{"nodeType":252,"data":1149,"content":1150},{},[1151],{"nodeType":256,"value":1152,"marks":1153,"data":1154},"Citrix ShareFile document transfer — file card with sender info, expiry warning, download/preview buttons",[],{},{"nodeType":771,"data":1156,"content":1157},{},[1158,1169],{"nodeType":775,"data":1159,"content":1160},{},[1161],{"nodeType":252,"data":1162,"content":1163},{},[1164],{"nodeType":256,"value":1165,"marks":1166,"data":1168},"Example domain",[1167],{"type":333},{},{"nodeType":775,"data":1170,"content":1171},{},[1172],{"nodeType":252,"data":1173,"content":1174},{},[1175],{"nodeType":256,"value":1176,"marks":1177,"data":1178},"cghdfg[.]vbchkioi[.]su",[],{},{"nodeType":243,"data":1180,"content":1184},{"target":1181},{"sys":1182},{"id":1183,"type":248,"linkType":249},"1TtZ6VsMSTlPvy7W996w9E",[],{"nodeType":322,"data":1186,"content":1187},{},[],{"nodeType":614,"data":1189,"content":1190},{},[1191],{"nodeType":256,"value":1192,"marks":1193,"data":1195},"Kali365 (internal name “CLURE”)",[1194],{"type":333},{},{"nodeType":252,"data":1197,"content":1198},{},[1199,1203,1208,1212,1220,1224,1232],{"nodeType":256,"value":1200,"marks":1201,"data":1202},"Clure was recently linked to the ",[],{},{"nodeType":256,"value":1204,"marks":1205,"data":1207},"Kali365",[1206],{"type":333},{},{"nodeType":256,"value":1209,"marks":1210,"data":1211}," PhaaS platform based on an ",[],{},{"nodeType":261,"data":1213,"content":1215},{"uri":1214},"https://www.ic3.gov/PSA/2026/PSA260521",[1216],{"nodeType":256,"value":1217,"marks":1218,"data":1219},"FBI advisory",[],{},{"nodeType":256,"value":1221,"marks":1222,"data":1223}," and additional research from ",[],{},{"nodeType":261,"data":1225,"content":1227},{"uri":1226},"https://arcticwolf.com/resources/blog/token-bingo-dont-let-your-code-be-the-winner/",[1228],{"nodeType":256,"value":1229,"marks":1230,"data":1231},"Arctic Wolf",[],{},{"nodeType":256,"value":1233,"marks":1234,"data":1235},". This is yet another example of Device Code Phishing and AiTM phishing capabilities being integrated into unified phishing platforms. ",[],{},{"nodeType":767,"data":1237,"content":1238},{},[1239,1262,1301,1324,1347],{"nodeType":771,"data":1240,"content":1241},{},[1242,1252],{"nodeType":775,"data":1243,"content":1244},{},[1245],{"nodeType":252,"data":1246,"content":1247},{},[1248],{"nodeType":256,"value":782,"marks":1249,"data":1251},[1250],{"type":333},{},{"nodeType":775,"data":1253,"content":1254},{},[1255],{"nodeType":252,"data":1256,"content":1257},{},[1258],{"nodeType":256,"value":1259,"marks":1260,"data":1261},"API on api.duemineral.uk:8443 and api.loadingdocuments.uk:8443 (rotates). ",[],{},{"nodeType":771,"data":1263,"content":1264},{},[1265,1275],{"nodeType":775,"data":1266,"content":1267},{},[1268],{"nodeType":252,"data":1269,"content":1270},{},[1271],{"nodeType":256,"value":806,"marks":1272,"data":1274},[1273],{"type":333},{},{"nodeType":775,"data":1276,"content":1277},{},[1278,1290],{"nodeType":252,"data":1279,"content":1280},{},[1281,1286],{"nodeType":256,"value":1282,"marks":1283,"data":1285},"Example IP: ",[1284],{"type":333},{},{"nodeType":256,"value":1287,"marks":1288,"data":1289},"162.243.166.119 (DigitalOcean AS14061)",[],{},{"nodeType":252,"data":1291,"content":1292},{},[1293,1297],{"nodeType":256,"value":847,"marks":1294,"data":1296},[1295],{"type":333},{},{"nodeType":256,"value":1298,"marks":1299,"data":1300}," python-requests/2.32.5",[],{},{"nodeType":771,"data":1302,"content":1303},{},[1304,1314],{"nodeType":775,"data":1305,"content":1306},{},[1307],{"nodeType":252,"data":1308,"content":1309},{},[1310],{"nodeType":256,"value":890,"marks":1311,"data":1313},[1312],{"type":333},{},{"nodeType":775,"data":1315,"content":1316},{},[1317],{"nodeType":252,"data":1318,"content":1319},{},[1320],{"nodeType":256,"value":1321,"marks":1322,"data":1323},"GET /api/status/{numeric_SID} (port :8443)",[],{},{"nodeType":771,"data":1325,"content":1326},{},[1327,1337],{"nodeType":775,"data":1328,"content":1329},{},[1330],{"nodeType":252,"data":1331,"content":1332},{},[1333],{"nodeType":256,"value":942,"marks":1334,"data":1336},[1335],{"type":333},{},{"nodeType":775,"data":1338,"content":1339},{},[1340],{"nodeType":252,"data":1341,"content":1342},{},[1343],{"nodeType":256,"value":1344,"marks":1345,"data":1346},"SharePoint \"Team Site\" doc library, SharePoint \"Shared Document\" individual share",[],{},{"nodeType":771,"data":1348,"content":1349},{},[1350,1360],{"nodeType":775,"data":1351,"content":1352},{},[1353],{"nodeType":252,"data":1354,"content":1355},{},[1356],{"nodeType":256,"value":1165,"marks":1357,"data":1359},[1358],{"type":333},{},{"nodeType":775,"data":1361,"content":1362},{},[1363],{"nodeType":252,"data":1364,"content":1365},{},[1366],{"nodeType":256,"value":1367,"marks":1368,"data":1369},"auth[.]duemineral[.]uk",[],{},{"nodeType":243,"data":1371,"content":1375},{"target":1372},{"sys":1373},{"id":1374,"type":248,"linkType":249},"Y1AiT3dJRTXz64pb68kca",[],{"nodeType":322,"data":1377,"content":1378},{},[],{"nodeType":614,"data":1380,"content":1381},{},[1382],{"nodeType":256,"value":1383,"marks":1384,"data":1386},"“LINKID”",[1385],{"type":333},{},{"nodeType":767,"data":1388,"content":1389},{},[1390,1413,1458,1488,1511],{"nodeType":771,"data":1391,"content":1392},{},[1393,1403],{"nodeType":775,"data":1394,"content":1395},{},[1396],{"nodeType":252,"data":1397,"content":1398},{},[1399],{"nodeType":256,"value":782,"marks":1400,"data":1402},[1401],{"type":333},{},{"nodeType":775,"data":1404,"content":1405},{},[1406],{"nodeType":252,"data":1407,"content":1408},{},[1409],{"nodeType":256,"value":1410,"marks":1411,"data":1412},"Adobe variant has Cloudflare challenge-platform iframe (CF-protected origin). Relative API paths — self-hosted.",[],{},{"nodeType":771,"data":1414,"content":1415},{},[1416,1426],{"nodeType":775,"data":1417,"content":1418},{},[1419],{"nodeType":252,"data":1420,"content":1421},{},[1422],{"nodeType":256,"value":806,"marks":1423,"data":1425},[1424],{"type":333},{},{"nodeType":775,"data":1427,"content":1428},{},[1429,1440,1447],{"nodeType":252,"data":1430,"content":1431},{},[1432,1436],{"nodeType":256,"value":1282,"marks":1433,"data":1435},[1434],{"type":333},{},{"nodeType":256,"value":1437,"marks":1438,"data":1439},"185.176.220.22 (2cloud.eu AS39845)",[],{},{"nodeType":252,"data":1441,"content":1442},{},[1443],{"nodeType":256,"value":1444,"marks":1445,"data":1446},"2600:1f10:470d:9a00:1437:ec30:be61:3494 (AWS AS16509)",[],{},{"nodeType":252,"data":1448,"content":1449},{},[1450,1454],{"nodeType":256,"value":847,"marks":1451,"data":1453},[1452],{"type":333},{},{"nodeType":256,"value":1455,"marks":1456,"data":1457}," axios/1.10.0 , axios/1.13.6",[],{},{"nodeType":771,"data":1459,"content":1460},{},[1461,1471],{"nodeType":775,"data":1462,"content":1463},{},[1464],{"nodeType":252,"data":1465,"content":1466},{},[1467],{"nodeType":256,"value":890,"marks":1468,"data":1470},[1469],{"type":333},{},{"nodeType":775,"data":1472,"content":1473},{},[1474,1481],{"nodeType":252,"data":1475,"content":1476},{},[1477],{"nodeType":256,"value":1478,"marks":1479,"data":1480},"POST /api/device/start",[],{},{"nodeType":252,"data":1482,"content":1483},{},[1484],{"nodeType":256,"value":1485,"marks":1486,"data":1487},"GET /api/device/status/{sessionId}",[],{},{"nodeType":771,"data":1489,"content":1490},{},[1491,1501],{"nodeType":775,"data":1492,"content":1493},{},[1494],{"nodeType":252,"data":1495,"content":1496},{},[1497],{"nodeType":256,"value":942,"marks":1498,"data":1500},[1499],{"type":333},{},{"nodeType":775,"data":1502,"content":1503},{},[1504],{"nodeType":252,"data":1505,"content":1506},{},[1507],{"nodeType":256,"value":1508,"marks":1509,"data":1510},"MS Teams meeting invitation (with interactive date/time picker), Adobe Acrobat Sign document review",[],{},{"nodeType":771,"data":1512,"content":1513},{},[1514,1524],{"nodeType":775,"data":1515,"content":1516},{},[1517],{"nodeType":252,"data":1518,"content":1519},{},[1520],{"nodeType":256,"value":1165,"marks":1521,"data":1523},[1522],{"type":333},{},{"nodeType":775,"data":1525,"content":1526},{},[1527],{"nodeType":252,"data":1528,"content":1529},{},[1530],{"nodeType":256,"value":1531,"marks":1532,"data":1533},"sdtr-site[.]cfd",[],{},{"nodeType":243,"data":1535,"content":1539},{"target":1536},{"sys":1537},{"id":1538,"type":248,"linkType":249},"22hsIzlkptC2JTIUtbOuUn",[],{"nodeType":322,"data":1541,"content":1542},{},[],{"nodeType":614,"data":1544,"content":1545},{},[1546],{"nodeType":256,"value":1547,"marks":1548,"data":1550},"Device Code Lab (formerly codename \"AUTHOV”)",[1549],{"type":333},{},{"nodeType":243,"data":1552,"content":1556},{"target":1553},{"sys":1554},{"id":1555,"type":248,"linkType":249},"5vllVaa0Ry0wKs46ssrZLC",[],{"nodeType":767,"data":1558,"content":1559},{},[1560,1583,1629,1652,1675],{"nodeType":771,"data":1561,"content":1562},{},[1563,1573],{"nodeType":775,"data":1564,"content":1565},{},[1566],{"nodeType":252,"data":1567,"content":1568},{},[1569],{"nodeType":256,"value":782,"marks":1570,"data":1572},[1571],{"type":333},{},{"nodeType":775,"data":1574,"content":1575},{},[1576],{"nodeType":252,"data":1577,"content":1578},{},[1579],{"nodeType":256,"value":1580,"marks":1581,"data":1582},"workers.dev",[],{},{"nodeType":771,"data":1584,"content":1585},{},[1586,1596],{"nodeType":775,"data":1587,"content":1588},{},[1589],{"nodeType":252,"data":1590,"content":1591},{},[1592],{"nodeType":256,"value":806,"marks":1593,"data":1595},[1594],{"type":333},{},{"nodeType":775,"data":1597,"content":1598},{},[1599,1610],{"nodeType":252,"data":1600,"content":1601},{},[1602,1606],{"nodeType":256,"value":1282,"marks":1603,"data":1605},[1604],{"type":333},{},{"nodeType":256,"value":1607,"marks":1608,"data":1609},"192.3.225.100 (HostPapa / ColoCrossing AS36352)",[],{},{"nodeType":252,"data":1611,"content":1612},{},[1613,1617,1620,1625],{"nodeType":256,"value":847,"marks":1614,"data":1616},[1615],{"type":333},{},{"nodeType":256,"value":852,"marks":1618,"data":1619},[],{},{"nodeType":256,"value":1621,"marks":1622,"data":1624}," ",[1623],{"type":333},{},{"nodeType":256,"value":1626,"marks":1627,"data":1628},"python-httpx/0.28.1",[],{},{"nodeType":771,"data":1630,"content":1631},{},[1632,1642],{"nodeType":775,"data":1633,"content":1634},{},[1635],{"nodeType":252,"data":1636,"content":1637},{},[1638],{"nodeType":256,"value":890,"marks":1639,"data":1641},[1640],{"type":333},{},{"nodeType":775,"data":1643,"content":1644},{},[1645],{"nodeType":252,"data":1646,"content":1647},{},[1648],{"nodeType":256,"value":1649,"marks":1650,"data":1651},"GET /landing/api/session-status?session_id=&token=",[],{},{"nodeType":771,"data":1653,"content":1654},{},[1655,1665],{"nodeType":775,"data":1656,"content":1657},{},[1658],{"nodeType":252,"data":1659,"content":1660},{},[1661],{"nodeType":256,"value":942,"marks":1662,"data":1664},[1663],{"type":333},{},{"nodeType":775,"data":1666,"content":1667},{},[1668],{"nodeType":252,"data":1669,"content":1670},{},[1671],{"nodeType":256,"value":1672,"marks":1673,"data":1674},"Adobe Acrobat document sharing (PDF preview, sender avatar)",[],{},{"nodeType":771,"data":1676,"content":1677},{},[1678,1688],{"nodeType":775,"data":1679,"content":1680},{},[1681],{"nodeType":252,"data":1682,"content":1683},{},[1684],{"nodeType":256,"value":1165,"marks":1685,"data":1687},[1686],{"type":333},{},{"nodeType":775,"data":1689,"content":1690},{},[1691],{"nodeType":252,"data":1692,"content":1693},{},[1694],{"nodeType":256,"value":1695,"marks":1696,"data":1697},"milosh-solibella-0dcio[.]sgttommy.workers.dev",[],{},{"nodeType":243,"data":1699,"content":1703},{"target":1700},{"sys":1701},{"id":1702,"type":248,"linkType":249},"6szO6IKJ32usyxIKX1efZy",[],{"nodeType":243,"data":1705,"content":1709},{"target":1706},{"sys":1707},{"id":1708,"type":248,"linkType":249},"lEqV3RTMIY8y011lnhX7P",[],{"nodeType":322,"data":1711,"content":1712},{},[],{"nodeType":614,"data":1714,"content":1715},{},[1716],{"nodeType":256,"value":1717,"marks":1718,"data":1720},"“DOCUPOLL”",[1719],{"type":333},{},{"nodeType":767,"data":1722,"content":1723},{},[1724,1747,1785,1822,1845],{"nodeType":771,"data":1725,"content":1726},{},[1727,1737],{"nodeType":775,"data":1728,"content":1729},{},[1730],{"nodeType":252,"data":1731,"content":1732},{},[1733],{"nodeType":256,"value":782,"marks":1734,"data":1736},[1735],{"type":333},{},{"nodeType":775,"data":1738,"content":1739},{},[1740],{"nodeType":252,"data":1741,"content":1742},{},[1743],{"nodeType":256,"value":1744,"marks":1745,"data":1746},"Github.io and workers.dev hosting",[],{},{"nodeType":771,"data":1748,"content":1749},{},[1750,1760],{"nodeType":775,"data":1751,"content":1752},{},[1753],{"nodeType":252,"data":1754,"content":1755},{},[1756],{"nodeType":256,"value":806,"marks":1757,"data":1759},[1758],{"type":333},{},{"nodeType":775,"data":1761,"content":1762},{},[1763,1774],{"nodeType":252,"data":1764,"content":1765},{},[1766,1770],{"nodeType":256,"value":1282,"marks":1767,"data":1769},[1768],{"type":333},{},{"nodeType":256,"value":1771,"marks":1772,"data":1773},"144.172.103.240 (FranTech Solutions / RouterHosting / Cloudzy AS14956)",[],{},{"nodeType":252,"data":1775,"content":1776},{},[1777,1781],{"nodeType":256,"value":847,"marks":1778,"data":1780},[1779],{"type":333},{},{"nodeType":256,"value":1782,"marks":1783,"data":1784}," Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36 Edge/18.19042",[],{},{"nodeType":771,"data":1786,"content":1787},{},[1788,1798],{"nodeType":775,"data":1789,"content":1790},{},[1791],{"nodeType":252,"data":1792,"content":1793},{},[1794],{"nodeType":256,"value":890,"marks":1795,"data":1797},[1796],{"type":333},{},{"nodeType":775,"data":1799,"content":1800},{},[1801,1808,1815],{"nodeType":252,"data":1802,"content":1803},{},[1804],{"nodeType":256,"value":1805,"marks":1806,"data":1807},"POST /api/v1/landing-pages/public/{slug}/init",[],{},{"nodeType":252,"data":1809,"content":1810},{},[1811],{"nodeType":256,"value":1812,"marks":1813,"data":1814},"POST .../poll",[],{},{"nodeType":252,"data":1816,"content":1817},{},[1818],{"nodeType":256,"value":1819,"marks":1820,"data":1821},"POST .../track",[],{},{"nodeType":771,"data":1823,"content":1824},{},[1825,1835],{"nodeType":775,"data":1826,"content":1827},{},[1828],{"nodeType":252,"data":1829,"content":1830},{},[1831],{"nodeType":256,"value":942,"marks":1832,"data":1834},[1833],{"type":333},{},{"nodeType":775,"data":1836,"content":1837},{},[1838],{"nodeType":252,"data":1839,"content":1840},{},[1841],{"nodeType":256,"value":1842,"marks":1843,"data":1844},"DocuSign document signing. One sample is a full scrape of real docusign.com (free-account page) with kit injected.",[],{},{"nodeType":771,"data":1846,"content":1847},{},[1848,1858],{"nodeType":775,"data":1849,"content":1850},{},[1851],{"nodeType":252,"data":1852,"content":1853},{},[1854],{"nodeType":256,"value":1165,"marks":1855,"data":1857},[1856],{"type":333},{},{"nodeType":775,"data":1859,"content":1860},{},[1861],{"nodeType":252,"data":1862,"content":1863},{},[1864],{"nodeType":256,"value":1865,"marks":1866,"data":1867},"docufirmar[.]github.io",[],{},{"nodeType":243,"data":1869,"content":1873},{"target":1870},{"sys":1871},{"id":1872,"type":248,"linkType":249},"6Y1XABHnQD82R3MW80HnQZ",[],{"nodeType":322,"data":1875,"content":1876},{},[],{"nodeType":614,"data":1878,"content":1879},{},[1880],{"nodeType":256,"value":1881,"marks":1882,"data":1884},"“FLOW_TOKEN”",[1883],{"type":333},{},{"nodeType":767,"data":1886,"content":1887},{},[1888,1910,1955,1985,2008],{"nodeType":771,"data":1889,"content":1890},{},[1891,1901],{"nodeType":775,"data":1892,"content":1893},{},[1894],{"nodeType":252,"data":1895,"content":1896},{},[1897],{"nodeType":256,"value":782,"marks":1898,"data":1900},[1899],{"type":333},{},{"nodeType":775,"data":1902,"content":1903},{},[1904],{"nodeType":252,"data":1905,"content":1906},{},[1907],{"nodeType":256,"value":1580,"marks":1908,"data":1909},[],{},{"nodeType":771,"data":1911,"content":1912},{},[1913,1923],{"nodeType":775,"data":1914,"content":1915},{},[1916],{"nodeType":252,"data":1917,"content":1918},{},[1919],{"nodeType":256,"value":806,"marks":1920,"data":1922},[1921],{"type":333},{},{"nodeType":775,"data":1924,"content":1925},{},[1926,1937],{"nodeType":252,"data":1927,"content":1928},{},[1929,1933],{"nodeType":256,"value":1282,"marks":1930,"data":1932},[1931],{"type":333},{},{"nodeType":256,"value":1934,"marks":1935,"data":1936},"43.166.163.163 (Tencent Cloud AS132203)",[],{},{"nodeType":252,"data":1938,"content":1939},{},[1940,1944,1947,1951],{"nodeType":256,"value":847,"marks":1941,"data":1943},[1942],{"type":333},{},{"nodeType":256,"value":852,"marks":1945,"data":1946},[],{},{"nodeType":256,"value":1621,"marks":1948,"data":1950},[1949],{"type":333},{},{"nodeType":256,"value":1952,"marks":1953,"data":1954},"(null)",[],{},{"nodeType":771,"data":1956,"content":1957},{},[1958,1968],{"nodeType":775,"data":1959,"content":1960},{},[1961],{"nodeType":252,"data":1962,"content":1963},{},[1964],{"nodeType":256,"value":890,"marks":1965,"data":1967},[1966],{"type":333},{},{"nodeType":775,"data":1969,"content":1970},{},[1971,1978],{"nodeType":252,"data":1972,"content":1973},{},[1974],{"nodeType":256,"value":1975,"marks":1976,"data":1977},"POST /api/handler.php ",[],{},{"nodeType":252,"data":1979,"content":1980},{},[1981],{"nodeType":256,"value":1982,"marks":1983,"data":1984},"(actions: device_code_generate, device_code_poll_public)",[],{},{"nodeType":771,"data":1986,"content":1987},{},[1988,1998],{"nodeType":775,"data":1989,"content":1990},{},[1991],{"nodeType":252,"data":1992,"content":1993},{},[1994],{"nodeType":256,"value":942,"marks":1995,"data":1997},[1996],{"type":333},{},{"nodeType":775,"data":1999,"content":2000},{},[2001],{"nodeType":252,"data":2002,"content":2003},{},[2004],{"nodeType":256,"value":2005,"marks":2006,"data":2007},"DocuSign \"Salary Adjustment Document — 2026\", Microsoft banner · HR Department sender",[],{},{"nodeType":771,"data":2009,"content":2010},{},[2011,2021],{"nodeType":775,"data":2012,"content":2013},{},[2014],{"nodeType":252,"data":2015,"content":2016},{},[2017],{"nodeType":256,"value":1165,"marks":2018,"data":2020},[2019],{"type":333},{},{"nodeType":775,"data":2022,"content":2023},{},[2024],{"nodeType":252,"data":2025,"content":2026},{},[2027],{"nodeType":256,"value":2028,"marks":2029,"data":2030},"salaryadjustment-2afb52.pmb6fefc52b3f9aa5c2dbf[.]workers.dev",[],{},{"nodeType":243,"data":2032,"content":2036},{"target":2033},{"sys":2034},{"id":2035,"type":248,"linkType":249},"6xiTDHStbiJh7LMhjAZcPd",[],{"nodeType":322,"data":2038,"content":2039},{},[],{"nodeType":614,"data":2041,"content":2042},{},[2043],{"nodeType":256,"value":2044,"marks":2045,"data":2047},"“PAPRIKA”",[2046],{"type":333},{},{"nodeType":767,"data":2049,"content":2050},{},[2051,2074,2097,2120],{"nodeType":771,"data":2052,"content":2053},{},[2054,2064],{"nodeType":775,"data":2055,"content":2056},{},[2057],{"nodeType":252,"data":2058,"content":2059},{},[2060],{"nodeType":256,"value":782,"marks":2061,"data":2063},[2062],{"type":333},{},{"nodeType":775,"data":2065,"content":2066},{},[2067],{"nodeType":252,"data":2068,"content":2069},{},[2070],{"nodeType":256,"value":2071,"marks":2072,"data":2073},"AWS S3 hosting",[],{},{"nodeType":771,"data":2075,"content":2076},{},[2077,2087],{"nodeType":775,"data":2078,"content":2079},{},[2080],{"nodeType":252,"data":2081,"content":2082},{},[2083],{"nodeType":256,"value":890,"marks":2084,"data":2086},[2085],{"type":333},{},{"nodeType":775,"data":2088,"content":2089},{},[2090],{"nodeType":252,"data":2091,"content":2092},{},[2093],{"nodeType":256,"value":2094,"marks":2095,"data":2096},"POST /api/v1/loader",[],{},{"nodeType":771,"data":2098,"content":2099},{},[2100,2110],{"nodeType":775,"data":2101,"content":2102},{},[2103],{"nodeType":252,"data":2104,"content":2105},{},[2106],{"nodeType":256,"value":942,"marks":2107,"data":2109},[2108],{"type":333},{},{"nodeType":775,"data":2111,"content":2112},{},[2113],{"nodeType":252,"data":2114,"content":2115},{},[2116],{"nodeType":256,"value":2117,"marks":2118,"data":2119},"MS login clone (\"Sign in to your account\"), \"Office 365\" branding, fake \"Powered by Okta\" footer",[],{},{"nodeType":771,"data":2121,"content":2122},{},[2123,2133],{"nodeType":775,"data":2124,"content":2125},{},[2126],{"nodeType":252,"data":2127,"content":2128},{},[2129],{"nodeType":256,"value":1165,"marks":2130,"data":2132},[2131],{"type":333},{},{"nodeType":775,"data":2134,"content":2135},{},[2136],{"nodeType":252,"data":2137,"content":2138},{},[2139],{"nodeType":256,"value":2140,"marks":2141,"data":2142},"redirect-523346-d95027ec[.]s3.amazonaws.com",[],{},{"nodeType":243,"data":2144,"content":2148},{"target":2145},{"sys":2146},{"id":2147,"type":248,"linkType":249},"6WFXqUDzcJHKWSwVIcDZAf",[],{"nodeType":322,"data":2150,"content":2151},{},[],{"nodeType":614,"data":2153,"content":2154},{},[2155],{"nodeType":256,"value":2156,"marks":2157,"data":2159},"“DCSTATUS”",[2158],{"type":333},{},{"nodeType":767,"data":2161,"content":2162},{},[2163,2185,2208,2231],{"nodeType":771,"data":2164,"content":2165},{},[2166,2176],{"nodeType":775,"data":2167,"content":2168},{},[2169],{"nodeType":252,"data":2170,"content":2171},{},[2172],{"nodeType":256,"value":782,"marks":2173,"data":2175},[2174],{"type":333},{},{"nodeType":775,"data":2177,"content":2178},{},[2179],{"nodeType":252,"data":2180,"content":2181},{},[2182],{"nodeType":256,"value":1067,"marks":2183,"data":2184},[],{},{"nodeType":771,"data":2186,"content":2187},{},[2188,2198],{"nodeType":775,"data":2189,"content":2190},{},[2191],{"nodeType":252,"data":2192,"content":2193},{},[2194],{"nodeType":256,"value":890,"marks":2195,"data":2197},[2196],{"type":333},{},{"nodeType":775,"data":2199,"content":2200},{},[2201],{"nodeType":252,"data":2202,"content":2203},{},[2204],{"nodeType":256,"value":2205,"marks":2206,"data":2207},"GET /dc/status/{base64url_sid}",[],{},{"nodeType":771,"data":2209,"content":2210},{},[2211,2221],{"nodeType":775,"data":2212,"content":2213},{},[2214],{"nodeType":252,"data":2215,"content":2216},{},[2217],{"nodeType":256,"value":942,"marks":2218,"data":2220},[2219],{"type":333},{},{"nodeType":775,"data":2222,"content":2223},{},[2224],{"nodeType":252,"data":2225,"content":2226},{},[2227],{"nodeType":256,"value":2228,"marks":2229,"data":2230},"Generic \"Microsoft 365 - Secure Access\" verification page",[],{},{"nodeType":771,"data":2232,"content":2233},{},[2234,2244],{"nodeType":775,"data":2235,"content":2236},{},[2237],{"nodeType":252,"data":2238,"content":2239},{},[2240],{"nodeType":256,"value":1165,"marks":2241,"data":2243},[2242],{"type":333},{},{"nodeType":775,"data":2245,"content":2246},{},[2247],{"nodeType":252,"data":2248,"content":2249},{},[2250],{"nodeType":256,"value":2251,"marks":2252,"data":2253},"owa[.]apmmacleans[.]ca",[],{},{"nodeType":243,"data":2255,"content":2259},{"target":2256},{"sys":2257},{"id":2258,"type":248,"linkType":249},"ugYhHeXY1lQdKooALmrIs",[],{"nodeType":322,"data":2261,"content":2262},{},[],{"nodeType":614,"data":2264,"content":2265},{},[2266],{"nodeType":256,"value":2267,"marks":2268,"data":2270},"“DOLCE”",[2269],{"type":333},{},{"nodeType":243,"data":2272,"content":2276},{"target":2273},{"sys":2274},{"id":2275,"type":248,"linkType":249},"7TzU6kk01Un45NB0buEz2",[],{"nodeType":767,"data":2278,"content":2279},{},[2280,2303,2341,2364,2387],{"nodeType":771,"data":2281,"content":2282},{},[2283,2293],{"nodeType":775,"data":2284,"content":2285},{},[2286],{"nodeType":252,"data":2287,"content":2288},{},[2289],{"nodeType":256,"value":782,"marks":2290,"data":2292},[2291],{"type":333},{},{"nodeType":775,"data":2294,"content":2295},{},[2296],{"nodeType":252,"data":2297,"content":2298},{},[2299],{"nodeType":256,"value":2300,"marks":2301,"data":2302},"Microsoft PowerApps hosting",[],{},{"nodeType":771,"data":2304,"content":2305},{},[2306,2316],{"nodeType":775,"data":2307,"content":2308},{},[2309],{"nodeType":252,"data":2310,"content":2311},{},[2312],{"nodeType":256,"value":806,"marks":2313,"data":2315},[2314],{"type":333},{},{"nodeType":775,"data":2317,"content":2318},{},[2319,2330],{"nodeType":252,"data":2320,"content":2321},{},[2322,2326],{"nodeType":256,"value":1282,"marks":2323,"data":2325},[2324],{"type":333},{},{"nodeType":256,"value":2327,"marks":2328,"data":2329},"34.53.159.84 (Google Cloud AS396982)",[],{},{"nodeType":252,"data":2331,"content":2332},{},[2333,2337],{"nodeType":256,"value":847,"marks":2334,"data":2336},[2335],{"type":333},{},{"nodeType":256,"value":2338,"marks":2339,"data":2340}," Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36",[],{},{"nodeType":771,"data":2342,"content":2343},{},[2344,2354],{"nodeType":775,"data":2345,"content":2346},{},[2347],{"nodeType":252,"data":2348,"content":2349},{},[2350],{"nodeType":256,"value":890,"marks":2351,"data":2353},[2352],{"type":333},{},{"nodeType":775,"data":2355,"content":2356},{},[2357],{"nodeType":252,"data":2358,"content":2359},{},[2360],{"nodeType":256,"value":2361,"marks":2362,"data":2363},"GET /api/generatecode (CloudFront)",[],{},{"nodeType":771,"data":2365,"content":2366},{},[2367,2377],{"nodeType":775,"data":2368,"content":2369},{},[2370],{"nodeType":252,"data":2371,"content":2372},{},[2373],{"nodeType":256,"value":942,"marks":2374,"data":2376},[2375],{"type":333},{},{"nodeType":775,"data":2378,"content":2379},{},[2380],{"nodeType":252,"data":2381,"content":2382},{},[2383],{"nodeType":256,"value":2384,"marks":2385,"data":2386},"Dolce & Gabbana branded, Italian language, MS account verification",[],{},{"nodeType":771,"data":2388,"content":2389},{},[2390,2400],{"nodeType":775,"data":2391,"content":2392},{},[2393],{"nodeType":252,"data":2394,"content":2395},{},[2396],{"nodeType":256,"value":1165,"marks":2397,"data":2399},[2398],{"type":333},{},{"nodeType":775,"data":2401,"content":2402},{},[2403],{"nodeType":252,"data":2404,"content":2405},{},[2406],{"nodeType":256,"value":2407,"marks":2408,"data":2409},"data-migration-dolcegabbana[.]powerappsportals.com",[],{},{"nodeType":243,"data":2411,"content":2415},{"target":2412},{"sys":2413},{"id":2414,"type":248,"linkType":249},"4ayQDvpf5NNOBrj9wZZRiO",[],{"nodeType":322,"data":2417,"content":2418},{},[],{"nodeType":614,"data":2420,"content":2421},{},[2422],{"nodeType":256,"value":2423,"marks":2424,"data":2426},"Venom",[2425],{"type":333},{},{"nodeType":767,"data":2428,"content":2429},{},[2430,2453],{"nodeType":771,"data":2431,"content":2432},{},[2433,2443],{"nodeType":775,"data":2434,"content":2435},{},[2436],{"nodeType":252,"data":2437,"content":2438},{},[2439],{"nodeType":256,"value":890,"marks":2440,"data":2442},[2441],{"type":333},{},{"nodeType":775,"data":2444,"content":2445},{},[2446],{"nodeType":252,"data":2447,"content":2448},{},[2449],{"nodeType":256,"value":2450,"marks":2451,"data":2452},"POST /token/api/device/start\nGET /token/api/device/status/{sessionId}",[],{},{"nodeType":771,"data":2454,"content":2455},{},[2456,2466],{"nodeType":775,"data":2457,"content":2458},{},[2459],{"nodeType":252,"data":2460,"content":2461},{},[2462],{"nodeType":256,"value":942,"marks":2463,"data":2465},[2464],{"type":333},{},{"nodeType":775,"data":2467,"content":2468},{},[2469],{"nodeType":252,"data":2470,"content":2471},{},[2472],{"nodeType":256,"value":2473,"marks":2474,"data":2475},"Various: examples include DocuSign \"Verification\" (Microsoft sign-in pretext); DHL \"Delivery Checkpoint\" package shipment pretext",[],{},{"nodeType":243,"data":2477,"content":2481},{"target":2478},{"sys":2479},{"id":2480,"type":248,"linkType":249},"79C3fces0hgTdf3G68cIrf",[],{"nodeType":322,"data":2483,"content":2484},{},[],{"nodeType":614,"data":2486,"content":2487},{},[2488],{"nodeType":256,"value":2489,"marks":2490,"data":2492},"Tycoon2FA",[2491],{"type":333},{},{"nodeType":767,"data":2494,"content":2495},{},[2496,2526,2563,2586,2609],{"nodeType":771,"data":2497,"content":2498},{},[2499,2509],{"nodeType":775,"data":2500,"content":2501},{},[2502],{"nodeType":252,"data":2503,"content":2504},{},[2505],{"nodeType":256,"value":782,"marks":2506,"data":2508},[2507],{"type":333},{},{"nodeType":775,"data":2510,"content":2511},{},[2512,2519],{"nodeType":252,"data":2513,"content":2514},{},[2515],{"nodeType":256,"value":2516,"marks":2517,"data":2518},"Github.io and Cloudflare Workers (workers.dev) hosting",[],{},{"nodeType":252,"data":2520,"content":2521},{},[2522],{"nodeType":256,"value":2523,"marks":2524,"data":2525},"Compromised-site landing pages and CF Workers (*.workers.dev) used as frontends; victim email passed in URL as last path segment ($base64) or ?acct/?encoded query",[],{},{"nodeType":771,"data":2527,"content":2528},{},[2529,2539],{"nodeType":775,"data":2530,"content":2531},{},[2532],{"nodeType":252,"data":2533,"content":2534},{},[2535],{"nodeType":256,"value":806,"marks":2536,"data":2538},[2537],{"type":333},{},{"nodeType":775,"data":2540,"content":2541},{},[2542,2553],{"nodeType":252,"data":2543,"content":2544},{},[2545,2549],{"nodeType":256,"value":1282,"marks":2546,"data":2548},[2547],{"type":333},{},{"nodeType":256,"value":2550,"marks":2551,"data":2552},"47.253.5.88 (Alibaba Cloud)",[],{},{"nodeType":252,"data":2554,"content":2555},{},[2556,2560],{"nodeType":256,"value":847,"marks":2557,"data":2559},[2558],{"type":333},{},{"nodeType":256,"value":1106,"marks":2561,"data":2562},[],{},{"nodeType":771,"data":2564,"content":2565},{},[2566,2576],{"nodeType":775,"data":2567,"content":2568},{},[2569],{"nodeType":252,"data":2570,"content":2571},{},[2572],{"nodeType":256,"value":890,"marks":2573,"data":2575},[2574],{"type":333},{},{"nodeType":775,"data":2577,"content":2578},{},[2579],{"nodeType":252,"data":2580,"content":2581},{},[2582],{"nodeType":256,"value":2583,"marks":2584,"data":2585},"GET /api/session/{UUIDv4} polled with header X-API-Key: \u003Cprefix>_\u003C64-hex> (key materialised at runtime via atob(window.__cyb3r.k)) \nPOST /api/device-code with body {\"prt_foci_session_id\": \"\u003CUUID>\"} (second-stage code retrieval after initial session error)",[],{},{"nodeType":771,"data":2587,"content":2588},{},[2589,2599],{"nodeType":775,"data":2590,"content":2591},{},[2592],{"nodeType":252,"data":2593,"content":2594},{},[2595],{"nodeType":256,"value":942,"marks":2596,"data":2598},[2597],{"type":333},{},{"nodeType":775,"data":2600,"content":2601},{},[2602],{"nodeType":252,"data":2603,"content":2604},{},[2605],{"nodeType":256,"value":2606,"marks":2607,"data":2608},"Various: SharePoint \"Remittance Advice\"; Microsoft 365 generic sign-in; Microsoft 365 Voicemail (.mp3 attachment); OneDrive \"Shared file\"; German \"Sicheres Dokumentenportal\" PDF lure",[],{},{"nodeType":771,"data":2610,"content":2611},{},[2612,2622],{"nodeType":775,"data":2613,"content":2614},{},[2615],{"nodeType":252,"data":2616,"content":2617},{},[2618],{"nodeType":256,"value":1165,"marks":2619,"data":2621},[2620],{"type":333},{},{"nodeType":775,"data":2623,"content":2624},{},[2625],{"nodeType":252,"data":2626,"content":2627},{},[2628],{"nodeType":256,"value":2629,"marks":2630,"data":2631},"afriqbeauglobal[.]com/homepage/index[.]html",[],{},{"nodeType":243,"data":2633,"content":2637},{"target":2634},{"sys":2635},{"id":2636,"type":248,"linkType":249},"3UDzUCCizPJhXp3SsoZuSK",[],{"nodeType":322,"data":2639,"content":2640},{},[],{"nodeType":614,"data":2642,"content":2643},{},[2644],{"nodeType":256,"value":2645,"marks":2646,"data":2648},"\"CYB3R\"",[2647],{"type":333},{},{"nodeType":767,"data":2650,"content":2651},{},[2652,2675,2713,2735,2758],{"nodeType":771,"data":2653,"content":2654},{},[2655,2665],{"nodeType":775,"data":2656,"content":2657},{},[2658],{"nodeType":252,"data":2659,"content":2660},{},[2661],{"nodeType":256,"value":782,"marks":2662,"data":2664},[2663],{"type":333},{},{"nodeType":775,"data":2666,"content":2667},{},[2668],{"nodeType":252,"data":2669,"content":2670},{},[2671],{"nodeType":256,"value":2672,"marks":2673,"data":2674},"Cloudflare Workers (workers.dev) hosting",[],{},{"nodeType":771,"data":2676,"content":2677},{},[2678,2688],{"nodeType":775,"data":2679,"content":2680},{},[2681],{"nodeType":252,"data":2682,"content":2683},{},[2684],{"nodeType":256,"value":806,"marks":2685,"data":2687},[2686],{"type":333},{},{"nodeType":775,"data":2689,"content":2690},{},[2691,2702],{"nodeType":252,"data":2692,"content":2693},{},[2694,2698],{"nodeType":256,"value":1282,"marks":2695,"data":2697},[2696],{"type":333},{},{"nodeType":256,"value":2699,"marks":2700,"data":2701},"2400:8d60:2::1:c116:843e (Evoxt VPS)",[],{},{"nodeType":252,"data":2703,"content":2704},{},[2705,2709],{"nodeType":256,"value":847,"marks":2706,"data":2708},[2707],{"type":333},{},{"nodeType":256,"value":2710,"marks":2711,"data":2712}," axios/1.13.6",[],{},{"nodeType":771,"data":2714,"content":2715},{},[2716,2726],{"nodeType":775,"data":2717,"content":2718},{},[2719],{"nodeType":252,"data":2720,"content":2721},{},[2722],{"nodeType":256,"value":890,"marks":2723,"data":2725},[2724],{"type":333},{},{"nodeType":775,"data":2727,"content":2728},{},[2729],{"nodeType":252,"data":2730,"content":2731},{},[2732],{"nodeType":256,"value":2583,"marks":2733,"data":2734},[],{},{"nodeType":771,"data":2736,"content":2737},{},[2738,2748],{"nodeType":775,"data":2739,"content":2740},{},[2741],{"nodeType":252,"data":2742,"content":2743},{},[2744],{"nodeType":256,"value":942,"marks":2745,"data":2747},[2746],{"type":333},{},{"nodeType":775,"data":2749,"content":2750},{},[2751],{"nodeType":252,"data":2752,"content":2753},{},[2754],{"nodeType":256,"value":2755,"marks":2756,"data":2757},"DocuSign in Spanish (\"Documento Firmar — COTIZACIÓN/ESTIMACIÓN.pdf\", \"Complete su firma\", \"Verifique su identidad\", \"Continuar a Microsoft\").",[],{},{"nodeType":771,"data":2759,"content":2760},{},[2761,2771],{"nodeType":775,"data":2762,"content":2763},{},[2764],{"nodeType":252,"data":2765,"content":2766},{},[2767],{"nodeType":256,"value":1165,"marks":2768,"data":2770},[2769],{"type":333},{},{"nodeType":775,"data":2772,"content":2773},{},[2774],{"nodeType":252,"data":2775,"content":2776},{},[2777],{"nodeType":256,"value":2778,"marks":2779,"data":2780},"muzagestion[.]secure-share[.]workers.dev",[],{},{"nodeType":243,"data":2782,"content":2786},{"target":2783},{"sys":2784},{"id":2785,"type":248,"linkType":249},"5EU0QNteiQcYybKG1W1cS3",[],{"nodeType":322,"data":2788,"content":2789},{},[],{"nodeType":326,"data":2791,"content":2792},{},[2793],{"nodeType":256,"value":2794,"marks":2795,"data":2797},"Device code phishing under the hood",[2796],{"type":333},{},{"nodeType":252,"data":2799,"content":2800},{},[2801,2805],{"nodeType":256,"value":2802,"marks":2803,"data":2804},"The attacker POSTs to the authorization server's device authorization endpoint with its client_id (i.e. an application ID) and requested scopes or resources. The server responds with a device_code (used for polling), a user_code, a verification_uri, an expires_in value, and a polling interval. The user visits the URL, enters the code and approves the request. Meanwhile, the device polls the token endpoint. Once approved, the server returns an access token, a refresh token (if offline_access was requested), and an ID token (if openid was included). ",[],{},{"nodeType":256,"value":2806,"marks":2807,"data":2809},"The attacker now has API access to the victim's account. ",[2808],{"type":333},{},{"nodeType":252,"data":2811,"content":2812},{},[2813],{"nodeType":256,"value":2814,"marks":2815,"data":2816},"Broadly, this gives the attacker a comparable level of control to a “normal” phishing attack (with conditions based on the scopes granted and specific app being targeted) while API access grants additional capabilities beyond standard browser sessions. When combined with other techniques, this access can be exchanged to open normal browser app sessions and access SSO connected apps.",[],{},{"nodeType":243,"data":2818,"content":2822},{"target":2819},{"sys":2820},{"id":2821,"type":248,"linkType":249},"4WtQR2xsE236yoyhSXj58Z",[],{"nodeType":243,"data":2824,"content":2828},{"target":2825},{"sys":2826},{"id":2827,"type":248,"linkType":249},"1x7Lip7JdY2xlHKKurT7qJ",[],{"nodeType":252,"data":2830,"content":2831},{},[2832],{"nodeType":256,"value":2833,"marks":2834,"data":2835},"At this point, you can achieve a number of objectives both inside the app ecosystem and across SSO connected apps — e.g. data theft, disruption, and ultimately extortion.",[],{},{"nodeType":252,"data":2837,"content":2838},{},[2839,2843,2848,2852],{"nodeType":256,"value":2840,"marks":2841,"data":2842},"Critically, the initial request to generate a device code is typically ",[],{},{"nodeType":256,"value":2844,"marks":2845,"data":2847},"unauthenticated",[2846],{"type":333},{},{"nodeType":256,"value":2849,"marks":2850,"data":2851}," across all providers — ",[],{},{"nodeType":256,"value":2853,"marks":2854,"data":2856},"anyone can generate one, from any machine, without proving any relationship to the target organization.",[2855],{"type":333},{},{"nodeType":252,"data":2858,"content":2859},{},[2860,2864,2869],{"nodeType":256,"value":2861,"marks":2862,"data":2863},"So, the attacker has to deliver a set of instructions via a phishing channel (e.g. email, social media DM, corp IM platform, and so on) with a device code that they have generated. The victim then enters this code on the ",[],{},{"nodeType":256,"value":2865,"marks":2866,"data":2868},"legitimate device code login page",[2867],{"type":333},{},{"nodeType":256,"value":2870,"marks":2871,"data":2872}," for that app and issues the tokens to the attacker.",[],{},{"nodeType":243,"data":2874,"content":2878},{"target":2875},{"sys":2876},{"id":2877,"type":248,"linkType":249},"1txUYuQjH9FlbDGTo8AbZB",[],{"nodeType":322,"data":2880,"content":2881},{},[],{"nodeType":326,"data":2883,"content":2884},{},[2885],{"nodeType":256,"value":2886,"marks":2887,"data":2889},"Why device code phishing is so dangerous",[2888],{"type":333},{},{"nodeType":614,"data":2891,"content":2892},{},[2893],{"nodeType":256,"value":2894,"marks":2895,"data":2897},"Device code phishing bypasses authentication controls (including passkeys)",[2896],{"type":333},{},{"nodeType":252,"data":2899,"content":2900},{},[2901,2905,2910,2914],{"nodeType":256,"value":2902,"marks":2903,"data":2904},"A device code phishing attack ",[],{},{"nodeType":256,"value":2906,"marks":2907,"data":2909},"cannot be prevented with authentication controls",[2908],{"type":333},{},{"nodeType":256,"value":2911,"marks":2912,"data":2913},". This includes all forms of MFA and ",[],{},{"nodeType":256,"value":2915,"marks":2916,"data":2918},"even “phishing-resistant” authentication methods such as passkeys. ",[2917],{"type":333},{},{"nodeType":252,"data":2920,"content":2921},{},[2922,2927,2931,2936],{"nodeType":256,"value":2923,"marks":2924,"data":2926},"The device code authorization is effectively performed post-authentication. ",[2925],{"type":333},{},{"nodeType":256,"value":2928,"marks":2929,"data":2930},"If you already have an active session in your browser, entering the device code and selecting your account from a drop-down menu is all that's needed. ",[],{},{"nodeType":256,"value":2932,"marks":2933,"data":2935},"No password or MFA required. ",[2934],{"type":333},{},{"nodeType":256,"value":2937,"marks":2938,"data":2939},"You can see an example in the video below.",[],{},{"nodeType":243,"data":2941,"content":2944},{"target":2942},{"sys":2943},{"id":1872,"type":248,"linkType":249},[],{"nodeType":252,"data":2946,"content":2947},{},[2948],{"nodeType":256,"value":2949,"marks":2950,"data":2951},"Even if you do have to sign in again (because you're not already signed in for some reason), the attack still works because it isn't targeting the login — it's targeting the authorization layer instead.",[],{},{"nodeType":252,"data":2953,"content":2954},{},[2955],{"nodeType":256,"value":2956,"marks":2957,"data":2958},"This is what makes device code phishing different to other standard phishing methods like AiTM phishing (and arguably even more effective in environments with strict identity control enforcement). ",[],{},{"nodeType":614,"data":2960,"content":2961},{},[2962],{"nodeType":256,"value":2963,"marks":2964,"data":2966},"Device code logins are a feature, not a vulnerability, making attacks difficult to block",[2965],{"type":333},{},{"nodeType":252,"data":2968,"content":2969},{},[2970],{"nodeType":256,"value":2971,"marks":2972,"data":2973},"Device code authorization is a legitimate mechanism regularly used in enterprise environments, particularly for CLI logins. Tools like Azure CLI, GitHub CLI, and AWS CLI all use (or have used) the device code flow as a primary or fallback authentication method. This creates a dual problem for defenders. ",[],{},{"nodeType":252,"data":2975,"content":2976},{},[2977],{"nodeType":256,"value":2978,"marks":2979,"data":2980},"First, the phishing attack happens entirely on a legitimate site — there's no fake login page, no malicious payload to scan for, and the URL in the browser is genuine. Since there's no traditional phishing content being delivered, these attacks are more resistant to detection by email and network security tools.",[],{},{"nodeType":252,"data":2982,"content":2983},{},[2984],{"nodeType":256,"value":2985,"marks":2986,"data":2987},"Second, the widespread legitimate use of device code flow — particularly among developers and technical users — normalizes the experience of entering device codes. A phishing lure asking them to do the same thing is indistinguishable from a legitimate IT request. And for non-technical users, this experience isn't much different to, for example, entering a code sent via email or authenticator app. ",[],{},{"nodeType":614,"data":2989,"content":2990},{},[2991],{"nodeType":256,"value":2992,"marks":2993,"data":2995},"Multiple apps are vulnerable, with different risk profiles",[2994],{"type":333},{},{"nodeType":252,"data":2997,"content":2998},{},[2999],{"nodeType":256,"value":3000,"marks":3001,"data":3002},"Various apps implement the device code flow, each with different levels of control and default security, but the risk is not uniform across platforms. ",[],{},{"nodeType":460,"data":3004,"content":3005},{},[3006,3021,3035],{"nodeType":464,"data":3007,"content":3008},{},[3009],{"nodeType":252,"data":3010,"content":3011},{},[3012,3017],{"nodeType":256,"value":3013,"marks":3014,"data":3016},"Google Workspace ",[3015],{"type":333},{},{"nodeType":256,"value":3018,"marks":3019,"data":3020},"is a significantly lower-risk target because Google explicitly limits which scopes are available to the device code flow — Gmail, Calendar, and most Workspace APIs are simply unavailable through this mechanism. ",[],{},{"nodeType":464,"data":3022,"content":3023},{},[3024],{"nodeType":252,"data":3025,"content":3026},{},[3027,3031],{"nodeType":256,"value":479,"marks":3028,"data":3030},[3029],{"type":333},{},{"nodeType":256,"value":3032,"marks":3033,"data":3034}," offers the broadest attack surface due to unrestricted scopes, reusable first-party client IDs, and the FOCI/PRT escalation paths. ",[],{},{"nodeType":464,"data":3036,"content":3037},{},[3038],{"nodeType":252,"data":3039,"content":3040},{},[3041,3045,3050],{"nodeType":256,"value":3042,"marks":3043,"data":3044},"Apps like ",[],{},{"nodeType":256,"value":3046,"marks":3047,"data":3049},"GitHub",[3048],{"type":333},{},{"nodeType":256,"value":3051,"marks":3052,"data":3053}," sit in between — broad scopes are available (including full repository access), but the attacker must control their own OAuth app and the victim sees an explicit consent screen. ",[],{},{"nodeType":243,"data":3055,"content":3059},{"target":3056},{"sys":3057},{"id":3058,"type":248,"linkType":249},"ejNSC76jge1p1zzz9wwiG",[],{"nodeType":322,"data":3061,"content":3062},{},[],{"nodeType":326,"data":3064,"content":3065},{},[3066],{"nodeType":256,"value":3067,"marks":3068,"data":3070},"Security recommendations",[3069],{"type":333},{},{"nodeType":252,"data":3072,"content":3073},{},[3074],{"nodeType":256,"value":3075,"marks":3076,"data":3077},"Security teams need to consider the risk posed by device code phishing across multiple apps where device code authorization grants are common, particularly for developers and technical users. ",[],{},{"nodeType":252,"data":3079,"content":3080},{},[3081],{"nodeType":256,"value":3082,"marks":3083,"data":3084},"In an ideal world, you would simply block device code logins. But this can’t be done without causing serious disruption in some environments, while some apps simply don’t provide the tools required to do so. For example, device code is the default CLI sign-in method for GitHub. Developer-heavy organizations are likely to encounter higher levels of legitimate use.",[],{},{"nodeType":252,"data":3086,"content":3087},{},[3088,3092,3101,3105,3110,3114,3119,3123,3128],{"nodeType":256,"value":3089,"marks":3090,"data":3091},"Microsoft arguably offers the strongest control options (other than Google, who negate it right out of the gate), though they do require a fair amount of work. ",[],{},{"nodeType":261,"data":3093,"content":3095},{"uri":3094},"https://techcommunity.microsoft.com/blog/microsoft-entra-blog/new-microsoft-managed-policies-to-raise-your-identity-security-posture/4286758",[3096],{"nodeType":256,"value":3097,"marks":3098,"data":3100},"Microsoft now explicitly recommends",[3099],{"type":269},{},{"nodeType":256,"value":3102,"marks":3103,"data":3104}," blocking device code flow for tenants that haven't used it in the past 25 days. Their guidance is to create a custom CA policy: target relevant users, set the ",[],{},{"nodeType":256,"value":3106,"marks":3107,"data":3109},"Authentication Flows",[3108],{"type":333},{},{"nodeType":256,"value":3111,"marks":3112,"data":3113}," condition to block ",[],{},{"nodeType":256,"value":3115,"marks":3116,"data":3118},"Device Code Flow",[3117],{"type":333},{},{"nodeType":256,"value":3120,"marks":3121,"data":3122},", and set the grant control to ",[],{},{"nodeType":256,"value":3124,"marks":3125,"data":3127},"Block Access",[3126],{"type":333},{},{"nodeType":256,"value":3129,"marks":3130,"data":3131},". Deploy in report-only mode first to identify any legitimate device code usage, then enforce with narrow exceptions.",[],{},{"nodeType":243,"data":3133,"content":3137},{"target":3134},{"sys":3135},{"id":3136,"type":248,"linkType":249},"mQIj2o9xRzkZYKNmanB25",[],{"nodeType":252,"data":3139,"content":3140},{},[3141],{"nodeType":256,"value":3142,"marks":3143,"data":3144},"For other apps, you’re mainly limited to monitoring and response. Ensuring you’re getting authentication logs for these apps is vital, and searching for unusual access patterns (e.g. unusual login protocols, having different IPs for the authorization grant and subsequent account activity). ",[],{},{"nodeType":322,"data":3146,"content":3147},{},[],{"nodeType":326,"data":3149,"content":3150},{},[3151],{"nodeType":256,"value":3152,"marks":3153,"data":3155},"How Push Security can help",[3154],{"type":333},{},{"nodeType":252,"data":3157,"content":3158},{},[3159],{"nodeType":256,"value":3160,"marks":3161,"data":3162},"Push customers can use our browser-based capabilities to overcome the limitations of app-level controls and detect, intercept, and shut down attacks in real time. ",[],{},{"nodeType":252,"data":3164,"content":3165},{},[3166],{"nodeType":256,"value":3167,"marks":3168,"data":3169},"Our research team is already tracking multiple device code phishing campaigns and toolkits, including the EvilTokens kit. Blocking controls are already in place to prevent customers from interacting with malicious pages that match our detections for these new toolkits, ensuring that these pages can be identified and blocked in real time regardless of the infrastructure. ",[],{},{"nodeType":252,"data":3171,"content":3172},{},[3173,3177,3186],{"nodeType":256,"value":3174,"marks":3175,"data":3176},"Using Push you can also ",[],{},{"nodeType":261,"data":3178,"content":3180},{"uri":3179},"https://pushsecurity.com/help/can-i-use-push-to-help-protect-against-device-code-phishing-scenarios/",[3181],{"nodeType":256,"value":3182,"marks":3183,"data":3185},"configure in-browser warnings",[3184],{"type":269},{},{"nodeType":256,"value":3187,"marks":3188,"data":3189}," whenever a user accesses a URL used for device code logins. This provides universal, last-mile protection against even ‘zero-day’ device code phishing attacks using previously unidentified toolkits.  ",[],{},{"nodeType":243,"data":3191,"content":3195},{"target":3192},{"sys":3193},{"id":3194,"type":248,"linkType":249},"3JsbGaOKSS3INzBUJpoh1W",[],{"nodeType":252,"data":3197,"content":3198},{},[3199],{"nodeType":256,"value":3200,"marks":3201,"data":3202},"When a user visits those URLs, Push will also emit a webhook event that the banner was shown and acknowledged. If a user opts to proceed, you can treat this as a high-fidelity alert for your security team to investigate, providing app-agnostic telemetry that may not already be provided in your logs from that particular vendor. You can also simply use Push to block users from accessing device login pages if you’re confident that disruption won’t be caused. ",[],{},{"nodeType":614,"data":3204,"content":3205},{},[3206],{"nodeType":256,"value":3207,"marks":3208,"data":3210},"Learn more about Push",[3209],{"type":333},{},{"nodeType":252,"data":3212,"content":3213},{},[3214],{"nodeType":256,"value":3215,"marks":3216,"data":3217},"Push Security's browser-based security platform detects and blocks browser-based attacks like AiTM phishing, credential stuffing, malicious browser extensions, ClickFix, and session hijacking. You don't need to wait until it all goes wrong either — you can use Push to proactively find and fix vulnerabilities across the apps that your employees use, like ghost logins, SSO coverage gaps, MFA gaps, vulnerable passwords, and more to harden your attack surface.",[],{},{"nodeType":252,"data":3219,"content":3220},{},[3221,3225,3234,3237,3246,3250,3259],{"nodeType":256,"value":3222,"marks":3223,"data":3224},"To learn more about Push, ",[],{},{"nodeType":261,"data":3226,"content":3228},{"uri":3227},"https://pushsecurity.com/resources/product-brochure",[3229],{"nodeType":256,"value":3230,"marks":3231,"data":3233},"check out our latest product overview",[3232],{"type":269},{},{"nodeType":256,"value":636,"marks":3235,"data":3236},[],{},{"nodeType":261,"data":3238,"content":3240},{"uri":3239},"https://pushsecurity.com/product-demo/",[3241],{"nodeType":256,"value":3242,"marks":3243,"data":3245},"view our demo library",[3244],{"type":269},{},{"nodeType":256,"value":3247,"marks":3248,"data":3249},", or ",[],{},{"nodeType":261,"data":3251,"content":3253},{"uri":3252},"https://pushsecurity.com/demo",[3254],{"nodeType":256,"value":3255,"marks":3256,"data":3258},"book some time with one of our team for a live demo",[3257],{"type":269},{},{"nodeType":256,"value":3260,"marks":3261,"data":3262},".",[],{},{"entries":3264},{"hyperlink":3265,"inline":3266,"block":3267},[],[],[3268,3288,3320,3328,3342,3384,3398,3426,3433,3440,3446,3453,3458,3464,3467,3473,3478,3484,3519,3525,3533,3537,3542,3548,3553,3567,3573,3581,3585,3599,3659,3665,3679,3741,3765],{"sys":3269,"__typename":3270,"content":3271,"name":3287,"title":62},{"id":247},"InsightTextBlockComponent",{"json":3272},{"data":3273,"content":3274,"nodeType":239},{},[3275],{"data":3276,"content":3277,"nodeType":252},{},[3278,3283],{"data":3279,"marks":3280,"value":3282,"nodeType":256},{},[3281],{"type":333},"Update May 15:",{"data":3284,"marks":3285,"value":3286,"nodeType":256},{},[]," We've added details of three new kits, including proper samples of Venom, Tycoon2FA, and CYB3R, a new self-identifying kit — all from Push's customer detections. ","DCP IB 11",{"sys":3289,"__typename":3270,"content":3290,"name":3319,"title":62},{"id":305},{"json":3291},{"nodeType":239,"data":3292,"content":3293},{},[3294],{"nodeType":252,"data":3295,"content":3296},{},[3297,3301,3306,3310,3315],{"nodeType":256,"value":3298,"marks":3299,"data":3300},"At the start of March, we’d observed a ",[],{},{"nodeType":256,"value":3302,"marks":3303,"data":3305},"15x",[3304],{"type":333},{},{"nodeType":256,"value":3307,"marks":3308,"data":3309}," increase in device code phishing pages detected by our research team this year, with multiple kits and campaigns being tracked — with the kit now identified as EvilTokens the most prominent. ",[],{},{"nodeType":256,"value":3311,"marks":3312,"data":3314},"That figure has now risen to 37.5x",[3313],{"type":333},{},{"nodeType":256,"value":3316,"marks":3317,"data":3318},". More on that later. ",[],{},"DCP IB 1",{"sys":3321,"__typename":3322,"title":3323,"caption":3323,"layoutMode":62,"file":3324},{"id":339},"Image","Device code phishing evolution 2019-2026.",{"url":3325,"width":3326,"height":3327},"https://images.ctfassets.net/y1cdw1ablpvd/7dPjgH1qTrpBIdqE0D4D0g/8d0bcaea877a9fcd325b272890d8dc63/device_code_phishing_4col_timeline_1.png",1360,1160,{"sys":3329,"__typename":3270,"content":3330,"name":3341,"title":62},{"id":450},{"json":3331},{"nodeType":239,"data":3332,"content":3333},{},[3334],{"nodeType":252,"data":3335,"content":3336},{},[3337],{"nodeType":256,"value":3338,"marks":3339,"data":3340},"PhaaS is key to the adoption of new phishing tools and techniques, providing broad access to criminal operators at scale while driving up execution standards. It has been central to the continued evolution of AITM and ClickFix, and is a strong indicator of what comes next for device code phishing.",[],{},"DCP IB 2",{"sys":3343,"__typename":3270,"content":3344,"name":3383,"title":62},{"id":584},{"json":3345},{"data":3346,"content":3347,"nodeType":239},{},[3348],{"data":3349,"content":3350,"nodeType":252},{},[3351,3355,3363,3367,3371,3379],{"data":3352,"marks":3353,"value":3354,"nodeType":256},{},[],"We're seeing a clear trend of existing PhaaS kits adding device code phishing functionality. Tycoon2FA, the category leader for criminal AITM phishing capabilities, has recently",{"data":3356,"content":3358,"nodeType":261},{"uri":3357},"https://pushsecurity.com/blog/device-code-phishing/",[3359],{"data":3360,"marks":3361,"value":3362,"nodeType":256},{},[]," adopted device code phishing ",{"data":3364,"marks":3365,"value":3366,"nodeType":256},{},[],"alongside its established AiTM functionality (we've provided some examples below), while t",{"data":3368,"marks":3369,"value":3370,"nodeType":256},{},[],"he ",{"data":3372,"content":3374,"nodeType":261},{"uri":3373},"https://abnormal.ai/blog/venom-phishing-campaign-mfa-credential-theft",[3375],{"data":3376,"marks":3377,"value":2423,"nodeType":256},{},[3378],{"type":269},{"data":3380,"marks":3381,"value":3382,"nodeType":256},{},[]," kit that offers device code phishing capabilities that appear visually and functionally similar to EvilTokens has an AITM component that matches our detections for Sneaky2FA, indicating a possible overlap in tooling.","DCP IB12",{"sys":3385,"__typename":3270,"content":3386,"name":3397,"title":62},{"id":608},{"json":3387},{"nodeType":239,"data":3388,"content":3389},{},[3390],{"nodeType":252,"data":3391,"content":3392},{},[3393],{"nodeType":256,"value":3394,"marks":3395,"data":3396},"Many of the names provided are internal codenames. The information per kit is by no means exhaustive and is likely to evolve over time. ",[],{},"DCP IP 7",{"sys":3399,"__typename":3270,"content":3400,"name":3425,"title":62},{"id":668},{"json":3401},{"nodeType":239,"data":3402,"content":3403},{},[3404,3411,3418],{"nodeType":252,"data":3405,"content":3406},{},[3407],{"nodeType":256,"value":3408,"marks":3409,"data":3410},"Our codename for EvilTokens internally was derived from the overly descriptive page code describing its bot protection capabilities (a clear sign of vibe coding — thanks Claude!):",[],{},{"nodeType":252,"data":3412,"content":3413},{},[3414],{"nodeType":256,"value":3415,"marks":3416,"data":3417},"\u003C!-- FIXED ANTI-BOT SYSTEM - WON'T REDIRECT REAL USERS -->",[],{},{"nodeType":252,"data":3419,"content":3420},{},[3421],{"nodeType":256,"value":3422,"marks":3423,"data":3424},"\u003C!-- ENHANCED ANTI-BOT SYSTEM WITH SERVER-SIDE VALIDATION -->",[],{},"DCP IB3",{"sys":3427,"__typename":3322,"title":3428,"caption":3428,"layoutMode":62,"file":3429},{"id":722},"Precursor A (Left) & B (Right): Different visual lures from January 2026. ",{"url":3430,"width":3431,"height":3432},"https://images.ctfassets.net/y1cdw1ablpvd/3pfFR7ICQQqOyhGAFAj67C/6f8873d82cc7f5233a0ca9baa74f7585/image15.png",1999,773,{"sys":3434,"__typename":3322,"title":3435,"caption":3436,"layoutMode":62,"file":3437},{"id":728},"Early ANTIBOT: First appearance of the ANTIBOT comments, mid-Jan.","Early ANTIBOT: First appearance of the ANTIBOT comments, late-Jan.",{"url":3438,"width":3431,"height":3439},"https://images.ctfassets.net/y1cdw1ablpvd/VAdFlnCF4YftsOV02wnwu/8813ea3957b65ddfb84bb8ba5fb25a55/image6.png",564,{"sys":3441,"__typename":3442,"title":3443,"arcadeDemoUrl":3444,"playText":3445},{"id":734},"ArcadeDemo","Early ANTIBOT page load","https://demo.arcade.software/wRcvXg62Lok57ZjOKgJI?embed","20 secs",{"sys":3447,"__typename":3322,"title":3448,"caption":3448,"layoutMode":62,"file":3449},{"id":740},"\"Courts Access\" lure with a similar security verification to Early ANTIBOT.",{"url":3450,"width":3451,"height":3452},"https://images.ctfassets.net/y1cdw1ablpvd/7LEJpoif8dnub4qJw2z6kL/3b15161c9d3f2e4f7d4f323ec04f1f33/Group_687.png",3103,1200,{"sys":3454,"__typename":3442,"title":3455,"arcadeDemoUrl":3456,"playText":3457},{"id":746},"ANTIBOT \"Courts Access\" lure","https://demo.arcade.software/8b4YuKm1EXPmgx2q7q2D?embed","2 mins",{"sys":3459,"__typename":3322,"title":3460,"caption":3460,"layoutMode":62,"file":3461},{"id":752},"Production ANTIBOT: Current EvilTokens implementation.",{"url":3462,"width":3431,"height":3463},"https://images.ctfassets.net/y1cdw1ablpvd/1J3fOSmUPF8f3FlcwYFoGe/5eff8c1a892f870d1488d6a0f38da03c/image12.png",591,{"sys":3465,"__typename":3442,"title":438,"arcadeDemoUrl":3466,"playText":3445},{"id":758},"https://demo.arcade.software/zB6dqehj1lbnB2dur9lB?embed",{"sys":3468,"__typename":3322,"title":3469,"caption":3469,"layoutMode":62,"file":3470},{"id":1183},"SHAREFILE kit.",{"url":3471,"width":3431,"height":3472},"https://images.ctfassets.net/y1cdw1ablpvd/1iKelffs399PIIBedgnqmu/64a40d1ad7f69f966665f44c52e0817b/image1.png",1500,{"sys":3474,"__typename":3442,"title":3475,"arcadeDemoUrl":3476,"playText":3477},{"id":1374},"Kali365 / Clure Demo","https://demo.arcade.software/dwwFeSKGldZvTrYZDtZV?embed","30 secs",{"sys":3479,"__typename":3322,"title":3480,"caption":62,"layoutMode":62,"file":3481},{"id":1538},"LINKID landing page requires an email before serving the payload.",{"url":3482,"width":3431,"height":3483},"https://images.ctfassets.net/y1cdw1ablpvd/5XAibmWt8HDGbpOC9n1DEk/d4bcb1006d82116dff5865f5b911bc88/image9.png",1049,{"sys":3485,"__typename":3270,"content":3486,"name":3518,"title":62},{"id":1555},{"json":3487},{"nodeType":239,"data":3488,"content":3489},{},[3490],{"nodeType":252,"data":3491,"content":3492},{},[3493,3497,3502,3506,3514],{"nodeType":256,"value":3494,"marks":3495,"data":3496},"AUTHOV was recently attributed to ",[],{},{"nodeType":256,"value":3498,"marks":3499,"data":3501},"Device Code Lab",[3500],{"type":333},{},{"nodeType":256,"value":3503,"marks":3504,"data":3505},", a professional grade, device code phishing platform, with numerous defense evasion and post-exploitation features, designed to interoperate with other phishing platforms. You can ",[],{},{"nodeType":261,"data":3507,"content":3509},{"uri":3508},"https://newtonpaul.com/blog/device-code-lab-post-exploit/",[3510],{"nodeType":256,"value":3511,"marks":3512,"data":3513},"read Paul Newton's write-up here",[],{},{"nodeType":256,"value":3515,"marks":3516,"data":3517},". ",[],{},"dcp ib14",{"sys":3520,"__typename":3322,"title":3521,"caption":3521,"layoutMode":62,"file":3522},{"id":1702},"AUTHOV kit. Notably uses a popup like prod EvilTokens.",{"url":3523,"width":3431,"height":3524},"https://images.ctfassets.net/y1cdw1ablpvd/4wKaHuSRfMXvi056r88u0b/e77feca260fe5ceb07ea7a080a09148f/image8.png",1128,{"sys":3526,"__typename":3322,"title":3527,"caption":3528,"layoutMode":62,"file":3529},{"id":1708},"Device code lab portal","Device Code Lab portal login page. Credit: Paul Newton",{"url":3530,"width":3531,"height":3532},"https://images.ctfassets.net/y1cdw1ablpvd/3qgmWJFz6hDUSEu2TcUWWU/9df13412c9ddb216020ae7a5fe476b5d/portal.png",912,787,{"sys":3534,"__typename":3442,"title":3535,"arcadeDemoUrl":3536,"playText":3445},{"id":1872},"DOCUPOLL DCP Kit","https://demo.arcade.software/Wv84a7Vziha9RwTdctvg?embed",{"sys":3538,"__typename":3322,"title":3539,"caption":3539,"layoutMode":62,"file":3540},{"id":2035},"FLOW_TOKEN kit. Notably uses a popup like prod EvilTokens.",{"url":3541,"width":3431,"height":3524},"https://images.ctfassets.net/y1cdw1ablpvd/4Bvbx5dwwBTOvAzULbnhIF/2d676145af0648b1e6f43b624af3ffbc/image7.png",{"sys":3543,"__typename":3322,"title":3544,"caption":3544,"layoutMode":62,"file":3545},{"id":2147},"PAPRIKA kit.",{"url":3546,"width":3431,"height":3547},"https://images.ctfassets.net/y1cdw1ablpvd/2XqwbTyGXRBaH6OM0t9moI/107cd701784fe8eed96eea2b9c09731a/image5.png",727,{"sys":3549,"__typename":3322,"title":3550,"caption":3550,"layoutMode":62,"file":3551},{"id":2258},"DCSTATUS kit. ",{"url":3552,"width":3431,"height":3472},"https://images.ctfassets.net/y1cdw1ablpvd/1zKQp6Wi0ckDZMLHBriU2Y/7d1c7c348407dcbde2eb94551baca7f5/image14.png",{"sys":3554,"__typename":3270,"content":3555,"name":3566,"title":62},{"id":2275},{"json":3556},{"data":3557,"content":3558,"nodeType":239},{},[3559],{"data":3560,"content":3561,"nodeType":252},{},[3562],{"data":3563,"marks":3564,"value":3565,"nodeType":256},{},[],"Our suspicion is that this was a one-off — potentially for a red team exercise — rather than representative of a more widely used kit.","DCP IB 4",{"sys":3568,"__typename":3322,"title":3569,"caption":3569,"layoutMode":62,"file":3570},{"id":2414},"DOLCE kit.",{"url":3571,"width":3431,"height":3572},"https://images.ctfassets.net/y1cdw1ablpvd/6iUfj8vMymi2c7lZxj006n/88b8066e6bea9fa7a81bd6b546264796/image16.png",728,{"sys":3574,"__typename":3322,"title":3575,"caption":3576,"layoutMode":62,"file":3577},{"id":2480},"Venom Device Code Phishing Screenshots","Examples of the Venom platform impersonating brands like YPO, FedEx and DHL.",{"url":3578,"width":3579,"height":3580},"https://images.ctfassets.net/y1cdw1ablpvd/2NThjmQSR5XFdnKEQKXfnd/237318895da6f558cc03b2915217afea/Venom_Device_Code_Phishing__1_.png",13114,3310,{"sys":3582,"__typename":3442,"title":3583,"arcadeDemoUrl":3584,"playText":3477},{"id":2636},"Tycoon2FA Device Code Phishing","https://demo.arcade.software/SPNMxNkoyY5vTMPPlqWS?embed",{"sys":3586,"__typename":3270,"content":3587,"name":3598,"title":62},{"id":2785},{"json":3588},{"nodeType":239,"data":3589,"content":3590},{},[3591],{"nodeType":252,"data":3592,"content":3593},{},[3594],{"nodeType":256,"value":3595,"marks":3596,"data":3597},"Clearly, device code phishing has entered mainstream adoption and we should be prepared for a lot more of it in future. So how does it work, and why is it so effective?",[],{},"DCP IB13",{"sys":3600,"__typename":3270,"content":3601,"name":3658,"title":62},{"id":2821},{"json":3602},{"nodeType":239,"data":3603,"content":3604},{},[3605,3642],{"nodeType":252,"data":3606,"content":3607},{},[3608,3612,3619,3623,3629,3633,3638],{"nodeType":256,"value":3609,"marks":3610,"data":3611},"When targeting Microsoft environments, attackers can use the ",[],{},{"nodeType":261,"data":3613,"content":3614},{"uri":376},[3615],{"nodeType":256,"value":3616,"marks":3617,"data":3618},"PRT escalation technique",[],{},{"nodeType":256,"value":3620,"marks":3621,"data":3622}," I mentioned in earlier research to get seamless SSO across ",[],{},{"nodeType":256,"value":3624,"marks":3625,"data":3628},"all",[3626],{"type":3627},"italic",{},{"nodeType":256,"value":3630,"marks":3631,"data":3632}," Entra ID-connected applications and web services. This requires that you specifically target the ",[],{},{"nodeType":256,"value":3634,"marks":3635,"data":3637},"Microsoft Authentication Broker",[3636],{"type":333},{},{"nodeType":256,"value":3639,"marks":3640,"data":3641}," application, chained into a new device registration in the victim's environment. This is the method that Storm-2372 was leveraging in 2025. ",[],{},{"nodeType":252,"data":3643,"content":3644},{},[3645,3649,3654],{"nodeType":256,"value":3646,"marks":3647,"data":3648},"But even without this step, many Microsoft first-party apps also belong to the ",[],{},{"nodeType":256,"value":3650,"marks":3651,"data":3653},"Family of Client IDs (FOCI)",[3652],{"type":333},{},{"nodeType":256,"value":3655,"marks":3656,"data":3657},", meaning a refresh token obtained for one family member can be exchanged for access tokens to other family members without re-authentication. In practice, this means an attacker who phishes a token via e.g. the Microsoft Office client ID, can silently pivot to access Outlook, Teams, OneDrive, SharePoint, and Azure Management APIs — all from a single phished session. ",[],{},"DCP IB 8",{"sys":3660,"__typename":3322,"title":3661,"caption":3661,"layoutMode":62,"file":3662},{"id":2827},"Device code phishing attack chain.",{"url":3663,"width":3431,"height":3664},"https://images.ctfassets.net/y1cdw1ablpvd/60e9ErrL8tp3xtoer4gNUl/83899c207f61fdd9ff8aad0e1001030d/image2.png",1275,{"sys":3666,"__typename":3270,"content":3667,"name":3678,"title":62},{"id":2877},{"json":3668},{"nodeType":239,"data":3669,"content":3670},{},[3671],{"nodeType":252,"data":3672,"content":3673},{},[3674],{"nodeType":256,"value":3675,"marks":3676,"data":3677},"One of the key limitations of early device code phishing was that the code was being sent directly over email (as in the Russia-linked campaigns in 2024-5). This meant that the code would expire unless used immediately, requiring highly engaged social engineering to pull off. To get around this, modern device code phishing pages are continuously polling for fresh codes via API. This arguably makes them more discoverable than simply providing the code and instructions in a direct message, but is way more scalable for the attacker. ",[],{},"DCP IB 5",{"sys":3680,"__typename":3270,"content":3681,"name":3740,"title":62},{"id":3058},{"json":3682},{"nodeType":239,"data":3683,"content":3684},{},[3685,3724],{"nodeType":252,"data":3686,"content":3687},{},[3688,3693,3697,3707,3711,3720],{"nodeType":256,"value":3689,"marks":3690,"data":3692},"First-party applications",[3691],{"type":333},{},{"nodeType":256,"value":3694,"marks":3695,"data":3696}," are commonly abused in Microsoft-targeted attacks. These are ",[],{},{"nodeType":261,"data":3698,"content":3700},{"uri":3699},"https://gist.github.com/dafthack/2c0bbcac72b10c1ee205d1dd2fed3fe7",[3701],{"nodeType":256,"value":3702,"marks":3703,"data":3706},"real Microsoft applications",[3704,3705],{"type":269},{"type":333},{},{"nodeType":256,"value":3708,"marks":3709,"data":3710}," registered in every Entra ID tenant. Not only are they allowed by default (unlike third-party apps that are often subject to additional restrictions and require additional tenant-level consent before they can be accessed by a user), they come with pre-consented permissions, and can even access undocumented “legacy” scopes that aren't logged by default (exploited in the Russia-linked ",[],{},{"nodeType":261,"data":3712,"content":3714},{"uri":3713},"https://pushsecurity.com/blog/consentfix/",[3715],{"nodeType":256,"value":3716,"marks":3717,"data":3719},"ConsentFix",[3718],{"type":269},{},{"nodeType":256,"value":3721,"marks":3722,"data":3723}," campaign reported by Push researchers). ",[],{},{"nodeType":252,"data":3725,"content":3726},{},[3727,3731,3736],{"nodeType":256,"value":3728,"marks":3729,"data":3730},"In other cases, such as when targeting GitHub or Salesforce, ",[],{},{"nodeType":256,"value":3732,"marks":3733,"data":3735},"third-party applications",[3734],{"type":333},{},{"nodeType":256,"value":3737,"marks":3738,"data":3739}," are often leveraged. These aren't necessarily fresh, attacker-created apps — they can be attacker-controlled instances of otherwise legitimate applications. That said, it is easier than ever for attackers to spin up their own OAuth apps, particularly using AI tools. The trade-off is that the victim has to consent to the app from the tenant level before also granting access to their account, introducing more friction to the process, and potentially running into additional security controls and restrictions depending on tenant configuration. ",[],{},"DCP IB 6",{"sys":3742,"__typename":3270,"content":3743,"name":3764,"title":62},{"id":3136},{"json":3744},{"nodeType":239,"data":3745,"content":3746},{},[3747],{"nodeType":252,"data":3748,"content":3749},{},[3750,3754,3760],{"nodeType":256,"value":3751,"marks":3752,"data":3753},"However, it's important to recognize that blocking device code flow is not a complete solution. Related techniques like ",[],{},{"nodeType":261,"data":3755,"content":3756},{"uri":3713},[3757],{"nodeType":256,"value":3716,"marks":3758,"data":3759},[],{},{"nodeType":256,"value":3761,"marks":3762,"data":3763}," — which exploits the authorization code flow with localhost redirects rather than the device code flow — produce the same access tokens with the same capabilities but are not blocked by device code flow specific CA policies. ",[],{},"DCP IB 7",{"sys":3766,"__typename":3322,"title":3767,"caption":3768,"layoutMode":62,"file":3769},{"id":3194},"DCP warning banner","Users visiting a device code login page will be required to click through a warning banner, emitting a webhook event.",{"url":3770,"width":3771,"height":3772},"https://images.ctfassets.net/y1cdw1ablpvd/2Gtct2qofWtLLVi31Pk8NY/616e56fc4fa7dcb905a0a3a1ca28709b/image17.png",1367,859,"json",{"items":3775},[],{},"Analyzing the rise in device code phishing attacks in 2026","2026-04-04T00:00:00.000Z",{"items":3780},[3781,4759,5626],{"__typename":3782,"sys":3783,"content":3785,"title":4737,"synopsis":4738,"hashTags":62,"publishedDate":4739,"slug":4740,"tagsCollection":4741,"authorsCollection":4751},"BlogPosts",{"id":3784},"2sFCww9xnI8okIxhtOaiY1",{"json":3786},{"nodeType":239,"data":3787,"content":3788},{},[3789,3796,3803,3810,3813,3821,3828,3835,3841,3848,3854,3874,3881,3893,3896,3904,3911,3927,3934,3946,3952,3955,3963,3971,3977,3986,4006,4015,4022,4031,4050,4059,4066,4075,4108,4117,4124,4133,4151,4157,4166,4173,4182,4224,4227,4235,4244,4264,4273,4280,4289,4322,4328,4337,4344,4350,4353,4361,4370,4377,4437,4443,4446,4454,4463,4470,4476,4479,4487,4494,4501,4570,4577,4640,4647,4650,4658,4665,4672,4678,4681,4689,4696,4703,4710],{"nodeType":252,"data":3790,"content":3791},{},[3792],{"nodeType":256,"value":3793,"marks":3794,"data":3795},"The biggest cybersecurity story this year (so far) has been the emergence of “Scattered Lapsus$ Hunters” and their record-breaking worldwide hacking spree. ",[],{},{"nodeType":252,"data":3797,"content":3798},{},[3799],{"nodeType":256,"value":3800,"marks":3801,"data":3802},"Scattered Lapsus$ Hunters is part of “The Com”, the name for the broad community of English-speaking cybercriminals with international criminal connections — including with nation-state sponsored groups. They are also known to collaborate with a range of cybercrime “as-a-Service” organizations for phishing, initial access, ransomware, and more. ",[],{},{"nodeType":252,"data":3804,"content":3805},{},[3806],{"nodeType":256,"value":3807,"marks":3808,"data":3809},"It’s difficult to pin down exactly who the individuals are that make up this criminal collective. But what is known is their MO — making money through extortion by means of account takeover, mass data theft, and ransomware deployment. ",[],{},{"nodeType":322,"data":3811,"content":3812},{},[],{"nodeType":326,"data":3814,"content":3815},{},[3816],{"nodeType":256,"value":3817,"marks":3818,"data":3820},"How did we get here? ",[3819],{"type":333},{},{"nodeType":252,"data":3822,"content":3823},{},[3824],{"nodeType":256,"value":3825,"marks":3826,"data":3827},"Earlier this year, the threat group known to most analysts as Scattered Spider (also tracked as 0ktapus, Octo Tempest, Scatter Swine, Muddled Libra, and UNC3944) re-emerged after a series of arrests in late 2024. ",[],{},{"nodeType":252,"data":3829,"content":3830},{},[3831],{"nodeType":256,"value":3832,"marks":3833,"data":3834},"This group has been active in peaks and troughs over the years, but are mainly known for high-profile ransomware attacks on Caesars and MGM Resorts in 2024. ",[],{},{"nodeType":243,"data":3836,"content":3840},{"target":3837},{"sys":3838},{"id":3839,"type":248,"linkType":249},"1Vt269d7n6IGMzOrJs1FDx",[],{"nodeType":252,"data":3842,"content":3843},{},[3844],{"nodeType":256,"value":3845,"marks":3846,"data":3847},"Scattered Spider hit the headlines again in April 2025 with attacks on UK retailers Marks & Spencer and Co-op, which resulted in significant, prolonged disruption, and a serious downstream impact on the retail supply chain. ",[],{},{"nodeType":243,"data":3849,"content":3853},{"target":3850},{"sys":3851},{"id":3852,"type":248,"linkType":249},"3kvcGV2zZZUPnM8IK04Y1O",[],{"nodeType":252,"data":3855,"content":3856},{},[3857,3861,3870],{"nodeType":256,"value":3858,"marks":3859,"data":3860},"It didn’t stop there, though. What followed was a wide-scale campaign targeting Salesforce customers, with the attackers claiming to have stolen ",[],{},{"nodeType":261,"data":3862,"content":3864},{"uri":3863},"https://www.bleepingcomputer.com/news/security/shinyhunters-claims-15-billion-salesforce-records-stolen-in-drift-hacks/",[3865],{"nodeType":256,"value":3866,"marks":3867,"data":3869},"over 1.5 billion records from 1000+ companies",[3868],{"type":269},{},{"nodeType":256,"value":3871,"marks":3872,"data":3873}," across multiple verticals, including heavyweights like Google, Cloudflare, Workday, Adidas, FedEx, Disney, LVMH, and many more.",[],{},{"nodeType":252,"data":3875,"content":3876},{},[3877],{"nodeType":256,"value":3878,"marks":3879,"data":3880},"Around this time, the attackers began to refer to themselves as part of a wider collective, assuming the moniker “Scattered Lapsus$ Hunters” (a mash-up of names given by analysts and self-adopted by attackers — Scattered Spider, ShinyHunters, and Lapsus$).",[],{},{"nodeType":252,"data":3882,"content":3883},{},[3884,3888],{"nodeType":256,"value":3885,"marks":3886,"data":3887},"The most significant breach this year to-date impacted Jaguar Land Rover. A ransomware attack resulted in months of disruption that directly impacted the UK’s GDP, with the government underwriting a $1.5B loan to alleviate the supply chain impact. ",[],{},{"nodeType":256,"value":3889,"marks":3890,"data":3892},"In fact, this was the most economically consequential cyber attack yet recorded in a G7 economy. ",[3891],{"type":333},{},{"nodeType":322,"data":3894,"content":3895},{},[],{"nodeType":326,"data":3897,"content":3898},{},[3899],{"nodeType":256,"value":3900,"marks":3901,"data":3903},"2025 wasn’t a one-off",[3902],{"type":333},{},{"nodeType":252,"data":3905,"content":3906},{},[3907],{"nodeType":256,"value":3908,"marks":3909,"data":3910},"The developments through 2025 have presented a stronger picture than ever before that cybercriminal operations are heavily interlinked. Groups overlap considerably, and individuals freely move between different cells. ",[],{},{"nodeType":252,"data":3912,"content":3913},{},[3914,3918,3923],{"nodeType":256,"value":3915,"marks":3916,"data":3917},"When we scratch beneath the surface, this is evident in the tactics, techniques and procedures (TTPs) used by these attackers — even stretching as far back as 2021 with the initial rise of Lapsus$. This is not an accident. ",[],{},{"nodeType":256,"value":3919,"marks":3920,"data":3922},"The TTPs used show a conscious move by attackers to move away from environments that are well-protected by traditional security tools. ",[3921],{"type":333},{},{"nodeType":256,"value":3924,"marks":3925,"data":3926},"This means avoiding targeting endpoints with malware, and not relying on software-based exploits. Instead, these attackers look to take over apps and services directly over the internet. ",[],{},{"nodeType":252,"data":3928,"content":3929},{},[3930],{"nodeType":256,"value":3931,"marks":3932,"data":3933},"Most of the time, this is as simple as logging in to a SaaS app, or an enterprise SSO account (e.g. Microsoft, Okta, or Google) and dumping the data. For attackers that want to take it further, they can abuse the sprawl of interconnected apps that make up modern business IT, seeking out specific data or exploitable functionality. Or, they can leverage internet-accessible management portals to chart a path back to your on-premise assets, giving them everything they need to pivot toward more conventional methods such as ransomware deployment. ",[],{},{"nodeType":252,"data":3935,"content":3936},{},[3937,3941],{"nodeType":256,"value":3938,"marks":3939,"data":3940},"When we look at historical breaches, the pattern is clear. ",[],{},{"nodeType":256,"value":3942,"marks":3943,"data":3945},"Not one of the attacks attributed to Scattered Lapsus$ Hunters, or its predecessors, started with an endpoint or network attack — they all began with account takeover. ",[3944],{"type":333},{},{"nodeType":243,"data":3947,"content":3951},{"target":3948},{"sys":3949},{"id":3950,"type":248,"linkType":249},"6poP5VM2ARrEvwKEG42HgK",[],{"nodeType":322,"data":3953,"content":3954},{},[],{"nodeType":326,"data":3956,"content":3957},{},[3958],{"nodeType":256,"value":3959,"marks":3960,"data":3962},"TTP breakdown: Analyzing the top “Scattered Lapsus$ Hunters” breaches since 2021",[3961],{"type":333},{},{"nodeType":614,"data":3964,"content":3965},{},[3966],{"nodeType":256,"value":3967,"marks":3968,"data":3970},"Phishing and stolen credentials",[3969],{"type":333},{},{"nodeType":243,"data":3972,"content":3976},{"target":3973},{"sys":3974},{"id":3975,"type":248,"linkType":249},"4SNOanDIdGZsvRRnMYQVSo",[],{"nodeType":252,"data":3978,"content":3979},{},[3980],{"nodeType":256,"value":3981,"marks":3982,"data":3985},"EA Games (2021)",[3983,3984],{"type":333},{"type":269},{},{"nodeType":252,"data":3987,"content":3988},{},[3989,3993,4002],{"nodeType":256,"value":3990,"marks":3991,"data":3992},"Attackers used stolen session cookies to log into EA’s Slack instance, purchased on a criminal forum. Combined with ",[],{},{"nodeType":261,"data":3994,"content":3996},{"uri":3995},"https://pushsecurity.com/blog/phishing-slack-persistence/",[3997],{"nodeType":256,"value":3998,"marks":3999,"data":4001},"social engineering via Slack",[4000],{"type":269},{},{"nodeType":256,"value":4003,"marks":4004,"data":4005},", this was used to steal 750GB of data, including video game source code. ",[],{},{"nodeType":252,"data":4007,"content":4008},{},[4009],{"nodeType":256,"value":4010,"marks":4011,"data":4014},"Nvidia (2022)",[4012,4013],{"type":333},{"type":269},{},{"nodeType":252,"data":4016,"content":4017},{},[4018],{"nodeType":256,"value":4019,"marks":4020,"data":4021},"Attackers used stolen credentials to steal 1TB of data from Nvidia’s internal shares, including a significant amount of sensitive information about the designs of Nvidia graphics cards, source code, and the usernames and passwords of more than 71,000 Nvidia employees.",[],{},{"nodeType":252,"data":4023,"content":4024},{},[4025],{"nodeType":256,"value":4026,"marks":4027,"data":4030},"Microsoft (2022)",[4028,4029],{"type":333},{"type":269},{},{"nodeType":252,"data":4032,"content":4033},{},[4034,4038,4046],{"nodeType":256,"value":4035,"marks":4036,"data":4037},"Attackers used stolen credentials combined with SIM swapping and ",[],{},{"nodeType":261,"data":4039,"content":4041},{"uri":4040},"https://github.com/pushsecurity/saas-attacks/blob/main/techniques/mfa_fatigue/description.md",[4042],{"nodeType":256,"value":4043,"marks":4044,"data":4045},"MFA fatigue",[],{},{"nodeType":256,"value":4047,"marks":4048,"data":4049}," attacks to steal Azure DevOps source code — leaked a 9GB archive of Microsoft source code – including ~90% of Bing and 45% of Cortana code. ",[],{},{"nodeType":252,"data":4051,"content":4052},{},[4053],{"nodeType":256,"value":4054,"marks":4055,"data":4058},"T-Mobile (2022)",[4056,4057],{"type":333},{"type":269},{},{"nodeType":252,"data":4060,"content":4061},{},[4062],{"nodeType":256,"value":4063,"marks":4064,"data":4065},"Attackers used stolen credentials to establish initial access, coupled with social engineering T-Mobile staff into approving the attacker’s device for VPN access. This resulted in source code being stolen from over 30,000 repositories. ",[],{},{"nodeType":252,"data":4067,"content":4068},{},[4069],{"nodeType":256,"value":4070,"marks":4071,"data":4074},"Snowflake (165 customers) (2024)",[4072,4073],{"type":333},{"type":269},{},{"nodeType":252,"data":4076,"content":4077},{},[4078,4082,4091,4095,4104],{"nodeType":256,"value":4079,"marks":4080,"data":4081},"Attackers targeted ",[],{},{"nodeType":261,"data":4083,"content":4085},{"uri":4084},"https://pushsecurity.com/blog/snowflake-retro/",[4086],{"nodeType":256,"value":4087,"marks":4088,"data":4090},"165 Snowflake customers",[4089],{"type":269},{},{"nodeType":256,"value":4092,"marks":4093,"data":4094}," using stolen credentials from credential breaches dating back as far as 2020. Due to widespread MFA gaps and the presence of ",[],{},{"nodeType":261,"data":4096,"content":4098},{"uri":4097},"https://github.com/pushsecurity/saas-attacks/blob/main/techniques/ghost_logins/description.md",[4099],{"nodeType":256,"value":4100,"marks":4101,"data":4103},"ghost logins",[4102],{"type":269},{},{"nodeType":256,"value":4105,"marks":4106,"data":4107},", attackers were able to simply log in to individual customer tenants, dump the data, and use it to extort the companies. In total, 9 public victims were named following the breach, with over 1B breached customer records. ",[],{},{"nodeType":252,"data":4109,"content":4110},{},[4111],{"nodeType":256,"value":4112,"marks":4113,"data":4116},"PowerSchool (2024)",[4114,4115],{"type":333},{"type":269},{},{"nodeType":252,"data":4118,"content":4119},{},[4120],{"nodeType":256,"value":4121,"marks":4122,"data":4123},"Attackers gained access to a community-focused customer support portal, PowerSource, using compromised credentials and stole data using an \"export data manager\" customer support tool, stealing the data of 62.4 million students and 9.5 million teachers. PowerSchool paid an undisclosed ransom fee, but hackers returned later to extort schools and individuals separately anyway.",[],{},{"nodeType":252,"data":4125,"content":4126},{},[4127],{"nodeType":256,"value":4128,"marks":4129,"data":4132},"Red Hat (2025)",[4130,4131],{"type":333},{"type":269},{},{"nodeType":252,"data":4134,"content":4135},{},[4136,4140,4147],{"nodeType":256,"value":4137,"marks":4138,"data":4139},"Attackers breached Red Hat’s GitLab instance via a compromised account — the result of ",[],{},{"nodeType":261,"data":4141,"content":4142},{"uri":4097},[4143],{"nodeType":256,"value":4100,"marks":4144,"data":4146},[4145],{"type":269},{},{"nodeType":256,"value":4148,"marks":4149,"data":4150}," providing a backdoor to access an otherwise secure, SSO-connected account. Stolen data included approximately 800 Customer Engagement Reports (CERs), authentication tokens, full database URIs, and other private information in Red Hat code and CERs, which they claimed to use to gain access to downstream customer infrastructure. ",[],{},{"nodeType":243,"data":4152,"content":4156},{"target":4153},{"sys":4154},{"id":4155,"type":248,"linkType":249},"G1V7d5Dvevmr9p0YXElPX",[],{"nodeType":252,"data":4158,"content":4159},{},[4160],{"nodeType":256,"value":4161,"marks":4162,"data":4165},"Discord (2025)",[4163,4164],{"type":333},{"type":269},{},{"nodeType":252,"data":4167,"content":4168},{},[4169],{"nodeType":256,"value":4170,"marks":4171,"data":4172},"Attackers compromised a Zendesk customer support account, stealing 1.6TB of data. The hackers say this consisted of roughly 8.4 million tickets affecting 5.5 million unique users, and that about 580,000 users contained payment information.",[],{},{"nodeType":252,"data":4174,"content":4175},{},[4176],{"nodeType":256,"value":4177,"marks":4178,"data":4181},"SoundCloud, MatchGroup, Crunchbase, Betterment... (2026)",[4179,4180],{"type":333},{"type":269},{},{"nodeType":252,"data":4183,"content":4184},{},[4185,4189,4197,4200,4208,4212,4220],{"nodeType":256,"value":4186,"marks":4187,"data":4188},"Scattered Lapsus$ Hunters have already claimed several public victims in 2026, with over 60 million breached records. ",[],{},{"nodeType":261,"data":4190,"content":4192},{"uri":4191},"https://www.bleepingcomputer.com/news/security/shinyhunters-claim-to-be-behind-sso-account-data-theft-attacks/",[4193],{"nodeType":256,"value":4194,"marks":4195,"data":4196},"SoundCloud, Betterment, Crunchbase",[],{},{"nodeType":256,"value":410,"marks":4198,"data":4199},[],{},{"nodeType":261,"data":4201,"content":4203},{"uri":4202},"https://www.bleepingcomputer.com/news/security/match-group-breach-exposes-data-from-hinge-tinder-okcupid-and-match/",[4204],{"nodeType":256,"value":4205,"marks":4206,"data":4207},"MatchGroup",[],{},{"nodeType":256,"value":4209,"marks":4210,"data":4211}," have all reported breaches this month, powered by a brand ",[],{},{"nodeType":261,"data":4213,"content":4215},{"uri":4214},"https://pushsecurity.com/blog/unpacking-the-latest-slh-campaign/",[4216],{"nodeType":256,"value":4217,"marks":4218,"data":4219},"new real-time-operated AiTM phishing kit",[],{},{"nodeType":256,"value":4221,"marks":4222,"data":4223}," targeting Okta, Entra, and Google SSO accounts. This is a developing situation, with more victims expected to be announced publicly soon.",[],{},{"nodeType":322,"data":4225,"content":4226},{},[],{"nodeType":614,"data":4228,"content":4229},{},[4230],{"nodeType":256,"value":4231,"marks":4232,"data":4234},"Vishing and help desk scams",[4233],{"type":333},{},{"nodeType":252,"data":4236,"content":4237},{},[4238],{"nodeType":256,"value":4239,"marks":4240,"data":4243},"MGM Resorts & Caesars (2023)",[4241,4242],{"type":333},{"type":269},{},{"nodeType":252,"data":4245,"content":4246},{},[4247,4251,4260],{"nodeType":256,"value":4248,"marks":4249,"data":4250},"MGM Resorts and Caesars were hit with twin breaches in 2023. Attackers socially engineered help desk personnel to take over accounts with Super Administrator privileges within MGM Resorts’ Okta tenant, which they then used to register a second, attacker-controlled IdP via ",[],{},{"nodeType":261,"data":4252,"content":4254},{"uri":4253},"https://github.com/pushsecurity/saas-attacks/blob/main/techniques/inbound_federation/description.md",[4255],{"nodeType":256,"value":4256,"marks":4257,"data":4259},"inbound federation",[4258],{"type":269},{},{"nodeType":256,"value":4261,"marks":4262,"data":4263}," — granting comprehensive access that was used to deploy ransomware. ",[],{},{"nodeType":252,"data":4265,"content":4266},{},[4267],{"nodeType":256,"value":4268,"marks":4269,"data":4272},"Transport for London (2024)",[4270,4271],{"type":333},{"type":269},{},{"nodeType":252,"data":4274,"content":4275},{},[4276],{"nodeType":256,"value":4277,"marks":4278,"data":4279},"Attackers socially engineered the Transport for London help desk to gain privileged access to the IT environment, resulting in prolonged disruption to key online services underpinning London’s public transport network, theft of 5,000 users bank details, and all 30,000 staff members having to reset their online credentials in person.",[],{},{"nodeType":252,"data":4281,"content":4282},{},[4283],{"nodeType":256,"value":4284,"marks":4285,"data":4288},"Marks & Spencer (2025)",[4286,4287],{"type":333},{"type":269},{},{"nodeType":252,"data":4290,"content":4291},{},[4292,4296,4305,4309,4318],{"nodeType":256,"value":4293,"marks":4294,"data":4295},"Attackers compromised a Microsoft Entra account belonging to a privileged user via a ",[],{},{"nodeType":261,"data":4297,"content":4299},{"uri":4298},"https://pushsecurity.com/blog/scattered-spider-defending-against-help-desk-scams/",[4300],{"nodeType":256,"value":4301,"marks":4302,"data":4304},"help desk scam",[4303],{"type":269},{},{"nodeType":256,"value":4306,"marks":4307,"data":4308},", which enabled them to steal sensitive data from cloud environments, as well as pivot to deploy ransomware via the ",[],{},{"nodeType":261,"data":4310,"content":4312},{"uri":4311},"https://cloud.google.com/blog/topics/threat-intelligence/vsphere-active-directory-integration-risks",[4313],{"nodeType":256,"value":4314,"marks":4315,"data":4317},"VMware admin console",[4316],{"type":269},{},{"nodeType":256,"value":4319,"marks":4320,"data":4321},". This enabled ransomware to be deployed at the hypervisor layer, evading host-based protections like EDR. ",[],{},{"nodeType":243,"data":4323,"content":4327},{"target":4324},{"sys":4325},{"id":4326,"type":248,"linkType":249},"7hBdHG74NaA3bQfOMpYA9o",[],{"nodeType":252,"data":4329,"content":4330},{},[4331],{"nodeType":256,"value":4332,"marks":4333,"data":4336},"Jaguar Land Rover (2025)",[4334,4335],{"type":333},{"type":269},{},{"nodeType":252,"data":4338,"content":4339},{},[4340],{"nodeType":256,"value":4341,"marks":4342,"data":4343},"Attackers compromised highly privileged admin accounts via a help desk scam, which they leveraged to access and deploy ransomware to all aspects of Jaguar’s business, from CAD and engineering software, to payments tracking, to customer car delivery, using similar techniques to the Marks & Spencer breach. ",[],{},{"nodeType":243,"data":4345,"content":4349},{"target":4346},{"sys":4347},{"id":4348,"type":248,"linkType":249},"6s1X2fo4K9EeVLBmHm4YXb",[],{"nodeType":322,"data":4351,"content":4352},{},[],{"nodeType":614,"data":4354,"content":4355},{},[4356],{"nodeType":256,"value":4357,"marks":4358,"data":4360},"Malicious OAuth integrations",[4359],{"type":333},{},{"nodeType":252,"data":4362,"content":4363},{},[4364],{"nodeType":256,"value":4365,"marks":4366,"data":4369},"Salesforce & Salesloft (1000+ customers) (2025)",[4367,4368],{"type":333},{"type":269},{},{"nodeType":252,"data":4371,"content":4372},{},[4373],{"nodeType":256,"value":4374,"marks":4375,"data":4376},"A vast campaign against Salesforce customers resulted in the compromise of 1000+ Salesforce tenants (according to the attacker) with more than 1.5 billion records stolen. This campaign can consisted of three phases:",[],{},{"nodeType":460,"data":4378,"content":4379},{},[4380,4395,4410],{"nodeType":464,"data":4381,"content":4382},{},[4383],{"nodeType":252,"data":4384,"content":4385},{},[4386,4391],{"nodeType":256,"value":4387,"marks":4388,"data":4390},"Phase 1:",[4389],{"type":333},{},{"nodeType":256,"value":4392,"marks":4393,"data":4394}," The attacker conducted a large-scale vishing campaign against Salesforce customers, calling up users and socially engineering them into connecting a malicious version of the “Data Loader” app into their tenant. This was in fact an attacker-controlled app that enabled data to be mass-exfiltrated via API. ",[],{},{"nodeType":464,"data":4396,"content":4397},{},[4398],{"nodeType":252,"data":4399,"content":4400},{},[4401,4406],{"nodeType":256,"value":4402,"marks":4403,"data":4405},"Phase 2: ",[4404],{"type":333},{},{"nodeType":256,"value":4407,"marks":4408,"data":4409},"The attacker conducted a supply-chain compromise against customers of Salesloft. Users of Salesloft’s “Drift” integration were impacted by attackers stealing access tokens from Salesloft’s AWS environment. This integration allowed the attacker to steal data from customers that had deployed Drift to connected environments — namely, Salesforce, and Google Workspace. ",[],{},{"nodeType":464,"data":4411,"content":4412},{},[4413],{"nodeType":252,"data":4414,"content":4415},{},[4416,4421,4425,4433],{"nodeType":256,"value":4417,"marks":4418,"data":4420},"Phase 3:",[4419],{"type":333},{},{"nodeType":256,"value":4422,"marks":4423,"data":4424}," The attacker then conducted a separate supply-chain compromise involving Gainsight (allegedly using OAuth tokens stolen in the Salesloft attack) which enabled them to ",[],{},{"nodeType":261,"data":4426,"content":4428},{"uri":4427},"https://www.bleepingcomputer.com/news/security/salesforce-investigates-customer-data-theft-via-gainsight-breach/",[4429],{"nodeType":256,"value":4430,"marks":4431,"data":4432},"breach a further 285 Salesforce instances",[],{},{"nodeType":256,"value":4434,"marks":4435,"data":4436}," using stolen OAuth tokens from Gainsight's integrations. ",[],{},{"nodeType":243,"data":4438,"content":4442},{"target":4439},{"sys":4440},{"id":4441,"type":248,"linkType":249},"3TwjpVKQ42SwQRhvGFbZdn",[],{"nodeType":322,"data":4444,"content":4445},{},[],{"nodeType":614,"data":4447,"content":4448},{},[4449],{"nodeType":256,"value":4450,"marks":4451,"data":4453},"Malicious browser extensions",[4452],{"type":333},{},{"nodeType":252,"data":4455,"content":4456},{},[4457],{"nodeType":256,"value":4458,"marks":4459,"data":4462},"CyberHaven (2024)",[4460,4461],{"type":333},{"type":269},{},{"nodeType":252,"data":4464,"content":4465},{},[4466],{"nodeType":256,"value":4467,"marks":4468,"data":4469},"Hackers phished a CyberHaven extension developer and uploaded a malicious version of the CyberHaven extension to the Chrome Web Store, leading to customer data breaches where installed in user browsers, impacting CyberHaven’s estimated ~400 business customers. This was part of a broader campaign that targeted 35 Chrome extensions, collectively impacting over 2.5 million users.",[],{},{"nodeType":243,"data":4471,"content":4475},{"target":4472},{"sys":4473},{"id":4474,"type":248,"linkType":249},"4ErDI0xi0Vj2Zrk8Qsb2NB",[],{"nodeType":322,"data":4477,"content":4478},{},[],{"nodeType":326,"data":4480,"content":4481},{},[4482],{"nodeType":256,"value":4483,"marks":4484,"data":4486},"The bigger picture",[4485],{"type":333},{},{"nodeType":252,"data":4488,"content":4489},{},[4490],{"nodeType":256,"value":4491,"marks":4492,"data":4493},"Scattered Lapsus$ Hunters are dominating the headlines right now, but they aren’t the only attackers using these modern techniques and consciously evading established security controls. ",[],{},{"nodeType":252,"data":4495,"content":4496},{},[4497],{"nodeType":256,"value":4498,"marks":4499,"data":4500},"Threat reports agree that attackers are steering away from traditional exploit and malware-driven breaches towards identities:",[],{},{"nodeType":460,"data":4502,"content":4503},{},[4504,4526,4548],{"nodeType":464,"data":4505,"content":4506},{},[4507],{"nodeType":252,"data":4508,"content":4509},{},[4510,4514,4522],{"nodeType":256,"value":4511,"marks":4512,"data":4513},"Identity-based attacks surged 32% in the last year, while 97% of identity attacks are password-based, driven by credential leaks and infostealer malware. (",[],{},{"nodeType":261,"data":4515,"content":4517},{"uri":4516},"https://cdn-dynmedia-1.microsoft.com/is/content/microsoftcorp/microsoft/msc/documents/presentations/CSR/Microsoft-Digital-Defense-Report-2025.pdf#page=1",[4518],{"nodeType":256,"value":479,"marks":4519,"data":4521},[4520],{"type":269},{},{"nodeType":256,"value":4523,"marks":4524,"data":4525},")",[],{},{"nodeType":464,"data":4527,"content":4528},{},[4529],{"nodeType":252,"data":4530,"content":4531},{},[4532,4536,4545],{"nodeType":256,"value":4533,"marks":4534,"data":4535},"79% of detections were malware-free in the last year, up from 40% in 2019. (",[],{},{"nodeType":261,"data":4537,"content":4539},{"uri":4538},"https://www.crowdstrike.com/en-gb/global-threat-report/",[4540],{"nodeType":256,"value":4541,"marks":4542,"data":4544},"CrowdStrike",[4543],{"type":269},{},{"nodeType":256,"value":4523,"marks":4546,"data":4547},[],{},{"nodeType":464,"data":4549,"content":4550},{},[4551],{"nodeType":252,"data":4552,"content":4553},{},[4554,4558,4567],{"nodeType":256,"value":4555,"marks":4556,"data":4557},"Credential abuse and phishing combined accounted for 38% of breaches, making identity the primary breach vector observed. (",[],{},{"nodeType":261,"data":4559,"content":4561},{"uri":4560},"https://www.verizon.com/business/resources/reports/dbir/",[4562],{"nodeType":256,"value":4563,"marks":4564,"data":4566},"Verizon",[4565],{"type":269},{},{"nodeType":256,"value":4523,"marks":4568,"data":4569},[],{},{"nodeType":252,"data":4571,"content":4572},{},[4573],{"nodeType":256,"value":4574,"marks":4575,"data":4576},"And other public breaches from this year alone demonstrate similar TTPs from outside of the Scattered Lapsus$ Hunters orbit:",[],{},{"nodeType":460,"data":4578,"content":4579},{},[4580,4595,4610,4625],{"nodeType":464,"data":4581,"content":4582},{},[4583],{"nodeType":252,"data":4584,"content":4585},{},[4586,4591],{"nodeType":256,"value":4587,"marks":4588,"data":4590},"Nikkei",[4589],{"type":333},{},{"nodeType":256,"value":4592,"marks":4593,"data":4594},": Japanese publishing giant Nikkei’s Slack messaging platform was compromised using stolen credentials, leaking the names, email addresses, and chat histories for 17,368 individuals registered on Slack.",[],{},{"nodeType":464,"data":4596,"content":4597},{},[4598],{"nodeType":252,"data":4599,"content":4600},{},[4601,4606],{"nodeType":256,"value":4602,"marks":4603,"data":4605},"Evertec",[4604],{"type":333},{},{"nodeType":256,"value":4607,"marks":4608,"data":4609},": Hackers tried to steal $130 million from Evertec’s Brazilian subsidiary Sinqia S.A.after gaining unauthorized access to its environment on the central bank’s real-time payment system (Pix) using stolen credentials.",[],{},{"nodeType":464,"data":4611,"content":4612},{},[4613],{"nodeType":252,"data":4614,"content":4615},{},[4616,4621],{"nodeType":256,"value":4617,"marks":4618,"data":4620},"Hy-Vee:",[4619],{"type":333},{},{"nodeType":256,"value":4622,"marks":4623,"data":4624}," Was hit with a data breach after hackers logged in with stolen credentials, exposing 53GB of sensitive data.",[],{},{"nodeType":464,"data":4626,"content":4627},{},[4628],{"nodeType":252,"data":4629,"content":4630},{},[4631,4636],{"nodeType":256,"value":4632,"marks":4633,"data":4635},"Scania: ",[4634],{"type":333},{},{"nodeType":256,"value":4637,"marks":4638,"data":4639},"Automotive giant Scania confirmed it suffered a cybersecurity incident where threat actors used compromised credentials to breach its Financial Services systems and steal insurance claim documents.",[],{},{"nodeType":252,"data":4641,"content":4642},{},[4643],{"nodeType":256,"value":4644,"marks":4645,"data":4646},"Scattered Lapsus$ Hunters may be grabbing the headlines — but this a huge movement in a vast and flexible community of attackers. And criminals around the world are learning from their success. ",[],{},{"nodeType":322,"data":4648,"content":4649},{},[],{"nodeType":326,"data":4651,"content":4652},{},[4653],{"nodeType":256,"value":4654,"marks":4655,"data":4657},"Lessons learned",[4656],{"type":333},{},{"nodeType":252,"data":4659,"content":4660},{},[4661],{"nodeType":256,"value":4662,"marks":4663,"data":4664},"The common thread with all of these attacks is that they are evading established security controls by targeting applications directly, over the internet, via account takeover.",[],{},{"nodeType":252,"data":4666,"content":4667},{},[4668],{"nodeType":256,"value":4669,"marks":4670,"data":4671},"Clearly, the success of these attacks shows the limitations of multiple control layers. Endpoint and network layer controls have no visibility of this attack surface. Identity-focused controls are being undermined by ghost logins and shadow IT. And the limitations of cloud security controls in their ability to encompass all apps, and detect and stop malicious actions in real-time (that often blend in seamlessly with normal user activity). ",[],{},{"nodeType":243,"data":4673,"content":4677},{"target":4674},{"sys":4675},{"id":4676,"type":248,"linkType":249},"4Dg3fZEGf7ShyQJ8jlNDME",[],{"nodeType":322,"data":4679,"content":4680},{},[],{"nodeType":326,"data":4682,"content":4683},{},[4684],{"nodeType":256,"value":4685,"marks":4686,"data":4688},"How Push can help",[4687],{"type":333},{},{"nodeType":252,"data":4690,"content":4691},{},[4692],{"nodeType":256,"value":4693,"marks":4694,"data":4695},"Stopping attacks that are designed to evade established controls is in our DNA — it’s the reason Push was founded. ",[],{},{"nodeType":252,"data":4697,"content":4698},{},[4699],{"nodeType":256,"value":4700,"marks":4701,"data":4702},"The browser is the gateway to to the apps and identities that attackers are now targeting, with many attacks taking place inside the user’s browser — whether that’s entering credentials onto a phishing page, approving a malicious OAuth grant, installing a risky browser extension, or insecurely accessing an app with a weak password and no MFA. ",[],{},{"nodeType":252,"data":4704,"content":4705},{},[4706],{"nodeType":256,"value":4707,"marks":4708,"data":4709},"Push’s browser-based security platform provides comprehensive detection and response capabilities against attacks like AiTM phishing, credential stuffing, malicious browser extensions, malicious OAuth grants, ClickFix, and session hijacking. You don’t need to wait until it all goes wrong either — you can use Push to proactively find and fix vulnerabilities across the apps that your employees use, like ghost logins, SSO coverage gaps, MFA gaps, vulnerable passwords, and more to harden your attack surface.",[],{},{"nodeType":252,"data":4711,"content":4712},{},[4713,4716,4723,4727,4734],{"nodeType":256,"value":3222,"marks":4714,"data":4715},[],{},{"nodeType":261,"data":4717,"content":4718},{"uri":3227},[4719],{"nodeType":256,"value":3230,"marks":4720,"data":4722},[4721],{"type":269},{},{"nodeType":256,"value":4724,"marks":4725,"data":4726}," or ",[],{},{"nodeType":261,"data":4728,"content":4729},{"uri":3252},[4730],{"nodeType":256,"value":3255,"marks":4731,"data":4733},[4732],{"type":269},{},{"nodeType":256,"value":3260,"marks":4735,"data":4736},[],{},"\"Scattered Lapsus$ Hunters\" — how modern attackers exploit the gaps in your security stack ","How Scattered Lapsus$ Hunters breaches demonstrate the evolution of attacker TTPs, shaping the future of cyber attacks.","2025-11-13T00:00:00.000Z","scattered-lapsus-hunters",{"items":4742},[4743,4747],{"sys":4744,"name":4746},{"id":4745},"6A5RXS31ZQx3PwryGb1IMy","Browser-based attacks",{"sys":4748,"name":4750},{"id":4749},"4ksQNCFeBf8H4QIORqpRLw","Detection & response",{"items":4752},[4753],{"fullName":4754,"firstName":4755,"jobTitle":4756,"profilePicture":4757},"Dan Green","Dan","Threat Research",{"url":4758},"https://images.ctfassets.net/y1cdw1ablpvd/7jik1VhFgA3kgzXBXTm2Vw/fcd8c171da644903d0827eafcfbcaad0/Dan_Headshot_2025.png",{"__typename":3782,"sys":4760,"content":4762,"title":5612,"synopsis":5613,"hashTags":62,"publishedDate":5614,"slug":5615,"tagsCollection":5616,"authorsCollection":5622},{"id":4761},"71EaaK7lfl6bQBbkAU0qjv",{"json":4763},{"nodeType":239,"data":4764,"content":4765},{},[4766,4774,4781,4788,4795,4807,4814,4820,4826,4829,4837,4844,4851,4857,4877,4884,4890,4897,4903,4910,4953,4959,4965,4972,4979,4982,4990,5010,5017,5023,5042,5048,5068,5075,5078,5086,5093,5138,5150,5153,5161,5178,5185,5201,5208,5215,5221,5228,5231,5239,5246,5299,5306,5309,5317,5323,5330,5337,5343,5350,5383,5390,5397,5403,5410,5416,5424,5444,5451,5484,5491,5524,5527,5535,5542,5548,5567,5574,5600,5606],{"nodeType":326,"data":4767,"content":4768},{},[4769],{"nodeType":256,"value":4770,"marks":4771,"data":4773},"Introducing “ConsentFix” — a new kind of phishing attack",[4772],{"type":333},{},{"nodeType":252,"data":4775,"content":4776},{},[4777],{"nodeType":256,"value":4778,"marks":4779,"data":4780},"The Push browser agent recently detected and blocked a new attack technique seen targeting several Push customers. ",[],{},{"nodeType":252,"data":4782,"content":4783},{},[4784],{"nodeType":256,"value":4785,"marks":4786,"data":4787},"This is a new kind of browser-based attack technique that takes over user accounts with a simple copy and paste. If you’re already logged into the app in your browser, you don’t even need to supply creds, or pass an MFA check — meaning it effectively circumvents phishing-resistant auth like passkeys too.",[],{},{"nodeType":252,"data":4789,"content":4790},{},[4791],{"nodeType":256,"value":4792,"marks":4793,"data":4794},"This is so different from the AiTM phish kits we usually come up against that we felt it deserved a new name. ",[],{},{"nodeType":252,"data":4796,"content":4797},{},[4798,4803],{"nodeType":256,"value":4799,"marks":4800,"data":4802},"Enter: ConsentFix. ",[4801],{"type":333},{},{"nodeType":256,"value":4804,"marks":4805,"data":4806},"This attack shares a lot of similarities with ClickFix/FileFix, AiTM phishing, and OAuth Consent Phishing. You can think of this as a browser-native ClickFix attack that phishes an OAuth token on a target app by getting the victim to copy and paste a URL containing OAuth key material into a phishing page. ",[],{},{"nodeType":252,"data":4808,"content":4809},{},[4810],{"nodeType":256,"value":4811,"marks":4812,"data":4813},"The campaign we detected looks to be specifically targeting Microsoft accounts by abusing the Azure CLI OAuth app. Essentially, the attacker tricks the victim into logging into Azure CLI, by generating an OAuth authorization code — visible in a localhost URL — and then pasting that URL (including the code) into an attacker-controlled page. This then creates an OAuth connection between the victim’s Microsoft account and the attacker’s Azure CLI instance. ",[],{},{"nodeType":243,"data":4815,"content":4819},{"target":4816},{"sys":4817},{"id":4818,"type":248,"linkType":249},"5GTnqWIbmraz8HZeHMybrP",[],{"nodeType":243,"data":4821,"content":4825},{"target":4822},{"sys":4823},{"id":4824,"type":248,"linkType":249},"1lcjX5q3b1bsuhyOXKvJpW",[],{"nodeType":322,"data":4827,"content":4828},{},[],{"nodeType":326,"data":4830,"content":4831},{},[4832],{"nodeType":256,"value":4833,"marks":4834,"data":4836},"How ConsentFix works",[4835],{"type":333},{},{"nodeType":252,"data":4838,"content":4839},{},[4840],{"nodeType":256,"value":4841,"marks":4842,"data":4843},"In all of the examples we saw, the victim accessed a malicious or compromised webpage via Google Search. The vast majority of the sites we’ve seen associated with the campaign are legitimate, compromised websites with high domain reputation that are easily findable via search engines.",[],{},{"nodeType":252,"data":4845,"content":4846},{},[4847],{"nodeType":256,"value":4848,"marks":4849,"data":4850},"The attacker had injected a fake Cloudflare Turnstile into the compromised websites, requiring an email address to be supplied in order to proceed. ",[],{},{"nodeType":243,"data":4852,"content":4856},{"target":4853},{"sys":4854},{"id":4855,"type":248,"linkType":249},"39jEjeLqOYIkGc4o9w3MuX",[],{"nodeType":252,"data":4858,"content":4859},{},[4860,4864,4873],{"nodeType":256,"value":4861,"marks":4862,"data":4863},"This acted as a form of ",[],{},{"nodeType":261,"data":4865,"content":4867},{"uri":4866},"https://phishing-techniques.pushsecurity.com/techniques/conditional-loading/",[4868],{"nodeType":256,"value":4869,"marks":4870,"data":4872},"conditional loading",[4871],{"type":269},{},{"nodeType":256,"value":4874,"marks":4875,"data":4876}," that would only continue if a valid email address and domain was supplied, designed to prevent the page from being analyzed by security bots, analysts, and low-value accounts that run the risk of exposing the campaign before the intended recipient(s) can be phished. ",[],{},{"nodeType":252,"data":4878,"content":4879},{},[4880],{"nodeType":256,"value":4881,"marks":4882,"data":4883},"If a domain not on the target list was provided, the victim was passed back to the original website and the attack did not progress to the next stage. Further, once the check has concluded per IP, the phishing page will no longer activate, even a different email is provided.  ",[],{},{"nodeType":243,"data":4885,"content":4889},{"target":4886},{"sys":4887},{"id":4888,"type":248,"linkType":249},"7ttmGnTzi9j87tBXfyFcOA",[],{"nodeType":252,"data":4891,"content":4892},{},[4893],{"nodeType":256,"value":4894,"marks":4895,"data":4896},"After entering an approved email address, the next stage was loaded, prompting the victim to complete a set of instructions on the page to continue.",[],{},{"nodeType":243,"data":4898,"content":4902},{"target":4899},{"sys":4900},{"id":4901,"type":248,"linkType":249},"2oHYNoMgAz6MdgLlcWjbaB",[],{"nodeType":252,"data":4904,"content":4905},{},[4906],{"nodeType":256,"value":4907,"marks":4908,"data":4909},"To complete the attack, the victim must:",[],{},{"nodeType":460,"data":4911,"content":4912},{},[4913,4923,4933,4943],{"nodeType":464,"data":4914,"content":4915},{},[4916],{"nodeType":252,"data":4917,"content":4918},{},[4919],{"nodeType":256,"value":4920,"marks":4921,"data":4922},"Click the “Sign In” button. This opens a new tab that loads a legitimate Microsoft URL associated with the user account/email used to access the page.",[],{},{"nodeType":464,"data":4924,"content":4925},{},[4926],{"nodeType":252,"data":4927,"content":4928},{},[4929],{"nodeType":256,"value":4930,"marks":4931,"data":4932},"If the user is already logged into Microsoft in their browser, they simply need to select their MS account from the dropdown. Otherwise, they will be required to login via the legitimate Microsoft login URL (no phishing takes place at this stage). ",[],{},{"nodeType":464,"data":4934,"content":4935},{},[4936],{"nodeType":252,"data":4937,"content":4938},{},[4939],{"nodeType":256,"value":4940,"marks":4941,"data":4942},"Once logged into legit Microsoft or the account is selected from the dropdown, the user is redirected to localhost, which generates a URL containing a code associated with the user’s Microsoft account. ",[],{},{"nodeType":464,"data":4944,"content":4945},{},[4946],{"nodeType":252,"data":4947,"content":4948},{},[4949],{"nodeType":256,"value":4950,"marks":4951,"data":4952},"To complete the phish, the victim copies the URL and pastes it onto the original page. ",[],{},{"nodeType":243,"data":4954,"content":4958},{"target":4955},{"sys":4956},{"id":4957,"type":248,"linkType":249},"7zendMbmCViGwtEpUQvq6y",[],{"nodeType":243,"data":4960,"content":4964},{"target":4961},{"sys":4962},{"id":4963,"type":248,"linkType":249},"1eZOs7hXi9FzCE92QEP6xh",[],{"nodeType":252,"data":4966,"content":4967},{},[4968],{"nodeType":256,"value":4969,"marks":4970,"data":4971},"Once the steps are completed, the victim has granted the attacker access to their Microsoft account via Azure CLI. ",[],{},{"nodeType":252,"data":4973,"content":4974},{},[4975],{"nodeType":256,"value":4976,"marks":4977,"data":4978},"At this point, the attacker has effective control of the victim’s Microsoft account, but without ever needing to phish a password, or pass an MFA check. In fact, if the user was already logged in to their Microsoft account (i.e. they had an active session) no login is required at all. ",[],{},{"nodeType":322,"data":4980,"content":4981},{},[],{"nodeType":326,"data":4983,"content":4984},{},[4985],{"nodeType":256,"value":4986,"marks":4987,"data":4989},"The next evolution of ClickFix?",[4988],{"type":333},{},{"nodeType":252,"data":4991,"content":4992},{},[4993,4997,5006],{"nodeType":256,"value":4994,"marks":4995,"data":4996},"When we presented ",[],{},{"nodeType":261,"data":4998,"content":5000},{"uri":4999},"https://pushsecurity.com/webinar/clickfix",[5001],{"nodeType":256,"value":5002,"marks":5003,"data":5005},"our last webinar on ClickFix",[5004],{"type":269},{},{"nodeType":256,"value":5007,"marks":5008,"data":5009},", we predicted that the next evolution of the attack would happen entirely within the browser context. This is because any attack that touches the endpoint (a traditionally much better protected surface) is way more likely to be detected. And with many ClickFix attacks being used to deliver infostealer malware, these attacks are really trying to get back into the browser anyway — to steal credentials and sessions stored there. ",[],{},{"nodeType":252,"data":5011,"content":5012},{},[5013],{"nodeType":256,"value":5014,"marks":5015,"data":5016},"Let’s take a closer look at the page — if you follow Push research, you might be getting déjà vu. ",[],{},{"nodeType":243,"data":5018,"content":5022},{"target":5019},{"sys":5020},{"id":5021,"type":248,"linkType":249},"1vMZCJ92IxFdR1EzzCOOvb",[],{"nodeType":252,"data":5024,"content":5025},{},[5026,5030,5039],{"nodeType":256,"value":5027,"marks":5028,"data":5029},"We’ve seen this kind of embedded video player before (albeit a slicker looking one) that we blogged about as ",[],{},{"nodeType":261,"data":5031,"content":5033},{"uri":5032},"https://pushsecurity.com/blog/the-most-advanced-clickfix-yet/",[5034],{"nodeType":256,"value":5035,"marks":5036,"data":5038},"the most advanced ClickFix we’d seen",[5037],{"type":269},{},{"nodeType":256,"value":3260,"marks":5040,"data":5041},[],{},{"nodeType":243,"data":5043,"content":5047},{"target":5044},{"sys":5045},{"id":5046,"type":248,"linkType":249},"ID7VKJNOZk729P5zBOBjZ",[],{"nodeType":252,"data":5049,"content":5050},{},[5051,5055,5064],{"nodeType":256,"value":5052,"marks":5053,"data":5054},"Another similarity with ClickFix campaigns we’ve investigated is the use of Google Search as a delivery vector. 4 in 5 ClickFix attacks intercepted by Push came via Google Search, with attackers using ",[],{},{"nodeType":261,"data":5056,"content":5058},{"uri":5057},"https://phishing-techniques.pushsecurity.com/techniques/malvertising/",[5059],{"nodeType":256,"value":5060,"marks":5061,"data":5063},"malvertising",[5062],{"type":269},{},{"nodeType":256,"value":5065,"marks":5066,"data":5067}," and either compromised or custom vibe-coded websites to intercept users as they browse the internet. ",[],{},{"nodeType":252,"data":5069,"content":5070},{},[5071],{"nodeType":256,"value":5072,"marks":5073,"data":5074},"So it seems highly likely that this is a kind of browser-native evolution of ClickFix that shares many elements with typical ClickFix attacks, and is probably used by the same groups of attackers.",[],{},{"nodeType":322,"data":5076,"content":5077},{},[],{"nodeType":326,"data":5079,"content":5080},{},[5081],{"nodeType":256,"value":5082,"marks":5083,"data":5085},"OAuth shenanigans via Azure CLI",[5084],{"type":333},{},{"nodeType":252,"data":5087,"content":5088},{},[5089],{"nodeType":256,"value":5090,"marks":5091,"data":5092},"The clever use of Azure CLI and OAuth consent abuse is another clever iteration on previous techniques. ",[],{},{"nodeType":252,"data":5094,"content":5095},{},[5096,5100,5109,5112,5121,5125,5134],{"nodeType":256,"value":5097,"marks":5098,"data":5099},"We’ve previously seen ",[],{},{"nodeType":261,"data":5101,"content":5103},{"uri":5102},"https://phishing-techniques.pushsecurity.com/techniques/consent-phishing/",[5104],{"nodeType":256,"value":5105,"marks":5106,"data":5108},"consent phishing",[5107],{"type":269},{},{"nodeType":256,"value":410,"marks":5110,"data":5111},[],{},{"nodeType":261,"data":5113,"content":5115},{"uri":5114},"https://phishing-techniques.pushsecurity.com/techniques/device-code-phishing/",[5116],{"nodeType":256,"value":5117,"marks":5118,"data":5120},"device code phishing",[5119],{"type":269},{},{"nodeType":256,"value":5122,"marks":5123,"data":5124}," attacks where attackers have tricked victims into connecting malicious external apps into their tenant via OAuth, but this is becoming increasingly difficult in core enterprise cloud environments like Azure due to ",[],{},{"nodeType":261,"data":5126,"content":5128},{"uri":5127},"https://learn.microsoft.com/en-us/microsoft-365/admin/misc/user-consent?view=o365-worldwide",[5129],{"nodeType":256,"value":5130,"marks":5131,"data":5133},"stricter default configs",[5132],{"type":269},{},{"nodeType":256,"value":5135,"marks":5136,"data":5137},". However, since Azure CLI is a first-party Microsoft app, it is implicitly trusted in Entra ID, and is excluded from these restrictions. ",[],{},{"nodeType":252,"data":5139,"content":5140},{},[5141,5145],{"nodeType":256,"value":5142,"marks":5143,"data":5144},"First-party apps like Azure CLI are trusted by default in all tenants, allowed to request permissions without admin approval, and cannot be deleted or blocked. They can also be granted special permissions, such as tenant-wide service permissions (without needing admin approval), use of legacy or undocumented graph scopes, internal scopes for Microsoft client operations, and permissions for Office/Entra admin functions. ",[],{},{"nodeType":256,"value":5146,"marks":5147,"data":5149},"This makes Azure CLI a prime target for attackers, and significantly more exploitable than when connecting a third-party app. ",[5148],{"type":333},{},{"nodeType":322,"data":5151,"content":5152},{},[],{"nodeType":326,"data":5154,"content":5155},{},[5156],{"nodeType":256,"value":5157,"marks":5158,"data":5160},"Advanced detection evasion techniques",[5159],{"type":333},{},{"nodeType":252,"data":5162,"content":5163},{},[5164,5168,5174],{"nodeType":256,"value":5165,"marks":5166,"data":5167},"This campaign features some of the most advanced ",[],{},{"nodeType":261,"data":5169,"content":5170},{"uri":707},[5171],{"nodeType":256,"value":710,"marks":5172,"data":5173},[],{},{"nodeType":256,"value":5175,"marks":5176,"data":5177}," we've seen in the wild. ",[],{},{"nodeType":252,"data":5179,"content":5180},{},[5181],{"nodeType":256,"value":5182,"marks":5183,"data":5184},"As well as the use of Google Search to deliver the lure, and bot protection to prevent security tools from analyzing the page, there were multiple layers of anti-analysis techniques to navigate.",[],{},{"nodeType":252,"data":5186,"content":5187},{},[5188,5192,5197],{"nodeType":256,"value":5189,"marks":5190,"data":5191},"We already mentioned the use of selective targeting based on email addresses and domain names. But all sites involved in the campaign also have synchronized IP blocking — meaning if you visit one site and are served one of the associated phishing pages, the phish will never be served again, ",[],{},{"nodeType":256,"value":5193,"marks":5194,"data":5196},"across any of the sites linked to the campaign",[5195],{"type":333},{},{"nodeType":256,"value":5198,"marks":5199,"data":5200},". When you visit any of the sites again, the phish won't trigger, and it can be browsed as normal. ",[],{},{"nodeType":252,"data":5202,"content":5203},{},[5204],{"nodeType":256,"value":5205,"marks":5206,"data":5207},"On the backend, there are multiple checks based on your IP and identifiers unique to your session. Unless all of the conditions are met, certain JavaScript packages won't be served — preventing full inspection of the page to detect malicious elements. ",[],{},{"nodeType":252,"data":5209,"content":5210},{},[5211],{"nodeType":256,"value":5212,"marks":5213,"data":5214},"If the conditions aren't met, the page may not load the Cloudflare Turnstile check at all, or will redirect you back to the site to continue browsing as normal.",[],{},{"nodeType":243,"data":5216,"content":5220},{"target":5217},{"sys":5218},{"id":5219,"type":248,"linkType":249},"5v0zDoscA6pYLBfkXrNtIH",[],{"nodeType":252,"data":5222,"content":5223},{},[5224],{"nodeType":256,"value":5225,"marks":5226,"data":5227},"All of these make it incredibly hard to detect and block these attacks ahead of time when relying on URL-based checks and traffic analysis.",[],{},{"nodeType":322,"data":5229,"content":5230},{},[],{"nodeType":326,"data":5232,"content":5233},{},[5234],{"nodeType":256,"value":5235,"marks":5236,"data":5238},"Key takeaways",[5237],{"type":333},{},{"nodeType":252,"data":5240,"content":5241},{},[5242],{"nodeType":256,"value":5243,"marks":5244,"data":5245},"ConsentFix is a dangerous evolution of ClickFix and consent phishing that is incredibly hard for traditional security tools to detect and block, as:",[],{},{"nodeType":460,"data":5247,"content":5248},{},[5249,5259,5269,5279,5289],{"nodeType":464,"data":5250,"content":5251},{},[5252],{"nodeType":252,"data":5253,"content":5254},{},[5255],{"nodeType":256,"value":5256,"marks":5257,"data":5258},"The attack happens entirely inside the browser context, removing one of the key detection opportunities for ClickFix (because it doesn’t touch the endpoint).",[],{},{"nodeType":464,"data":5260,"content":5261},{},[5262],{"nodeType":252,"data":5263,"content":5264},{},[5265],{"nodeType":256,"value":5266,"marks":5267,"data":5268},"Delivering the lure via a Google Search watering hole attack completely circumvents email-based anti-phishing controls.",[],{},{"nodeType":464,"data":5270,"content":5271},{},[5272],{"nodeType":252,"data":5273,"content":5274},{},[5275],{"nodeType":256,"value":5276,"marks":5277,"data":5278},"Targeting a first-party app like Azure CLI means that many of the mitigating controls available for third-party app integrations do not apply — making this attack way harder to prevent.",[],{},{"nodeType":464,"data":5280,"content":5281},{},[5282],{"nodeType":252,"data":5283,"content":5284},{},[5285],{"nodeType":256,"value":5286,"marks":5287,"data":5288},"Because there’s no login required, phishing-resistant authentication controls like passkeys have no impact on this attack. ",[],{},{"nodeType":464,"data":5290,"content":5291},{},[5292],{"nodeType":252,"data":5293,"content":5294},{},[5295],{"nodeType":256,"value":5296,"marks":5297,"data":5298},"The use of advanced detection evasion techniques makes this attack difficult to investigate, meaning these attacks are going undetected. ",[],{},{"nodeType":252,"data":5300,"content":5301},{},[5302],{"nodeType":256,"value":5303,"marks":5304,"data":5305},"We’re sure to see more examples of ConsentFix in future. We’ll be monitoring to see how attackers adapt in terms of integrating these capabilities with common as-a-Service offerings to make them more widespread, and whether the scope extends further beyond Microsoft / Azure CLI targets in the future to target other enterprise cloud ecosystems. ",[],{},{"nodeType":322,"data":5307,"content":5308},{},[],{"nodeType":326,"data":5310,"content":5311},{},[5312],{"nodeType":256,"value":5313,"marks":5314,"data":5316},"Recommendations",[5315],{"type":333},{},{"nodeType":243,"data":5318,"content":5322},{"target":5319},{"sys":5320},{"id":5321,"type":248,"linkType":249},"3aBCwdB2aNnLRxRN5RrshC",[],{"nodeType":252,"data":5324,"content":5325},{},[5326],{"nodeType":256,"value":5327,"marks":5328,"data":5329},"On the backend, exploitation of this attack will lead to login events being observed to the Microsoft Azure CLI app. It’s likely that any legitimate use of this will most likely be limited to system administrators and possibly developers. Therefore, logins outside of these groups will be inherently more suspicious.",[],{},{"nodeType":252,"data":5331,"content":5332},{},[5333],{"nodeType":256,"value":5334,"marks":5335,"data":5336},"Additionally, it’s possible that aspects of the logins themselves will be different between legitimate Azure CLI use and exploitation of this attack. For example, see the following logs from a lab environment. The login events with an application of  “Microsoft Azure CLI” and a resource of “Azure Resource Manager” was legitimate use of the Azure CLI using the powershell CLI framework. Conversely, the login event with the Resource of “Windows Azure Active Directory” was produced by logging in using the method used by the phishing kit.",[],{},{"nodeType":243,"data":5338,"content":5342},{"target":5339},{"sys":5340},{"id":5341,"type":248,"linkType":249},"6ie0nkk6XbgwidfwmiGwL4",[],{"nodeType":252,"data":5344,"content":5345},{},[5346],{"nodeType":256,"value":5347,"marks":5348,"data":5349},"There is no guarantee this can be used to differentiate between legitimate and malicious examples, but it’s another data point to consider. If searching logs you may wish to use the respective GUIDs for these:",[],{},{"nodeType":460,"data":5351,"content":5352},{},[5353,5368],{"nodeType":464,"data":5354,"content":5355},{},[5356],{"nodeType":252,"data":5357,"content":5358},{},[5359,5364],{"nodeType":256,"value":5360,"marks":5361,"data":5363},"Application ID",[5362],{"type":333},{},{"nodeType":256,"value":5365,"marks":5366,"data":5367}," = 04b07795-8ddb-461a-bbee-02f9e1bf7b46",[],{},{"nodeType":464,"data":5369,"content":5370},{},[5371],{"nodeType":252,"data":5372,"content":5373},{},[5374,5379],{"nodeType":256,"value":5375,"marks":5376,"data":5378},"Resource ID",[5377],{"type":333},{},{"nodeType":256,"value":5380,"marks":5381,"data":5382}," = 00000002-0000-0000-c000-000000000000",[],{},{"nodeType":252,"data":5384,"content":5385},{},[5386],{"nodeType":256,"value":5387,"marks":5388,"data":5389},"For interactive logins, like above, you cannot rely on looking for logins from suspicious IP addresses or locations. The login itself occurs from the victims browser directly to Microsoft, and so the IP addresses associated with these events will be the legitimate IP used by the target user, not by the threat actor. ",[],{},{"nodeType":252,"data":5391,"content":5392},{},[5393],{"nodeType":256,"value":5394,"marks":5395,"data":5396},"However, for non-interactive logins and other audit logs for actions taken, you may be able to uncover unusual IP addresses that differ from the original interactive login. For example, here are some non-interactive logins that were observed immediately after compromise that came from different IP addresses in both the US and Indonesia.",[],{},{"nodeType":243,"data":5398,"content":5402},{"target":5399},{"sys":5400},{"id":5401,"type":248,"linkType":249},"TD3YeWqgGIWIWM8FRHU4o",[],{"nodeType":252,"data":5404,"content":5405},{},[5406],{"nodeType":256,"value":5407,"marks":5408,"data":5409},"Interestingly, they differ in which resources they accessed, with one accessing the Windows Azure Active Directory resource ID like the interactive login, but two others accessing the Microsoft Intune Checkin resource ID. ",[],{},{"nodeType":243,"data":5411,"content":5415},{"target":5412},{"sys":5413},{"id":5414,"type":248,"linkType":249},"57PqDQiAiwzqkspVpROQXb",[],{"nodeType":614,"data":5417,"content":5418},{},[5419],{"nodeType":256,"value":5420,"marks":5421,"data":5423},"IoCs",[5422],{"type":333},{},{"nodeType":252,"data":5425,"content":5426},{},[5427,5431,5440],{"nodeType":256,"value":5428,"marks":5429,"data":5430},"Short-lived IoCs are of limited value when tackling modern phishing attacks due to the rate at which attackers are able to ",[],{},{"nodeType":261,"data":5432,"content":5434},{"uri":5433},"https://phishing-techniques.pushsecurity.com/techniques/domain-rotation-redirection/",[5435],{"nodeType":256,"value":5436,"marks":5437,"data":5439},"quickly spin up and rotate the sites used",[5438],{"type":269},{},{"nodeType":256,"value":5441,"marks":5442,"data":5443}," in the attack chain, often dynamically serving different URLs to site visitors. ",[],{},{"nodeType":252,"data":5445,"content":5446},{},[5447],{"nodeType":256,"value":5448,"marks":5449,"data":5450},"That said, the domains used to deliver the final phishing payload were:",[],{},{"nodeType":460,"data":5452,"content":5453},{},[5454,5464,5474],{"nodeType":464,"data":5455,"content":5456},{},[5457],{"nodeType":252,"data":5458,"content":5459},{},[5460],{"nodeType":256,"value":5461,"marks":5462,"data":5463},"hxxps://trustpointassurance.com/",[],{},{"nodeType":464,"data":5465,"content":5466},{},[5467],{"nodeType":252,"data":5468,"content":5469},{},[5470],{"nodeType":256,"value":5471,"marks":5472,"data":5473},"hxxps://fastwaycheck.com/",[],{},{"nodeType":464,"data":5475,"content":5476},{},[5477],{"nodeType":252,"data":5478,"content":5479},{},[5480],{"nodeType":256,"value":5481,"marks":5482,"data":5483},"hxxps://previewcentral.com",[],{},{"nodeType":252,"data":5485,"content":5486},{},[5487],{"nodeType":256,"value":5488,"marks":5489,"data":5490},"In addition, we recommend hunting for connections from the following IPs in Azure logs:",[],{},{"nodeType":460,"data":5492,"content":5493},{},[5494,5504,5514],{"nodeType":464,"data":5495,"content":5496},{},[5497],{"nodeType":252,"data":5498,"content":5499},{},[5500],{"nodeType":256,"value":5501,"marks":5502,"data":5503},"12.75.216.90",[],{},{"nodeType":464,"data":5505,"content":5506},{},[5507],{"nodeType":252,"data":5508,"content":5509},{},[5510],{"nodeType":256,"value":5511,"marks":5512,"data":5513},"182.3.36.223",[],{},{"nodeType":464,"data":5515,"content":5516},{},[5517],{"nodeType":252,"data":5518,"content":5519},{},[5520],{"nodeType":256,"value":5521,"marks":5522,"data":5523},"12.75.116.137",[],{},{"nodeType":322,"data":5525,"content":5526},{},[],{"nodeType":326,"data":5528,"content":5529},{},[5530],{"nodeType":256,"value":5531,"marks":5532,"data":5534},"How Push stopped the attack",[5533],{"type":333},{},{"nodeType":252,"data":5536,"content":5537},{},[5538],{"nodeType":256,"value":5539,"marks":5540,"data":5541},"Even though this was a brand new technique, Push intercepted this attack and shut it down before customers could interact with it. ",[],{},{"nodeType":243,"data":5543,"content":5547},{"target":5544},{"sys":5545},{"id":5546,"type":248,"linkType":249},"5YzpiQH974EYA5iPPZMXkV",[],{"nodeType":252,"data":5549,"content":5550},{},[5551,5555,5563],{"nodeType":256,"value":5552,"marks":5553,"data":5554},"Push doesn’t detect the redirect tricks or rely on outdated domain TI feeds. The reason we detect these attacks (which make it through all the other layers of phishing protection) is that Push sees what your users see. It doesn’t matter what ",[],{},{"nodeType":261,"data":5556,"content":5557},{"uri":707},[5558],{"nodeType":256,"value":5559,"marks":5560,"data":5562},"delivery channel or camouflage methods are used",[5561],{"type":269},{},{"nodeType":256,"value":5564,"marks":5565,"data":5566},", Push shuts the attack down in real time, as the user loads the malicious page in their web browser.",[],{},{"nodeType":252,"data":5568,"content":5569},{},[5570],{"nodeType":256,"value":5571,"marks":5572,"data":5573},"This isn’t all we do: Push’s browser-based security platform provides comprehensive detection and response capabilities against the leading cause of breaches. Push blocks browser-based attacks like AiTM phishing, credential stuffing, malicious browser extensions, ClickFix, and session hijacking. You don’t need to wait until it all goes wrong — you can also use Push to proactively find and fix vulnerabilities across the apps that your employees use, like ghost logins, SSO coverage gaps, MFA gaps, vulnerable passwords, and more to harden your identity attack surface.",[],{},{"nodeType":252,"data":5575,"content":5576},{},[5577,5580,5587,5590,5597],{"nodeType":256,"value":3222,"marks":5578,"data":5579},[],{},{"nodeType":261,"data":5581,"content":5582},{"uri":3227},[5583],{"nodeType":256,"value":3230,"marks":5584,"data":5586},[5585],{"type":269},{},{"nodeType":256,"value":4724,"marks":5588,"data":5589},[],{},{"nodeType":261,"data":5591,"content":5592},{"uri":3252},[5593],{"nodeType":256,"value":3255,"marks":5594,"data":5596},[5595],{"type":269},{},{"nodeType":256,"value":3260,"marks":5598,"data":5599},[],{},{"nodeType":243,"data":5601,"content":5605},{"target":5602},{"sys":5603},{"id":5604,"type":248,"linkType":249},"6QzB0BlVC5mstXwXHvy2c3",[],{"nodeType":252,"data":5607,"content":5608},{},[5609],{"nodeType":256,"value":29,"marks":5610,"data":5611},[],{},"ConsentFix: Analyzing a browser-native ClickFix-style attack that hijacks OAuth consent grants","Analyzing \"ConsentFix\", a new browser-native attack technique we've detected in the wild, combining OAuth consent phishing with a ClickFix-style user prompt. ","2025-12-11T00:00:00.000Z","consentfix",{"items":5617},[5618,5620],{"sys":5619,"name":4746},{"id":4745},{"sys":5621,"name":4750},{"id":4749},{"items":5623},[5624],{"fullName":232,"firstName":233,"jobTitle":234,"profilePicture":5625},{"url":236},{"__typename":3782,"sys":5627,"content":5629,"title":6241,"synopsis":6242,"hashTags":62,"publishedDate":6243,"slug":6244,"tagsCollection":6245,"authorsCollection":6251},{"id":5628},"44DXq5ZkL9XQV5Fngto0XZ",{"json":5630},{"data":5631,"content":5632,"nodeType":239},{},[5633,5650,5657,5664,5667,5675,5695,5714,5748,5754,5757,5765,5773,5780,5798,5805,5810,5816,5823,5830,5838,5845,5852,5858,5865,5885,5893,5900,5907,5927,5933,5953,5959,5966,5972,5975,5983,5990,6009,6016,6044,6051,6059,6062,6070,6077,6084,6090,6097,6142,6148,6155,6187,6193,6235],{"data":5634,"content":5635,"nodeType":252},{},[5636,5639,5646],{"data":5637,"marks":5638,"value":29,"nodeType":256},{},[],{"data":5640,"content":5641,"nodeType":261},{"uri":509},[5642],{"data":5643,"marks":5644,"value":512,"nodeType":256},{},[5645],{"type":269},{"data":5647,"marks":5648,"value":5649,"nodeType":256},{},[]," are running a large-scale hybrid vishing plus AiTM phishing campaign across several industry verticals, targeting Okta, Entra, and Google SSO platforms. ",{"data":5651,"content":5652,"nodeType":252},{},[5653],{"data":5654,"marks":5655,"value":5656,"nodeType":256},{},[],"The attacks begin with the attacker calling their victim, impersonating IT staff from their company. They offer to help the employee set up passkeys for logging into the enterprise SSO service, tricking the victim into visiting a specially crafted adversary-in-the-middle phishing site that captures their SSO credentials, MFA codes, and ultimately live session access. ",{"data":5658,"content":5659,"nodeType":252},{},[5660],{"data":5661,"marks":5662,"value":5663,"nodeType":256},{},[],"Once an account is stolen, the attacker logs in to the SSO dashboard to see which platforms they have access to and then proceeds to steal data from them — with the ultimate goal of extorting victims. ",{"data":5665,"content":5666,"nodeType":322},{},[],{"data":5668,"content":5669,"nodeType":326},{},[5670],{"data":5671,"marks":5672,"value":5674,"nodeType":256},{},[5673],{"type":333},"What we know",{"data":5676,"content":5677,"nodeType":252},{},[5678,5682,5691],{"data":5679,"marks":5680,"value":5681,"nodeType":256},{},[],"To date, ",{"data":5683,"content":5685,"nodeType":261},{"uri":5684},"https://www.silentpush.com/blog/slsh-alert/",[5686],{"data":5687,"marks":5688,"value":5690,"nodeType":256},{},[5689],{"type":269},"100+ companies have been targeted",{"data":5692,"marks":5693,"value":5694,"nodeType":256},{},[],", with infrastructure and domains impersonating their brand to be used in legit-looking campaigns against them. The reality is that the list of targets could be more extensive, and will continue to increase over time. ",{"data":5696,"content":5697,"nodeType":252},{},[5698,5702,5710],{"data":5699,"marks":5700,"value":5701,"nodeType":256},{},[],"SLH ",{"data":5703,"content":5704,"nodeType":261},{"uri":4191},[5705],{"data":5706,"marks":5707,"value":5709,"nodeType":256},{},[5708],{"type":269},"claims to be using data stolen in previous breaches",{"data":5711,"marks":5712,"value":5713,"nodeType":256},{},[],", such as the widespread Salesforce data theft attacks reported in 2025, to identify and contact employees. This data includes phone numbers, job titles, names, and other details used to make the social engineering calls more convincing.",{"data":5715,"content":5716,"nodeType":252},{},[5717,5721,5726,5730,5735,5739,5744],{"data":5718,"marks":5719,"value":5720,"nodeType":256},{},[],"The group recently relaunched its Tor data leak site, which currently lists breaches at ",{"data":5722,"marks":5723,"value":5725,"nodeType":256},{},[5724],{"type":333},"Betterment",{"data":5727,"marks":5728,"value":5729,"nodeType":256},{},[]," (20 million records containing PII), ",{"data":5731,"marks":5732,"value":5734,"nodeType":256},{},[5733],{"type":333},"Crunchbase",{"data":5736,"marks":5737,"value":5738,"nodeType":256},{},[]," (2 million records containing PII), and ",{"data":5740,"marks":5741,"value":5743,"nodeType":256},{},[5742],{"type":333},"SoundCloud",{"data":5745,"marks":5746,"value":5747,"nodeType":256},{},[]," (30 million records containing PII). ",{"data":5749,"content":5753,"nodeType":243},{"target":5750},{"sys":5751},{"id":5752,"type":248,"linkType":249},"5scKHYJJleNklGAXNKVc7b",[],{"data":5755,"content":5756,"nodeType":322},{},[],{"data":5758,"content":5759,"nodeType":326},{},[5760],{"data":5761,"marks":5762,"value":5764,"nodeType":256},{},[5763],{"type":333},"What’s new?",{"data":5766,"content":5767,"nodeType":614},{},[5768],{"data":5769,"marks":5770,"value":5772,"nodeType":256},{},[5771],{"type":333},"The best of both worlds? Vishing + AiTM phishing",{"data":5774,"content":5775,"nodeType":252},{},[5776],{"data":5777,"marks":5778,"value":5779,"nodeType":256},{},[],"SLH and threat actors affiliated with “The Com” are no stranger to voice phishing (vishing) or the use of MFA-bypassing Attacker-in-the-Middle (AitM) phishing kits. ",{"data":5781,"content":5782,"nodeType":252},{},[5783,5786,5794],{"data":5784,"marks":5785,"value":29,"nodeType":256},{},[],{"data":5787,"content":5788,"nodeType":261},{"uri":509},[5789],{"data":5790,"marks":5791,"value":5793,"nodeType":256},{},[5792],{"type":269},"SLH and it’s precursor groups",{"data":5795,"marks":5796,"value":5797,"nodeType":256},{},[]," leveraged vishing to great success in the form of help desk impersonation and password/MFA reset attacks as seen in the high profile Marks & Spencer, Co-Op, and Jaguar Land Rover attacks in 2025, as well as the Caesars and MGM attacks in 2023. MFA-bypassing phishing techniques have also long been a part of their arsenal, from the 2022 0ktapus phishing campaign to more recent use of modern AiTM phishing kits. ",{"data":5799,"content":5800,"nodeType":252},{},[5801],{"data":5802,"marks":5803,"value":5804,"nodeType":256},{},[],"But until now, we haven’t seen them used together. ",{"data":5806,"content":5809,"nodeType":243},{"target":5807},{"sys":5808},{"id":3950,"type":248,"linkType":249},[],{"data":5811,"content":5815,"nodeType":243},{"target":5812},{"sys":5813},{"id":5814,"type":248,"linkType":249},"1IDsaYD3H5MjvPS4ekcUhU",[],{"data":5817,"content":5818,"nodeType":252},{},[5819],{"data":5820,"marks":5821,"value":5822,"nodeType":256},{},[],"It makes sense to combine these methods. AiTM phishing kits are flexible, highly customizable, and can be used to target a broad range of apps — including all of the major IdP platforms used for SSO. Vishing on the other hand is proven to increase the effectiveness of social engineering attacks when performed by an effective operator — which SLH are proven to be (helped by predominantly native English speakers making up their membership, along with the use of effective voice phishing tools). ",{"data":5824,"content":5825,"nodeType":252},{},[5826],{"data":5827,"marks":5828,"value":5829,"nodeType":256},{},[],"Both vishing and AiTM phishing are identity-first methods that consciously evade traditional security tools and detection controls at the endpoint and network layer. This makes them highly effective in today’s IT environment. ",{"data":5831,"content":5832,"nodeType":614},{},[5833],{"data":5834,"marks":5835,"value":5837,"nodeType":256},{},[5836],{"type":333},"A new kind of operator-driven AiTM kit",{"data":5839,"content":5840,"nodeType":252},{},[5841],{"data":5842,"marks":5843,"value":5844,"nodeType":256},{},[],"Another unique part about this campaign is that it uses a “live phishing panel” — i.e. a customizable phishing page controlled by the attacker in real time. This enables attackers to dynamically change what a victim sees on a phishing site while speaking to them on the phone. This allows them to guide victims through each step of the login and MFA authentication process.",{"data":5846,"content":5847,"nodeType":252},{},[5848],{"data":5849,"marks":5850,"value":5851,"nodeType":256},{},[],"This is principally to increase the victim’s likelihood of engaging with the phishing page. As you can see in the image below, there are several options that can be presented to the victim — including not just the normal phishing stages of entering credentials and passing MFA checks, but also post-compromise actions (e.g. creating a passkey that would then be controlled by the attacker for persistent access even if an account password is reset). ",{"data":5853,"content":5857,"nodeType":243},{"target":5854},{"sys":5855},{"id":5856,"type":248,"linkType":249},"73Y2n3tRkGFtfhrA2AVJyv",[],{"data":5859,"content":5860,"nodeType":252},{},[5861],{"data":5862,"marks":5863,"value":5864,"nodeType":256},{},[],"At the end of the authentication flow, the threat actor can choose to redirect their target to a “support ticket\" closure screen. This allows the threat actor to manually terminate the session once the compromise is complete while providing the targeted user with context that matches the \"IT support\" ruse. This further reduces the likelihood of post-hoc reporting by a suspicious victim.",{"data":5866,"content":5867,"nodeType":252},{},[5868,5872,5881],{"data":5869,"marks":5870,"value":5871,"nodeType":256},{},[],"Given that this modular, operator-controlled phishing kit is reportedly available “",{"data":5873,"content":5875,"nodeType":261},{"uri":5874},"https://www.okta.com/blog/threat-intelligence/phishing-kits-adapt-to-the-script-of-callers/",[5876],{"data":5877,"marks":5878,"value":5880,"nodeType":256},{},[5879],{"type":269},"as a service",{"data":5882,"marks":5883,"value":5884,"nodeType":256},{},[],"” for criminals, we should expect to see much more of this in future. ",{"data":5886,"content":5887,"nodeType":614},{},[5888],{"data":5889,"marks":5890,"value":5892,"nodeType":256},{},[5891],{"type":333},"0ktapus 2.0?",{"data":5894,"content":5895,"nodeType":252},{},[5896],{"data":5897,"marks":5898,"value":5899,"nodeType":256},{},[],"As we mentioned earlier, Scattered Spider made their reputation launching phishing attacks against Okta accounts in the 2022 0ktapus campaign. ",{"data":5901,"content":5902,"nodeType":252},{},[5903],{"data":5904,"marks":5905,"value":5906,"nodeType":256},{},[],"The vast majority of phishing attacks target IdP accounts because of the widespread access to downstream apps they grant via SSO. ",{"data":5908,"content":5909,"nodeType":252},{},[5910,5914,5923],{"data":5911,"marks":5912,"value":5913,"nodeType":256},{},[],"This comes at the same time as ",{"data":5915,"content":5917,"nodeType":261},{"uri":5916},"https://www.bleepingcomputer.com/news/security/fake-lastpass-emails-pose-as-password-vault-backup-alerts/",[5918],{"data":5919,"marks":5920,"value":5922,"nodeType":256},{},[5921],{"type":269},"attackers running campaigns to target LastPass master passwords",{"data":5924,"marks":5925,"value":5926,"nodeType":256},{},[],". This provides a similar level of access to apps in the form of credentials (and sometimes saved passkeys). ",{"data":5928,"content":5932,"nodeType":243},{"target":5929},{"sys":5930},{"id":5931,"type":248,"linkType":249},"1vyu5WvdktTnC24TkVFqfs",[],{"data":5934,"content":5935,"nodeType":252},{},[5936,5940,5949],{"data":5937,"marks":5938,"value":5939,"nodeType":256},{},[],"Not only is this a goldmine for attackers looking to steal data or pivot to other systems to be able to launch further attacks (e.g. pivoting to cloud and on-prem services for ransomware deployment) but it’s a nightmare for incident responders. If an attacker can access an app and create a backdoor login method (AKA. a ",{"data":5941,"content":5943,"nodeType":261},{"uri":5942},"https://pushsecurity.com/blog/ghost-logins-when-forgotten-identities-come-back-to-haunt-you/",[5944],{"data":5945,"marks":5946,"value":5948,"nodeType":256},{},[5947],{"type":269},"ghost login",{"data":5950,"marks":5951,"value":5952,"nodeType":256},{},[],") it can be very difficult for a security team to identify and clean them up. ",{"data":5954,"content":5958,"nodeType":243},{"target":5955},{"sys":5956},{"id":5957,"type":248,"linkType":249},"7tILkroPw9w0WLIo1bVV24",[],{"data":5960,"content":5961,"nodeType":252},{},[5962],{"data":5963,"marks":5964,"value":5965,"nodeType":256},{},[],"Check out the excerpt from one of our recent webinars below for more information. ",{"data":5967,"content":5971,"nodeType":243},{"target":5968},{"sys":5969},{"id":5970,"type":248,"linkType":249},"5IVkapjwLp1Ys14vXagQRD",[],{"data":5973,"content":5974,"nodeType":322},{},[],{"data":5976,"content":5977,"nodeType":326},{},[5978],{"data":5979,"marks":5980,"value":5982,"nodeType":256},{},[5981],{"type":333},"Impact analysis",{"data":5984,"content":5985,"nodeType":252},{},[5986],{"data":5987,"marks":5988,"value":5989,"nodeType":256},{},[],"This combination of methods is likely to increase the success of these malicious campaigns as well as reducing the likelihood of detection. ",{"data":5991,"content":5992,"nodeType":252},{},[5993,5997,6005],{"data":5994,"marks":5995,"value":5996,"nodeType":256},{},[],"It’s well documented that modern phishing attacks use a wide and ever-expanding range of ",{"data":5998,"content":6000,"nodeType":261},{"uri":5999},"https://pushsecurity.com/blog/phishing-detection-evasion-launch/",[6001],{"data":6002,"marks":6003,"value":710,"nodeType":256},{},[6004],{"type":269},{"data":6006,"marks":6007,"value":6008,"nodeType":256},{},[]," — from implementing legitimate bot protection technologies to prevent analysis, to only loading pages if the correct parameters are met — such as coming through a specific URL redirect path, and adhering to “normal” browser configs (excluding unusual browser window sizes and the presence of security analysis tools).",{"data":6010,"content":6011,"nodeType":252},{},[6012],{"data":6013,"marks":6014,"value":6015,"nodeType":256},{},[],"In this case, the malicious payload will only trigger in the event that the delivery is approved by an operator in real time. This means that anyone attempting to find and proactively block a phishing page based on indicators of known-bad is going to have a tough time finding and flagging them. If you haven’t got a community of security analysts sharing and tagging samples of malicious pages, it makes it really hard to find and block them at scale before they hit a victim. And if these convincing attacks aren’t being reported, they’re even less likely to be investigated. This is what we mean when we say that most phishing attacks today are effectively zero-day. ",{"data":6017,"content":6018,"nodeType":252},{},[6019,6023,6028,6031,6040],{"data":6020,"marks":6021,"value":6022,"nodeType":256},{},[],"In this case, it’s worth pointing out that the phone call is essentially the delivery vector for the phishing page. This means there’s no email to intercept and analyse. This isn’t new — ",{"data":6024,"marks":6025,"value":6027,"nodeType":256},{},[6026],{"type":333},"non-email vectors now account for more than 1 in 3 phishing attacks intercepted by Push",{"data":6029,"marks":6030,"value":636,"nodeType":256},{},[],{"data":6032,"content":6034,"nodeType":261},{"uri":6033},"https://pushsecurity.com/blog/2025-top-phishing-trends/",[6035],{"data":6036,"marks":6037,"value":6039,"nodeType":256},{},[6038],{"type":269},"LinkedIn and Google Search being the top culprits",{"data":6041,"marks":6042,"value":6043,"nodeType":256},{},[],". This effectively cuts out the primary phishing detection surface for most organizations.",{"data":6045,"content":6046,"nodeType":252},{},[6047],{"data":6048,"marks":6049,"value":6050,"nodeType":256},{},[],"All this means that unless you’re able to detect and block these attacks in real time, organizations will find themselves unable to counter this evolving threat. ",{"data":6052,"content":6053,"nodeType":252},{},[6054],{"data":6055,"marks":6056,"value":6058,"nodeType":256},{},[6057],{"type":333},"The best/only way to do that is to be in the browser. ",{"data":6060,"content":6061,"nodeType":322},{},[],{"data":6063,"content":6064,"nodeType":326},{},[6065],{"data":6066,"marks":6067,"value":6069,"nodeType":256},{},[6068],{"type":333},"How Push stops the attack",{"data":6071,"content":6072,"nodeType":252},{},[6073],{"data":6074,"marks":6075,"value":6076,"nodeType":256},{},[],"As a browser-based detection and response tool, Push is perfectly positioned to detect and block attacks like this in real-time. ",{"data":6078,"content":6079,"nodeType":252},{},[6080],{"data":6081,"marks":6082,"value":6083,"nodeType":256},{},[],"Push harnesses deep browser telemetry to detect and block phishing based on behaviors, not static indicators. By analyzing how phishing pages behave and how users interact with them, Push uncovers fake pages, attempted credential theft, and phishing kits the moment they load in the browser — regardless of the delivery mechanism, and even when the attack has never been seen before. ",{"data":6085,"content":6089,"nodeType":243},{"target":6086},{"sys":6087},{"id":6088,"type":248,"linkType":249},"2TAKFM1rpETq4KtTY3FPIs",[],{"data":6091,"content":6092,"nodeType":252},{},[6093],{"data":6094,"marks":6095,"value":6096,"nodeType":256},{},[],"Push's browser-based controls include:",{"data":6098,"content":6099,"nodeType":460},{},[6100,6121],{"data":6101,"content":6102,"nodeType":464},{},[6103],{"data":6104,"content":6105,"nodeType":252},{},[6106,6109,6117],{"data":6107,"marks":6108,"value":29,"nodeType":256},{},[],{"data":6110,"content":6112,"nodeType":261},{"uri":6111},"https://pushsecurity.com/blog/introducing-sso-password-protection/",[6113],{"data":6114,"marks":6115,"value":6116,"nodeType":256},{},[],"Fingerprinting high-risk app passwords",{"data":6118,"marks":6119,"value":6120,"nodeType":256},{},[]," so they can only be used on a specific domain. Any attempt to reuse this password elsewhere (such as on a phishing site) results in the attempt being blocked. ",{"data":6122,"content":6123,"nodeType":464},{},[6124],{"data":6125,"content":6126,"nodeType":252},{},[6127,6130,6138],{"data":6128,"marks":6129,"value":29,"nodeType":256},{},[],{"data":6131,"content":6133,"nodeType":261},{"uri":6132},"https://pushsecurity.com/blog/detecting-and-blocking-phishing-attacks-in-the-browser/",[6134],{"data":6135,"marks":6136,"value":6137,"nodeType":256},{},[],"Multiple browser-based checks",{"data":6139,"marks":6140,"value":6141,"nodeType":256},{},[]," looking for indicators of bad, such as cloned elements from legitimate websites, and an ever-growing number of detections relating to phishing kit behaviors and attributes as they are rendered on a page. ",{"data":6143,"content":6147,"nodeType":243},{"target":6144},{"sys":6145},{"id":6146,"type":248,"linkType":249},"4ESxxjTjNwNXGEW4DBcMVV",[],{"data":6149,"content":6150,"nodeType":252},{},[6151],{"data":6152,"marks":6153,"value":6154,"nodeType":256},{},[],"Because Push observes every login made in the browser, you can also use Push to find identities susceptible to phishing attacks, such as those not using phishing-resistant authentication methods (e.g. passkeys), to proactively improve your account hygiene and reduce your attack surface. ",{"data":6156,"content":6157,"nodeType":252},{},[6158,6162,6171,6175,6183],{"data":6159,"marks":6160,"value":6161,"nodeType":256},{},[],"Finally, you can also use our ",{"data":6163,"content":6165,"nodeType":261},{"uri":6164},"https://pushsecurity.com/blog/employee-identity-verification-codes-release/",[6166],{"data":6167,"marks":6168,"value":6170,"nodeType":256},{},[6169],{"type":269},"employee verification codes",{"data":6172,"marks":6173,"value":6174,"nodeType":256},{},[]," feature as part of a layered defense — a simple, browser-based identity check that gives your employees a reliable way to confirm they’re talking to another employee from your organization. It enables employees to quickly verify that a caller is who they say they are by relaying a rotating 6-digit verification code displayed in every employee's browser via the Push extension. This is an effective way of combating ",{"data":6176,"content":6177,"nodeType":261},{"uri":4298},[6178],{"data":6179,"marks":6180,"value":6182,"nodeType":256},{},[6181],{"type":269},"help desk scams",{"data":6184,"marks":6185,"value":6186,"nodeType":256},{},[]," too — another favorite of SLH. ",{"data":6188,"content":6192,"nodeType":243},{"target":6189},{"sys":6190},{"id":6191,"type":248,"linkType":249},"1TEpCjh8UGwmejgYSGC1by",[],{"data":6194,"content":6195,"nodeType":6234},{},[6196],{"data":6197,"content":6198,"nodeType":252},{},[6199,6203,6211,6214,6221,6224,6231],{"data":6200,"marks":6201,"value":6202,"nodeType":256},{},[],"Want to learn more about Push? ",{"data":6204,"content":6205,"nodeType":261},{"uri":3227},[6206],{"data":6207,"marks":6208,"value":6210,"nodeType":256},{},[6209],{"type":269},"Check out our latest product overview",{"data":6212,"marks":6213,"value":636,"nodeType":256},{},[],{"data":6215,"content":6216,"nodeType":261},{"uri":3239},[6217],{"data":6218,"marks":6219,"value":6220,"nodeType":256},{},[],"visit our demo library",{"data":6222,"marks":6223,"value":3247,"nodeType":256},{},[],{"data":6225,"content":6226,"nodeType":261},{"uri":3252},[6227],{"data":6228,"marks":6229,"value":3255,"nodeType":256},{},[6230],{"type":269},{"data":6232,"marks":6233,"value":3260,"nodeType":256},{},[],"blockquote",{"data":6236,"content":6237,"nodeType":252},{},[6238],{"data":6239,"marks":6240,"value":29,"nodeType":256},{},[],"Unpacking the latest SLH campaign — combining vishing with AiTM phishing to hijack SSO accounts","Analyzing the latest Scattered Lapsus$ Hunters (SLH) phishing campaign targeting hundreds of organizations.\n","2026-01-28T00:00:00.000Z","unpacking-the-latest-slh-campaign",{"items":6246},[6247,6249],{"sys":6248,"name":4746},{"id":4745},{"sys":6250,"name":4750},{"id":4749},{"items":6252},[6253],{"fullName":4754,"firstName":4755,"jobTitle":4756,"profilePicture":6254},{"url":4758},"device-code-phishing","blog/device-code-phishing",{"json":6258},{"data":6259,"content":6260,"nodeType":239},{},[6261],{"data":6262,"content":6263,"nodeType":252},{},[6264],{"data":6265,"marks":6266,"value":6267,"nodeType":256},{},[],"Device code phishing is an account takeover technique that abuses the OAuth 2.0 Device Authorization Grant to steal access tokens while bypassing standard access controls (like passwords, MFA, and even passkeys).","Device code phishing is seeing a huge spike in adoption in 2026, enabling attackers to steal access tokens while bypassing standard access controls.",{"id":6270,"publishedAt":6271},"5DmCqTU2Tg4adYScA5vT2x","2026-06-25T09:02:50.380Z",{"items":6273},[6274,6276],{"sys":6275,"name":4746},{"id":4745},{"sys":6277,"name":4750},{"id":4749},"fBzFiL02vfqsE3mlQNPMbdQ2CZqVp-UJLTTFIFuB5zE",1784196723452]