CLOUDAP
PRT TOKENS
AZURE ARC
CLOUD LAPS
Digital Forensics DFIR Reference TLP:WHITE March 2025 · v1.0

Windows Server 2025
Entra ID-Joined Endpoints
Complete Forensic Artifact Reference

A practitioner reference covering every forensic artifact class unique to Entra ID-joined Server 2025 — from PRT theft detection and CloudAP analysis to Azure Arc persistence, Cloud LAPS credential retrieval, and Intune MDM compliance audit trails.

Scroll

This document is structured as a practitioner reference rather than a tutorial. Each section covers a distinct artifact family in the Server 2025 / Entra ID forensic landscape. Within each section you will find: what the artifact is, where it lives (registry keys, filesystem paths, process-resident locations), what it records at field-level detail, how to collect it with command syntax, event IDs to target, and investigative scenarios where the artifact changes the outcome. All paths and registry keys were verified against Server 2025 (Build 26100) as of March 2025.

Analyst Note

Server 2025 is a rapidly evolving platform. Entra ID artifact locations and structures are subject to change across Windows Feature Updates. Validate against your specific build before relying on exact paths in production workflows.

Section 1 — The Shifted Forensic Landscape

What Changes When You Move From AD to Entra ID

Traditional Windows Server forensics is built around assumptions stable since Windows 2000: a domain controller to image, Kerberos tickets backed by a local KDC, credentials in NTDS.dit, group policy telemetry pointing to SYSVOL, and the security boundary at the on-premises network perimeter.

Every one of those assumptions breaks on an Entra ID-joined Server 2025 instance. The investigation does not get simpler — it gets bifurcated. Some evidence lives on the server in forms with no traditional equivalent. Other evidence lives in Microsoft's cloud infrastructure and requires Entra audit log collection via the Graph API or a legal preservation request. The analyst who applies a traditional investigation methodology to an Entra-joined server will miss significant evidence classes entirely.

The Evidence Bifurcation Problem

Evidence LocationWhat Lives There & How to Collect It
On the server (local)Device join records, credential caches, WAM token stores, conditional access evaluation logs, MDM compliance state, Arc agent logs, local security event log. Collected via imaging or live triage — standard DFIR workflow applies.
In Entra ID / Azure (cloud)Sign-in logs (interactive and non-interactive), audit logs (admin actions, LAPS password retrievals, device registration changes), Conditional Access policy evaluation results, risky sign-in detections. Requires Graph API access or Microsoft Entra admin centre export.
In Intune (cloud)Device compliance history, policy application logs, remote action history (wipe commands, lock commands), diagnostic report submissions. Requires Intune admin access or eDiscovery export.
In Azure Monitor / SentinelIf configured: forwarded security events, sign-in anomaly detections, UEBA data. Not always present — check whether the tenant has log forwarding configured.
Key Insight

An investigation that only examines the server will have a systematic blind spot: it will see what the device did, but not how the attacker authenticated to it. The authentication record — successful or failed MFA, Conditional Access policy outcome, sign-in risk score — lives in Entra, not on the server. Always pull both sides.

What Disappears Compared to Traditional AD Forensics

Traditional AD ArtifactStatus on Entra ID-Joined Server 2025
NTDS.dit (credential store)Does not exist. No local copy of directory credentials. Credential material stored in LSASS (CloudAP plugin) as PRTs and short-lived access tokens.
Local KDC / Kerberos TGTNo on-prem KDC queried. Kerberos authentication uses Entra Kerberos — cloud-issued tickets with a different issuer. See Section 4.
SYSVOL / GPOsNo SYSVOL. Policy delivered via Intune MDM (CSP-based). Policy application artifacts in MDM diagnostic logs, not traditional GPO event log sources.
netlogon.logNo Netlogon service in the traditional sense. Authentication disputes go to the AAD operational log.
Pass-the-Hash / Pass-the-TicketLargely irrelevant for cloud-only auth. Lateral movement artifacts shift to token theft (PRT stealing, refresh token replay) which leaves entirely different traces.
Lateral movement via NTLM to DCsNo on-prem DC to target. Lateral movement targets are cloud resources authenticated via OAuth/OIDC access tokens.

Section 2 — Device Join & Identity Artifacts

The Join Record

When a Windows Server 2025 instance joins Entra ID, the join process writes artifacts across multiple locations: the registry, the certificate store, and a device-specific key container. These artifacts collectively constitute the device's identity proof and establish which tenant the device belongs to, when it joined, and whether it has ever belonged to a different tenant.

Registry — CloudDomainJoin

HKLM\SYSTEM\CurrentControlSet\Control\CloudDomainJoin\JoinInfo\<DeviceID>\

Key fields: TenantId (GUID of Entra tenant), TenantName (display name at join time), UserEmail (UPN of account that performed join), IdpDomain (identity provider domain), DeviceId (Entra Object ID), JoinType (0=Workplace Join, 6=Entra ID Join, 4=Hybrid Join), KeyContainerName (DPAPI-protected device key container)

Analyst Note

A device previously joined to a different tenant will have a residual registry key for the old join under a different DeviceID subkey. Multiple DeviceID subkeys under JoinInfo is evidence of a prior join event — potentially a compromised tenant or a tenant migration that was not fully documented.

Device Certificates — The Cryptographic Identity

ArtifactPath / KeyForensic Value
MS-Device-ID certCert:\LocalMachine\My (CN=<DeviceId>)Primary device identity certificate. Issued by Microsoft Device Registration Service. Subject CN is the Entra Device Object ID. Valid 1 year, auto-renewed. Compare cert thumbprint on disk against Entra audit log to verify authenticity.
MS-Organization-P2P-Access certCert:\LocalMachine\My (CN=<TenantId>)Peer-to-peer access certificate. Issued per-tenant. Useful for establishing tenant membership timeline.
DPAPI device key%ALLUSERSPROFILE%\Microsoft\Crypto\Keys\<container>Private key material backing device certificates, DPAPI-protected. Relevant if investigating key export or device identity cloning.
NGC (Windows Hello) keysHKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\NGC\Per-user Windows Hello for Business keys. Each enrolled credential has key container reference and creation timestamp.

dsregcmd — The Join Status Diagnostic

PowerShell
# Standard join status — AzureAdJoined, DeviceId, TenantId, JoinType
dsregcmd /status

# Full debug output including PRT status, token state, and NGC key list
dsregcmd /status /debug

# Dump detailed device info including certificate thumbprints and key container paths
dsregcmd /status /verbose

# List all enrolled credentials (useful for WHFB investigation)
dsregcmd /listAdAccounts

# Force a re-join status check and log the result
dsregcmd /refreshprt

Join History Event IDs

Event IDLog SourceDescription & Forensic Significance
306User Device Registration\AdminDevice successfully joined Entra ID. Contains DeviceId, TenantId, and correlation ID. First event of device's cloud identity lifecycle.
304User Device Registration\AdminJoin attempt failed. Contains error code and identity that attempted join. Repeated 304 events indicate a failed join loop, possibly due to CA blocking enrollment.
200User Device Registration\AdminDevice re-joined (certificate renewal or forced re-registration). New DeviceId on re-join can indicate eviction from tenant and re-enrollment.
100User Device Registration\AdminWorkplace Join initiated. May indicate incomplete join or user-level Workplace Join rather than device-level Entra Join.

Section 3 — Primary Refresh Tokens & WAM

What the Primary Refresh Token Is

The Primary Refresh Token (PRT) is the master credential for an Entra ID-joined device. It functions as the equivalent of a Kerberos TGT in the cloud identity model: a long-lived token (typically 14 days, renewable) that the device uses to silently obtain short-lived access tokens for individual cloud resources without prompting the user to re-authenticate.

Understanding the PRT is fundamental to Entra ID forensics because it is the credential that an attacker steals, forges, or replays in the most significant cloud identity attacks. It is stored in a way that differs fundamentally from every credential artifact a traditional Windows forensics analyst is trained to look for.

How the PRT Is Stored — CloudAP in LSASS

The PRT is not stored in the registry, not stored on disk in a plaintext file, and not in Windows Credential Manager in an accessible form. It is held in memory within the LSASS process, managed by a Security Support Provider (SSP) called CloudAP (Cloud Authentication Provider). CloudAP is a plugin to the Windows LSA that handles all Entra ID authentication flows.

The in-memory PRT blob is protected by a session key derived from the device's TPM (on TPM-equipped servers) or by DPAPI (on non-TPM systems). On TPM-backed systems, the PRT cannot be exported without the TPM's cooperation. On systems without TPM, the protection falls back to DPAPI, which is significantly weaker.

CloudAP Persistence — Where PRT Material Lives on Disk

Memory (live): LSASS process — CloudAP SSP heap (TPM-bound: non-exportable; DPAPI: extractable)

Disk cache: %SystemRoot%\System32\config\systemprofile\AppData\Local\Microsoft\Windows\CloudAPCache\MicrosoftAad\<hash>\Cache\

Offline cache: %SystemDrive%\Users\<user>\AppData\Local\Microsoft\Windows\CloudAPCache\MicrosoftAad\<hash>\Cache\

LSA secrets: HKLM\SECURITY\Policy\Secrets (legacy compatibility — may contain Entra-related secrets in hybrid configurations)

WAM — Web Account Manager Token Broker

The Web Account Manager (WAM) brokers OAuth 2.0 token requests for applications. Every time an application needs an access token for a cloud resource, it requests through WAM rather than directly from Entra. WAM caches the resulting tokens and refresh tokens, creating an artifact store that is the cloud equivalent of the traditional Kerberos ticket cache.

ArtifactPath / KeyForensic Value
WAM token cache (registry)HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\AAD\Storage\<AppId>\Per-application OAuth token cache. Contains DPAPI-encrypted access token blobs, token expiry metadata, and UPN. Short-lived (1 hour) but expired tokens still forensically relevant.
WAM token cache (files)%LOCALAPPDATA%\Microsoft\TokenBroker\Cache\Filesystem-based token cache. DPAPI-protected. More durable than registry — persists across registry cache invalidation events.
WAM accounts database%LOCALAPPDATA%\Microsoft\Windows\CloudStore\LevelDB-format store with account metadata: enrolled accounts, associated tenants, token acquisition history. Requires LevelDB parsing tools.
Office token cache%APPDATA%\Microsoft\Office\16.0\Common\Identity\Office-specific refresh token cache. Long-lived refresh tokens for Office 365. DPAPI-protected .dat files.
MSAL token cacheVaries — app's %APPDATA% or %LOCALAPPDATA%Application-specific MSAL caches. Common for Azure SDK, PowerShell Az module, and custom enterprise apps.

Detecting PRT Theft and Token Replay

Attack StageForensic Trace on Server
PRT extraction from LSASSProcess access to LSASS (Event 4656/4663 on LSASS handle, or Sysmon Event 10 for process injection). Tools: AADInternals, ROADtoken, custom LSASS dump + CloudAP parsing.
PRT encryption key extractionAttempt to access TPM (tcg.log) or DPAPI master key (Events 4695/4694). On non-TPM systems, DPAPI master key access leaves Event 4694.
Nonce request for PRT useEvent 1006 in AAD Operational log. Unusual nonce requests (especially from unexpected processes) are a signal.
Token broker invoked by unusual processWAM broker (runtimebroker.exe, backgroundtaskhost.exe) invoked by a process that does not normally request cloud tokens. Sysmon process creation chain analysis.
Successful token acquisition, then silenceAccess tokens obtained on server, then no subsequent Azure activity from that IP. Tokens may have been extracted and replayed from external infrastructure.

Key Event IDs — Authentication & Credential Events

Event IDLog SourceDescription & Forensic Significance
1000Microsoft\Windows\AAD\OperationalCloudAP token acquisition attempt. Contains resource URI, result (success/failure), correlation ID linkable to Entra sign-in log. The most important event for tracing cloud authentication activity.
1006Microsoft\Windows\AAD\OperationalNonce acquisition event — precedes PRT use. Unusual processes generating nonce requests warrant investigation.
1098Microsoft\Windows\AAD\OperationalAuthentication error with extended detail. Includes specific AADSTS error code. AADSTS50076 (MFA required) vs AADSTS65001 (consent required) tell very different stories.
1102Microsoft\Windows\AAD\OperationalPRT refresh event. Gap between expected and actual refresh schedule can indicate PRT being used on a different device.
4624SecuritySuccessful logon. Authentication Package = 'CloudAP' indicates Entra ID-authenticated network logon rather than NTLM or Kerberos.
4648SecurityExplicit credential logon attempt. Combined with non-local source IP, indicates remote credential use.
4776SecurityNTLM authentication attempt. On a pure Entra-joined server, NTLM should rarely appear for user logons. Unexpected NTLM indicates legacy auth abuse.
4695SecurityDPAPI unprotect call on audited data. Cloud-protected (Entra-backed) data operations appear here.

Collection Commands — PRT and WAM Artifacts

PowerShell
# Dump WAM token cache registry keys (run as SYSTEM or elevated user)
reg export "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\AAD\Storage" wam_tokens.reg

# Copy TokenBroker cache files (DPAPI-encrypted)
robocopy "%LOCALAPPDATA%\Microsoft\TokenBroker\Cache" C:\Triage\WAM /E /COPYALL

# Copy CloudAP cache for system account (requires SYSTEM privileges)
robocopy "%SystemRoot%\System32\config\systemprofile\AppData\Local\Microsoft\Windows\CloudAPCache" C:\Triage\CloudAP /E /COPYALL

# Check current PRT status live
dsregcmd /status | findstr /i "PRT"

# AAD Operational log — export authentication events
wevtutil epl "Microsoft-Windows-AAD/Operational" C:\Triage\AAD_Operational.evtx

# User Device Registration log
wevtutil epl "Microsoft-Windows-User Device Registration/Admin" C:\Triage\UDR_Admin.evtx

Section 4 — Entra Kerberos: Cloud-Issued Tickets

Entra Kerberos (formerly Azure AD Kerberos) allows Entra ID to issue Kerberos tickets for on-premises resources — primarily for passwordless authentication scenarios and for accessing on-premises file shares from Entra-joined devices without requiring a line of sight to an on-premises DC. A special Read-Only Domain Controller (RODC) account is created in the on-premises AD forest, and Entra ID uses its keys to issue Kerberos TGTs.

Distinguishing Entra Kerberos Tickets

Comparison
Traditional Kerberos TGT:
  Realm  = CONTOSO.COM  (your AD domain realm)
  Issuer = CN=CONTOSO-DC01,OU=Domain Controllers,DC=contoso,DC=com
  SPN    = krbtgt/CONTOSO.COM

Entra Kerberos TGT:
  Realm  = CONTOSO.COM  (same realm)
  Issuer = CN=AzureADKerberos,OU=Domain Controllers,DC=contoso,DC=com
  SPN    = krbtgt/CONTOSO.COM
  PAC    = Contains additional Entra-specific claims

Key distinction: The issuer CN is 'AzureADKerberos' rather than a DC hostname.
On a pure Entra-joined server, ALL Kerberos tickets should have this issuer.
Any ticket with a real DC as issuer indicates on-prem DC connectivity occurred.

Examining the Ticket Cache

PowerShell
# List all Kerberos tickets in the current logon session
klist

# List tickets for all logon sessions (requires elevation)
klist sessions
klist -li <LogonId> tickets

# PowerShell: enumerate tickets with full detail including issuer
[System.Security.Principal.WindowsIdentity]::GetCurrent() | Select-Object *

# Rubeus: dump ticket details from memory (document if used in investigation)
Rubeus.exe triage       # list all tickets without dumping
Rubeus.exe dump /nowrap # dump for analysis

Entra Kerberos Event IDs

Event IDLogDescription & Forensic Significance
4768SecurityKerberos TGT request (AS-REQ). On Entra-joined servers, Certificate Information references the Entra device certificate rather than a smart card or password.
4769SecurityKerberos service ticket request (TGS-REQ). Unusual SPNs — particularly for on-premises services from an Entra-joined server — warrant review of the backing TGT.
4771SecurityKerberos pre-authentication failure. On Entra Kerberos, can indicate ticket forging attempt (attacker has Entra Kerberos key from NTDS.dit of virtual RODC). Rare but significant.

Section 5 — Conditional Access Enforcement Artifacts

Conditional Access (CA) policies are evaluated and enforced by Entra ID in the cloud — the server itself does not make CA decisions. However, Server 2025 logs the results of CA evaluations in a dedicated event log channel distinct from the traditional Security log. This log records which policies were evaluated, the outcome, and whether any fallbacks or exclusions were applied.

Why This Matters

This log is almost universally overlooked because it sits in a non-standard event log location and is not collected by most default SIEM agents. It is one of the most valuable logs for detecting authentication bypass — an attacker using legacy authentication protocols to circumvent MFA will leave a clear signature here.

AAD Operational Log Location

Log path: Applications and Services Logs\Microsoft\Windows\AAD\Operational

File path: %SystemRoot%\System32\winevt\Logs\Microsoft-Windows-AAD%4Operational.evtx

Default size: 1MB (critically small — increase to 50MB+ on investigated systems)

Default retention: Overwrite as needed — evidence loss is common on default settings

Triage: wevtutil epl "Microsoft-Windows-AAD/Operational" C:\Triage\AAD_Operational.evtx

Critical Conditional Access Event IDs

Event IDLog SourceDescription & Forensic Significance
1006AAD\OperationalToken acquisition success with CA policy context. The most important CA event. Fields include: resource URI, client app ID, correlation ID (links to Entra sign-in log), CA policy names evaluated, result for each policy. An attacker who bypasses CA will still generate this event with a policy result of 'notApplied' or 'granted' on policies that should have blocked.
1098AAD\OperationalAuthentication failure with CA context. Contains AADSTS error code: AADSTS53003 = CA block policy applied, AADSTS50076 = MFA required but not satisfied, AADSTS53000 = device compliance required but not compliant.
1064AAD\OperationalLegacy authentication protocol used. Legacy auth (basic auth, NTLM to cloud, older ADAL, SMTP AUTH, IMAP) cannot satisfy MFA. Any 1064 event on a server that should only use modern auth is anomalous.
1007AAD\OperationalToken refresh with CA re-evaluation. Establishes timeline of when a policy change block took effect vs. when the attacker last had valid tokens.
1018AAD\OperationalContinuous Access Evaluation (CAE) revocation event. Records when a token was revoked by CAE — evidence the attacker was actively using the token at revocation time.

Correlating Server-Side CA Events with Entra Sign-In Logs

The correlation ID present in Event 1006 links server-side CA events with Entra cloud-side sign-in logs. This GUID is consistent across the entire authentication flow — from the initial token request on the server, through Entra evaluation, to the sign-in log entry in the cloud.

PowerShell
# Extract correlation IDs from AAD Operational log for cross-referencing
Get-WinEvent -LogName 'Microsoft-Windows-AAD/Operational' -MaxEvents 500 |
  Where-Object { $_.Id -eq 1006 } |
  ForEach-Object {
    $xml = [xml]$_.ToXml()
    [PSCustomObject]@{
      Time          = $_.TimeCreated
      CorrelationId = $xml.Event.EventData.Data |
                      Where-Object {$_.Name -eq 'correlationId'} | Select -Exp '#text'
      Resource      = $xml.Event.EventData.Data |
                      Where-Object {$_.Name -eq 'resource'} | Select -Exp '#text'
      Result        = $xml.Event.EventData.Data |
                      Where-Object {$_.Name -eq 'errorCode'} | Select -Exp '#text'
    }
  } | Export-Csv C:\Triage\CA_Events.csv -NoTypeInformation

Detecting Legacy Authentication Abuse

Legacy authentication protocols — Basic Auth, NTLM to cloud resources, older OAuth flows, SMTP AUTH, IMAP — cannot satisfy MFA challenges and cannot be protected by most Conditional Access policies. On Server 2025, legacy authentication use is traceable through several converging artifacts:

Section 6 — Azure Arc: The Second Identity Layer

Azure Arc is Microsoft's hybrid management platform that allows Azure management plane operations — policy assignment, monitoring, patch management, extension installation — to reach on-premises servers. An Arc-enrolled server has its own managed identity in Azure (separate from the Entra device identity) and runs a persistent agent (himds.exe and gc_service.exe) that maintains a live authenticated connection to Azure Resource Manager.

Critical Forensic Significance

Arc creates a second identity layer on the server. Arc abuse is a realistic persistence and lateral movement vector that traditional IR tooling will not detect, and the Arc agent logs all management plane operations independently of the Windows event log.

Arc Agent Identity Artifacts

ArtifactPath / KeyForensic Value
Arc identity certC:\ProgramData\AzureConnectedMachineAgent\Certs\Agent's managed identity certificate (agentidentitycert.pem). Subject includes Arc resource ID. Valid 90 days, auto-renewed. Compare serial/thumbprint against Azure activity log at issuance.
Arc config fileC:\ProgramData\AzureConnectedMachineAgent\Config\agentconfig.jsonContains tenant ID, subscription ID, resource group, location, Arc resource name, connection endpoint. If this differs from expected subscription, server may have been connected to attacker's Azure environment.
Arc agent logC:\ProgramData\AzureConnectedMachineAgent\Log\himds.logRolling log of all Arc operations: heartbeats, certificate renewals, extension installs, policy evaluations, management plane commands. ~30 days retention.
Arc extension logsC:\Packages\Plugins\<ExtensionName>\<Version>\Status\Each installed extension writes status and execution logs. CustomScriptExtension logs contain the commands executed — a direct record of management-plane code execution.
IMDS endpointhttp://localhost:40342Arc's local Instance Metadata Service endpoint. Processes querying IMDS for managed identity tokens are visible in Arc agent logs. Suspicious processes querying IMDS warrant investigation.
Arc service registryHKLM\SOFTWARE\Microsoft\Azure Connected Machine Agent\Contains enrollment state, resource ID, agent version, proxy config. TenantId and SubscriptionId values should match expected Azure environment.

Arc as a Persistence and Lateral Movement Vector

An attacker with Azure RBAC permissions on the Arc resource (Contributor, Owner, or 'Azure Connected Machine Resource Administrator') can execute arbitrary code on the server via Arc extensions without any authentication to the server's operating system.

Arc-Based Code Execution — What the Evidence Looks Like

Attack vector: Attacker has compromised Azure credentials with RBAC access to the Arc resource. Installs or modifies a CustomScriptExtension via Azure portal or ARM API. The Arc agent downloads and executes the script with SYSTEM privileges.

On-server evidence:

C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\<ver>\Downloads\ — downloaded script

C:\Packages\Plugins\Microsoft.Compute.CustomScriptExtension\<ver>\Status\0.status — execution result

C:\ProgramData\AzureConnectedMachineAgent\Log\himds.log — extension install/run events

Windows Event 4688 / Sysmon Event 1: parent process = gc_service.exe or himds.exe

Cloud evidence (Azure Activity Log):

Microsoft.HybridCompute/machines/extensions/write — extension installation with caller identity and script content

Key Insight

The on-server evidence alone does not show WHO triggered the execution. The Azure Activity Log is the only record of the caller identity.

Arc Investigation Commands

PowerShell
# Check Arc agent status and connection state
azcmagent show

# List all installed Arc extensions
azcmagent extension list

# Export Arc agent logs for the last 72 hours
azcmagent logs --output C:\Triage\arc_logs.zip

# Check which processes are making IMDS calls
netstat -ano | findstr :40342

# Collect extension execution logs
robocopy "C:\Packages\Plugins" C:\Triage\ArcExtensions /E /COPYALL

# Collect Arc agent config for tenant/subscription verification
copy "C:\ProgramData\AzureConnectedMachineAgent\Config\agentconfig.json" C:\Triage\

Section 7 — Cloud LAPS: The Credential That Rotated

Server 2025 introduces Cloud LAPS (Windows LAPS with Azure AD), where the rotating local admin password is stored in Entra ID rather than on-premises AD. Traditional LAPS passwords were readable from a DC's NTDS.dit or LDAP. Cloud LAPS passwords are readable from the Entra portal or via Microsoft Graph API — and the record of who retrieved the password exists only in the Entra audit log, not on the server.

Cloud LAPS Artifacts on the Server

ArtifactPath / KeyForensic Value
LAPS policy stateHKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\LAPS\State\Contains PasswordExpirationTime, PasswdTimestamp, BackupDirectory (2 = Entra ID confirms Cloud LAPS). Compare PasswordExpirationTime against Entra audit logs for rotation timeline.
LAPS event logMicrosoft\Windows\LAPS\OperationalEvery password rotation: timestamp, new expiry, and whether update was successfully committed to Entra. If rotation succeeded locally but Entra update failed, the password diverges — a potentially exploitable state.
LAPS configurationHKLM\SOFTWARE\Microsoft\Policies\LAPS\ or ...\LAPS\Config\Password length, complexity, rotation interval, backup directory. Differing values from expected policy may indicate LAPS configuration tampering.
SAM accountHKLM\SAM\SAM\Domains\Account\Users\Local admin account. SAM modification timestamp should match LAPS PasswordTimestamp — a discrepancy indicates manual password modification outside of LAPS.
The Invisible Credential Retrieval Problem

There is no local log entry when someone retrieves the LAPS password from Entra. If a threat actor retrieves a Cloud LAPS password and uses it to log into a server, Event 4624 shows a local account logon — identical to any other local admin logon. The only way to determine that the LAPS password was retrieved is to examine the Entra audit log entry for 'Get local administrator password' — showing who retrieved it, from what IP, and at what time.

Graph API / PowerShell
# Microsoft Graph — retrieve LAPS password read audit events for a specific device
GET https://graph.microsoft.com/v1.0/auditLogs/directoryAudits
  ?$filter=activityDisplayName eq 'Get local administrator password'
  and targetResources/any(t: t/displayName eq '<ComputerName>')
  &$orderby=activityDateTime desc

# PowerShell equivalent using the Az module
Get-AzureADAuditDirectoryLogs -Filter "activityDisplayName eq 'Get local administrator password'" |
  Where-Object { $_.TargetResources.DisplayName -eq '<ComputerName>' }

LAPS Event IDs

Event IDLog SourceDescription & Forensic Significance
10018LAPS\OperationalSuccessfully updated password in Azure AD. Timestamp of last successful rotation. If significantly older than configured interval, investigate why rotation is failing.
10019LAPS\OperationalPassword update attempt failed. LAPS failures may leave an expired password in use — exploitable if password was retrieved before expiry.
10020LAPS\OperationalPassword rotation forced by admin action (manual reset). Either legitimate admin action or attacker rotating password after use to eliminate access trail.
10025LAPS\OperationalReadable password deleted from directory. Occurs after post-authentication grace period. Timing relative to suspicious logon events is significant.

Section 8 — Intune & MDM Compliance

When Server 2025 is enrolled in Intune, the MDM stack operates through Windows' built-in MDM client (DMClient) using the OMA-DM protocol. Configuration is delivered as CSP payloads rather than GPOs, creating a fundamentally different artifact landscape.

MDM Enrollment and Policy Artifacts

ArtifactPath / KeyForensic Value
MDM enrollment recordHKLM\SOFTWARE\Microsoft\Enrollments\<GUID>\Per-enrollment registry key. EnrollmentType (6 = Intune MDM), ProviderID, UPN, EnrollmentState. Multiple unexpected GUIDs may indicate shadow MDM enrollment by an attacker.
DMClient configHKLM\SOFTWARE\Microsoft\PolicyManager\All applied MDM policies. Subkeys: current, device, user. Each policy has last-modified timestamp and applied value.
Sync logC:\Users\<user>\AppData\Local\Temp\MDMDiagnostics\Timestamped records of every Intune sync: policies applied, configuration changes, compliance check results, remediation actions.
MDM diagnostic reportC:\Windows\Temp\MDMDiagReport_*Full diagnostic snapshots (ZIP with HTML and XML) documenting complete policy state at a point in time.
WNF stateWNF_MDM_... notifications (live)Windows Notification Facility states tracking MDM client status. Visible in memory forensics — relevant for detecting MDM client suspension or manipulation.
Forensic Significance

Intune compliance state feeds into Conditional Access. An attacker who disables AV, modifies firewall rules, or disables audit logging will trigger compliance failures — and even if they re-enable the control immediately, the compliance failure event persists in the MDM diagnostic logs.

MDM Collection Commands

PowerShell
# Generate a full MDM diagnostic report (run elevated)
mdmdiagnosticstool.exe -area deviceenrollment;deviceprovisioning;tpm -zip C:\Triage\MDMDiag.zip

# Export current policy state from PolicyManager registry
reg export "HKLM\SOFTWARE\Microsoft\PolicyManager" C:\Triage\PolicyManager.reg

# View sync log for compliance history
Get-ChildItem "$env:LOCALAPPDATA\Temp\MDMDiagnostics" | Sort LastWriteTime | Select -Last 5

# Check enrollment details
Get-Item "HKLM:\SOFTWARE\Microsoft\Enrollments\*" | Get-ItemProperty

MDM Event IDs

Event IDLog SourceDescription & Forensic Significance
72DeviceManagement-Enterprise-Diagnostics-Provider\AdminMDM policy application result. Contains CSP URI and operation result. Timestamped record of every Intune policy change.
208DeviceManagement-Enterprise-Diagnostics-Provider\AdminMDM compliance check result. Passes/fails with specific non-compliant items. Establishes when non-compliance was detected.
210DeviceManagement-Enterprise-Diagnostics-Provider\AdminMDM remediation action performed. Records what was changed and when.
1009DeviceManagement-Enterprise-Diagnostics-Provider\DebugMDM sync session details. Sync session ID, policies received, failures. Debug log — not enabled by default but invaluable when available.

Section 9 — New and Changed Event IDs in Server 2025

Authentication & Identity Events

Event IDLogDescription & Forensic Significance
4649SecurityReplay attack detected. New significance in Server 2025: can indicate PRT or access token replay, not just traditional Kerberos replay. ReplayedEventCount distinguishes single-use from systematic replay.
4822SecurityNTLM authentication failed — client in restricted mode. Distinguishes legitimate NTLM block from suspicious attempt to use NTLM where modern auth should be used.
4825SecurityUser denied access to Remote Desktop. Now includes Entra device compliance state of the connecting device — allows detection of access attempts from non-compliant devices.
5379SecurityCredential Manager credentials read. Enhanced to include cloud credential targets — when a process reads Azure/Entra credentials, the target is now explicitly identified as a cloud resource.
5382SecurityVault credentials read. Cloud-backed vault credential access now tagged with the cloud resource type.
6416SecurityNew external device recognized. Higher signal value on a server — USB storage on a production server is anomalous and warrants immediate review.

Entra-Specific Log Channels — Full Reference

The following event log channels are specific to Entra ID functionality and are not present on standalone or traditional domain-joined servers. All require explicit collection — they are not forwarded by default SIEM agents:

ChannelPathForensic Value
AAD\OperationalMicrosoft-Windows-AAD/OperationalCore Entra authentication log. See Sections 3 and 5. Default max: 1MB — increase to minimum 50MB.
UDR\AdminMicrosoft-Windows-User Device Registration/AdminDevice join, re-join, certificate renewal events. Critical for device identity timeline.
NGC\AdminCertificateServicesClient-Lifecycle-User/OperationalWindows Hello for Business key lifecycle: creation, deletion, use. Per-user credential enrollment record.
WebAuthNMicrosoft-Windows-WebAuthN/OperationalFIDO2 and WebAuthn authentication events. Records passkey use on Server 2025.
LAPS\OperationalMicrosoft-Windows-LAPS/OperationalCloud LAPS password rotation events. See Section 7.
DevMgmt\AdminDeviceManagement-Enterprise-Diagnostics-Provider/AdminIntune/MDM policy application and compliance. See Section 8.
MsixPackagingAppXDeployment-Server/OperationalApplication package installs via Intune. Timeline of admin-plane software installation.
CloudAP\DebugNot enabled by defaultCloudAP SSP debug log — highly verbose, records every cloud auth token operation. Enable temporarily: wevtutil sl Microsoft-Windows-CloudAP/Debug /e:true

Section 10 — Persistence Mechanisms Specific to Entra-Joined Servers

Cloud-Plane Persistence — Evidence Only in Azure/Entra

Traditional Windows Server persistence (startup folders, Run keys, scheduled tasks, services, WMI subscriptions) remains fully applicable. What changes is the addition of cloud-plane persistence mechanisms that have no equivalent in on-premises environments and that leave no trace on the server itself.

Persistence MethodHow It Works & Where Evidence Lives
Arc extension persistenceAttacker with Azure RBAC installs a persistent Arc extension that runs a backdoor on every agent heartbeat. Re-executes every sync. Evidence: Azure Activity Log only — nothing on server unless extension examined directly.
Entra Application with server permissionsAttacker registers an Entra app with application permissions, configures it to use the server's managed identity as a credential. App accesses cloud resources using server's identity indefinitely. Evidence: Entra App Registration audit log.
Conditional Access exclusionAttacker adds compromised account to a CA policy exclusion group, bypassing MFA permanently. Server sees logons succeed without MFA but cannot detect the exclusion is illegitimate. Evidence: Entra CA policy change audit log only.
Intune compliance policy modificationAttacker with Intune admin modifies compliance policies to mark malicious software as compliant, preventing CA from blocking the device. Evidence: Intune audit log only.
Named location / Trusted IP modificationAttacker adds attacker-controlled IP ranges as trusted named locations in CA, causing MFA bypass for connections from those IPs. Evidence: Entra CA audit log only.
PRT-based persistenceAttacker extracts PRT and caches it externally. PRT is valid for 14 days and renewable. Attacker can return within 14 days without fresh authentication. Evidence: See Section 3 detection artifacts.

Server-Local Persistence — What's New on Server 2025

Section 11 — Triage Collection Checklist

Phase 1: Volatile Data (Collect First — Lost on Reboot)
PowerShell
# PRT status and token state
dsregcmd /status /debug > C:\Triage\dsregcmd.txt

# Running process list with full paths
Get-Process | Select Name,Id,Path,StartTime | Export-Csv C:\Triage\processes.csv

# Network connections with owning PIDs
netstat -anob > C:\Triage\netstat.txt

# Kerberos ticket cache (all sessions)
klist sessions > C:\Triage\klist_sessions.txt
klist tgt >> C:\Triage\klist_sessions.txt

# Loaded drivers
driverquery /v /fo csv > C:\Triage\drivers.csv

# Arc agent status
azcmagent show > C:\Triage\arc_status.txt
azcmagent extension list >> C:\Triage\arc_status.txt

# LAPS password expiry (NOT the password itself)
reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\LAPS\State > C:\Triage\laps_state.txt
Phase 2: Event Logs
PowerShell
$logs = @(
  'Security',
  'System',
  'Application',
  'Microsoft-Windows-AAD/Operational',
  'Microsoft-Windows-User Device Registration/Admin',
  'Microsoft-Windows-LAPS/Operational',
  'Microsoft-Windows-DeviceManagement-Enterprise-Diagnostics-Provider/Admin',
  'Microsoft-Windows-CertificateServicesClient-Lifecycle-User/Operational',
  'Microsoft-Windows-TaskScheduler/Operational',
  'Microsoft-Windows-WinRM/Operational',
  'Microsoft-Windows-PowerShell/Operational',
  'Microsoft-Windows-Sysmon/Operational'
)
foreach ($log in $logs) {
  $safe = $log -replace '[/\\]','_'
  wevtutil epl $log "C:\Triage\Logs\$safe.evtx" 2>$null
}
Phase 3: Registry Hives
PowerShell
$hives = @{
  'SYSTEM'   = 'C:\Windows\System32\config\SYSTEM'
  'SOFTWARE' = 'C:\Windows\System32\config\SOFTWARE'
  'SECURITY' = 'C:\Windows\System32\config\SECURITY'
  'SAM'      = 'C:\Windows\System32\config\SAM'
}
foreach ($h in $hives.GetEnumerator()) {
  Copy-Item $h.Value "C:\Triage\Hives\$($h.Key)" -Force
}
# Per-user NTUSER.DAT hives
Get-ChildItem C:\Users | ForEach-Object {
  Copy-Item "$($_.FullName)\NTUSER.DAT" "C:\Triage\Hives\NTUSER_$($_.Name).DAT" -Force 2>$null
}
Phase 4: Credential and Identity Artifacts
PowerShell
# CloudAP cache (system account — requires SYSTEM privileges)
robocopy "$env:SystemRoot\System32\config\systemprofile\AppData\Local\Microsoft\Windows\CloudAPCache" C:\Triage\CloudAP /E /COPYALL

# WAM token broker cache
robocopy "$env:LOCALAPPDATA\Microsoft\TokenBroker\Cache" C:\Triage\WAM /E /COPYALL

# Device certificates — export thumbprints and subjects
Get-ChildItem Cert:\LocalMachine\My | Select Subject,Thumbprint,NotBefore,NotAfter |
  Export-Csv C:\Triage\certs_localmachine.csv

# Arc agent identity artifacts
robocopy "C:\ProgramData\AzureConnectedMachineAgent" C:\Triage\ArcAgent /E /COPYALL
Phase 5: MDM, LAPS, and Policy State
PowerShell
# Full MDM diagnostic report
mdmdiagnosticstool.exe -area deviceenrollment;deviceprovisioning;tpm -zip C:\Triage\MDMDiag.zip

# PolicyManager registry export
reg export "HKLM\SOFTWARE\Microsoft\PolicyManager" C:\Triage\PolicyManager.reg

# Intune enrollment details
reg export "HKLM\SOFTWARE\Microsoft\Enrollments" C:\Triage\Enrollments.reg

# LAPS state
reg export "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\LAPS" C:\Triage\LAPS.reg
Phase 6: Cloud-Side Evidence (Requires Tenant Access)
SourceWhat to Collect
Entra Sign-in LogsFilter by device ID, last 30 days. Export to CSV via Entra portal or Graph API.
Entra Audit LogsFilter for: device registration events, LAPS password retrievals, CA policy changes, role assignment changes, named location modifications.
Azure Activity LogFilter by resource ID of the server (for Arc events) and subscription scope. Look for extension install/modify events.
Intune Device HistoryDevice compliance timeline, remote action history, policy change history. Available in Intune portal under the device record.
Entra Risky Sign-insMicrosoft Entra ID Protection risky sign-in detections correlated with server activity dates.
Conditional Access InsightsCA policy evaluation report (Entra portal: Monitoring > Sign-in logs > Conditional Access tab per event).

Closing Notes

Critical Reminder

The Entra ID-joined Server 2025 investigation is fundamentally a two-site problem, and the most common failure mode is treating it as a single-site problem. Every section in this document has a cloud-side counterpart that contains evidence the server itself cannot provide: who authenticated, from where, with what compliance posture, and whether any cloud-plane persistence or bypass was applied.

The artifacts documented here will evolve rapidly as Microsoft develops the Server 2025 platform. Several features — DPAPI cloud backup, Entra Kerberos for all resources, CAE broad support — are in active development and their artifact footprints will change across future Feature Updates. Treat this document as a baseline, validate paths and event IDs against the specific build under investigation, and build institutional memory as new artifacts are discovered in casework.

Mjolnir Security — Cloud Identity Forensics

Our DFIR team has deep expertise in hybrid and cloud-native identity forensics, including Entra ID, Azure Arc, and Intune environments. We maintain validated artifact references and triage tooling for the latest Windows Server builds.

Entra ID Forensics Cloud Identity IR PRT Theft Detection Azure Arc Investigation Hybrid AD/Entra Analysis Intune Compliance Forensics Cloud LAPS Audit Token Replay Detection

Contact us at mjolnirsecurity.com or call our 24/7 incident response line.

References

  1. Microsoft Learn — Entra ID Joined Devices Overview
  2. Microsoft — Primary Refresh Token documentation
  3. Microsoft — Windows LAPS (Cloud) documentation
  4. Dirk-jan Mollema — AADInternals and Entra ID attack research
  5. Dr. Nestori Syynimaa — PRT research and token theft methodology
  6. Microsoft Incident Response — Identity playbooks
  7. CISA Advisory AA23-347A — Cloud Identity Threat Landscape
  8. Lee Holmes — Windows PowerShell security and AMSI integration documentation
  9. Azure Arc — Azure Arc documentation
  10. SANS FOR508 — Advanced Incident Response covering Azure/Entra identity forensics module

Written by Mjolnir Security DFIR team

Published March 2025 · DFIR Reference Series · v1.0

This reference is part of Mjolnir Security's DFIR Knowledge Series. Reproduction with attribution is permitted.