👤 Author: Benjamin Taylor (@benjqminn)
🛡️ Team: Sherlock’s Homies
🏆 Ranking: 634 / 7,085 teams
📝 Prompt: A memory dump from a connected Linux machine reveals covert network connections, fake services, and unusual redirects. Holmes investigates further to uncover how the attacker is manipulating the entire network!
📌 Summary: Memory analysis revealed an attacker establishing an SSH foothold, running reconnaissance, escalating via stolen credentials, installing a rootkit from Pastebin, reconfiguring network services, and redirecting software updates to deliver a supply-chain attack.
🟥 Challenge Difficulty: HARD
5.10.0-35-amd6413608jm:WATSON0/usr/lib/modules/5.10.0-35-amd64/kernel/lib/Nullincrevenge.koi-am-the@network.nowdnsmasq,38687Parallax-5-WS-3mike.sullivan/win10/update/CogSoftware/AetherDesk-v74-77.exeupdates.cogwork-1.net,13.62.49.86:7477Question: What is the Linux kernel version of the provided image? (string)
Walkthrough:
memdump.mem with a size of 4,294,436,992 bytes.memdump.mem file into a new file I could work on, named memdump_work.mem, so as not to modify the contents of the original file.banners plugin.
Answer: 5.10.0-35-amd64
Question: The attacker connected over SSH and executed initial reconnaissance commands. What is the PID of the shell they used?
Walkthrough:
Symbols directory, and extracted the .json file.linux.pstree, I was able to check the processes and extract the necessary information.
Answer: 13608
Question: After the initial information gathering, the attacker authenticated as a different user to escalate privileges. Identify and submit that user’s credentials.
Walkthrough:
linux.bash plugin to list the executed commands.grep for credential-like uses provides us with one command that stands out.
su jm command to switch to the jm user.strings to see if it is in the memory.
jm:$1$jm$poAH2RyJp8ZllyUvIkxxd0:0:0:root:/root:/bin/bash.hashcat to crack it.

$1$jm$poAH2RyJp8ZllyUvIkxxd0 translates to WATSON0.Answer: jm:WATSON0
Question: The attacker downloaded and executed code from Pastebin to install a rootkit. What is the full path of the malicious file?
Walkthrough:
linux.malware.check_modules plugin to see if the rootkit is easily visible.
Nullincrevenge, is one we can note as being suspicious.NULLINC was named as a key event.
linux.pagecache.Files plugin to identify the malicious file.
Answer: /usr/lib/modules/5.10.0-35-amd64/kernel/lib/Nullincrevenge.ko
Question: What is the email account of the alleged author of the malicious file?
Walkthrough:
linux.pagecache.inodePages.


Answer: i-am-the@network.now
Question: The next step in the attack involved issuing commands to modify the network settings and installing a new package. What is the name and PID of the package?
Walkthrough:
linux.bash plugin output and searching for package-install commands, we know that the attacker installed a certain package:
/tmppstree.txt file we previously generated for any lines containing “apt”, “dpkg”, or “dnsmasq”.
dnsmasq in the return value from the command, giving us the PID of the dnsmasq process.Answer: dnsmasq,38687
Question: Clearly, the attacker’s goal is to impersonate the entire network. One workstation was already tricked and got its new malicious network configuration. What is the workstation’s hostname?
Walkthrough:
linux.bash plugin output, with the iptables configuration, we can assume that the LAN IP range is 192.168.211.0/24.
strings and grep.
Answer: Parallax-5-WS-3
Question: After receiving the new malicious network configuration, the user accessed the City of CogWork-1 internal portal from this workstation. What is their username?
Walkthrough:
strings.egrep and a few different variations of “user=”, or “username=”, since we know the user has accessed the internal portal at this point.

Answer: mike.sullivan
Question: Finally, the user updated a software to the latest version, as suggested on the internal portal, and fell victim to a supply chain attack. From which Web endpoint was the update downloaded?
Walkthrough:

Answer: /win10/update/CogSoftware/AetherDesk-v74-77.exe
Question: To perform this attack, the attacker redirected the original update domain to a malicious one. Identify the original domain and the final redirect IP address and port.
Walkthrough:

updates.cogwork-1.net.
/etc/dnsmasq.conf file.
updates.cogwork-1.net.linux.bash plugin, we know that the attacker not only opened, but also edited and then removed the /tmp/default.conf file.

nano, we can check the output of this file to grab the IP:port value.
Answer: updates.cogwork-1.net,13.62.49.86:7477
Next challenge writeup: Holmes — The Payload 📦