
Father Engineer Learner Lurker | Microsoft MVP | AD, Entra & enterprise security specialist. Senior Security Consultant @trustedsec. Fellow Human Being.
Joined August 2011
- Tweets3K
- Following431
- Followers1.3K
- Likes7.7K
This is the developer side of the Application. If you're the customer, you need a relationship with your vendors. Check for overly permitted apps and SPs in privileged roles. I'll be working on a write-up soon. In the meantime, Jeremy links Merills video which covers it briefly.
Re: the ConnectWise incident. App Instance Lock is the default in Entra ID as of June 2026. It's a good idea to go back now make sure it is enabled for multi-tenant apps: learn.microsoft.com/en-us/en…
Replying to @merill
Ya, it doesn't take long to pivot or add persistence.
I had a fundamental lack of understanding about creds on multi tenant apps. There is no "synchronization", the customer SP uses the creds associated with the home tenant application (of which they have no visibility)
Replying to @merill
Great post Merill. Question about how the credential flow works. I understand that a revoked certificate would break the chain for all tenants but would the same work for removing a client secret? Same with adding in the home tenant. Do those changes flow down and how quickly?
Nice and quick explanation of the overlying issue with application credentials
I made a short video that explains Entra app permissions and the part they played in the ConnectWise incident: how one app credential reached 173+ Microsoft 365 tenants with no password or MFA, and what to check today.
youtube.com/watch?v=Q36aL_HI…
Tech Brandon retweeted
Did you know that if you have Entra ID P1 there is a new way to block your stolen refresh token from being replayed by the attacker?
Find out 🧵👇
1/7
I'm more jealous of this than all the pics from @WWHackinFest
Tech Brandon retweeted
🔒 Secure Bits 💡
𝗔𝗿𝗲 𝘆𝗼𝘂 𝗽𝗹𝗮𝗻𝗻𝗶𝗻𝗴 𝘁𝗼 𝗿𝗼𝗹𝗹 𝗼𝘂𝘁 𝗽𝗮𝘀𝘀𝗸𝗲𝘆𝘀 𝗶𝗻 𝗠𝗶𝗰𝗿𝗼𝘀𝗼𝗳𝘁 𝗘𝗻𝘁𝗿𝗮 𝗜𝗗 𝗮𝗻𝗱 𝗱𝗼𝗻𝘁 𝗸𝗻𝗼𝘄 𝘄𝗵𝗲𝗿𝗲 𝘁𝗼 𝘀𝘁𝗮𝗿𝘁?
I put together a step-by-step guide that will help you configure Passkeys from the perspective of System Administrator.
𝟭. 𝗖𝗵𝗼𝗼𝘀𝗲 𝘁𝗵𝗲 𝗽𝗮𝘀𝘀𝗸𝗲𝘆 𝘁𝘆𝗽𝗲𝘀
It will guide you on passkey types, what are they good for, what are the main differences between them and how to use each type.
𝟮. 𝗘𝗻𝗮𝗯𝗹𝗲 𝘁𝗵𝗲 𝗺𝗲𝘁𝗵𝗼𝗱 𝗮𝗻𝗱 𝗰𝗿𝗲𝗮𝘁𝗲 𝘁𝗵𝗲 𝗽𝗿𝗼𝗳𝗶𝗹𝗲𝘀
⚙️ Authentication methods > Policies > Passkey (FIDO2)
It will show you how to set up Passkey profiles. Each profile has its own attestation setting, passkey types and specifies allowed passkey hardware.
𝟯. 𝗦𝗲𝘁 𝘂𝗽 𝗧𝗲𝗺𝗽𝗼𝗿𝗮𝗿𝘆 𝗔𝗰𝗰𝗲𝘀𝘀 𝗣𝗮𝘀𝘀
It shows how to configure TAP so helpdesk can use it to onboard new users or recover lost or stolen passkeys.
𝟰. 𝗖𝗿𝗲𝗮𝘁𝗲 𝗮 𝗖𝗼𝗻𝗱𝗶𝘁𝗶𝗼𝗻𝗮𝗹 𝗔𝗰𝗰𝗲𝘀𝘀 𝘁𝗵𝗮𝘁 𝗿𝗲𝗾𝘂𝗶𝗿𝗲𝘀 𝗣𝗵𝗶𝘀𝗵𝗶𝗻𝗴-𝗿𝗲𝘀𝗶𝘀𝘁𝗮𝗻𝘁 𝗠𝗙𝗔
Finally it will guide you how to create Conditional Access policy that requires authentication strength, aka how to enforce the configured Passkey profiles with 𝗣𝗵𝗶𝘀𝗵𝗶𝗻𝗴-𝗿𝗲𝘀𝗶𝘀𝘁𝗮𝗻𝘁 𝗠𝗙𝗔
Also, check the client requirements before the pilot: iOS 17 or Android 14 and newer, a current Authenticator build, and Bluetooth turned on for both devices.
The guide has the exact settings, the requirements and the screenshots. Full PDF Link in the comments.
📢 Big shout out to @TechBrandon for his website Passkey Path:
techbrandon.github.io/passke…
Some of the practical tips are based on his work.
Are you already running passkeys in Entra? Which types did you pick for the admins, and which for the standard users?
𝘈𝘶𝘵𝘩𝘰𝘳: Martin Strnad
#SecureBits #EntraID #Passkeys #FIDO2 #PhishingResistantMFA #Microsoft365 #CyberSecurity
Tech Brandon retweeted
Mosey on up and join @SoberInCyber at the Deadwood Soda Saloon tonight from 6-9:00 PM during the Sponsor Stampede at @BHinfoSecurity @WWHackinFest!
🥤 Handcrafted sodas & a sparkling good time await ya.
soberincyber.org/events-1/so…
#WWHFDeadwood2026

ALT Sober in Cyber “Deadwood Soda Saloon” event graphic with a Western theme and Wild West Hackin’ Fest logo. Text reads: “Wednesday • October 7 • 6–9:00 PM,” “Located in the back of Miss Kitty’s Mercantile,” and “649 Main Street, Deadwood, SD.” Center photo shows people seated at the Deadwood Soda Saloon bar on novelty stools shaped like the backs of horses.
I blogged again! That's like 3 blogs in 3 weeks ... And I'm working on another one for October.
TrustedSec@TrustedSecOct 6United States
United StatesConnected via WebAccount-level information, not a live location or per-post device.
Logging isn't a switch to flip; it's something to tune and maintain. In our new blog, @TechBrandon outlines a four-step #ActiveDirectory logging framework covering log sizing, audit policies, detection goals, and gap analysis. Read it now! hubs.la/Q04zj5P50
I may have witnessed some minimal affirmations but nonetheless I was impressed. You did a great job as expected. Wish I could stay for after party.
I got it wrong. Good mix of questions. Funny how the categories is too high a level for kids. Lintile out there playing 3d chess with 8yr olds.
Accidentally happened upon this banger. In a world full of AI music, they choose to troll us old school.
👏 @Wendys 👏
“Songs to Listen to in a Wendy’s Parking Lot” is available everywhere you stream music. wendys.lnk.to/SongsToListenT…
Replying to @AletheDenis
We had a cat rescue this week too. I'm allergic but was tricked into fostering this little girl.
Replying to @J3ssa
Before BCC, I could count the number of books I've finished on 1 hand. Now I'm addicted, on book 4 now, in 2nd month of my first listen.
There is an opt out flag but only through Feb 2027. At that time a telephony provider must be in place in order to continue using SMS and voice. learn.microsoft.com/en-us/en…
Tech Brandon retweeted
💡 𝗦𝗲𝗰𝘂𝗿𝗲 𝗕𝗶𝘁𝘀 🔒
𝗔𝗰𝘁𝗶𝘃𝗲 𝗗𝗶𝗿𝗲𝗰𝘁𝗼𝗿𝘆 𝗽𝗿𝗶𝗺𝗮𝗿𝘆𝗚𝗿𝗼𝘂𝗽𝗜𝗗: 𝗰𝗵𝗲𝗰𝗸 𝘄𝗵𝗮𝘁 𝘆𝗼𝘂𝗿 𝘁𝗼𝗼𝗹𝘀 𝗮𝗿𝗲 𝗮𝗰𝘁𝘂𝗮𝗹𝗹𝘆 𝗿𝗲𝗽𝗼𝗿𝘁𝗶𝗻𝗴
Active Directory group membership is not only defined by the member / memberOf attributes. A user can also be a member of a group through their primaryGroupID.
𝗧𝗵𝗶𝘀 𝗰𝗿𝗲𝗮𝘁𝗲𝘀 𝘀𝗼𝗺𝗲 𝗶𝗻𝘁𝗲𝗿𝗲𝘀𝘁𝗶𝗻𝗴 𝗶𝗻𝗰𝗼𝗻𝘀𝗶𝘀𝘁𝗲𝗻𝗰𝗶𝗲𝘀:
🔹 Get-ADGroupMember returns users whose primaryGroupID points to the group.
🔹 Get-ADGroup -Properties member does not.
🔹 Get-ADUser -Properties memberOf does not show the primary group either.
🔹 net group does include these users.
It gets even more interesting with nested groups: recursive queries can miss users whose membership exists through primaryGroupID.
This matters especially for monitoring privileged groups. If your scripts or security tools look only at the group object’s member attribute, you may not be seeing the complete membership.
⚠️ There is also a technique where an attacker can deny read access to primaryGroupID on an unprotected user object, making the relationship even harder to discover through common AD and PowerShell tooling.
𝗣𝗿𝗮𝗰𝘁𝗶𝗰𝗮𝗹 𝗰𝗵𝗲𝗰𝗸:
Get-ADUser -Property primaryGroup,primaryGroupID -Filter {-not(primaryGroupID -like "513")} |
Select-Object Name,primaryGroupID,primaryGroup
For normal user accounts, 513 represents Domain Users. Non-standard values are therefore worth reviewing rather than assuming your normal group-membership enumeration has caught everything.
➡️ 𝗧𝗵𝗲 𝗯𝗶𝗴𝗴𝗲𝗿 𝘁𝗮𝗸𝗲𝗮𝘄𝗮𝘆: test how your monitoring actually enumerates AD group membership. Different methods can return different answers.
Author: @TechBrandon (🔗Full article is in the comments)
#ActiveDirectory #WindowsSecurity #CyberSecurity #IdentitySecurity #BlueTeam












