👤 Author: Benjamin Taylor (@benjqminn)
🤝 Team: Sherlock’s Homies
🏆 Ranking: 634 / 7,085 teams
📝 Prompt: Holmes receives a breadcrumb from Dr. Nicole Vale - fragments from a string of cyber incidents across Cogwork-1. Each lead ends the same way: a digital calling card signed JM.
📌 Summary: Multi-stage web attack against Nicole Vale’s honeypot attributed to actor “JM”: initial reconnaissance (distinct User-Agent), WAF bypass with web shell deployment, database exfiltration, malware persistence, and infrastructure mapping via Cogwork platforms.
🟩 Challenge Difficulty: EASY
Lilnunc/4A4D - SpecterEyetemp_4A4D.phpdatabase_dump_4A4D.sql4A4D597477c4f5e6d7c8b9a0f1e2d3c4b5a6f7e8d9c0b1a2f3e4d5c6b7a8f9e0d1747774.77.74.77/opt/lilnunc/implant/4a4d_persistence.sh11SenseShield MSPHe's a ghost I carry, not to haunt me, but to hold me together - NULLINC REVENGEQuestion: Analyze the provided logs and identify what is the first User-Agent used by the attacker against Nicole Vale’s honeypot.
Walkthrough:
Lilnunc/4A4D - SpecterEye.Lilnunc/4A4D - SpecterEye
Solution Line of access.log:
2025-05-01 08:23:12 121.36.37.224 - - [01/May/2025:08:23:12 +0000] "GET /robots.txt HTTP/1.1" 200 847 "-" "Lilnunc/4A4D - SpecterEye"Answer: Lilnunc/4A4D - SpecterEye
Question: It appears the threat actor deployed a web shell after bypassing the WAF. What is the file name?
Walkthrough:
waf.logCTRL + F command searching for “WAF” allowed me to specify which lines contained any information about WAFs, so I started by going line-by-line (as this was a relatively small file).2025-05-15 11:25:01 the logs show a “CRITICAL” alert, with a “BYPASS” action (exactly what we are looking for). This line specifies a “Web shell creation detected”, so I knew I was on the right track.2025-05-15 11:25:12, another “BYPASS” action takes place. This log specifies a PHP web shell created, with the name temp_4A4D.php. This is the flag for our question.
Solution Line of waf.log:
2025-05-15 11:25:12 [CRITICAL] waf.exec - IP 121.36.37.224 - Rule: WEBSHELL_DEPLOYMENT - Action: BYPASS - PHP web shell temp_4A4D.php createdAnswer: temp_4A4D.php
Question: The threat actor also managed to exfiltrate some data. What is the name of the database that was exfiltrated?
Walkthrough:
waf.log.waf.log called “DATA_EXFILTRATION”, and looking here was my first instinct.2025-05-15 11:24:34, it gives an “Unknown Error”. This line is illegible in the waf.log file, so I cross-checked the timestamps in the application.log file.application.log, we can see that at 2025-05-15 11:24:34 there is a “Data exfiltration attempt from 121.36.37.224”.'find /var/www -name "*.sql" -o -name "*.tar.gz" -o -name "*.bck"'), but this didn’t help much with finding the name of the database.access.log."POST /api/v2/debug/exec HTTP/1.1" 200 512 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36".GET commands.2025-05-18 15:02:34 121.36.37.224 - - [18/May/2025:15:02:34 +0000] "GET /uploads/temp_4A4D.php?cmd=tar%20-czf%20/tmp/exfil_4A4D.tar.gz%20/var/www/html/config/%20/var/log/webapp/ HTTP/1.1" 200 128 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36"2025-05-18 14:58:23 121.36.37.224 - - [18/May/2025:15:58:23 +0000] "GET /uploads/database_dump_4A4D.sql HTTP/1.1" 200 52428800 "-" "4A4D RetrieveR/1.0.0".sql file downloaded.database_dump_4A4D.sql.
Solution Line of access.log:
2025-05-18 14:58:23 121.36.37.224 - - [18/May/2025:15:58:23 +0000] "GET /uploads/database_dump_4A4D.sql HTTP/1.1" 200 52428800 "-" "4A4D RetrieveR/1.0.0"Answer: database_dump_4A4D.sql
Question: During the attack, a seemingly meaningless string seems to be recurring. Which one is it?
Walkthrough:
Lilnunc/4A4D - SpecterEye contains the string 4A4D. This string also appeared in the database dump from the last question, etc.Select-String -Path .\access.log, .\application.log, .\waf.log -Pattern "4A4D" | Format-Table Filename, LineNumber, Line -AutoSizeLilnunc/4A4D - SpecterEyetemp_4A4D.phpdatabase_dump_4A4D.sqlbackup_2025_4A4D.tar.gz4A4D RetrieveR/1.0.0
4A4D.Answer: 4A4D
Question: OmniYard-3 … count how many campaigns appear to be linked to the honeypot attack.
Walkthrough:
IP:port that was given.IP:port in the browser, we were met with a “CogWork-Intel Graph”.
5.Answer: 5
Question: How many tools and malware in total are linked to the previously identified campaigns?
Walkthrough:

4 tools and 5 malware used.9.Answer: 9
Question: The threat actor has always used the same malware in their campaigns. What is its SHA-256 hash?
Walkthrough:
IP:port combo as the previous two questions, this question requires us to look a little deeper into the malware used in the attacks.4A4D, the malware that the attacker has used throughout the campaigns, shows us that there are 11 entities and 3 different types associated.
4A4D.
indicator--vehicle-chaos-hash-2025-0005. In this case, I chose the Vehicle Chaos Engine malware and went to the “Links” section.
indicator--vehicle-chaos-hash-2025-0005 page.[file:hashes.SHA256 = '7477c4f5e6d7c8b9a0f1e2d3c4b5a6f7e8d9c0b1a2f3e4d5c6b7a8f9e0d17477'].7477c4f5e6d7c8b9a0f1e2d3c4b5a6f7e8d9c0b1a2f3e4d5c6b7a8f9e0d17477.
Answer: 7477c4f5e6d7c8b9a0f1e2d3c4b5a6f7e8d9c0b1a2f3e4d5c6b7a8f9e0d17477
Question: Use the CogWork Security Platform to look for the hash and locate the IP address to which the malware connects.
Walkthrough:
IP:port took us to, we CTRL + C the SHA-256 and then CTRL + V into the search query box.
Malicious threat, but the filename also matches the 4A4D pattern that we have been seeing throughout this activity. This means it is most definitely the correct file.
74.77.74.77.Answer: 74.77.74.77
Question: What is the full path of the file that the malware created to ensure its persistence on systems?
Walkthrough:

CREATE operations. The first of which has “persistence” in the name./opt/lilnunc/implant/4a4d_persistence.sh.Answer: /opt/lilnunc/implant/4a4d_persistence.sh
Question: CogNet Scanner — how many open ports does the server have?
Walkthrough:
IP:port address and told to use the CogNet Scanner Platform to find more details about the infrastructure of the TA.
74.77.74.77, returns one single result.
11.Answer: 11
Question: Which organization does the previously identified IP belong to?
Walkthrough:

SenseShield MSP.SenseShield MSP.Answer: SenseShield MSP
Question: One of the exposed services displays a banner containing a cryptic message. What is it?
Walkthrough:

7477/tcp.
He's a ghost I carry, not to haunt me, but to hold me together - NULLINC REVENGE.Answer: He's a ghost I carry, not to haunt me, but to hold me together - NULLINC REVENGE
Next challenge writeup: Holmes — The Watchman’s Residue 👮