Holiday Hack 2024: Prologue
Welcome back to the Geese Islands! Let’s help the elves pack up to return to the North Pole.
Frosty’s Beach
To start the game, I’ll find myself on Frosty’s Beach from 2023, with Jingle Ringford standing next to a cranberry pi terminal ready to talk:
The beach looks similar to last year, but Santa’s Surf Shack is closed, and there are crates everywhere, as well as three cranberry pi terminals:
Story
Jingle tells the story of how the team is still finishing up packing up from last year’s trip to the Geese Islands, starting with a bit of a troll:
Jingle Ringford
Welcome to the Geese Islands and the 2023 SANS Holiday Hack Challenge!
I’m Jingle Ringford, one of Santa’s many elves.
…
Just kidding! It’s actually the 2024 SANS Holiday Hack Challenge!
And although we’re on Frosty’s Beach on Christmas Island, we’ll soon be on our way back to the North Pole.
I thought it best to wait here for people that heard we’re on the Geese Islands but may not know we’re leaving.
I haven’t seen Santa since we started packing up, but he always asks me to give a quick orientation to newcomers, so I’m continuing the tradition.
Snowball / Badge
Jingle continues and gives me a magic snowball (badge):
Jingle Ringford
Before you head out any further onto the island, you need to accomplish two simple tasks.
But first, here’s a parting gift. I packed this snowball made of the magical, never-melting snow of Christmas Island. A little souvenir to take with you when we leave for the North Pole.
Click on the snowball on your avatar. That’s where you will see your Objectives, Hints, resource links, and Conversations for the Holiday Hack Challenge.
The magic snowball (or badge) is set up similar to previous years, though there are some new tabs. The “Home” tab shows only the Prologue open, as well as a link to the new scoreboard:
The scoreboard is a global leaderboard:
“Story” show the link to go to the Prologue:
The “Destinations” tab just says “Nothing to see here… yet!”. The other tabs behave as expected.
During the Prologue, the snowball badge shows three challenges:
The objectives have four states. When they are not solved, the trophy shows as empty:
Skipping the objective (story mode) turns it bronze:
Solving the challenge in the basic way gives silver:
And going above and beyond and solving in hard move gets gold:
First Terminal
Solve
Now Jingle needs to to complete the first terminal:
Jingle Ringford
Now, click on the Cranberry Pi Terminal and follow the on-screen instructions.
Just like last year, the first terminal challenge is just to make sure I can use the terminal:
Clicking in the top or bottom section of the window activates that terminal.
I’ll type “answer” in the top pane and complete the challenge.
Jingle offers me direction about where to go next:
Jingle Ringford
You’re a natural! Something new this year you may not know is that all challenges have an easy and hard mode. There’s also story mode, if you want to skip the challenges and watch how our holiday season’s adventure unfolds!
Your snowball will reflect how you’ve solved the challenges with the bronze, silver, and gold trophies.
Well, that’s it, now you’re orientated! Feel free to get yourself settled in, establish a cohort with others, or just explore this lovely island. Just be careful where you walk as we are moving around some pretty heavy crates.
Oh, while we’re preparing everything to set sail for the North Pole, I heard Poinsettia McMittens and Angel Candysalt could use some assistance. I’m sure they’ll appreciate any help you can provide!
We’ll let you know when the boat leaves, but for now relax, enjoy the sun, and most importantly, have FUN!
Beyond Root
There is no silver / gold mode for the first challenge, but it’s still fun to poke around at the terminal a bit to see how it’s running. The terminal is running as elf:
elf@d6f5faeb7a06:~$ id
uid=1000(elf) gid=1000(elf) groups=1000(elf)
The home directory is very empty. ps
isn’t installed in the OS, but I can look at processes in /proc
:
elf@d6f5faeb7a06:~$ for pid in /proc/[0-9]*; do
if [ -f "$pid/cmdline" ]; then
cmdline=$(tr '\0' ' ' < "$pid/cmdline")
echo "$(basename $pid): $cmdline"
fi
done
1: tmux attach
11: bash -c bash -i; tmux kill-server
15: bash -i
16: /bin/runtoanswer
8: tmux attach
9: bash -c stty intr ''; stty susp ''; /bin/runtoanswer; tmux kill-server
Based on this, I suspect that tmux
is what’s spitting the screen into two terminals. Pid 9 is running bash
commands to disable Ctrl+c
and Ctrl+z
in the top window and running runtoanswer
. Whenever this finishes, it will kill the tmux
session. That runtoanswer
is running in pid 16.
In the bottom window, pid 11 starts bash
such that it exits the server immediately upon exiting as well.
The elf user can run but not read or write runtoanswer
:
elf@d6f5faeb7a06:~$
-rws--x--x 1 root root 612560 Sep 30 15:25 /usr/bin/runtoanswer