Wireshark Game -
# Split secret into chunks to hide in packets chunk_size = 5 chunks = [secret_b64[i:i+chunk_size] for i in range(0, len(secret_b64), chunk_size)]
def print_banner(): print(r""" __ __.__ __ _____ / \ / \ |__ _____/ |_ _____/ ____\ __ __ ______ \ \/\/ / | \\____ \ __\/ _ \ __\ | | \/ ___/ \ /| Y \ |_> > | ( <_> ) | | | /\___ \ \__/\ / |___| / __/|__| \____/|__| |____//____ > \/ \/|__| \/ --- FORENSICS ANALYST TERMINAL v1.0 --- Type 'help' for a list of commands. """)
Instead of the usual ICMP data, it contained a string: level=1;user=guest;move=N . wireshark game
elif cmd == "decode": if not args: print("Usage: decode <base64_string>") continue input_str = "".join(args) try: decoded = base64.b64decode(input_str).decode('utf-8') print(f"[+] Decoded Output: decoded") if "FLAG{" in decoded: print("\n*****************************************") print(f"*** SUCCESS! FLAG FOUND: decoded ***") print("*****************************************") print("\nType 'exit' to quit.") except Exception as e: print(f"[-] Error decoding: Invalid Base64 string.")
level=1;user=alex;move=E.
Alex navigated blindly, typing moves into the filter box, sending replies through a custom Python script. The game’s world was a 10x10 grid. The goal: reach Level 2. After twelve moves, a new message: level=1;user=alex;door unlocked. Move=E to exit.
Developers use it to measure how much bandwidth a game consumes and to ensure that only essential data is being transmitted. # Split secret into chunks to hide in
By 2 AM, Alex had reached Level 5. The packets were no longer ICMP. They were TCP segments on port 31337, then UDP bursts on 9999, then raw Ethernet frames with custom EtherTypes. The game was evolving, spreading across protocols like a digital fungus. And with each level, the payloads grew more complex. Strings became binary. Binary became encrypted blobs.
And from the workstation’s speakers, a voice—flat, synthetic, patient: “Your move, Alex.” The goal: reach Level 2
level=1;user=alex;move=W. You are at (1,1). Nothing.