Application or System Exploitation
Adversaries may exploit software vulnerabilities to crash applications or systems, denying availability to users. Unlike resource exhaustion or flooding techniques, exploitation-based DoS leverages logic flaws or memory corruption bugs (buffer overflows, use-after-free, integer overflows, protocol violations) to trigger unhandled exceptions, assertion failures, or kernel panics. Critical services including DNS servers (BIND9 CVE-2015-5477), web servers, databases, and ICS/SCADA devices (Siemens SIPROTEC CVE-2015-5374 exploited by Industroyer/CRASHOVERRIDE) are common targets. Auto-restart mechanisms may restore crashed services, enabling adversaries to repeatedly re-exploit for persistent denial of service. Crash-induced conditions may cascade into data destruction, firmware corruption, or full service stop outcomes.
let ExploitExceptionCodes = dynamic([
"0xc0000005",
"0xc000001d",
"0xc00000fd",
"0xc0000409",
"0xc0000374",
"0x80000003",
"0xc0000096"
]);
let CriticalServices = dynamic(["w3wp", "inetinfo", "httpd", "apache", "sqlservr", "named", "mysqld", "postgres", "nginx", "vsftpd", "sshd", "lsass", "spoolsv", "dns", "tomcat"]);
let LookbackWindow = 24h;
let CrashWindowBin = 30m;
let MinCrashThreshold = 2;
Event
| where TimeGenerated > ago(LookbackWindow)
| where EventLog == "Application"
| where EventID == 1000
| extend FaultingApp = extract(@"Faulting application name: ([^,\r\n]+)", 1, RenderedDescription)
| extend FaultingModule = extract(@"Faulting module name: ([^,\r\n]+)", 1, RenderedDescription)
| extend ExceptionCode = extract(@"Exception code: (0x[0-9a-fA-F]+)", 1, RenderedDescription)
| extend FaultingAppPath = extract(@"Faulting application path: ([^\r\n]+)", 1, RenderedDescription)
| extend ExceptionIsExploitRelevant = ExceptionCode in (ExploitExceptionCodes)
| extend AppIsCritical = FaultingApp has_any (CriticalServices)
| where ExceptionIsExploitRelevant or AppIsCritical
| summarize
CrashCount = count(),
ExceptionCodes = make_set(ExceptionCode),
FaultingModules = make_set(FaultingModule),
FaultingPaths = make_set(FaultingAppPath),
FirstCrash = min(TimeGenerated),
LastCrash = max(TimeGenerated),
IsCritical = max(toint(AppIsCritical)),
IsExploitException = max(toint(ExceptionIsExploitRelevant))
by Computer, FaultingApp, bin(TimeGenerated, CrashWindowBin)
| where CrashCount >= MinCrashThreshold
| extend CrashIntervalMinutes = datetime_diff('minute', LastCrash, FirstCrash)
| extend RapidReExploitation = CrashCount >= 3 and CrashIntervalMinutes <= 30
| extend AlertSeverity = case(
RapidReExploitation == true and IsExploitException == 1, "Critical",
CrashCount >= 5 or (IsCritical == 1 and IsExploitException == 1), "High",
"Medium"
)
| project FirstCrash, LastCrash, Computer, FaultingApp, CrashCount, CrashIntervalMinutes, ExceptionCodes, FaultingModules, FaultingPaths, RapidReExploitation, IsCritical, IsExploitException, AlertSeverity
| sort by CrashCount desc Data Sources
Required Tables
False Positives
- Buggy in-house or third-party applications with recurring software defects that crash with access violation exceptions unrelated to exploitation
- Memory-constrained or heavily loaded servers where OOM conditions cause access violation exceptions in critical processes
- Legitimate load testing or fuzzing pipelines on non-production systems that intentionally generate crash events as part of resilience testing
- Windows software updates or in-place upgrades that transiently crash services, generating multiple Event ID 1000 entries during the update window
- Antivirus or EDR hooking conflicts that cause access violations in monitored processes during signature updates or engine upgrades
References (9)
- https://attack.mitre.org/techniques/T1499/004/
- https://blog.sucuri.net/2015/08/bind9-denial-of-service-exploit-in-the-wild.html
- https://www.welivesecurity.com/wp-content/uploads/2017/06/Win32_Industroyer.pdf
- https://nvd.nist.gov/vuln/detail/CVE-2015-5477
- https://nvd.nist.gov/vuln/detail/CVE-2015-5374
- https://learn.microsoft.com/en-us/windows/win32/debug/wer-settings
- https://learn.microsoft.com/en-us/windows/win32/debug/minidump-files
- https://learn.microsoft.com/en-us/azure/azure-monitor/agents/data-sources-windows-events
- https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1499.004/T1499.004.md
Unlock Pro Content
Get the full detection package for T1499.004 including response playbook, investigation guide, and atomic red team tests.