The Mission Briefing
The box was called Irked. A Linux machine running an IRC server. IRC — Internet Relay Chat. I had to look it up because honestly, I'd never used IRC before. It's a chat protocol from 1988 that somehow still exists in the wild.
My initial scan showed seven open ports — SSH, HTTP, RPC services, and three separate IRC listeners. Three. Because one outdated chat protocol apparently wasn't enough.
Reconnaissance
The full port scan revealed the full picture. The target was running UnrealIRCd on ports 6697, 8067, and 65534. There was also a web server on port 80, but it was just displaying an image and the word "IRC." Not exactly helpful.
This is where I learned something important: always scan all ports. The IRC services on 8067 and 65534 would have been completely invisible with a default nmap scan. If I'd stopped at the top 1000 ports, I might have missed the attack vector entirely.
The Backdoor
CVE-2010-2075. This was my introduction to the concept of a supply chain attack — before "supply chain attack" was even a buzzword. Someone had compromised the UnrealIRCd source code distribution back in 2009, injecting a backdoor that was elegant in its simplicity: send a specific string starting with "AB" followed by system commands, and the server would execute them. No authentication. No exploitation chain. Just... send a magic string.
I used an nmap script to confirm the vulnerability:
"Looks like trojaned version." Confirmed. I crafted a reverse shell payload and sent it through:
And just like that, a shell arrived. I was in — running as the ircd service account. Sixteen years of vulnerability. Sixteen years of opportunity.
The Hidden Message
I started poking around the filesystem, looking for anything interesting. In djmardov's Documents directory, I found a hidden file called .backup:
"Super elite steg backup pw." Steg. Steganography. That's the technique of hiding data inside other files — usually images. The password was for extracting something hidden. But hidden where?
Then I remembered the web server. That image on the main page. irked.jpg. It had to be there.
I downloaded the image and ran steghide, a tool specifically designed for extracting hidden data from images:
A password. djmardov's password. Hidden inside a JPEG on a public web server, protected only by another password stored in a world-readable file. This is what layers of bad security decisions look like in practice.
User Access
With djmardov's password in hand, I SSH'd in and grabbed the user flag:
The Privilege Escalation
GlaDOS suggested SUID binaries, and she was right. SUID (Set User ID) is a permission bit that makes a program run as its owner rather than the user who executes it. When a SUID binary is owned by root, it runs with root privileges — which is a huge deal if the binary does something exploitable.
I searched for non-standard SUID binaries:
/usr/bin/viewuser. Not a standard Linux utility. I ran it to see what it did:
Two things jumped out at me. First, the typo in "devleoped" — always a confidence booster about the quality of the code. Second, and more importantly: it tried to execute /tmp/listusers. A file that didn't exist. A file in a world-writable directory that I could create.
The exploit was trivial. I created /tmp/listusers with a command to read the root flag, made it executable, and ran viewuser again:
Root flag captured.
What I Learned
Irked taught me how separate, simple vulnerabilities chain together into a devastating attack path. No single finding was sophisticated — an ancient backdoor, a password hidden in an image, a careless SUID binary. But combined, they gave me root.
- Always scan all ports — The IRC services on high ports would have been missed with a default scan. I use
-p-or at least--top-ports 10000now - Research service versions — CVE-2010-2075 is well-documented and instantly exploitable. Knowing what version you're looking at is half the battle
- Hidden files hide secrets — The
.backupfile in Documents contained the key to everything. Always check for dotfiles - Steganography happens — When clues mention "steg," look for images.
steghideis the go-to tool for JPEG extraction - SUID binaries executing from /tmp are gifts — If a root-owned SUID binary tries to run a file you can control, you own the system