T1556

Modify Authentication Process

Adversaries may modify authentication mechanisms and processes to access user credentials or enable otherwise unwarranted access to accounts. The authentication process is handled by mechanisms such as the Local Security Authentication Server (LSASS) process and the Security Accounts Manager (SAM) on Windows, pluggable authentication modules (PAM) on Unix-based systems, and authorization plugins on macOS systems. By modifying an authentication process, an adversary may authenticate to a service or system without using valid accounts, or may passively harvest credentials as users authenticate. Techniques include registering malicious password filter DLLs that receive plaintext passwords during every password change, injecting security support providers (SSPs) into LSASS to intercept credentials, installing skeleton keys to accept any password for domain accounts, modifying PAM stack configuration files to permit unauthorized access, and replacing legitimate authentication binaries with trojanized versions that exfiltrate credentials.

What is T1556 Modify Authentication Process?

Modify Authentication Process (T1556) maps to the Credential Access and Defense Evasion and Persistence tactics — the adversary is trying to steal account names and passwords in MITRE ATT&CK.

This page provides production-ready detection logic for Modify Authentication Process, covering the data sources and telemetry it touches: Registry: Registry Key Modification, Module: Module Load, Process: Process Creation, Microsoft Defender for Endpoint. The queries below are rated critical severity at high confidence, and ship for 7 SIEM platforms — KQL, SPL, Elastic, QRadar, Sumo, YARA-L, LogScale.

MITRE ATT&CK

Tactic
Credential Access Defense Evasion Persistence
Technique
T1556 Modify Authentication Process
Canonical reference
https://attack.mitre.org/techniques/T1556/
Microsoft Sentinel / Defender
kusto
// T1556: Modify Authentication Process
// Detects modifications to Windows LSA authentication registry keys used to register
// password filter DLLs, SSPs, auth packages, network providers, and GINA DLLs.
// These are the primary persistence paths for credential interception malware
// such as skeleton key (Secureworks), Ebury, Kessel, and SILENTTRINITY.
let LsaRegistryPaths = dynamic([
    "CurrentControlSet\\Control\\Lsa\\Notification Packages",
    "CurrentControlSet\\Control\\Lsa\\Security Packages",
    "CurrentControlSet\\Control\\Lsa\\Authentication Packages",
    "CurrentControlSet\\Control\\Lsa\\OSConfig\\Security Packages",
    "CurrentControlSet\\Control\\NetworkProvider\\Order",
    "CurrentVersion\\Winlogon\\GinaDLL",
    "CurrentVersion\\Authentication\\Credential Providers"
]);
let TrustedModifiers = dynamic([
    "TrustedInstaller.exe", "MsMpEng.exe", "msiexec.exe",
    "wuauclt.exe", "WindowsUpdateAgent.exe", "svchost.exe"
]);
let LsaLoadEvents = DeviceImageLoadEvents
| where Timestamp > ago(24h)
| where InitiatingProcessFileName =~ "lsass.exe"
| where not(FileName in~ (
    "ntdll.dll", "kernel32.dll", "kernelbase.dll", "msvcrt.dll",
    "kerberos.dll", "msv1_0.dll", "wdigest.dll", "tspkg.dll",
    "pku2u.dll", "cloudap.dll", "schannel.dll", "cryptdll.dll",
    "samsrv.dll", "lsasrv.dll", "netlogon.dll", "ntlmshared.dll"
))
| extend DetectionSource = "LsassUnexpectedDllLoad"
| project Timestamp, DeviceName, AccountName = InitiatingProcessAccountName,
          DetectionType = "Unexpected DLL Load by LSASS",
          RegistryKey = "", RegistryValueName = "", RegistryValueData = "",
          DllName = FileName, DllPath = FolderPath, SHA256,
          InitiatingProcessFileName, InitiatingProcessCommandLine;
let RegistryMods = DeviceRegistryEvents
| where Timestamp > ago(24h)
| where RegistryKey has_any (LsaRegistryPaths)
| where ActionType in ("RegistryValueSet", "RegistryKeyCreated")
| where not(InitiatingProcessFileName has_any (TrustedModifiers))
| extend DetectionType = case(
    RegistryKey has "Notification Packages", "Password Filter DLL Registration",
    RegistryKey has "Security Packages" and not (RegistryKey has "OSConfig"), "Security Support Provider (SSP) Registration",
    RegistryKey has "Authentication Packages", "Authentication Package Registration",
    RegistryKey has "NetworkProvider", "Network Provider DLL Registration",
    RegistryKey has "GinaDLL", "GINA DLL Modification",
    RegistryKey has "Credential Providers", "Credential Provider Registration",
    "LSA Authentication Configuration Modification"
)
| project Timestamp, DeviceName, AccountName, DetectionType,
          RegistryKey, RegistryValueName, RegistryValueData,
          DllName = "", DllPath = "", SHA256 = "",
          InitiatingProcessFileName, InitiatingProcessCommandLine;
RegistryMods
| union LsaLoadEvents
| extend IsDomainController = DeviceName has_any ("DC", "PDC", "BDC", "RODC")
| sort by Timestamp desc

Detects modifications to Windows LSA authentication configuration by monitoring two key signals: (1) registry writes to authentication-critical keys including LSA Notification Packages (password filters), Security Packages (SSPs), Authentication Packages, Network Provider Order, and GINA DLL paths, excluding known-good Windows system processes; and (2) unexpected DLL loads by the lsass.exe process from non-standard DLL names not part of the default Windows authentication package list. Together these cover the primary persistence mechanisms used by skeleton key malware, Ebury, Kessel, and SILENTTRINITY to intercept credentials. Domain controller detections are flagged separately given their elevated impact.

critical severity high confidence

Data Sources

Registry: Registry Key Modification Module: Module Load Process: Process Creation Microsoft Defender for Endpoint

Required Tables

DeviceRegistryEvents DeviceImageLoadEvents

False Positives

  • Legitimate MFA solutions (Duo Security, Okta Verify, RSA SecurID) that install custom credential provider DLLs during initial setup — filter by InitiatingProcessFileName = msiexec.exe and correlate with change management tickets
  • Enterprise privileged access management tools (CyberArk, BeyondTrust, Centrify) that register authentication packages — build an allowlist of their specific DLL names
  • Windows Defender Credential Guard enabling LSA protection, which modifies LSA configuration keys — these changes come from svchost.exe or TrustedInstaller
  • Third-party VPN clients and smart card middleware that install network provider DLLs or credential providers as part of software installation
  • Password manager enterprise editions (LastPass Enterprise, 1Password Business) installing Windows credential provider extensions

Sigma rule & cross-platform mapping

The detection logic for Modify Authentication Process (T1556) above is provided in a vendor-neutral form so you can deploy it on any SIEM. The same logic is shipped here as native KQL (Microsoft Sentinel / Defender), SPL (Splunk), Elastic (Elastic Security (EQL)), QRadar (IBM QRadar (AQL)), Sumo (Sumo Logic CSE), YARA-L (Google Chronicle / SecOps), LogScale (CrowdStrike LogScale (CQL)) queries. In Sigma terms, this detection targets the following logsource:

logsource:
  category: process_creation
  product: windows

Browse the community-maintained Sigma rules for this technique:


Testing Methodology

Validate this detection against 4 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.

  1. Test 1Register Benign Password Filter DLL in LSA Notification Packages

    Expected signal: Sysmon Event ID 13: TargetObject=HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Notification Packages, Details contains 'df00tech-test-filter', Image=powershell.exe. Windows Security Event ID 4657 if SACL is configured on the LSA key. DeviceRegistryEvents in MDE: RegistryKey contains 'Notification Packages', RegistryValueData contains new DLL name, InitiatingProcessFileName=powershell.exe.

  2. Test 2Register Fake Security Support Provider (SSP) in LSA Security Packages

    Expected signal: Sysmon Event ID 13: TargetObject=HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Security Packages, Details appended with 'df00tech-test-ssp'. DeviceRegistryEvents: RegistryKey contains 'Security Packages', ActionType=RegistryValueSet. If system reboots, Security Event ID 4610 will fire listing the (missing) SSP DLL name — LSASS will generate an error in System event log.

  3. Test 3Modify PAM Configuration to Permit Authentication Bypass on Linux

    Expected signal: Linux auditd: syscall=openat/write on path=/etc/pam.d/sshd with auid=<attacker_uid> if auditd watches are configured (-w /etc/pam.d/ -p wa -k pam_modification). Syslog: process writing to /etc/pam.d/sshd. File integrity monitoring (AIDE, Tripwire) will alert on hash change to /etc/pam.d/sshd. DeviceFileEvents (for Linux onboarded to MDE): FileModified on /etc/pam.d/sshd.

  4. Test 4Register Malicious Network Provider DLL via Registry

    Expected signal: Sysmon Event ID 13: TargetObject=HKLM\SYSTEM\CurrentControlSet\Control\NetworkProvider\Order\ProviderOrder, Image=powershell.exe, Details contains appended provider name. DeviceRegistryEvents: RegistryKey contains 'NetworkProvider\Order', RegistryValueName='ProviderOrder', ActionType=RegistryValueSet.

Unlock Pro Content

Get the full detection package for T1556 including response playbook, investigation guide, and atomic red team tests.

Response PlaybookInvestigation GuideHunting QueriesAtomic Red Team TestsTuning Guidance

Related Detections