<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>KQL on Anything About IT</title><link>https://www.verboon.info/tags/kql/</link><description>Recent content in KQL on Anything About IT</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sat, 06 Dec 2025 12:27:02 +0000</lastBuildDate><atom:link href="https://www.verboon.info/tags/kql/index.xml" rel="self" type="application/rss+xml"/><item><title>Exploring IdentityAccountInfo - Building a KQL Query to Assess Identity Password Security Posture</title><link>https://www.verboon.info/2025/12/exploring-identityaccountinfo-building-a-kql-query-to-assess-identity-password-security-posture/</link><pubDate>Sat, 06 Dec 2025 12:27:02 +0000</pubDate><guid>https://www.verboon.info/2025/12/exploring-identityaccountinfo-building-a-kql-query-to-assess-identity-password-security-posture/</guid><description>&lt;p&gt;Recently Microsoft Defender XDR introduced a new table called &lt;a href="https://learn.microsoft.com/en-us/defender-xdr/advanced-hunting-identityaccountinfo-table"&gt;IdentityAccountInfo&lt;/a&gt;, and this one immediately caught my attention. It brings several interesting attributes into Advanced Hunting, including &lt;code&gt;LastPasswordChangeTime&lt;/code&gt; and even the sensitivity classification of an identity.&lt;/p&gt;
&lt;p&gt;Naturally, my first thought was: this is perfect material for some hunting logic, so let&amp;rsquo;s build a KQL query out of it.&lt;/p&gt;
&lt;p&gt;Why am I excited about this? Because it finally allows us to query identity hygiene data straight from Defender. No external inventory dumps, no AD scripting, just KQL.&lt;/p&gt;</description></item><item><title>Shedding Light on Dormant Sensitive Accounts</title><link>https://www.verboon.info/2025/07/shedding-light-on-dormant-sensitive-accounts/</link><pubDate>Tue, 08 Jul 2025 15:34:54 +0000</pubDate><guid>https://www.verboon.info/2025/07/shedding-light-on-dormant-sensitive-accounts/</guid><description>&lt;p&gt;Dormant sensitive accounts are a high-risk identity exposure. In Microsoft Defender XDR, the recommendation &lt;strong&gt;Remove dormant accounts from sensitive groups&lt;/strong&gt; helps surface these accounts, including whether they are inactive, disabled, or have expired credentials.&lt;/p&gt;
&lt;p&gt;
 &lt;img src="images/shedding-light-on-dormant-sensitive-accounts-01.png" alt=""&gt;

&lt;/p&gt;
&lt;p&gt;You can export the detected entities, but the export often contains limited context. In many cases, you only get entity names or SID values, which makes remediation harder when you need ownership and organizational details.&lt;/p&gt;
&lt;p&gt;
 &lt;img src="images/shedding-light-on-dormant-sensitive-accounts-02.png" alt=""&gt;

&lt;/p&gt;
&lt;p&gt;A practical approach is to use the SID values to enrich the result set with identity attributes from &lt;code&gt;IdentityInfo&lt;/code&gt;. You can quickly build a SID variable list using KustoVars, then query Defender XDR for additional context.&lt;/p&gt;</description></item><item><title>Users can create AzureAD tenants</title><link>https://www.verboon.info/2022/11/users-can-create-azuread-tenants/</link><pubDate>Tue, 22 Nov 2022 22:13:09 +0000</pubDate><guid>https://www.verboon.info/2022/11/users-can-create-azuread-tenants/</guid><description>&lt;p&gt;Hello there,&lt;/p&gt;
&lt;p&gt;In this blog post we look at a setting within the Azure AD portal: &amp;ldquo;Users can create Azure AD tenants&amp;rdquo;. Unfortunately, this setting is enabled by default. Most organizations will probably want to turn this off. You can find it in the Azure AD portal under Settings &amp;gt; Users &amp;gt; User settings &amp;gt; Tenant creation.&lt;/p&gt;
&lt;p&gt;
 &lt;img src="images/112222_2202_Userscancre1.png" alt=""&gt;

&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Yes&lt;/code&gt; allows default users to create Azure AD tenants. &lt;code&gt;No&lt;/code&gt; allows only users with the Global Administrator or Tenant Creator roles to create Azure AD tenants. Anyone who creates a tenant becomes the Global Administrator for that tenant.&lt;/p&gt;</description></item><item><title>Generating Advanced hunting queries with PowerShell</title><link>https://www.verboon.info/2020/07/generating-advanced-hunting-queries-with-powershell/</link><pubDate>Fri, 10 Jul 2020 23:21:46 +0000</pubDate><guid>https://www.verboon.info/2020/07/generating-advanced-hunting-queries-with-powershell/</guid><description>&lt;p&gt;I was recently writing some advanced hunting queries for Microsoft Defender ATP to search for the execution of specific PowerShell commands. If you are just looking for one specific command, you can run query as sown below&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-kql" data-lang="kql"&gt;// Find all machines running a given Powersehll cmdlet.
let powershellCommandName = &amp;#34;Invoke-RickAscii&amp;#34;; 
DeviceEvents 
| where ActionType == &amp;#34;PowerShellCommand&amp;#34; 
| where AdditionalFields contains powershellCommandName
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;But if you are looking for several functions, then there is going to be a lot of manual editing, and so the idea was born to use PowerShell to help me generate an advanced hunting query. The below function can do the following:&lt;/p&gt;</description></item></channel></rss>