[{"data":1,"prerenderedAt":2136},["ShallowReactive",2],{"sc:header-data-nl":3,"sc:footer-data-nl":489,"author-nl-fabian-bader-1b470ba1ddf8b3":519,"content-nl-fabian-bader":549,"content-events-nl-fabian-bader":2115,"authors_data:Christopher Brumm|Fabian Bader|Thomas Naunheim":2116},{"lang":4,"home":5,"navigation":17,"meta":479,"contact":485},"de",{"name":6,"folderSwitch":7,"imgLight":10,"img":11,"languages":12},"home",[8,9],"authors","blog","/logos/gk-Logo-sw.svg","/logos/gk-Logo-rgb.svg",{"nl":13},{"title":14,"url":15,"alt":16},"Home","/nl","glueckkanja Logo",[18,127,231,316,395,402],{"name":19,"languages":20,"children":24},"workplace",{"nl":21},{"title":22,"description":23},"Workplace","Slimme, veilige en flexibele werkplekken op basis van Microsoft 365, waarin moderne technologie en identiteitsdiensten samenkomen.",[25,55,91],{"name":26,"languages":27,"children":30},"portfolio",{"nl":28},{"title":29},"Portfolio",[31,37,43,49],{"name":32,"languages":33},"managed-intune",{"nl":34},{"title":35,"url":36},"Managed Intune","/nl/entra-intune/managed-intune",{"name":38,"languages":39},"managed-entra",{"nl":40},{"title":41,"url":42},"Managed Entra","/nl/entra-intune/managed-entra",{"name":44,"languages":45},"managed-workplace",{"nl":46},{"title":47,"url":48},"Managed Workplace","/nl/workplace/managed-workplace",{"name":50,"languages":51},"consulting-services",{"nl":52},{"title":53,"url":54},"Consulting Services","/nl/workplace/consulting-services",{"name":56,"languages":57,"children":60},"microsoft-365-endpoint",{"nl":58},{"title":59},"Microsoft 365 Endpoint",[61,67,73,79,85],{"name":62,"languages":63},"microsoft-entra-suite",{"nl":64},{"title":65,"url":66},"Microsoft Entra Suite","/nl/workplace/microsoft-entra-suite",{"name":68,"languages":69},"microsoft-intune",{"nl":70},{"title":71,"url":72},"Microsoft Intune","/nl/workplace/microsoft-intune",{"name":74,"languages":75},"microsoft-windows",{"nl":76},{"title":77,"url":78},"Microsoft Windows","/nl/workplace/microsoft-windows",{"name":80,"languages":81},"windows-365-cloud-pc",{"nl":82},{"title":83,"url":84},"Windows 365 Cloud PC","/nl/workplace/windows365-cloud-pc",{"name":86,"languages":87},"cloud-workplace-foundation",{"nl":88},{"title":89,"url":90},"Cloud Workplace Foundation","/nl/workplace/cloud-workplace-foundation",{"name":92,"languages":93,"children":96},"microsoft-365-collaboration",{"nl":94},{"title":95},"Microsoft 365 Collaboration",[97,103,109,115,121],{"name":98,"languages":99},"microsoft-copilot",{"nl":100},{"title":101,"url":102},"Microsoft 365 Copilot","/nl/workplace/microsoft-365-copilot",{"name":104,"languages":105},"microsoft-teams",{"nl":106},{"title":107,"url":108},"Teams","/nl/workplace/microsoft-teams",{"name":110,"languages":111},"sharepoint-powerplatform",{"nl":112},{"title":113,"url":114},"SharePoint & Power Platform","/nl/workplace/sharepoint-power-platform",{"name":116,"languages":117},"exchange-online",{"nl":118},{"title":119,"url":120},"Exchange Online","/nl/workplace/exchange-online",{"name":122,"languages":123},"information-protection-compliance",{"nl":124},{"title":125,"url":126},"Information Protection & Compliance","/nl/workplace/information-protection-compliance",{"name":128,"languages":129,"children":133},"azure",{"nl":130},{"title":131,"description":132},"Azure","Groeien met Azure: lagere cloudkosten, meer efficiëntie en ruimte voor innovatie met IaaS en PaaS.",[134,151,181],{"name":135,"languages":136,"children":138},"azure-portfolio",{"nl":137},{"title":29},[139,145],{"name":140,"languages":141},"azure-managed-services",{"nl":142},{"title":143,"url":144},"Azure Managed Services","/nl/azure/azure-managed-services",{"name":146,"languages":147},"azure-consulting",{"nl":148},{"title":149,"url":150},"Azure Consulting","/nl/azure/azure-consulting",{"name":152,"languages":153,"children":156},"azure-scenarios",{"nl":154},{"title":155},"Scenario's",[157,163,169,175],{"name":158,"languages":159},"plan-your-cloud",{"nl":160},{"title":161,"url":162},"Plan je cloud","/nl/azure/plan-your-cloud",{"name":164,"languages":165},"migrate-to-the-cloud",{"nl":166},{"title":167,"url":168},"Migreren naar de cloud","/nl/azure/migrate-to-the-cloud",{"name":170,"languages":171},"innovate-your-business",{"nl":172},{"title":173,"url":174},"Vernieuw je business","/nl/azure/innovate-your-business",{"name":176,"languages":177},"vmware-exit",{"nl":178},{"title":179,"url":180},"Herzie je VMware-strategie","/nl/azure/vmware-exit",{"name":182,"languages":183,"children":186},"azure-practices",{"nl":184},{"title":185},"Practices",[187,193,199,202,208,213,219,225],{"name":188,"languages":189},"azure-foundation",{"nl":190},{"title":191,"url":192},"Azure Foundation","/nl/azure/azure-foundation",{"name":194,"languages":195},"azure-ai-foundation",{"nl":196},{"title":197,"url":198},"Azure AI Foundation","/nl/azure/azure-ai-foundation",{"name":86,"languages":200},{"nl":201},{"title":89,"url":90},{"name":203,"languages":204},"azure-data-foundation",{"nl":205},{"title":206,"url":207},"Azure Data Foundation","/nl/azure/azure-data-foundation",{"name":188,"languages":209},{"nl":210},{"title":211,"url":212},"Azure Container Foundation","/nl/azure/azure-container-foundation",{"name":214,"languages":215},"dark-tenant",{"nl":216},{"title":217,"url":218},"Managed Dark Tenant","/nl/azure/managed-dark-tenant",{"name":220,"languages":221},"azure-cloud-adoption-framework",{"nl":222},{"title":223,"url":224},"Cloud Adoption Framework","/nl/azure/cloud-adoption-framework",{"name":226,"languages":227},"azure-cloud-competence-center",{"nl":228},{"title":229,"url":230},"Cloud Competence Center","/nl/azure/cloud-competence-center",{"name":232,"languages":233,"children":242},"security",{"nl":234},{"title":235,"description":236,"emergency":237},"Security","Waakzaam in de cloud met een bekroonde 24/7 managed service, incident response en moderne bescherming van je infrastructuur.",{"text":238,"href":239,"skin":240,"icon":241},"Onder aanval?","/nl/security/are-you-under-attack","primary","emergency",[243,268,289],{"name":244,"children":245},"security-security-consulting",[246,252,256,262],{"name":247,"languages":248},"managed-red-tenant",{"nl":249},{"title":250,"url":251},"Managed Red Tenant","/nl/security/managed-red-tenant",{"name":214,"languages":253},{"nl":254},{"title":255,"url":218},"Dark Tenant",{"name":257,"languages":258},"sentinel-data-lake",{"nl":259},{"title":260,"url":261},"Sentinel Data Lake","/nl/security/sentinel-data-lake",{"name":263,"languages":264},"security-consulting",{"nl":265},{"title":266,"url":267},"Security Consulting","/nl/security/security-consulting",{"name":269,"children":270},"security-cloud-security-operations-center",[271,277,283],{"name":272,"languages":273},"cloud-security-operations-center",{"nl":274},{"title":275,"url":276},"Cloud Security Operations Center","/nl/security/cloud-security-operations-center",{"name":278,"languages":279},"global-secure-access",{"nl":280},{"title":281,"url":282},"Global Secure Access","/nl/security/global-secure-access",{"name":284,"languages":285},"my-work-id",{"nl":286},{"title":287,"url":288},"MyWorkID","/nl/security/my-work-id",{"name":290,"children":291},"security-preventive-services",[292,298,304,310],{"name":293,"languages":294},"preventive-services",{"nl":295},{"title":296,"url":297},"Preventive Services","/nl/security/preventive-services",{"name":299,"languages":300},"data-security-services",{"nl":301},{"title":302,"url":303},"Data Security Service","/nl/security/data-security-service",{"name":305,"languages":306},"security-copilot-agents",{"nl":307},{"title":308,"url":309},"Security Copilot Agents","/nl/security/security-copilot-agents",{"name":311,"languages":312},"nis2",{"nl":313},{"title":314,"url":315},"NIS2 implementeren","/nl/security/red-dark-tenant-nis2",{"name":317,"languages":318,"children":322},"products",{"nl":319},{"title":320,"description":321},"Producten","Companion-producten voor een volledig beveiligde, 100% cloud-native Microsoft-omgeving die samenwerking, netwerkauthenticatie en softwarebeheer versterken.",[323,360],{"name":324,"products":325,"children":326},"lorem ipsum 1",true,[327,336,344,352],{"name":328,"img":329,"target":330,"languages":331},"realmjoin","products/realmjoin/realmjoin-nav-logo.svg","_blank",{"nl":332},{"title":333,"url":334,"subtitle":335},"RealmJoin","https://www.realmjoin.com","Softwaredistributie vanuit de cloud",{"name":337,"img":338,"target":330,"languages":339},"scepman","products/scepman/scepman-nav-logo.svg",{"nl":340},{"title":341,"url":342,"subtitle":343},"SCEPman","https://www.scepman.com","Certificaatdistributie vanuit de cloud",{"name":345,"img":346,"target":330,"languages":347},"konnekt","products/konnekt/konnekt-nav-logo.svg",{"nl":348},{"title":349,"url":350,"subtitle":351},"KONNEKT","https://www.konnekt.io","Werk met je lokale Office 365-data",{"name":353,"img":354,"target":330,"languages":355},"realmigrator","products/realmigrator/realmigrator-nav-logo.svg",{"nl":356},{"title":357,"url":358,"subtitle":359},"RealMigrator","https://www.realmigrator.com","Migreer je data van de ene server naar de andere",{"name":361,"products":325,"children":362},"lorem ipsum 2",[363,371,379,387],{"name":364,"img":365,"target":330,"languages":366},"terraprovider","products/terraprovider/terraprovider-nav-logo.svg",{"nl":367},{"title":368,"url":369,"subtitle":370},"TerraProvider","https://www.terraprovider.com","Terraform Provider voor Microsoft 365",{"name":372,"img":373,"target":330,"languages":374},"radiusaas","products/radius/radius-nav-logo.svg",{"nl":375},{"title":376,"url":377,"subtitle":378},"RADIUSaaS","https://www.radius-as-a-service.com","Authenticatie voor je netwerk",{"name":380,"img":381,"target":330,"languages":382},"unifiedcontacts","products/unified-contacts/unifiedcontact-nav-logo.svg",{"nl":383},{"title":384,"url":385,"subtitle":386},"Unified Contacts","https://www.unified-contacts.com","Contacten vinden in Microsoft Teams",{"name":388,"img":389,"target":330,"languages":390},"autopilotmonitor","products/autopilot-monitor/AutopilotMonitor-nav-logo.svg",{"nl":391},{"title":392,"url":393,"subtitle":394},"Autopilot Monitor","https://www.autopilotmonitor.com","Windows Autopilot-monitoring in realtime",{"name":396,"languages":397},"casestudies",{"nl":398},{"title":399,"url":400,"description":401},"Case studies","/nl/casestudies","Pionier in de cloud: je Microsoft-partner voor doordachte cloudoplossingen met een blueprint-gebaseerde aanpak en expertise in Infrastructure-as-Code.",{"name":403,"languages":404,"children":407},"company",{"nl":405},{"title":406,"description":401},"Bedrijf",[408,438,462],{"name":409,"languages":410,"children":413},"company-about-us",{"nl":411},{"title":412},"Over ons",[414,420,426,432],{"name":415,"languages":416},"company-facts-figures",{"nl":417},{"title":418,"url":419},"Facts & Figures","/nl/company/facts-and-figures",{"name":421,"languages":422},"company-contact",{"nl":423},{"title":424,"url":425},"Contact & locaties","/nl/company/contact-and-locations",{"name":427,"languages":428},"switzerland",{"nl":429},{"title":430,"url":431}," glueckkanja Zwitserland","/nl/company/switzerland",{"name":433,"languages":434},"austria",{"nl":435},{"title":436,"url":437},"glueckkanja Oostenrijk","/nl/company/austria",{"name":439,"languages":440,"children":443},"company-career",{"nl":441},{"title":442},"Carrière",[444,450,456],{"name":445,"languages":446},"company-career-overview",{"nl":447},{"title":448,"url":449},"Carrière-overzicht","/nl/career",{"name":451,"languages":452},"company-young-professionals",{"nl":453},{"title":454,"url":455},"Young Professionals","/nl/young-professionals",{"name":457,"languages":458},"company-jobs",{"nl":459},{"title":460,"url":461},"Vacatures","/nl/job-offers",{"name":463,"languages":464,"children":467},"company-latest",{"nl":465},{"title":466},"Actueel",[468,474],{"name":469,"languages":470},"company-blog",{"nl":471},{"title":472,"url":473},"Blog","/nl/blog",{"name":469,"languages":475},{"nl":476},{"title":477,"url":478},"Events","/nl/events",[480],{"name":481,"languages":482},"career-meta",{"nl":483},{"title":442,"url":449,"active":484},false,{"languages":486},{"nl":487},{"title":488,"url":425,"active":484},"Contact",{"data":490},{"bgColor":491,"number":492,"mail":493,"brandLogos":494,"logos":495,"links":499,"linksNl":509},"var(--color-gk-mid-blue)","+49 69 4005520","info@glueckkanja.com",null,[496],{"img":10,"alt":16,"url":497,"class":498},"index.html","max-w-19rem",[500,503,506],{"title":501,"url":502},"Datenschutz","/de/privacy",{"title":504,"url":505},"Impressum","/de/imprint",{"title":507,"url":508},"No Cookies","/de/cookies",[510,513,516],{"title":511,"url":512},"Privacy","/nl/privacy",{"title":514,"url":515},"Juridische informatie","/nl/imprint",{"title":517,"url":518},"Geen cookies","/nl/cookies",{"id":520,"title":521,"body":522,"description":528,"extension":533,"meta":534,"name":521,"navigation":325,"otherLanguages":535,"path":545,"seo":546,"stem":547,"__hash__":548},"authors/fabian-bader.md","Fabian Bader",{"type":523,"value":524,"toc":529},"minimal",[525],[526,527,528],"p",{},"Fabian Bader ist Cyber Security Architect und Microsoft MVP, der sich mit Begeisterung auf Security- und Cloud-Lösungen spezialisiert hat. Er ist Experte im Umgang mit Microsoft-Technologien. Von der Azure-Cloud bis zum on-premises Active Directory findet er stets neue Wege, um das Potenzial von Technologie zu nutzen. Dabei legt er großen Wert auf Effizienz und Automatisierung, was ihm dank seiner Expertise in PowerShell mühelos gelingt. Er ist fester Bestandteil der IT-Community. Als engagierter Redner und inspirierender Blog-Autor teilt er sein Wissen und seine Erfahrungen auf \"cloudbrothers.info\" und unterstützt Gleichgesinnte als Gastgeber der \"Hamburg PowerShell User Group\". Darüber hinaus ist er als Mitglied des Organisations-Teams von \"PowerShell Saturday Hamburg\".",{"title":530,"searchDepth":531,"depth":531,"links":532},"",2,[],"md",{},{"en":536,"es":537,"sv":538,"fi":539,"da":540,"ko":541,"nl":542,"no":543,"ja":544},"Fabian Bader is a Cyber Security Architect and Microsoft MVP who is passionate about security and cloud solutions. He is an expert in working with Microsoft technologies. From the Azure cloud to on-premises Active Directory, he is always finding new ways to leverage the potential of technology. He places great emphasis on efficiency and automation, which he accomplishes effortlessly thanks to his expertise in PowerShell. He is an integral part of the IT community. As a dedicated speaker and inspiring blog author, he shares his knowledge and experiences on \"cloudbrothers.info\" and supports like-minded people as host of the \"Hamburg PowerShell User Group\". In addition, he is a member of the organizing team of \"PowerShell Saturday Hamburg\".","Fabian Bader es Cyber Security Architect y Microsoft MVP, especializado con entusiasmo en soluciones de seguridad y cloud. Es un experto en el manejo de las tecnologías de Microsoft. Desde la nube de Azure hasta el Active Directory on-premises, encuentra siempre nuevas formas de aprovechar el potencial de la tecnología. En ello concede gran importancia a la eficiencia y la automatización, algo que logra sin esfuerzo gracias a su dominio de PowerShell. Es parte fija de la comunidad de IT. Como ponente comprometido y autor de blog inspirador, comparte sus conocimientos y experiencias en \"cloudbrothers.info\" y apoya a otros entusiastas como anfitrión de la \"Hamburg PowerShell User Group\". Además, forma parte del equipo organizador de \"PowerShell Saturday Hamburg\".","Fabian Bader är Cyber Security Architect och Microsoft MVP och har med stort engagemang specialiserat sig på säkerhets- och molnlösningar. Han är expert på Microsoft-teknik. Från Azure-molnet till on-premises Active Directory hittar han ständigt nya vägar att utnyttja teknikens potential. Han lägger stor vikt vid effektivitet och automatisering, vilket han tack vare sin expertis i PowerShell klarar utan ansträngning. Han är en fast del av IT-communityn. Som engagerad talare och inspirerande bloggförfattare delar han med sig av sin kunskap och sina erfarenheter på \"cloudbrothers.info\" och stöttar likasinnade som värd för \"Hamburg PowerShell User Group\". Dessutom är han medlem i organisationsteamet för \"PowerShell Saturday Hamburg\".","Fabian Bader on Cyber Security Architect ja Microsoft MVP, joka on innostuneesti erikoistunut tietoturva- ja pilviratkaisuihin. Hän on Microsoft-teknologioiden asiantuntija. Azure-pilvestä on-premises Active Directoryyn hän löytää jatkuvasti uusia tapoja hyödyntää teknologian mahdollisuuksia. Hän arvostaa suuresti tehokkuutta ja automaatiota, mikä onnistuu häneltä vaivatta hänen PowerShell-osaamisensa ansiosta. Hän on kiinteä osa IT-yhteisöä. Sitoutuneena puhujana ja innostavana blogikirjoittajana hän jakaa tietämystään ja kokemuksiaan sivustolla \"cloudbrothers.info\" ja tukee samanhenkisiä \"Hamburg PowerShell User Group\" -ryhmän isäntänä. Lisäksi hän on mukana \"PowerShell Saturday Hamburg\" -tapahtuman järjestelytiimissä.","Fabian Bader er Cyber Security Architect og Microsoft MVP, som med begejstring har specialiseret sig i sikkerheds- og cloud-løsninger. Han er ekspert i Microsoft-teknologier. Fra Azure-cloud til on-premises Active Directory finder han hele tiden nye måder at udnytte teknologiens potentiale på. Han lægger stor vægt på effektivitet og automatisering, hvilket lykkes ham ubesværet takket være hans ekspertise i PowerShell. Han er en fast del af IT-communityet. Som engageret taler og inspirerende blogforfatter deler han sin viden og sine erfaringer på \"cloudbrothers.info\" og støtter ligesindede som vært for \"Hamburg PowerShell User Group\". Derudover er han medlem af organisationsteamet for \"PowerShell Saturday Hamburg\".","Fabian Bader는 Cyber Security Architect이자 Microsoft MVP로, 보안 및 클라우드 솔루션에 열정을 가지고 특화되어 있습니다. 그는 Microsoft 기술을 능숙하게 다루는 전문가입니다. Azure 클라우드에서 on-premises Active Directory에 이르기까지 그는 기술의 잠재력을 활용할 새로운 방법을 끊임없이 찾아냅니다. 이 과정에서 그는 효율성과 자동화를 매우 중시하며, PowerShell에 대한 전문성 덕분에 이를 손쉽게 실현합니다. 그는 IT 커뮤니티의 확고한 일원입니다. 열정적인 강연자이자 영감을 주는 블로그 저자로서 그는 \"cloudbrothers.info\"에서 자신의 지식과 경험을 공유하고, \"Hamburg PowerShell User Group\"의 호스트로서 뜻을 같이하는 이들을 지원합니다. 또한 그는 \"PowerShell Saturday Hamburg\"의 조직 팀의 일원이기도 합니다.","Fabian Bader is Cyber Security Architect en Microsoft MVP en heeft zich met veel enthousiasme gespecialiseerd in security- en cloudoplossingen. Hij is expert in het werken met Microsoft-technologieën. Van de Azure-cloud tot het on-premises Active Directory vindt hij steeds nieuwe manieren om het potentieel van technologie te benutten. Daarbij legt hij veel nadruk op efficiëntie en automatisering, wat hem dankzij zijn expertise in PowerShell moeiteloos afgaat. Hij is een vast onderdeel van de IT-community. Als betrokken spreker en inspirerende blogauteur deelt hij zijn kennis en ervaring op “cloudbrothers.info” en ondersteunt hij gelijkgestemden als gastheer van de “Hamburg PowerShell User Group”. Daarnaast is hij lid van het organisatieteam van “PowerShell Saturday Hamburg”.","Fabian Bader er Cyber Security Architect og Microsoft MVP, som med entusiasme har spesialisert seg på security- og cloud-løsninger. Han er ekspert på Microsoft-teknologier. Fra Azure-cloud til on-premises Active Directory finner han stadig nye måter å utnytte teknologiens potensial på. Han legger stor vekt på effektivitet og automatisering, noe som takket være ekspertisen hans i PowerShell går som en lek. Han er en fast del av IT-community. Som engasjert foredragsholder og inspirerende bloggforfatter deler han kunnskapen og erfaringene sine på \"cloudbrothers.info\" og støtter likesinnede som vert for \"Hamburg PowerShell User Group\". I tillegg er han medlem av organisasjonsteamet for \"PowerShell Saturday Hamburg\".","Fabian BaderはCyber Security ArchitectでありMicrosoft MVPで、セキュリティとクラウドのソリューションに情熱を持って取り組んでいます。Microsoftテクノロジーを扱うエキスパートです。Azureクラウドからon-premises Active Directoryまで、テクノロジーの可能性を活かす新しい方法を常に見つけ出しています。その際に効率化と自動化を重視しており、PowerShellの専門知識によってそれを難なく実現しています。ITコミュニティに欠かせない存在でもあります。熱心なスピーカーとして、また刺激を与えるブログ著者として、\"cloudbrothers.info\"で知識と経験を共有し、\"Hamburg PowerShell User Group\"のホストとして同じ志を持つ人々を支えています。さらに、\"PowerShell Saturday Hamburg\"の運営チームの一員でもあります。","/fabian-bader",{"title":521,"description":528},"fabian-bader","Mvtlgx065YSlCBBI4wct1fdOV-n7SuPILVh9VLNr0Rw",[550,1294],{"id":551,"title":552,"author":553,"body":556,"cta":494,"description":530,"eventid":494,"extension":533,"hideInRecent":484,"layout":1217,"meta":1218,"moment":1222,"navigation":325,"path":1286,"seo":1287,"stem":1288,"tags":1289,"webcast":484,"__hash__":1293},"content_nl/posts/2025-01-14-compliant-device-bypass.md","Compliant Device Bypass - alles wat je moet weten",[521,554,555],"Christopher Brumm","Thomas Naunheim",{"type":523,"value":557,"toc":1199},[558,563,566,620,624,626,639,647,658,664,667,671,673,678,681,684,688,754,757,760,764,766,770,772,787,794,797,800,802,805,808,811,819,830,833,835,838,842,844,847,852,856,858,861,864,867,1030,1034,1036,1039,1079,1083,1085,1092,1095,1098,1113,1116,1119,1173,1181,1185,1187,1190,1193,1196],[559,560,562],"h2",{"id":561},"wat-is-er-tot-nu-toe-gebeurd","Wat is er tot nu toe gebeurd?",[526,564,565],{},"{: .h3-font-size}",[567,568,569,593,608,617],"ul",{},[570,571,572,573,580,581,586,587,592],"li",{},"In december 2024 gaf ",[574,575,579],"a",{"href":576,"rel":577},"https://x.com/TEMP43487580",[578],"nofollow","Yuya Chudo"," zijn talk “",[574,582,585],{"href":583,"rel":584},"https://www.blackhat.com/eu-24/briefings/schedule/#unveiling-the-power-of-intune-leveraging-intune-for-breaking-into-your-cloud-and-on-premise-42176",[578],"Unveiling the Power of Intune: Leveraging Intune for Breaking Into Your Cloud and On-Premise","” op de conferentie Black Hat Europe. In die sessie liet hij zien hoe je een hardcoded en nauwelijks bekende uitzondering in Conditional Access (CA) voor device compliance kunt misbruiken in combinatie met de ongedocumenteerde “",[574,588,591],{"href":589,"rel":590},"https://github.com/secureworks/family-of-client-ids-research",[578],"FOCI-Feature","” in Entra ID. In de talk presenteerde hij ook de reactie van Microsoft MSRC (VULN-123240) dat dit gedrag by design is en nodig is voor een geslaagde Intune Enrollment van nieuwe devices.",[570,594,595,596,601,602,607],{},"Een paar dagen na de conferentie publiceerde Sunny Chau de proof-of-concept-tool ",[574,597,600],{"href":598,"rel":599},"https://github.com/JumpsecLabs/TokenSmith",[578],"TokenSmith",", inclusief een ",[574,603,606],{"href":604,"rel":605},"https://labs.jumpsec.com/tokensmith-bypassing-intune-compliant-device-conditional-access/",[578],"begeleidende blogpost",", waarmee de techniek voor een breder publiek beschikbaar werd.",[570,609,610,611,616],{},"Daarnaast is er een ",[574,612,615],{"href":613,"rel":614},"https://github.com/zh54321/PoCEntraDeviceComplianceBypass/blob/main/poc_entra_compliance_bypass.ps1",[578],"PoC geschreven in PowerShell"," gepubliceerd.",[570,618,619],{},"Sinds eind december onderzoeken wij bij glueckkanja AG hoe deze techniek te voorkomen en te detecteren is. In deze blogpost delen we een deel van onze inzichten over de aanval en bespreken we opties voor mitigatie en detectie.",[559,621,623],{"id":622},"tldr","TL;DR",[526,625,565],{},[526,627,628,629,634,635],{},"Er zijn resources met een ingebouwde uitzondering op bepaalde Grant Controls/Conditions in Conditional Access, bedoeld om specifieke problemen op te lossen. Een daarvan is de uitzondering van de Company Portal App voor Device Compliance, die het kip-en-eiprobleem oplost om devices in Intune te enrollen voordat ze als compliant worden beschouwd. Dit gedrag is ",[574,630,633],{"href":631,"rel":632},"https://learn.microsoft.com/en-us/entra/identity/conditional-access/policy-alt-all-users-compliant-hybrid-or-mfa#:~:text=You%20can%20enroll,Company%20Portal%20application",[578],"hier gedocumenteerd",".\n",[636,637,638],"strong",{},"Dit betekent dat je vanaf een unmanaged device een access token en een refresh token voor deze app kunt krijgen, zelfs als een CA-policy Device Compliance voor “All resources” afdwingt.",[526,640,641,646],{},[642,643],"img",{"alt":644,"src":645},"image.png","https://res.cloudinary.com/c4a8/image/upload/blog/pics/company-portal-ca-bypass-02.png","{: .post__screenshot}",[526,648,649,650,654,655],{},"Microsoft heeft een feature geïmplementeerd die Family of Client IDs (FOCI) heet en waarmee een groep Microsoft OAuth-clientapplicaties met hun refresh token access tokens kan opvragen als elke andere client in de family. Gedrag dat in de OAuth2-standaard verder niet is toegestaan. Lees het ",[574,651,653],{"href":589,"rel":652},[578],"originele werk van Secureworks"," voor meer details.\n",[636,656,657],{},"Omdat de Company Portal App een “family member” is, kunnen de daarvoor opgevraagde Refresh Tokens worden gebruikt om tokens voor andere apps in de family te krijgen.",[526,659,660,661],{},"De FOCI-feature is beperkt en de consent tussen de client id en de resource moet expliciet worden geconfigureerd en gegeven. In het geval van de Company Portal App is die consent onder andere gegeven voor toegang tot Microsoft Graph met een beperkte scope en tot de Azure AD Graph API met de permissies van de huidige gebruiker.\n",[636,662,663],{},"Dit betekent dat een Company Portal refresh token gebruikt kan worden om bijvoorbeeld access tokens voor de Azure AD Graph API met de scope user_impersonation te verkrijgen, waarmee we een hoop dingen kunnen doen met bijvoorbeeld AADInternals of ROADrecon",[526,665,666],{},"Om de aanval uit te voeren heeft de aanvaller óf geldige credentials van het slachtoffer plus de mogelijkheid om MFA uit te voeren als Conditional Access dat vereist, óf een geldig refresh token nodig.",[559,668,670],{"id":669},"welk-risico-en-welke-blast-radius-bestaan-er","Welk risico en welke blast radius bestaan er?",[526,672,565],{},[674,675,677],"h3",{"id":676},"welke-van-de-mogelijke-resources-scopes-worden-geraakt-door-de-compliance-uitzondering","Welke van de mogelijke resources (scopes) worden geraakt door de compliance-uitzondering?",[526,679,680],{},"{: .h4-font-size}",[526,682,683],{},"De aanvaller heeft de mogelijkheid om tokens voor een andere FOCI-applicatie op te vragen, zoals hiervoor al beschreven. Microsoft heeft de bypass voor de device compliance-vereisten echter alleen geïmplementeerd voor het opvragen van tokens naar bepaalde resource-applicaties met verschillende API-permission scopes. Met name de volgende delegated API-permissies zijn gevoelig en interessant voor aanvallers:",[685,686,687],"style",{},"\ntable {\n  font-family: arial, sans-serif;\n  border-collapse: collapse;\n  width: 100%;\n}\n\ntd, th {\n  border: 1px solid #dddddd;\n  text-align: left;\n  padding: 8px;\n}\n\ntr:nth-child(even) {\n  background-color: #dddddd;\n}\n",[689,690,691,707],"table",{},[692,693,694],"thead",{},[695,696,697,701,704],"tr",{},[698,699,700],"th",{},"Resource Application",[698,702,703],{},"Application Id",[698,705,706],{},"Delegated Permission Scope",[708,709,710,722,733,744],"tbody",{},[695,711,712,716,719],{},[713,714,715],"td",{},"AADGraph",[713,717,718],{},"00000002-0000-0000-c000-000000000000",[713,720,721],{},"user_impersonation",[695,723,724,727,730],{},[713,725,726],{},"Microsoft Graph API",[713,728,729],{},"00000003-0000-0000-c000-000000000000",[713,731,732],{},"“email\", \"openid\", \"profile\",\"Device.Read.All\", \"DeviceManagementConfiguration.Read.All\", \"DeviceManagementConfiguration.ReadWrite.All\", \"ServicePrincipalEndpoint.Read.All\", \"User.Read”",[695,734,735,738,741],{},[713,736,737],{},"Device Registration Service",[713,739,740],{},"01cb2876-7ebd-4aa4-9cc9-d28bd4d359a9",[713,742,743],{},"adrs_access",[695,745,746,749,752],{},[713,747,748],{},"Windows Azure Service Management API",[713,750,751],{},"797f4846-ba00-4fd7-ba43-dac1f8f63013",[713,753,721],{},[526,755,756],{},"Omdat de gegeven permissies niet voor de applicatie zelf gelden, hangt de impact af van de privileges van de aanroeper (het gebruikersaccount) en van welke delegated permission scopes gemachtigd zijn om API-calls op die scope uit te voeren.",[526,758,759],{},"Laten we de kritikaliteit van de genoemde delegated permission scopes en de mogelijke autorisatie om gevoelige API's aan te roepen nader bekijken.",[559,761,763],{"id":762},"welke-privileges-en-delegated-scope-zijn-kritiek","Welke privileges en delegated scope zijn kritiek?",[526,765,565],{},[674,767,769],{"id":768},"azure-ad-graph-api","Azure AD Graph API",[526,771,680],{},[526,773,774,775,780,781,786],{},"De legacy programmeerinterface biedt veel API's om directory-instellingen en objecten in Entra ID (Azure AD) te beheren. Daaronder vallen Conditional Access-policies, directory roles, CRUD op groepen en devices en operaties op de aangemelde gebruiker, zoals het wijzigen van het wachtwoord. Een volledige lijst van alle ondersteunde operaties staat in de ",[574,776,779],{"href":777,"rel":778},"https://learn.microsoft.com/en-us/previous-versions/azure/ad/graph/api/api-catalog",[578],"Azure AD Graph API reference",". Deze API wordt op 30 juni 2025 volledig uitgefaseerd (op basis van ",[574,782,785],{"href":783,"rel":784},"https://learn.microsoft.com/en-us/graph/migrate-azure-ad-graph-overview",[578],"de recentste aankondigingen van Microsoft",").",[526,788,789,790,793],{},"De toegewezen delegated scope “user_impersonation” staat de applicatie (in dit geval Company Portal) toe om namens de gebruiker te handelen. Elke permissie die de aangemelde gebruiker op een Entra-object, een scope of op directory-niveau heeft, kan dus als autorisatie in de API-calls worden gebruikt. De gebruiker kan owner zijn van een Entra ID-object (applicatie, groep of ander object), of permissies hebben via Entra ID role assignments. ",[636,791,792],{},"Bij actieve high privileged role assignments zou dit de aanvaller in staat stellen objecten te wijzigen of de tenant te compromitteren",". En zelfs zonder enige privileges kunnen op zijn minst de default user permissions worden gebruikt voor uitgebreide reconnaissance en enumeratie van directory-objecten in de tenant.",[526,795,796],{},"De scenario's en de impact van misbruik van de Azure AD Graph API hangen daarom af van de actieve of permanent toegewezen privileges van de betrokken gebruiker. API's voor toegang tot Microsoft 365-services (bijvoorbeeld voor exfiltratie van OneDrive) zitten niet in Azure AD Graph.",[674,798,726],{"id":799},"microsoft-graph-api",[526,801,680],{},[526,803,804],{},"Vergeleken met Azure AD Graph is de delegated scope voor de Microsoft Graph API beperkt tot een bepaalde scope. Naast de OpenID-scopes (openid, email, profile) en basale leesoperaties namens de gebruiker (ServicePrincipalEndpoint.Read.All, User.Read).",[526,806,807],{},"Alle device-objecten kunnen worden opgesomd en gelezen door met default permissions het “device”-endpoint in Microsoft Graph aan te roepen via “Device.Read.All”. Dat kan aanvallers helpen om inzicht te krijgen in device-objecten.",[526,809,810],{},"Bij een gecompromitteerde gebruiker met de rol “Intune Administrator” of met een delegatie in Microsoft Intune RBAC moeten de volgende gegeven delegated API-permissies als problematisch worden beschouwd:",[567,812,813,816],{},[570,814,815],{},"“DeviceManagementConfiguration.Read.All”",[570,817,818],{},"“DeviceManagementConfiguration.ReadWrite.All”",[526,820,821],{},[636,822,823,824,829],{},"Deze delegated permissies maken CRUD-operaties mogelijk, bijvoorbeeld op Device Compliance- en Configuration-policies, maar ook het uitrollen van ",[574,825,828],{"href":826,"rel":827},"https://learn.microsoft.com/en-us/graph/api/intune-shared-devicemanagementscript-create?view=graph-rest-beta",[578],"Management Scripts"," voor verdere kwaadaardige activiteit op de doeldevices.",[674,831,737],{"id":832},"device-registration-service",[526,834,680],{},[526,836,837],{},"Met deze permissie kan de aanvaller een device joinen of registreren in Entra ID. Daarmee kan hij het device zelfs in Intune enrollen en, afhankelijk van de Intune-configuratie, een geldig en compliant device krijgen om nog meer beschermde services te benaderen.",[674,839,841],{"id":840},"andere-foci-applicaties","Andere FOCI-applicaties",[526,843,680],{},[526,845,846],{},"Toegang vragen tot andere privileged interfaces, bijvoorbeeld de Azure Resource Manager API, valt binnen de scope van FOCI en is voor de aanvaller ook interessant. Die resource is echter nog steeds beschermd en wordt niet gebypassed voor de Conditional Access grant control “compliant device”.",[526,848,849],{},[642,850],{"alt":644,"src":851},"https://res.cloudinary.com/c4a8/image/upload/blog/pics/company-portal-ca-bypass-03.png",[559,853,855],{"id":854},"kunnen-we-deze-aanvalstechniek-detecteren","Kunnen we deze aanvalstechniek detecteren?",[526,857,565],{},[526,859,860],{},"Zoals hierboven beschreven zit het grootste risico in toegang tot MS Graph en Azure AD Graph.",[526,862,863],{},"Omdat in dit geval altijd de application ID van de Microsoft Intune Company Portal App wordt gebruikt, is de belangrijkste taak bij het bouwen van een detectie het uitsluiten van legitiem gebruik, bijvoorbeeld door device-registraties. Volgens onze observatie zit het onderscheid in de vraag welke resources als eerste in een sessie worden benaderd → bij een aanval doorgaans MS Graph of Azure AD Graph.",[526,865,866],{},"Hier is een werkende detectie die we in verschillende omgevingen van uiteenlopende grootte hebben getest:",[868,869,871,872,875,876,881,882,886,890,893,894,896,893,900,875,902,904,905,893,909,911,893,914,875,916,918,919,921,893,924,875,926,928,929,932,933,936,937,940,941,875,943,946,947,949,893,952,875,954,932,957,959,960,962,963,965,966,893,969,962,971,974,975,978,979,981,982,946,985,987,893,990,875,992,994,995,875,997,999,1000,893,1003,1005,893,1007,875,1009,904,1011,893,1013,1015,893,1018,875,1020,928,1022,932,1024,936,1026,940,1028],"div",{"style":870},"background-color:#000000; font-family: 'Source Code Pro', 'Courier New', monospace; padding: 15px; color: #ffffff","\nAADSignInEventsBeta ",[873,874],"br",{},"\n| ",[877,878,880],"span",{"style":879},"color: #569CD6;","where"," Timestamp > ",[877,883,885],{"style":884},"color: #E6DB74;","ago(",[877,887,889],{"style":888},"color: #A6E22E;","7d",[877,891,892],{"style":884},")"," ",[873,895],{},[877,897,899],{"style":898},"color: #75715E;","// Access to Microsoft Intune Company Portal",[873,901],{},[877,903,880],{"style":879}," ApplicationId == ",[877,906,908],{"style":907},"color: #D69D85;","@\"9ba1a5c7-f17a-4de9-a1f1-6178c8d51223\"",[873,910],{},[877,912,913],{"style":898},"// From non joined/registered device",[873,915],{},[877,917,880],{"style":879}," isempty(AadDeviceId) ",[873,920],{},[877,922,923],{"style":898},"// Used to access resource Microsoft Graph or Windows Azure Active Directory",[873,925],{},[877,927,880],{"style":879}," ResourceId ",[877,930,931],{"style":879},"in"," (",[877,934,935],{"style":907},"\"00000002-0000-0000-c000-000000000000\"",", ",[877,938,939],{"style":907},"\"00000003-0000-0000-c000-000000000000\"",") ",[873,942],{},[877,944,945],{"style":879},"summarize by"," SessionId ",[873,948],{},[877,950,951],{"style":898},"// Find the initial logon event based on the session Id",[873,953],{},[877,955,956],{"style":879},"join kind=inner",[873,958],{},"\n    AADSignInEventsBeta ",[873,961],{},"\n    | ",[877,964,880],{"style":879}," ErrorCode == ",[877,967,968],{"style":888},"0",[873,970],{},[877,972,973],{"style":879},"summarize arg_min(","Timestamp, *",[877,976,977],{"style":879},") by"," SessionId)",[873,980],{},"\n    ",[877,983,984],{"style":879},"on",[873,986],{},[877,988,989],{"style":898},"// Ignore trusted and managed devices",[873,991],{},[877,993,880],{"style":879}," isempty(DeviceTrustType) ",[873,996],{},[877,998,880],{"style":879}," IsManaged != ",[877,1001,1002],{"style":888},"1",[873,1004],{},[877,1006,899],{"style":898},[873,1008],{},[877,1010,880],{"style":879},[877,1012,908],{"style":907},[873,1014],{},[877,1016,1017],{"style":898},"// when the first requested resource is Microsoft Graph or Windows Azure Active Directory",[873,1019],{},[877,1021,880],{"style":879},[877,1023,931],{"style":879},[877,1025,935],{"style":907},[877,1027,939],{"style":907},[873,1029],{},[559,1031,1033],{"id":1032},"hoe-reageren-we-als-we-verdachte-activiteit-detecteren","Hoe reageren we als we verdachte activiteit detecteren?",[526,1035,565],{},[526,1037,1038],{},"Start je incident response-proces met een gedefinieerd playbook dat het volgende bevat:",[567,1040,1041,1062,1070,1073,1076],{},[570,1042,1043,1044],{},"Hunten naar verdachte of afwijkende activiteit van de gecompromitteerde gebruiker\n",[567,1045,1046,1053,1056,1059],{},[570,1047,1048,1049],{},"Overzicht van non-interactive sign-ins naar resource-applicaties, inclusief IP-adressen en UserAgents op basis van ",[1050,1051,1052],"code",{},"sessionId",[570,1054,1055],{},"Controleren of de Microsoft Entra Audit Logs kritieke operaties door de gebruiker of vanaf de IP-adressen tonen (bijvoorbeeld toegevoegde credentials bij app-registraties waarvan de gebruiker owner is)",[570,1057,1058],{},"Vaststellen of de gebruiker in de betrokken sessie devices heeft geregistreerd",[570,1060,1061],{},"De Intune-auditlogs controleren op operaties door de applicatie “Company Portal” en door de betrokken gebruiker",[570,1063,1064,1065],{},"Hunten naar gerelateerde alerts van de betrokken entiteiten\n",[567,1066,1067],{},[570,1068,1069],{},"Entiteiten opzoeken in de tabel AlertEvidence om andere alerts te vinden op basis van SessionId, IP-adressen en gebruiker",[570,1071,1072],{},"De kritikaliteit van de gebruiker (op basis van privileges) bepalen in Exposure Management",[570,1074,1075],{},"De hunting-resultaten reviewen en verifiëren of de actie legitiem was als onderdeel van een device enrollment.",[570,1077,1078],{},"De initiële toegangsvector identificeren en de credentials van de gebruiker resetten, en waar nodig ook devices.",[559,1080,1082],{"id":1081},"kunnen-we-de-aanval-mitigeren","Kunnen we de aanval mitigeren?",[526,1084,565],{},[526,1086,1087,1088,1091],{},"Omdat de geconfigureerde uitzondering nodig is voor Intune enrollment, ",[636,1089,1090],{},"is er geen mitigatie die niet andere delen van Microsoft 365 kapotmaakt",". Toegang tot de resource Azure AD Graph kan niet direct worden gescoped of geblokkeerd. Elke Conditional Access-policy die “Block” als grant control gebruikt, voorkomt toegang, maar kan andere consequenties hebben.",[526,1093,1094],{},"Voor mitigatie is het belangrijk te begrijpen dat deze Conditional Access-bypass geen volledige aanval is. Het is een techniek die als tussenstap een reeks aanvallen mogelijk maakt.",[526,1096,1097],{},"Een aanvalspad kan zijn",[1099,1100,1101,1104,1107,1110],"ol",{},[570,1102,1103],{},"Account compromise via phishing en AiTM",[570,1105,1106],{},"Conditional Access-bypass",[570,1108,1109],{},"Reconnaissance met bijvoorbeeld ROADrecon, GraphRunner of AADInternals",[570,1111,1112],{},"Lateral movement, privilege escalation of persistence via een nieuw geregistreerd device dat in Intune is geënrolleerd",[526,1114,1115],{},"Omdat we de Conditional Access-bypass niet kunnen mitigeren zonder Intune enrollment te breken, is het meer dan verstandig om mitigaties bij de andere stappen van het aanvalspad in te bouwen en daarnaast zinvolle detecties te implementeren.",[526,1117,1118],{},"Om de waarschijnlijkheid en de impact te verkleinen raden we aan om andere controls te versterken en het volgende op korte termijn te implementeren:",[567,1120,1121,1127,1133,1139,1145,1161,1167],{},[570,1122,1123,1126],{},[636,1124,1125],{},"Dwing MFA af voor “All Users” en “All Cloud Apps” via Conditional Access."," Als je alleen Device Compliance afdwingt, is single factor authentication met deze techniek al voldoende.",[570,1128,1129,1132],{},[636,1130,1131],{},"Gebruik Device Compliance of MFA niet als alternatieven in je rulesets, dwing altijd beide af."," Met OR beperk je toegang nooit volledig tot compliant devices, omdat een access token met MFA in scope al genoeg is om de tenant te benaderen.",[570,1134,1135,1138],{},[636,1136,1137],{},"Beperk Security Information Registration tot compliant devices, phishing-resistant authenticatie of TAP."," In onze tests lukte het ons niet om Device Compliance voor de Security Info Registration te bypassen.",[570,1140,1141,1144],{},[636,1142,1143],{},"Vereis phishing-resistant authenticatie of TAP voor Join or Register Devices."," Zonder die eis is het mogelijk om met bijvoorbeeld AADInternals en deze techniek een device te registreren.",[570,1146,1147,1150,1151],{},[636,1148,1149],{},"Vereis MFA en “Sign-in frequency every time” voor Microsoft Intune Enrollment."," Dat beperkt de periode waarin een aanvaller verse credentials kan gebruiken om een nieuw device in Intune te enrollen.\n",[1152,1153,1154],"blockquote",{},[526,1155,1156,1157,1160],{},"🚧\n",[636,1158,1159],{},"Let op: Sign-in frequency every time = elke vijf minuten","\nMicrosoft rekent met vijf minuten clock skew wanneer “every time” in een Conditional Access-policy is geselecteerd, zodat gebruikers niet vaker dan één keer per vijf minuten een prompt krijgen.",[570,1162,1163,1166],{},[636,1164,1165],{},"Blokkeer personally owned devices in de Intune Enrollment restrictions."," Zonder die restricties kan een aanvaller een nieuw device enrollen en extra voet aan de grond krijgen.",[570,1168,1169,1172],{},[636,1170,1171],{},"Zet device compliance op fail wanneer er in Intune geen compliance policy aan een device is toegewezen."," Standaard wordt elk device als compliant beschouwd, ook als er feitelijk geen policy is toegepast. Verander dat en maak een device compliance policy verplicht.",[526,1174,1175,1176,1180],{},"Op langere termijn moedigen we je aan te investeren in de uitrol van wachtwoordloze, phishing-resistant authenticatie zoals Windows Hello for Business en passkeys (inclusief Platform Credentials via macOS Platform SSO). Daarmee kun je vervolgens phishing-resistant authenticatie afdwingen en AiTM-aanvallen blokkeren. Sta in plaats van een wachtwoord het gebruik van een Temporary Access Pass (TAP) toe voor beperkte tijd en beperkte scenario's, bijvoorbeeld het onboarden van nieuwe devices of medewerkers. Om het gebruik van TAP's voor verschillende use cases te ondersteunen hebben we ",[574,1177,287],{"href":1178,"rel":1179},"https://myworkid.cloud/",[578]," gebouwd.",[559,1182,1184],{"id":1183},"conclusie","Conclusie",[526,1186,565],{},[526,1188,1189],{},"Conditional Access als Zero Trust-engine voor Entra ID is op zichzelf al ingewikkeld. Door Microsoft ingebouwde uitzonderingen in de backend van Entra maken het voor veel mensen nog moeilijker om de impact van policies en beschermingsmaatregelen te doorzien. Toch houdt het idee van Zero Trust en defense in depth stand.",[526,1191,1192],{},"De device compliance-policy voorkomt de meeste AiTM-aanvallen en multi-factor authentication maakt het voor een aanvaller moeilijker om gelekte of anderszins gecompromitteerde credentials te misbruiken.",[526,1194,1195],{},"Al deze securitymaatregelen moeten samen worden gebruikt en niet als vervanging van elkaar. Zo blijft de omgeving veilig, ook als een van de verdedigingslagen wordt gemanipuleerd of doorbroken.",[526,1197,1198],{},"We raden sterk aan om de geleverde detectie in Microsoft Defender XDR uit te rollen, zodat mogelijk misbruik daadwerkelijk wordt opgemerkt. Zorg ervoor dat je SOC voorbereid is om dit soort incidenten te onderzoeken en geef het team de nodige playbooks.",{"title":530,"searchDepth":531,"depth":531,"links":1200},[1201,1202,1203,1207,1213,1214,1215,1216],{"id":561,"depth":531,"text":562},{"id":622,"depth":531,"text":623},{"id":669,"depth":531,"text":670,"children":1204},[1205],{"id":676,"depth":1206,"text":677},3,{"id":762,"depth":531,"text":763,"children":1208},[1209,1210,1211,1212],{"id":768,"depth":1206,"text":769},{"id":799,"depth":1206,"text":726},{"id":832,"depth":1206,"text":737},{"id":840,"depth":1206,"text":841},{"id":854,"depth":531,"text":855},{"id":1032,"depth":531,"text":1033},{"id":1081,"depth":531,"text":1082},{"id":1183,"depth":531,"text":1184},"post",{"lang":1219,"seoTitle":1220,"titleClass":1221,"date":1222,"categories":1223,"blogtitlepic":1224,"socialimg":1225,"customExcerpt":1226,"keywords":1227,"contactInContent":1228,"scripts":1285},"nl","Compliant Device Bypass in Microsoft Intune – detectie, response en mitigatie","h2-font-size","2025-01-14",[235],"header-company-portal-ca-bypass","/blog/heads/header-company-portal-ca-bypass.png","In deze blogpost verzamelen Fabian Bader (MVP bij glueckkanja), Chris Brumm en Thomas Naunheim de details over de Compliant Device Bypass in de Microsoft Intune Company Portal. Na aanvullend onderzoek hebben ze een aanpak gevonden om de potentiële dreiging te detecteren en erop te reageren. Je vindt hier ook guidance over Conditional Access om het aanvalsoppervlak te verkleinen en details over de blast radius.","Compliant Device Bypass, Microsoft Intune, Conditional Access, Entra ID, Intune Company Portal, device compliance, CA exclusion, TokenSmith PoC, cloud security, PowerShell PoC, Fabian Bader, Christopher Brumm, Thomas Naunheim, security threat, Black Hat Europe, Intune Enrollment, MSRC response, attack detection, threat mitigation, cloud compliance, FOCI feature",{"quote":484,"infos":1229},{"bgColor":1230,"color":1231,"boxBgColor":1232,"boxColor":1233,"headline":1234,"subline":1235,"level":559,"textStyling":1236,"flush":1237,"person":1238,"form":1250},"var(--color-gk-violet)","var(--color-gk-white)","var(--color-gk-yellow)","var(--color-copy)","Neem nu contact op","Wil je meer weten over de Compliant Device Bypass en over hoe je die effectief detecteert en mitigeert? Onze experts nemen onze bevindingen met je door en ondersteunen je met bewezen strategieën voor betere security. We kijken ernaar uit om met je in contact te komen.","text-light","justify-content-end",{"image":1239,"cloudinary":325,"alt":1240,"name":1240,"detailsHeader":1241,"details":1242},"/people/people-pam-team.png","Project & Account Management","We horen graag van je.",[1243,1247],{"text":492,"href":1244,"details":1245,"icon":1246},"tel:+49 69 4005520","Nu bellen","site/phone",{"text":493,"href":1248,"icon":1249},"mailto:info@glueckkanja.com","site/mail",{"ctaText":1251,"cta":1252,"method":1217,"action":1254,"fields":1255},"Versturen",{"skin":1253},"primary on-surface","/send",[1256,1260,1265,1268,1272,1277,1280,1283],{"type":1257,"id":1258,"value":1259},"hidden","_next","successful",{"label":1261,"type":1262,"id":1263,"required":325,"requiredMsg":1264},"Naam*","text","name","Vul je naam in.",{"label":1266,"type":1262,"id":403,"required":325,"requiredMsg":1267},"Bedrijf*","Vul je bedrijf in.",{"label":1269,"type":1270,"id":1270,"required":325,"requiredMsg":1271},"E-mailadres*","email","Vul je e-mailadres in.",{"label":1273,"type":1274,"id":1275,"required":325,"requiredMsg":1276},"Je gegevens worden bij ons opgeslagen om je aanvraag te verwerken en erop te reageren. Meer informatie over gegevensbescherming vind je in onze \u003Ca href=\"/nl/privacy\">privacyverklaring\u003C/a>.","checkbox","dataprotection","Bevestig dit",{"type":1257,"id":1278,"value":1279},"_subject","Request Global Secure Access",{"type":1257,"id":1281,"value":1282},"inbox_key","gkgab-contact-form",{"type":1257,"id":1284},"_gotcha",{"slick":325,"form":325},"/posts/2025-01-14-compliant-device-bypass",{"title":552,"description":530},"posts/2025-01-14-compliant-device-bypass",[235,1290,1291,1292,281],"Entra","Conditional Access","ITDR","btJVpbhV97E39Nf1HNmrfou1fgCiYSr3kEgN5RQGETk",{"id":1295,"title":1296,"author":1297,"body":1298,"cta":494,"description":1302,"eventid":494,"extension":533,"hideInRecent":484,"layout":1217,"meta":2085,"moment":2087,"navigation":325,"path":2108,"seo":2109,"stem":2110,"tags":2111,"webcast":484,"__hash__":2114},"content_nl/posts/2025-12-31-vulnerability-consentfix.md","AuthCodeFix aka ConsentFix",[521,554,555],{"type":523,"value":1299,"toc":2065},[1300,1303,1306,1309,1315,1318,1321,1330,1335,1343,1363,1366,1372,1375,1378,1384,1389,1393,1404,1410,1413,1416,1420,1423,1429,1436,1439,1459,1469,1473,1476,1479,1482,1485,1489,1492,1495,1512,1521,1525,1529,1549,1553,1558,1569,1572,1580,1584,1598,1602,1613,1617,1620,1628,1631,1639,1642,1650,1654,1657,1678,1681,1746,1749,1752,1755,1758,1761,1767,1770,1811,1815,1830,1834,1838,1852,1855,1858,1863,1866,1877,1881,1888,1892,1898,1903,1917,1923,1929,1935,1946,1949,1955,1958,1983,1992,1996,2016,2022,2025,2031,2035],[526,1301,1302],{},"Zoals de traditie het wil, verschijnt er net voor het einde van het jaar een nieuwe kwetsbaarheid of een slim aanvalspad, en mogen defenders opnieuw proberen hun gebruikers te beschermen. Andere aanvallers en red teamers kijken intussen aandachtig mee en passen zich aan.",[526,1304,1305],{},"Dit jaar detecteerde PushSecurity een aanval die ze \"ConsentFix\" noemden, een evolutie van de ClickFix-aanval die erop leunt dat de gebruiker de aanvaller een URI aanreikt waarmee die in feite de sleutel tot het Entra-koninkrijk overhandigt. De methode die in het wild werd gebruikt, had een handmatige copy-and-paste-actie van de gebruiker nodig om te werken. Binnen een paar dagen publiceerde John Hammond een video met een verbeterde versie van de aanval waarvoor geen copy and paste meer nodig was: de gebruiker kon zijn auth code simpelweg naar de aanvaller slepen.",[526,1307,1308],{},"Wanneer we in de technische details duiken van waarom deze aanval werkt en device compliance en andere Conditional Access-vereisten schijnbaar omzeilt, komen we terecht bij de OAuth 2.0 authorization code flow.",[526,1310,1311],{},[642,1312],{"alt":1313,"src":1314},"OAuth 2.0 authorization code flow","https://res.cloudinary.com/c4a8/image/upload/blog/pics/consentfix-img-01.png",[526,1316,1317],{},"De aanvaller maakt een Microsoft Entra login-URI die de client \"Microsoft Azure CLI\" en de resource \"Azure Resource Manager\" aanspreekt, en opent deze URI wanneer de gebruiker de kwaadaardige website bezoekt.",[526,1319,1320],{},"Gemapt op de authorization code flow komt dit overeen met de eerste stap die een native public app zoals de Azure CLI normaal zou aanroepen om de gebruiker te authenticeren. De applicatie start op de machine waarop ze wordt uitgevoerd een listener op een willekeurige hoge poort. Die poort wordt gebruikt als zogenoemde reply URI.",[526,1322,1323,1324,1329],{},"Je kunt dit eenvoudig zelf reproduceren, bijvoorbeeld met ",[574,1325,1328],{"href":1326,"rel":1327},"https://github.com/f-bader/TokenTacticsV2",[578],"TokenTacticsV2",", of door de URI handmatig samen te stellen.",[526,1331,1332],{},[642,1333],{"alt":1328,"src":1334},"https://res.cloudinary.com/c4a8/image/upload/blog/pics/consentfix-img-02.png",[526,1336,1337,1338,1342],{},"Nadat de gebruiker zich succesvol bij Entra ID heeft aangemeld, wordt hij doorgestuurd naar de reply URI, bijvoorbeeld ",[574,1339,1340],{"href":1340,"rel":1341},"http://localhost:3001",[578],". In een normaal scenario zou de Azure CLI de aanroep naar deze URI nu accepteren en de belangrijke, kritieke informatie ontvangen die deel uitmaakt van de redirect:",[567,1344,1345,1355],{},[570,1346,1347,1349,1351,1352,1354],{},[636,1348,1050],{},[873,1350],{},"\nDit is de authorization_code, die de applicatie gebruikt om een bearer token op te vragen, bestaande uit een access token, een ID token en optioneel het refresh token.",[873,1353],{},"\nVolgens de documentatie is deze code ongeveer 10 minuten geldig en moet hij binnen die tijd worden ingewisseld.",[570,1356,1357,1360,1362],{},[636,1358,1359],{},"state",[873,1361],{},"\nDit is een optionele parameter en de applicatie hoort te controleren of die in request en response identiek is.",[526,1364,1365],{},"In het aanvalsscenario wordt de gebruiker ook doorgestuurd, maar omdat er geen applicatie op localhost draait, loopt de browser tegen een foutmelding aan.",[526,1367,1368],{},[642,1369],{"alt":1370,"src":1371},"De browser loopt tegen een foutmelding aan","https://res.cloudinary.com/c4a8/image/upload/blog/pics/consentfix-img-03.png",[526,1373,1374],{},"Maar de URI bevat nog steeds de gevoelige informatie, en dat is precies wat de aanvaller de gebruiker wil laten aanleveren. Als de gebruiker daaraan toegeeft, wisselt de aanvaller het tokenmateriaal in en kan hij vervolgens met het access token en het refresh token bij de resource, in dit geval Azure Resource Manager.",[526,1376,1377],{},"Op deze screenshot zie je hoe je het bearer token ophaalt met de URI die de gebruiker heeft aangeleverd.",[526,1379,1380],{},[642,1381],{"alt":1382,"src":1383},"Bearer token met de door de gebruiker aangeleverde URI","https://res.cloudinary.com/c4a8/image/upload/blog/pics/consentfix-img-04.png",[1152,1385,1386],{},[526,1387,1388],{},"Als je je detecties wilt testen, voer de laatste stap dan uit vanaf een ander systeem, in een ander netwerk.",[559,1390,1392],{"id":1391},"detectie-artefacten","Detectie-artefacten",[526,1394,1395,1396,1399,1400,1403],{},"Als je de aanval reproduceert en de ",[1050,1397,1398],{},"SigninLogs"," en ",[1050,1401,1402],{},"AADNonInteractiveUserSignInLogs"," bekijkt, zie je twee events voor deze ene sign-in-activiteit. Het eerste event is de daadwerkelijke aanmelding van de gebruiker, het tweede komt van de infrastructuur van de aanvaller.",[526,1405,1406],{},[642,1407],{"alt":1408,"src":1409},"Activity Log","https://res.cloudinary.com/c4a8/image/upload/blog/pics/consentfix-img-05.png",[526,1411,1412],{},"Het grote verschil is dat het eerste event een interactief sign-in-event is en het tweede een non-interactive event. Dat komt overeen met de twee fasen van de authenticatieflow: eerst de gebruiker, dan de applicatie of in ons geval de aanvaller.",[526,1414,1415],{},"Normaal gedrag van de Azure CLI zou zijn dat beide sign-in-events van hetzelfde IP-adres komen. In ons geval verschillen de IP-adressen echter, en ze komen uit verschillende landen. Dat laatste is natuurlijk geen betrouwbare indicator, want de aanvaller kan zich in hetzelfde land als het slachtoffer bevinden om zijn sporen te verbergen.",[674,1417,1419],{"id":1418},"ontbrekende-link","Ontbrekende link",[526,1421,1422],{},"Op zoek naar een goede manier om die twee events aan elkaar te koppelen, was het eerste idee de Unique Token Identifier (UTI) te gebruiken. Microsoft gebruikt echter verschillende waarden voor de UTI van de authorization code en die van het bearer token, waardoor deze aanpak niet werkt als betrouwbare koppeling.",[526,1424,1425],{},[642,1426],{"alt":1427,"src":1428},"Unique Token Identifier","https://res.cloudinary.com/c4a8/image/upload/blog/pics/consentfix-img-06.png",[526,1430,1431,1432,1435],{},"De ",[1050,1433,1434],{},"SessionId"," is wel een goede koppeling tussen beide, al gaat het om een langlopend ID dat meerdere van deze eventcombinaties kan bevatten, ook legitieme.",[526,1437,1438],{},"Met de aanvullende kennis over de beperkingen van de auth code flow en met het user id en het application id als extra koppeling kun je tijd als belangrijke detectiefactor inzetten:",[567,1440,1441,1444,1447,1450,1453,1456],{},[570,1442,1443],{},"Beide events hebben dezelfde SessionId",[570,1445,1446],{},"Beide events hebben dezelfde ApplicationId",[570,1448,1449],{},"Beide events hebben dezelfde UserId",[570,1451,1452],{},"Het tweede event moet na het eerste event komen",[570,1454,1455],{},"Het tweede event moet binnen ongeveer een tijdvenster van 10 minuten na het eerste event vallen. Gebruik niet exact 10 minuten, want Microsoft schrijft \"[...] they expire after about 10 minutes\"",[570,1457,1458],{},"Beschouw alleen het eerstvolgende tweede event, niet de daaropvolgende",[1152,1460,1461],{},[526,1462,1463,1466,1468],{},[636,1464,1465],{},"Fun fact",[873,1467],{},"\nDe ResourceIdentity is geen goede koppeling, omdat de aanvaller de resource kan wijzigen: die is niet aan de auth code gebonden. Het aangesproken application ID kan niet worden gewijzigd.",[559,1470,1472],{"id":1471},"ruis-verminderen","Ruis verminderen",[526,1474,1475],{},"Deze kennis leverde ons al een goed werkende detectie op, maar er zaten ook benign positives tussen. Moderne developers gebruiken cloudresources die zich voordoen als lokale instances, wat in de logs tot onregelmatige loginpatronen leidt.",[526,1477,1478],{},"Het cruciale verschil zit in de tijdcomponent. Waar de aanval gebruikersinteractie vereist om de URI te kopiëren en te plakken of te slepen, is de GitHub Codespace-use case die we als bron van de benign positives identificeerden volledig geautomatiseerd en wisselt hij de auth code binnen enkele seconden in.",[526,1480,1481],{},"Alles wat deze authenticatiedans binnen een paar seconden afwikkelt, kun je dus met grote waarschijnlijkheid als benign wegfilteren.",[526,1483,1484],{},"Een andere bron van ruis kunnen wisselende egress points voor je internetverkeer zijn, met name in SD-WAN-, ZTNA- of Secure Web Gateway-scenario's.",[559,1486,1488],{"id":1487},"getroffen-first-party-applicaties","Getroffen first-party applicaties",[526,1490,1491],{},"Terwijl het oorspronkelijke rapport \"Microsoft Azure CLI\" als misbruikte applicatie noemt, zijn er veel verschillende Microsoft first-party apps met pre-consent in elke tenant die localhost als redirect aanbieden. En niet alleen die zijn een doelwit. De aanvaller kan ook reply-, test- en dev-URL's misbruiken die niet publiek resolvable zijn.",[526,1493,1494],{},"Hier is een lijst van de meest opvallende applicaties die daarnaast uitgebreide pre-consented permissions op resources hebben.",[567,1496,1497,1500,1503,1506,1509],{},[570,1498,1499],{},"Microsoft Azure CLI (04b07795-8ddb-461a-bbee-02f9e1bf7b46)",[570,1501,1502],{},"Microsoft Azure PowerShell (1950a258-227b-4e31-a9cf-717495945fc2)",[570,1504,1505],{},"Visual Studio (04f0c124-f2bc-4f59-8241-bf6df9866bbd)",[570,1507,1508],{},"Visual Studio Code (aebc6443-996d-45c2-90f0-388ff96faa56)",[570,1510,1511],{},"MS Teams PowerShell Cmdlets (12128f48-ec9e-42f0-b203-ea49fb6af367)",[526,1513,1514,1515,1520],{},"Een volledige lijst van deze apps staat inmiddels in ",[574,1516,1519],{"href":1517,"rel":1518},"https://entrascopes.com/?authcodeFix=true",[578],"EntraScopes.com"," van onze collega Fabian Bader.",[559,1522,1524],{"id":1523},"mitigaties-en-bescherming","Mitigaties en bescherming",[674,1526,1528],{"id":1527},"beperk-het-aanvalsoppervlak-en-de-doelgroep","Beperk het aanvalsoppervlak en de doelgroep",[868,1530,1533,1536,1537,1539,1542,1543,1545,1548],{"className":1531},[1532],"option-block",[636,1534,1535],{},"Implementatie-inspanning:"," Laag tot hoog (afhankelijk van de inspanning om legitieme gebruikers te identificeren)",[873,1538],{},[636,1540,1541],{},"Mitigatie:"," Gemiddeld (verkleint de potentiële doelgroep voor de aanval)",[873,1544],{},[636,1546,1547],{},"Scope:"," beperkt\n",[674,1550,1552],{"id":1551},"optie-1-user-assignment-vereisen","Optie 1: User Assignment vereisen",[1554,1555,1557],"h4",{"id":1556},"voorwaarden","Voorwaarden:",[567,1559,1560,1563,1566],{},[570,1561,1562],{},"Voeg de service principal voor de getroffen first-party apps toe via de Microsoft Graph API of PowerShell",[570,1564,1565],{},"Zet de user assignment requirement op het service principal-object met de Microsoft Graph API of PowerShell",[570,1567,1568],{},"Richt een proces in om gebruikers op aanvraag toe te wijzen via Access Packages, PIM-for-Groups (voor just-in-time toegang) of een combinatie van beide.",[685,1570,1571],{},"\n.code-block {\n  background-color: #f6f8fa;\n  padding: 0 16px 16px 16px;\n  border-radius: 6px;\n  font-family: Menlo, Consolas, Monaco, \"Courier New\", monospace;\n  font-size: 14px;\n  line-height: 1.5;\n  overflow-x: auto;\n  white-space: pre;\n  border: 1px solid #d0d7de;\n}\n",[1573,1574,1577],"pre",{"className":1575},[1576],"code-block",[1050,1578,1579],{},"\n// Example for Microsoft Graph PowerShell\nConnect-MgGraph -Identity\n$AppId = \"04b07795-8ddb-461a-bbee-02f9e1bf7b46\" // Microsoft Azure CLI\n$sp = Get-MgServicePrincipal -Filter \"appId eq '$AppId'\"\nUpdate-MgServicePrincipal -ServicePrincipalId $sp.Id -AppRoleAssignmentRequired:$false\n",[1554,1581,1583],{"id":1582},"voordeel","Voordeel:",[567,1585,1586,1589,1592,1595],{},[570,1587,1588],{},"Maakt het beheer van user assignments via Access Packages of handmatig groepslidmaatschap mogelijk om de blootstelling aan deze aanvalstechniek te beperken.",[570,1590,1591],{},"Mogelijkheid tot just-in-time toegang in combinatie met een eligible group membership, waarmee tijdelijke toegang tot CLI-tools ontstaat en het aanvalsoppervlak verder krimpt.",[570,1593,1594],{},"Wordt toegepast voordat Conditional Access-policies worden geëvalueerd.",[570,1596,1597],{},"Beperkt ook het aanvalsoppervlak voor andere scenario's.",[1554,1599,1601],{"id":1600},"nadeel","Nadeel:",[567,1603,1604,1607,1610],{},[570,1605,1606],{},"Kan alleen op specifieke gebruikers worden gescoped en niet worden gecombineerd met andere eisen, zoals het gebruik van specifieke devices",[570,1608,1609],{},"Alle legitieme gebruikers van CLI-tools moeten worden geïdentificeerd",[570,1611,1612],{},"Neveneffecten en organisatorische impact moeten zorgvuldig worden beoordeeld door eerdere sign-ins te bekijken.",[674,1614,1616],{"id":1615},"optie-2-toegang-blokkeren-met-conditional-access-policies","Optie 2: Toegang blokkeren met Conditional Access-policies",[1554,1618,1557],{"id":1619},"voorwaarden-1",[567,1621,1622,1625],{},[570,1623,1624],{},"Maak een Conditional Access-policy die toegang tot CLI-tools blokkeert, met uitzondering van legitieme gebruikers, door \"Microsoft Graph Command Line Tools\" en \"Windows Azure Service Management API\" te targeten",[570,1626,1627],{},"Beheer uitzonderingen via groepslidmaatschap, handmatig of via entitlement management (bijvoorbeeld Access Packages).",[1554,1629,1583],{"id":1630},"voordeel-1",[567,1632,1633,1636],{},[570,1634,1635],{},"Voorkomt tokenuitgifte voor niet-legitieme of niet-geprivilegieerde gebruikers.",[570,1637,1638],{},"Maakt granulaire scoping mogelijk op basis van aanvullende condities zoals device of netwerk.",[1554,1640,1601],{"id":1641},"nadeel-1",[567,1643,1644,1647],{},[570,1645,1646],{},"Alle legitieme gebruikers van CLI-tools moeten worden geïdentificeerd en uitgesloten.",[570,1648,1649],{},"Neveneffecten en organisatorische impact moeten zorgvuldig worden beoordeeld door eerdere sign-ins te bekijken en de policy in report-only-modus te evalueren.",[674,1651,1653],{"id":1652},"tokenuitgifte-via-de-authorization-code-flow-blokkeren","Tokenuitgifte via de authorization code flow blokkeren",[685,1655,1656],{},"\n.option-block {\n  background-color: #f6f8fa;\n  padding: 16px;\n  margin-bottom:2rem;\n  border-radius: 6px;\n  overflow-x: auto;\n  border: 1px solid #d0d7de;\n}\n",[868,1658,1660,1663,1664,1666,1668,1669,1671,1668,1673,1675,1677],{"className":1659},[1532],[636,1661,1662],{},"Optie:"," Token Protection vereisen",[873,1665],{},[636,1667,1535],{}," Hoog",[873,1670],{},[636,1672,1541],{},[873,1674],{},[636,1676,1547],{}," Zeer beperkt\n",[1554,1679,1557],{"id":1680},"voorwaarden-2",[567,1682,1683,1686,1689,1708],{},[570,1684,1685],{},"Microsoft Entra ID P1-licenties",[570,1687,1688],{},"Entra ID Registered Devices, Hybrid of Entra ID-joined devices op het Windows-platform",[570,1690,1691,1692,936,1697,1399,1702,1707],{},"Web Account Manager (WAM) inschakelen in ",[574,1693,1696],{"href":1694,"rel":1695},"https://learn.microsoft.com/en-us/cli/azure/authenticate-azure-cli-interactively?view=azure-cli-latest#sign-in-with-web-account-manager-wam-on-windows",[578],"Azure CLI",[574,1698,1701],{"href":1699,"rel":1700},"https://learn.microsoft.com/en-us/powershell/azure/configure-global-settings?view=azps-15.1.0#web-account-manager-wam",[578],"Azure PowerShell",[574,1703,1706],{"href":1704,"rel":1705},"https://learn.microsoft.com/en-us/powershell/module/microsoft.graph.authentication/set-mggraphoption?view=graph-powershell-1.0#set-web-account-manager-support",[578],"Microsoft Graph PowerShell"," (standaard in de nieuwste versies)",[570,1709,1710,1711],{},"Conditional Access configureren met targeting op:\n",[567,1712,1713,1727,1735],{},[570,1714,1715,1716],{},"Cloud App targeting op de volgende apps:\n",[567,1717,1718,1721,1724],{},[570,1719,1720],{},"Office 365 Exchange Online",[570,1722,1723],{},"Office 365 SharePoint Online",[570,1725,1726],{},"Microsoft Teams Services",[570,1728,1729,1730,1734],{},"Client apps onder ",[1731,1732,1733],"em",{},"Mobile apps and desktop clients"," om Token Protection te vereisen.",[570,1736,1737,1738,1741,1742,1745],{},"Selecteer ",[1731,1739,1740],{},"Windows"," als ",[1731,1743,1744],{},"device platform"," voor de targeting van de policy",[1554,1747,1583],{"id":1748},"voordeel-2",[526,1750,1751],{},"De token protection van Microsoft Entra vereist proof‑of‑possession (PoP), wat alleen kan worden afgedwongen wanneer de client direct communiceert met een vertrouwde token broker zoals de Web Account Manager (WAM) op Windows. Omdat browsers dat beveiligde kanaal niet kunnen opzetten, wordt de authorization code flow die in een browser wordt gestart, geblokkeerd onder token protection-policies.",[526,1753,1754],{},"Wanneer de policy token protection afdwingt die broker‑managed PoP vereist, kan de authorization code die aan een browser wordt teruggegeven niet worden ingewisseld, omdat de browser tijdens de uitwisseling van code naar token niet het vereiste broker‑signed bewijs kan leveren",[526,1756,1757],{},"In dat geval worden aanvallen met AuthCodeFix volledig gemitigeerd, zolang de applicatie door Token Protection beschermd kan worden.",[526,1759,1760],{},"Zoals de screenshot hieronder laat zien, verhindert Token Protection succesvol het inwisselen van de authorization code flow die het slachtoffer via een phishingactie heeft gestart.",[526,1762,1763],{},[642,1764],{"alt":1765,"src":1766},"Token Protection verhindert succesvol het inwisselen van de authorization code flow","https://res.cloudinary.com/c4a8/image/upload/blog/pics/consentfix-img-07.png",[1554,1768,1601],{"id":1769},"nadeel-2",[567,1771,1772,1802,1805,1808],{},[570,1773,1774,1775],{},"Alleen de volgende resources worden officieel ondersteund:\n",[567,1776,1777,1779,1781],{},[570,1778,1720],{},[570,1780,1723],{},[570,1782,1726,1783,1785,1787,1788,1399,1791,1795,1796,1801],{},[873,1784],{},[873,1786],{},"\nDe Microsoft Graph API wordt indirect gedekt door de eerder genoemde resources en Microsoft Graph PowerShell staat vermeld als ondersteunde client. In onze tests hebben we kunnen verifiëren dat de aanval in dit scenario wordt gemitigeerd. \"Windows Azure Service Management API\" staat niet vermeld als ondersteunde resource. Beide CLI-clients (",[574,1789,1696],{"href":1694,"rel":1790},[578],[574,1792,1701],{"href":1793,"rel":1794},"https://learn.microsoft.com/en-us/powershell/azure/authenticate-interactive?view=azps-15.1.0#benefits-of-wam",[578],") ondersteunen WAM, wat een client-side voorwaarde is voor het gebruik van Token Protection. Microsoft heeft ",[574,1797,1800],{"href":1798,"rel":1799},"https://techcommunity.microsoft.com/blog/microsoft-entra-blog/how-to-break-the-token-theft-cyber-attack-chain/4062700",[578],"in een blogpost"," aangekondigd de token protection-mogelijkheden uit te breiden naar Azure-managementscenario's.",[570,1803,1804],{},"Sommige bugs in Microsoft Graph PowerShell dwingen je de WAM-integratie tijdelijk uit te schakelen",[570,1806,1807],{},"Neveneffecten en organisatorische impact moeten zorgvuldig worden beoordeeld door eerdere sign-ins te bekijken en de policy in report-only-modus te evalueren. De cloud app targeting raakt ook de productiviteitstoegang tot Microsoft 365.",[570,1809,1810],{},"Beperkte scope door de beschikbaarheid op ondersteunde platformen en Entra ID-geïntegreerde devices.",[674,1812,1814],{"id":1813},"verdere-tokenuitgifte-blokkeren-via-een-compliant-network-check-of-trusted-network","Verdere tokenuitgifte blokkeren via een compliant network check of trusted network",[868,1816,1818,1820,1821,1823,1820,1825,1827,1829],{"className":1817},[1532],[636,1819,1535],{}," Gemiddeld",[873,1822],{},[636,1824,1541],{},[873,1826],{},[636,1828,1547],{}," Breed\n",[674,1831,1833],{"id":1832},"optie-toegang-buiten-het-compliant-network-blokkeren-met-global-secure-access","Optie: Toegang buiten het Compliant network blokkeren met Global Secure Access",[1554,1835,1837],{"id":1836},"voorwaarde","Voorwaarde:",[567,1839,1840,1843,1846,1849],{},[570,1841,1842],{},"Entra ID P1-licentie",[570,1844,1845],{},"Entra ID Registered Devices, Hybrid of Entra ID-joined devices op de platformen Windows, macOS, Android en iOS",[570,1847,1848],{},"Global Secure Access Client op alle betrokken clients en geactiveerde Entra Internet Access voor het M365 Traffic Profile",[570,1850,1851],{},"De Conditional Access-policy die de network compliant check afdwingt, moet op alle cloud apps worden toegepast",[1554,1853,1583],{"id":1854},"voordeel-3",[526,1856,1857],{},"Blokkeer aanvullende tokenuitgifte door een trusted network check af te dwingen. Deze mitigatie zorgt ervoor dat aanvallers geen nieuwe tokens kunnen verkrijgen met het refresh token uit de authorization code flow. Het voorkomt echter niet het initiële inwisselen van de authorization code of de uitgifte van het eerste access token, dat buiten het compliant network geldig blijft omdat het oorspronkelijk door het slachtoffer is aangevraagd.",[1152,1859,1860],{},[526,1861,1862],{},"Het afdwingen van GSA met de Compliant Network-conditie blokkeert ook andere Token Replay-scenario's en levert extra logs op die zeer nuttig kunnen zijn voor detecties en hunting.",[1554,1864,1601],{"id":1865},"nadeel-3",[567,1867,1868,1871,1874],{},[570,1869,1870],{},"Alleen van toepassing op gebruikers en devices met een uitgerolde Global Secure Access-client",[570,1872,1873],{},"Beperkte scope door de beschikbaarheid op Entra ID-geïntegreerde devices",[570,1875,1876],{},"Het afdwingen van Compliant Networks via CA vereist enkele uitzonderingen, bijvoorbeeld voor Intune, om kip-en-eiproblemen te voorkomen. Grondig testen is nodig voordat je uitrolt",[559,1878,1880],{"id":1879},"hunting-queries","Hunting queries",[526,1882,1883,1884,1887],{},"Zodra aan alle voorwaarden voor de mitigatie van tokendiefstal is voldaan, zoals de uitrol van de GSA-client (inclusief ingestion van ",[1050,1885,1886],{},"NetworkAccessTraffic","-logs) en het benutten van WAM-authenticatie, krijgen we extra mogelijkheden voor threat hunting en verificatie.",[674,1889,1891],{"id":1890},"gsa-logs-en-wam-authenticatie-inzetten-voor-hunting-of-om-vertrouwen-in-detectieresultaten-te-verifiëren","GSA-logs en WAM-authenticatie inzetten voor hunting of om vertrouwen in detectieresultaten te verifiëren",[526,1893,1894,1895,1897],{},"Deze hunting query maakt gebruik van ",[1050,1896,1886],{},"-logs uit Global Secure Access (GSA), die het initiërende proces voor de communicatie met het Microsoft Entra token endpoint bevatten. Daarmee kun je vaststellen of een tokenaanvraag direct uit een browser kwam en of er aanvullende tokenaanvragen buiten het GSA-netwerk zijn gedaan.",[1152,1899,1900],{},[526,1901,1902],{},"Deze query werkt en levert alleen betrouwbare resultaten wanneer aan de voorwaarden is voldaan; anders leidt hij tot een hoog aantal false positives.",[526,1904,1905,1908,1909,1912,1913,1916],{},[636,1906,1907],{},"Waarom dit uitmaakt:"," Bij het aanmelden via CLI- of PowerShell-modules met Web Account Manager (WAM) op Windows-devices komt er geen browser-based authorization code aan te pas. Dit aanmeldgedrag is standaard in de nieuwste versie. Als het initiërende proces dus een browser-executable is (bijvoorbeeld ",[1050,1910,1911],{},"msedge.exe","), is dat een sterke indicator voor verdachte activiteit. Op macOS wordt het proces gestart door de Company Portal-app (",[1050,1914,1915],{},"com.microsoft.CompanyPortalMac.ssoextension",") wanneer Platform SSO wordt gebruikt.",[526,1918,1919,1922],{},[636,1920,1921],{},"Token Binding en PoP:"," WAM-authenticatie bindt tokens doorgaans aan het device door Proof-of-Possession (PoP) af te dwingen. Aanvallers kunnen zonder PoP geen verdere gebonden tokens uitgeven, dus een ongebonden refresh token is een andere sterke indicator.",[526,1924,1925,1928],{},[636,1926,1927],{},"Beperkingen:"," Alle genoemde signalen zijn alleen beschikbaar wanneer het device dat toegang zoekt, geregistreerd is bij of joined is aan Microsoft Entra ID.",[526,1930,1931,1934],{},[636,1932,1933],{},"Logica van de confidence score:"," De query combineert meerdere signalen om een confidence score te berekenen:",[567,1936,1937,1940,1943],{},[570,1938,1939],{},"Aanwezigheid van een browserproces dat tokenaanvragen initieert.",[570,1941,1942],{},"Detectie van en downgrade naar ongebonden tokens.",[570,1944,1945],{},"Wijzigingen van network provider (inclusief van compliant naar non-compliant) tussen sign-ins.",[526,1947,1948],{},"Deze signalen kun je in de query gebruiken om naar activiteit te hunten of om bij een incident een confidence score af te leiden op basis van de eerdere detectie.",[526,1950,1951],{},[642,1952],{"alt":1953,"src":1954},"Signalen voor de hunting query","https://res.cloudinary.com/c4a8/image/upload/blog/pics/consentfix-img-08.png",[526,1956,1957],{},"Afhankelijk van de condities wordt de volgende score weergegeven:",[526,1959,1960,1963,1964,1966,1967,1969,1971,1974,1975,1977,1979,1982],{},[636,1961,1962],{},"Een zeer hoge confidence score"," wordt weergegeven wanneer ",[1050,1965,1886],{},"-logs een bekend browserproces aangeven in plaats van een geïnitieerde tokenaanvraag, en er een downgrade van een ongebonden token is gedetecteerd.",[873,1968],{},[873,1970],{},[636,1972,1973],{},"Een hoge confidence score"," wordt weergegeven wanneer de aanmelding vanaf een andere Network Provider (ASN) en vanuit een non-compliant netwerk komt waarbij ongebonden tokens betrokken zijn.",[873,1976],{},[873,1978],{},[636,1980,1981],{},"Een gemiddelde confidence score"," wordt weergegeven wanneer alleen een wijziging van Network Provider en een compliant netwerk wordt vastgesteld, samen met een wijziging van het gebruikte tokentype.",[526,1984,1985,1986,1991],{},"De nieuwste versie van de hunting query vind je op ",[574,1987,1990],{"href":1988,"rel":1989},"https://github.com/Cloud-Architekt/AzureSentinel/blob/main/Hunting%20Queries/EID-Authentication/ConsentFix-HuntingConfidenceOnTokenAndNetworkSignals.kusto",[578],"GitHub",".",[674,1993,1995],{"id":1994},"hunten-naar-activiteiten-met-uitgegeven-tokens","Hunten naar activiteiten met uitgegeven tokens",[526,1997,1998,1999,2004,2005,2008,2009,2011,2012,2015],{},"Je doet er goed aan je onderzoek verder uit te breiden dan sign-in-events, naar activiteiten die zijn uitgevoerd met tokens die de aanvaller heeft uitgegeven. Onze collega Thomas Naunheim heeft ",[574,2000,2003],{"href":2001,"rel":2002},"https://github.com/Cloud-Architekt/AzureSentinel/blob/main/Hunting%20Queries/EID-TokenHunting/MicrosoftCloudActivity.func",[578],"een KQL-functie gepubliceerd"," met de naam ",[1050,2006,2007],{},"MicrosoftCloudActivity",", die bij dit uitgebreide hunten kan helpen. Daarnaast kan de betrokken ",[1050,2010,1434],{}," worden gecorreleerd met verdachte ",[1050,2013,2014],{},"UniqueId","-waarden uit eerdere hunts, voor een diepere analyse.",[526,2017,2018],{},[642,2019],{"alt":2020,"src":2021},"KQL-functie","https://res.cloudinary.com/c4a8/image/upload/blog/pics/consentfix-img-09.png",[526,2023,2024],{},"In dit voorbeeld gebruikte de aanvaller het tijdens de aanval verkregen refresh token om een access token voor de Microsoft Graph API uit te geven. Dat token werd vervolgens gebruikt om persistente toegang en lateral movement te behouden, door een client secret toe te voegen aan een applicatie die eigendom is van het slachtoffer. De query levert details over de Graph API-operatie, inclusief de token protection-status en of de operatie buiten het Global Secure Access-netwerk plaatsvond.",[526,2026,2027],{},[642,2028],{"alt":2029,"src":2030},"Screenshot van de Graph API-operatie","https://res.cloudinary.com/c4a8/image/upload/blog/pics/consentfix-img-10.png",[559,2032,2034],{"id":2033},"verder-lezen","Verder lezen",[567,2036,2037,2044,2051,2058],{},[570,2038,2039],{},[574,2040,2043],{"href":2041,"rel":2042},"https://pushsecurity.com/blog/consentfix",[578],"ConsentFix: Analysing a browser-native ClickFix-style attack that hijacks OAuth consent grants - PushSecurity",[570,2045,2046],{},[574,2047,2050],{"href":2048,"rel":2049},"https://youtu.be/AAiiIY-Soak",[578],"Hacking Endpoint to Identity (Microsoft 365): \"ConsentFix\" - YouTube",[570,2052,2053],{},[574,2054,2057],{"href":2055,"rel":2056},"https://learn.microsoft.com/en-us/entra/identity-platform/v2-oauth2-auth-code-flow",[578],"Microsoft identity platform and OAuth 2.0 authorization code flow",[570,2059,2060],{},[574,2061,2064],{"href":2062,"rel":2063},"https://entrascopes.com/?appId=04b07795-8ddb-461a-bbee-02f9e1bf7b46",[578],"Microsoft Azure CLI on entrascpes.com",{"title":530,"searchDepth":531,"depth":531,"links":2066},[2067,2070,2071,2072,2080,2084],{"id":1391,"depth":531,"text":1392,"children":2068},[2069],{"id":1418,"depth":1206,"text":1419},{"id":1471,"depth":531,"text":1472},{"id":1487,"depth":531,"text":1488},{"id":1523,"depth":531,"text":1524,"children":2073},[2074,2075,2076,2077,2078,2079],{"id":1527,"depth":1206,"text":1528},{"id":1551,"depth":1206,"text":1552},{"id":1615,"depth":1206,"text":1616},{"id":1652,"depth":1206,"text":1653},{"id":1813,"depth":1206,"text":1814},{"id":1832,"depth":1206,"text":1833},{"id":1879,"depth":531,"text":1880,"children":2081},[2082,2083],{"id":1890,"depth":1206,"text":1891},{"id":1994,"depth":1206,"text":1995},{"id":2033,"depth":531,"text":2034},{"lang":1219,"seoTitle":2086,"titleClass":1221,"date":2087,"categories":2088,"blogtitlepic":2089,"socialimg":2090,"customExcerpt":2091,"keywords":2092,"scripts":2093,"asideNav":2094,"maxContent":325,"published":325},"ConsentFix: hoe een nieuwe OAuth-aanval Microsoft Entra Conditional Access omzeilt","2025-12-31",[235],"head-consentfix","/blog/heads/head-consentfix.jpg","Net voor de jaarwisseling duikt ConsentFix op: een slimme OAuth-aanval die legitieme authenticatieflows misbruikt om de authorization code te stelen en aanvallers daarmee de sleutels tot Microsoft Entra in handen geeft. We leggen uit waarom dit ondanks Conditional Access werkt, welke signalen het in de logs achterlaat en hoe defenders het kunnen detecteren en stoppen voordat er echte schade ontstaat.","ConsentFix attack, OAuth authorization code theft, Microsoft Entra OAuth attack, Azure CLI token abuse, Entra ID Conditional Access bypass, authorization code phishing, token replay attack Azure, Proof of Possession tokens, WAM authentication security, Azure sign-in log analysis, detect OAuth attacks Entra, Azure identity threat hunting, Global Secure Access token protection, Microsoft Entra security detection",{"slick":325,"form":325},{"menuItems":2095},[2096,2098,2100,2102,2104,2106],{"href":2097,"text":1392},"#detectie-artefacten",{"href":2099,"text":1472},"#ruis-verminderen",{"href":2101,"text":1488},"#getroffen-first-party-applicaties",{"href":2103,"text":1524},"#mitigaties-en-bescherming",{"href":2105,"text":1880},"#hunting-queries",{"href":2107,"text":2034},"#verder-lezen","/posts/2025-12-31-vulnerability-consentfix",{"title":1296,"description":1302},"posts/2025-12-31-vulnerability-consentfix",[2112,2113,281],"OAuth 2.0","Microsoft Entra ID","AW4aykdeTs_9qbZLkKYwfMlh5Ol4ORT2zw2MvLzYhiQ",[],{"id":2117,"extension":2118,"meta":2119,"stem":8,"__hash__":2135},"authors_data/authors.json","json",{"Christopher Brumm":2120,"Fabian Bader":2126,"Thomas Naunheim":2131},{"display_name":554,"avatar":2121,"permalink":2122,"twitter":2123,"linkedin":2124,"imageOffsetTop":2125},"people/people-christopher-brumm.jpg","/authors/christopher-brumm","cbrhh","christopherbrumm","66%",{"display_name":521,"avatar":2127,"permalink":2128,"linkedin":2129,"twitter":2130},"people/people-fabian-bader.jpg","/authors/fabian-bader","fabianbader","fabian_bader",{"display_name":555,"avatar":2132,"permalink":2133,"linkedin":2134,"imageOffsetTop":2125},"people/people-thomas-naunheim.jpg","/authors/thomas-naunheim","thomasnaunheim","1csawlkJxRljy93GTOnXEkwLqAv9Lcj-apxRvoodAOY",1791383965562]