T1556 Splunk · SPL

Detect Modify Authentication Process in Splunk

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.

MITRE ATT&CK

Tactic
Credential Access Defense Evasion Persistence
Technique
T1556 Modify Authentication Process
Canonical reference
https://attack.mitre.org/techniques/T1556/

SPL Detection Query

Splunk (SPL)
spl
index=wineventlog (
    (sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational" (EventCode=13 OR EventCode=7))
    OR (sourcetype="WinEventLog:Security" (EventCode=4657 OR EventCode=4614 OR EventCode=4610))
)
| eval TargetPath=coalesce(TargetObject, ObjectName)
| eval InitProcess=coalesce(Image, ProcessName)
| eval LoadedImage=coalesce(ImageLoaded, "")
| eval User=coalesce(User, SubjectUserName)
```
-- Branch 1: Sysmon Registry Value Set (EventCode=13) on LSA keys
```
| eval IsAuthRegistryMod=if(
    EventCode=13 AND (
        like(TargetPath, "%\\Control\\Lsa\\Notification Packages%") OR
        like(TargetPath, "%\\Control\\Lsa\\Security Packages%") OR
        like(TargetPath, "%\\Control\\Lsa\\Authentication Packages%") OR
        like(TargetPath, "%\\Control\\NetworkProvider\\Order%") OR
        like(TargetPath, "%\\Winlogon\\GinaDLL%") OR
        like(TargetPath, "%\\Authentication\\Credential Providers%")
    ), 1, 0)
```
-- Branch 2: Windows Security audit of notification/auth package loading
```
| eval IsAuthPackageLoad=if(
    (EventCode=4614 OR EventCode=4610),
    1, 0)
```
-- Branch 3: Sysmon Image Load (EventCode=7) by lsass for unexpected DLLs
```
| eval IsLsassLoad=if(
    EventCode=7 AND like(InitProcess, "%lsass.exe") AND NOT (
        like(LoadedImage, "%\\ntdll.dll") OR like(LoadedImage, "%\\kernel32.dll") OR
        like(LoadedImage, "%\\kerberos.dll") OR like(LoadedImage, "%\\msv1_0.dll") OR
        like(LoadedImage, "%\\wdigest.dll") OR like(LoadedImage, "%\\tspkg.dll") OR
        like(LoadedImage, "%\\pku2u.dll") OR like(LoadedImage, "%\\lsasrv.dll") OR
        like(LoadedImage, "%\\samsrv.dll") OR like(LoadedImage, "%\\netlogon.dll") OR
        like(LoadedImage, "%\\schannel.dll") OR like(LoadedImage, "%\\cloudap.dll")
    ), 1, 0)
| where IsAuthRegistryMod=1 OR IsAuthPackageLoad=1 OR IsLsassLoad=1
| where NOT (like(InitProcess, "%TrustedInstaller.exe") OR like(InitProcess, "%MsMpEng.exe") OR like(InitProcess, "%msiexec.exe") OR like(InitProcess, "%wuauclt.exe"))
| eval DetectionType=case(
    IsLsassLoad=1, "Unexpected DLL Load by LSASS",
    IsAuthPackageLoad=1, "Authentication Package Loaded by SAM/LSA",
    like(TargetPath, "%Notification Packages%"), "Password Filter DLL Registration",
    like(TargetPath, "%Security Packages%"), "SSP Registration",
    like(TargetPath, "%Authentication Packages%"), "Authentication Package Registration",
    like(TargetPath, "%NetworkProvider%"), "Network Provider DLL Registration",
    like(TargetPath, "%GinaDLL%"), "GINA DLL Modification",
    true(), "LSA Authentication Modification"
)
| eval Severity=case(
    DetectionType="Password Filter DLL Registration", "Critical",
    DetectionType="SSP Registration", "Critical",
    DetectionType="GINA DLL Modification", "Critical",
    DetectionType="Unexpected DLL Load by LSASS", "High",
    true(), "High"
)
| table _time, host, User, DetectionType, Severity, TargetPath, Details, LoadedImage, InitProcess, CommandLine
| sort - _time
critical severity high confidence

Detects authentication process modification through three correlated signals: (1) Sysmon Event ID 13 registry value sets on LSA authentication key paths; (2) Windows Security Event IDs 4610 and 4614 which fire when the LSA loads authentication packages and notification packages at system startup — unexpected entries here indicate persistence survived a reboot; (3) Sysmon Event ID 7 image loads by lsass.exe for DLLs not in the expected Windows authentication package list. The combination of registry write followed by auth package load event at next boot is a strong indicator of password filter DLL installation for credential harvesting.

Data Sources

Registry: Registry Key ModificationModule: Module LoadSysmon Event ID 13Sysmon Event ID 7Windows Security Event ID 4610Windows Security Event ID 4614Windows Security Event ID 4657

Required Sourcetypes

XmlWinEventLog:Microsoft-Windows-Sysmon/OperationalWinEventLog:Security

False Positives & Tuning

  • Legitimate MFA and PAM solutions registering credential providers during software installation
  • Enterprise identity platforms (CyberArk EPM, BeyondTrust) installing authentication packages
  • Smart card middleware and PIV/CAC reader software registering PKCS#11 authentication modules
  • Windows Defender Credential Guard configuration changes — correlate with known patch cycles and change tickets
Download portable Sigma rule (.yml)

Other platforms for T1556


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