Artemis Gordon
Artemis Gordon
Platform: Metactf | Category: Steganography | Type: Challenge | Difficulty: Easy | OS: NA | Author: D3v0o0Nu11 | Date: 2026-04-10 | Status: Solved Techniques: alphabet_identification, symbol_substitution, visual_pattern_matching
Summary
Task: a PNG image containing moon-phase style symbols with no hidden metadata or embedded payloads. Solution: treat it as a visual symbol cipher, identify Leandro Katz's Lunar Alphabet, and decode the repeated glyph pattern as MOONMAN.
Recon
Port scan
nmap -p- -sV -sC <TARGET> --min-rate 1000 -Pn
| Port | Service | Version | Notes |
|---|---|---|---|
| <PORT> | <SVC> | <VER> | <notes> |
Enumeration highlights
- Event:
metactf| ID:20260410_metactf_artemis_gordon - Tags: png, visual_steganography, symbol_cipher, lunar_alphabet, image_recon
- Indicators: PNG file with no useful metadata or extra chunks, small set of repeated moon-phase glyphs, repeating symbol positions suggest repeated letters, moon imagery points to a lunar-themed alphabet
- Source:
20260410_metactf_artemis_gordon.md
Foothold
Vulnerability / Misconfiguration
- Alphabet_identification
- Symbol_substitution
- Visual_pattern_matching
<command>
Exploitation
- See original writeup content for detailed exploitation.
Privilege Escalation
Enumeration
sudo -l find / -perm -4000 2>/dev/null getcap -r / 2>/dev/null cat /etc/crontab ps aux
Exploitation
- N/A for challenge-type writeup; see exploitation above.
- Flag obtained via challenge solve.
<command>
Flags
| Flag | Location | Value |
|---|---|---|
| flag | REDACTED |
Key Takeaways / Lessons
- alphabet_identification
- symbol_substitution
- visual_pattern_matching
- Tags: png, visual_steganography, symbol_cipher, lunar_alphabet, image_recon
Original Writeup
<details><summary>Click to expand original content</summary>Description
Original organizer description was not preserved locally; only the challenge image
moonieface.pngwas available in the task directory.
The task provides a PNG image containing seven moon-phase style glyphs. The goal is to determine what alphabet those symbols belong to and decode the hidden word used inside the flag.
Analysis
Reconnaissance
The first step was standard file-level recon:
file moonieface.png strings moonieface.png exiftool moonieface.png pngcheck moonieface.png
This established that the file was an ordinary PNG. Metadata was not useful beyond a gnome-screenshot style tag, and pngcheck did not show suspicious chunk anomalies or embedded files. That ruled out the usual metadata / appended-data stego path.
At that point the image had to be solved visually. The important observation was that it contained seven distinct moon-phase style glyphs.
Identifying the alphabet
Because the symbols looked like stylized lunar phases, the next step was to search for moon-based alphabets rather than generic astronomical symbols. That led to Leandro Katz's Lunar Alphabet, whose glyph shapes matched the symbols in the image.
Decoding logic
The seven glyphs were not all unique. Their repetition pattern was:
- positions 1 and 5 are the same
- positions 2 and 3 are the same
- positions 4 and 7 are the same
So the plaintext had the structure:
M O O N M A N
Once the symbols were matched against the Lunar Alphabet chart, the word decoded cleanly as:
MOONMAN
Solution
- Inspect the PNG with
file,strings,exiftool, andpngcheck. - Confirm there is no hidden payload in metadata or PNG chunks.
- Focus on the visible content: seven moon-phase glyphs.
- Search for a lunar-themed symbolic alphabet.
- Match the glyphs to Leandro Katz's Lunar Alphabet.
- Use the repeated-symbol structure to validate the reading as
MOONMAN. - Wrap the decoded word in the required flag format.
#!/usr/bin/env python3
# Manual decode after identifying Leandro Katz's Lunar Alphabet.
# The glyphs in the challenge image correspond to the letters below.
decoded = ["M", "O", "O", "N", "M", "A", "N"]
word = "".join(decoded)
flag = f"DawgCTF{{{word}}}"
print(word)
print(flag)
</details>
Auto-tracked: saved to WriteUps; run
/xesor-reviseto fold lessons into XESXor_Methodology.md.
signed by XESXOR