Each observed behaviour is mapped to the relevant ATT&CK tactic and technique, with the supporting evidence and a detection idea. This turns the investigation into reusable detection logic.
| Tactic | Technique | ID | Evidence in this investigation |
|---|---|---|---|
| Reconnaissance | Active Scanning / target profiling | T1595 | Heavy HTTP probing of 192.168.250.70 from 40.80.148.42 and 23.22.63.114 |
| Initial Access | Exploit Public-Facing Application | T1190 | Attack against the internet-facing Joomla CMS |
| Credential Access | Brute Force: Password Guessing | T1110.001 | 400+ POST attempts vs. username=admin |
| Initial Access / Persistence / Priv. Esc. | Valid Accounts | T1078 | Re-use of the compromised admin / batman credential |
| Execution | Command & Scripting Interpreter: Windows Command Shell | T1059.003 | cmd.exe /c "3791.exe 2>&1" (Sysmon EventCode 1) |
| Command & Control | Ingress Tool Transfer | T1105 | Upload of 3791.exe to the compromised server |
| Command & Control | Application Layer Protocol | T1071 | HTTP beacon to ...jumpingcrab.com:1337 |
| Command & Control | Dynamic Resolution | T1568 | C2 via free dynamic DNS (jumpingcrab.com / afraid.org) |
| Exfiltration | Exfiltration Over C2 Channel | T1041 | Outbound traffic to attacker-controlled infrastructure |
| Impact | Defacement: External Defacement | T1491.002 | poisonivy-is-coming-for-you-batman.jpeg served from the site |
A single source IP generating a high volume of POST requests to an authentication endpoint in a short window is the core signal.
index=botsv1 sourcetype=stream:http uri="/joomla/administrator/index.php" http_method=POST
| stats count as attempts dc(form_data) as unique_passwords by src_ip
| where attempts > 50
Alerting idea: threshold on
attemptspersrc_ipover a rolling 5-minute window; enrich with User-Agent to distinguish scripted tools (Python-urllib,curl,Hydra).
Watch for a successful authentication from a source that was also seen brute-forcing, or a login from an unusual User-Agent / geolocation immediately after a burst of failures.
Non-standard executables spawned by cmd.exe, especially from web-server working directories.
index=botsv1 sourcetype="XmlWinEventLog" EventCode=1 CommandLine="*cmd.exe /c*"
| table _time Computer User ParentImage Image CommandLine
Alerting idea: flag process creation where
ParentImageis a web-server or interpreter process and the child is an executable dropped outside standard install paths.
Outbound connections to newly observed domains on uncommon ports (e.g., 1337), to dynamic-DNS providers, or to
URLs categorized as malicious by the web filter.
index=botsv1 sourcetype=fortigate_utm (dstport=1337 OR url="*jumpingcrab*" OR crlevel=high)
| table _time srcip dstip dstport url catdesc crlevel
Alerting idea: correlate FortiGate "Malicious Websites" hits with internal server source IPs — a server initiating such traffic is far more suspicious than a workstation.
Monitor for unexpected new web assets (especially images with anomalous names) being served or requested on a public site.
The intrusion is a compact but complete APT chain: exploit a public app → brute-force credentials → re-use a valid account → deliver and execute a RAT → establish C2 → impact (defacement). Mapping it to ATT&CK makes every step detectable and the lessons portable to a production SOC.