KQL Queries
This is a home for KQL queries that I find useful in investigations and other scenarios.
Using Results from One Table in Another
let names =
SecurityAlert
| where DisplayName has "AWS IAM Deactivation of MFA"
| distinct tostring(parse_json(Entities)[0].DisplayName);
AWSCloudTrail
| where EventName has "DeactivateMFADevice"
| where UserIdentityArn has_any (names)Advanced-Joined Rules
Search for Mailboxes of Users who Hit Malicious Links
let usersList=
_Im_WebSession(url_has_any="winstnet80nss") //Specify Malicious URL
| where User != "user@company.com" //Specify users NOT to be included in the search
| project
TimeGenerated,
EventProduct,
User,
SrcPrivateIpAddr,
SrcPublicIpAddr,
Url,
DstIpAddr,
HttpReferrer,
HttpRequestMethod,
HttpStatusCode,
DvcAction,
UserAgent,
FileName,
ThreatName
| distinct User; //Remove duplicates
OfficeActivity
| where Operation in ("Add-InboxRule", "Set-InboxRule", "Remove-InboxRule")
| where isnotnull(TargetUserOrGroupName) // Filters out system events
| join kind=inner (usersList) on $left.UserId == $right.User
| project TimeGenerated, UserId, Operation, TargetUserOrGroupName, OfficeWorkload, ClientIP, ParametersUPN Login Lookups Across Multiple Tables
IP Login Lookups Across Multiple Tables
Emails
Search Malicious URLs in Emails
Last updated