Detect Exploit Public-Facing Application in Google Chronicle
Adversaries may attempt to exploit a weakness in an Internet-facing host or system to initially access a network. The weakness in the system can be a software bug, a temporary glitch, or a misconfiguration. Exploited applications are often websites/web servers, but can also include databases (like SQL), standard services (like SMB or SSH), network device administration and management protocols (like SNMP and Smart Install), and any other system with Internet-accessible open sockets. On ESXi infrastructure, adversaries may exploit exposed OpenSLP services or VMware vCenter servers. If an application is hosted on cloud-based infrastructure and/or is containerized, exploiting it may lead to compromise of the underlying instance or container, allowing adversaries to access cloud or container APIs, escape to the container host, or exploit weak identity and access management policies.
MITRE ATT&CK
- Tactic
- Initial Access
- Technique
- T1190 Exploit Public-Facing Application
- Canonical reference
- https://attack.mitre.org/techniques/T1190/
YARA-L Detection Query
rule t1190_exploit_public_facing_application {
meta:
author = "Detection Engineering"
description = "Detects web server and application runtime processes spawning suspicious child processes indicative of public-facing application exploitation (T1190)"
mitre_attack_tactic = "Initial Access"
mitre_attack_technique = "T1190"
mitre_attack_technique_id = "T1190"
severity = "HIGH"
confidence = "HIGH"
platform = "Windows"
reference = "https://attack.mitre.org/techniques/T1190/"
events:
$e.metadata.event_type = "PROCESS_LAUNCH"
$e.principal.process.file.full_path = /(?i)(w3wp\.exe|httpd\.exe|nginx\.exe|apache2\.exe|java\.exe|python\.exe|python3\.exe|php\.exe|php-cgi\.exe|node\.exe|ruby\.exe|perl\.exe|tomcat[0-9]*\.exe|ews\.exe|umworkerprocess\.exe|msexchangeservicehost\.exe)$/
$e.target.process.file.full_path = /(?i)(cmd\.exe|powershell\.exe|pwsh\.exe|wscript\.exe|cscript\.exe|mshta\.exe|rundll32\.exe|regsvr32\.exe|certutil\.exe|bitsadmin\.exe|curl\.exe|wget\.exe|nc\.exe|ncat\.exe|net\.exe|net1\.exe|whoami\.exe|ipconfig\.exe|systeminfo\.exe|nltest\.exe|ping\.exe|nslookup\.exe|tasklist\.exe|quser\.exe|schtasks\.exe|at\.exe|sc\.exe|reg\.exe)$/
$e.principal.hostname = $hostname
$e.principal.user.userid = $user
condition:
$e
} Chronicle YARA-L 2.0 rule using UDM process launch events to match web server parent processes (IIS, Apache, Nginx, Tomcat, Exchange, scripting runtimes) that spawn post-exploitation tooling. Leverages principal.process for the parent and target.process for the spawned child, consistent with Chronicle's UDM PROCESS_LAUNCH event model.
Data Sources
Required Tables
False Positives & Tuning
- Managed web hosting environments where IIS application pools execute scheduled tasks (schtasks.exe, at.exe) as part of CMS or e-commerce platform maintenance routines
- Java-based middleware platforms that use ProcessBuilder or Runtime.exec() to invoke net.exe or sc.exe for Windows service management as part of startup/shutdown hooks
- Security scanners or endpoint agents legitimately invoking whoami.exe or systeminfo.exe from application contexts to collect telemetry or verify runtime identity
Other platforms for T1190
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.
- Test 1Web Server Process Spawning Reconnaissance Commands
Expected signal: Sysmon Event ID 1: Process Create events for cmd.exe, whoami.exe, ipconfig.exe, net.exe, systeminfo.exe with respective command lines. Security Event ID 4688 (with command line auditing enabled) for each spawned process. Sysmon Event ID 11: File creation at %TEMP%\argus-t1190-recon.txt.
- Test 2Drop Test Webshell File in IIS Web Root
Expected signal: Sysmon Event ID 11: File Create with TargetFilename='C:\inetpub\wwwroot\argus-test-shell.aspx'. Sysmon Event ID 1: Process Create for powershell.exe with Set-Content command visible in CommandLine. DeviceFileEvents in Microsoft Defender for Endpoint will show the .aspx file creation with the initiating process context.
- Test 3Log4Shell JNDI Lookup Payload in HTTP Request Headers
Expected signal: Web server access log entry (Apache: /var/log/apache2/access.log, Nginx: /var/log/nginx/access.log) showing the JNDI payload strings in User-Agent and custom header fields. If a Java application with Log4j is running on port 80, Sysmon EventCode=3 (or /proc/net/tcp) will show an LDAP connection attempt to 127.0.0.1:1389 from the java.exe/java process.
- Test 4SQL Injection Payloads in Web Application Query Parameters
Expected signal: Web server access logs will contain entries with SQL injection strings in the cs-uri-query field (IIS) or request URI (Apache/Nginx). The HTTP response codes (200, 400, 404, 500) are printed to stdout for each payload. WAF alert events generated if a WAF is in the request path. No database query is executed — the payloads are evaluated only at the HTTP layer.
References (10)
- https://attack.mitre.org/techniques/T1190/
- https://owasp.org/www-project-top-ten/
- https://cwe.mitre.org/top25/index.html
- https://www.mandiant.com/resources/blog/fortinet-malware-ecosystem
- https://www.recordedfuture.com/blog/esxiargs-ransomware-targets-vmware-esxi-openslp-servers
- https://www.microsoft.com/security/blog/2021/03/02/hafnium-targeting-exchange-servers/
- https://www.cisa.gov/news-events/cybersecurity-advisories/aa21-116a
- https://unit42.paloaltonetworks.com/threat-brief-understanding-log4j-vulnerability/
- https://www.secureworks.com/research/bronze-silhouette
- https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1190/T1190.md
Unlock Pro Content
Get the full detection package for T1190 including response playbook, investigation guide, and atomic red team tests.