EventPeeker
Event ID 7InformationSysmonT1574.002

Windows Event ID 7Image Loaded

Sysmon Event 7 fires every time a DLL or other image file is loaded into a process, recording the loading process, the loaded image path, its hash, signing status, and signature details. It is the primary data source for detecting DLL sideloading, reflective DLL injection, and unsigned DLL abuse — attack techniques that are invisible to process creation logging because they don't spawn new processes.

MITRE ATT&CK

Technique

T1574.002 · DLL Side-Loading

Tactic

Persistence

View on attack.mitre.org →

Why It Matters

DLL-based attacks are popular precisely because they hide inside trusted processes: a signed, legitimate application loads an attacker-supplied DLL, and all subsequent malicious activity runs under the trusted process's identity. Process creation logging sees only the legitimate host process; Sysmon 7 exposes every DLL it loads. The Signed and SignatureStatus fields immediately flag unsigned or invalidly-signed DLLs loading into signed Microsoft processes — a high-confidence sideloading or injection indicator.

Key Fields

ImageThe process loading the DLL — a signed Microsoft process (svchost.exe, Teams.exe, OneDrive.exe) loading an unsigned DLL from a user-writable path is the DLL sideloading signature
ImageLoadedFull path of the loaded DLL — DLLs loading from AppData, Temp, Downloads, or the same directory as a portable executable (not System32) warrant investigation
SignedTrue or False — unsigned DLLs loading into signed processes are the primary sideloading signal; legitimate system DLLs are always signed by Microsoft
SignatureStatus'Valid' = OK; 'Expired' = legitimate software with lapsed certificate (low risk); 'Revoked' = certificate was revoked, strong malware indicator; 'Error' or absent = unsigned or tampered
HashesSHA256 of the loaded DLL — submit to VirusTotal for instant malware family identification; hash-match against known malicious DLL databases
OriginalFileNamePE header file name — catches renamed DLLs the same way Sysmon 1 catches renamed executables; mismatch between this and the filename in ImageLoaded = masquerade

Normal vs Suspicious

Normal

  • System32 DLLs (kernel32.dll, ntdll.dll, user32.dll) loading into any signed process with Signed = true
  • Vendor-signed DLLs loading into their own applications (e.g. Microsoft Visual C++ runtime into Office)
  • Browser extension/plugin DLLs with valid signatures loading into the browser process
  • Antivirus DLL components with valid certificates loading into system processes for scanning
  • Windows SDK or dev tool DLLs loading into signed development applications

Suspicious

  • Signed = false DLL loading into lsass.exe, winlogon.exe, services.exe, or explorer.exe
  • System DLL names (kernel32.dll, user32.dll, ntdll.dll) loading from paths outside System32 or SysWOW64
  • Any DLL loading into a process from AppData, Temp, Downloads, or the same directory as a portable .exe
  • sekurlsa.dll, wdigest.dll, or other Mimikatz module names loading into lsass.exe
  • SignatureStatus = Revoked — certificate was explicitly revoked, strong malware indicator
  • DLL loading with Signed = false immediately after Sysmon 10 Process Access on the same target process

Investigation Tips

  1. 1.DLL sideloading signature: a signed Microsoft or vendor application loading an unsigned DLL from the same directory as the application, or from AppData/Temp. The canonical pattern: legitimate EXE in user-controlled path + unsigned DLL with a name matching a known system DLL = sideloading.
  2. 2.Reflective DLL injection: Signed = false, ImageLoaded path contains memory artifacts (e.g. paths that don't exist on disk, very short paths), or CallTrace (if enabled) shows unusual memory regions. Sysmon 7 with ImageLoaded from a non-existent path indicates an in-memory injection.
  3. 3.Watch for unsigned DLLs loading into high-value processes: lsass.exe, winlogon.exe, services.exe, explorer.exe — these processes are targeted for injection because they run with high privileges and are trusted by security products.
  4. 4.Known DLL masquerade: compare ImageLoaded filename against the list of known Windows system DLLs (kernel32.dll, ntdll.dll, user32.dll). A DLL named kernel32.dll loading from C:\Users\Public\ is masquerading as a system DLL — attackers rely on DLL search order to make the fake load before the real one.
  5. 5.Hash the ImageLoaded DLL and check VirusTotal — even without a signature mismatch, known malicious DLLs will be flagged. Submit both MD5 and SHA256 for broadest coverage.

How Attackers Evade This Event

  • Code signing abuse — attackers sign their malicious DLLs with stolen, purchased, or self-signed certificates; Signed = true but the signing identity is not a trusted vendor
  • Memory-only (reflective) DLL loading — DLL is loaded directly from memory and never written to disk; Sysmon 7 may still fire but ImageLoaded path will show a memory region or non-existent path
  • DLL proxying — malicious DLL exports all the same functions as the legitimate DLL it replaces and forwards calls to the real DLL; appears functional and may retain a valid signature if the PE metadata is carefully preserved
  • Load-time hijacking via DLL search order — placing a malicious DLL earlier in the Windows search path than the legitimate one; the legitimate application loads it automatically without any API injection needed
  • Legitimate certificate abuse — some attackers use expired or poorly-validated certificates that Sysmon marks as Expired rather than Invalid, which is lower priority in many detection rules

Seeing Event ID 7 in your own logs? Upload an .evtx file — EventPeeker flags image loaded automatically, maps it to MITRE ATT&CK, and writes the triage report. No account, files auto-deleted.

Analyze my logs →

Related Event IDs

1Sysmon Process Create — establishes the process context that Event 7 loads DLLs into
10Sysmon Process Access — DLL injection often precedes LSASS access
4688Native process creation — identifies the host process before Sysmon 7 DLL loads

Frequently Asked Questions

Why does Sysmon Event 7 generate so many events and how do I filter it?
Every process loads dozens to hundreds of DLLs during startup — a browser can load 300+ DLLs in a single session. Unfiltered, Sysmon 7 is often the highest-volume Sysmon event. Practical filtering: (1) In your Sysmon config, include only events where Signed = false — this reduces volume by 90%+ while catching almost every attack. (2) Exclude DLL loads from System32 and SysWOW64 by trusted processes — these are almost always legitimate. (3) Focus collection on high-value target processes: lsass.exe, winlogon.exe, services.exe, and any process in your watchlist. The goal is unsigned DLLs in trusted processes and system DLL names from wrong paths — not every DLL load.
What is DLL sideloading and how is it different from DLL injection?
DLL sideloading exploits Windows DLL search order: when an application loads a DLL by name without a full path, Windows searches in a defined order (application directory first, then System32, etc.). Attackers place a malicious DLL with a system DLL's name in the application's directory, causing the application to load the malicious one instead. The legitimate application is unmodified — it just loads the wrong DLL. DLL injection, by contrast, forces an already-running process to load an attacker-supplied DLL into its memory space, typically via WriteProcessMemory + CreateRemoteThread or similar APIs. Sideloading appears in Sysmon 7 as an unsigned DLL with a system name loading from a wrong path; injection appears as unsigned DLL loading from memory or an unusual path into a running trusted process.
How do I use Sysmon Event 7 to detect LSASS credential dumping?
Credential dumping tools that inject into LSASS (rather than opening a handle to it) appear in Sysmon 7 as unsigned or unexpected DLLs loading into lsass.exe. Look for: ImageLoaded with Signed = false in the Image = lsass.exe context, DLLs loading from AppData or Temp into lsass.exe, or known credential dumping DLL hashes. However, the more reliable LSASS dump detection uses Sysmon Event 10 (Process Access) with GrantedAccess 0x1010 or 0x1410 — that catches handle-based dumping (ProcDump, Task Manager) which doesn't require DLL injection. Use Sysmon 7 for injection-based dumping and Sysmon 10 for handle-based dumping together.

Go deeper: the full Rundll32 Abuse — LOLBin Code Execution, LSASS Dump & DLL Proxy Detection guide

Builds on this page with the attack chain, step-by-step investigation, immediate containment actions, KQL/Sigma detection queries, and an annotated example log.

Read the Rundll32 Abuse — LOLBin Code Execution, LSASS Dump & DLL Proxy Detection guide

See Event ID 7 in your logs

Upload a Windows Event Log (.evtx) file — EventPeeker automatically detects image loaded patterns, maps findings to MITRE ATT&CK, and generates an AI triage report.

Analyze EVTX Logs Free →