diff --git a/assets/img/writeups/holiday-hack-challenge/2024/act3/santa-vision/about-screen.png b/assets/img/writeups/holiday-hack-challenge/2024/act3/santa-vision/about-screen.png
new file mode 100644
index 0000000..d27fef2
Binary files /dev/null and b/assets/img/writeups/holiday-hack-challenge/2024/act3/santa-vision/about-screen.png differ
diff --git a/assets/img/writeups/holiday-hack-challenge/2024/act3/santa-vision/control-page.png b/assets/img/writeups/holiday-hack-challenge/2024/act3/santa-vision/control-page.png
new file mode 100644
index 0000000..1f44a6b
Binary files /dev/null and b/assets/img/writeups/holiday-hack-challenge/2024/act3/santa-vision/control-page.png differ
diff --git a/assets/img/writeups/holiday-hack-challenge/2024/act3/santa-vision/cover.png b/assets/img/writeups/holiday-hack-challenge/2024/act3/santa-vision/cover.png
new file mode 100644
index 0000000..38321b4
Binary files /dev/null and b/assets/img/writeups/holiday-hack-challenge/2024/act3/santa-vision/cover.png differ
diff --git a/assets/img/writeups/holiday-hack-challenge/2024/act3/santa-vision/cover2.png b/assets/img/writeups/holiday-hack-challenge/2024/act3/santa-vision/cover2.png
new file mode 100644
index 0000000..f028a5b
Binary files /dev/null and b/assets/img/writeups/holiday-hack-challenge/2024/act3/santa-vision/cover2.png differ
diff --git a/assets/img/writeups/holiday-hack-challenge/2024/act3/santa-vision/default-feeds.png b/assets/img/writeups/holiday-hack-challenge/2024/act3/santa-vision/default-feeds.png
new file mode 100644
index 0000000..cd18189
Binary files /dev/null and b/assets/img/writeups/holiday-hack-challenge/2024/act3/santa-vision/default-feeds.png differ
diff --git a/assets/img/writeups/holiday-hack-challenge/2024/act3/santa-vision/gold-feeds.png b/assets/img/writeups/holiday-hack-challenge/2024/act3/santa-vision/gold-feeds.png
new file mode 100644
index 0000000..5127383
Binary files /dev/null and b/assets/img/writeups/holiday-hack-challenge/2024/act3/santa-vision/gold-feeds.png differ
diff --git a/assets/img/writeups/holiday-hack-challenge/2024/act3/santa-vision/landing-page.png b/assets/img/writeups/holiday-hack-challenge/2024/act3/santa-vision/landing-page.png
new file mode 100644
index 0000000..4131155
Binary files /dev/null and b/assets/img/writeups/holiday-hack-challenge/2024/act3/santa-vision/landing-page.png differ
diff --git a/assets/img/writeups/holiday-hack-challenge/2024/act3/santa-vision/login-page.png b/assets/img/writeups/holiday-hack-challenge/2024/act3/santa-vision/login-page.png
new file mode 100644
index 0000000..f43c019
Binary files /dev/null and b/assets/img/writeups/holiday-hack-challenge/2024/act3/santa-vision/login-page.png differ
diff --git a/assets/img/writeups/holiday-hack-challenge/2024/act3/santa-vision/mqttx-all-topics.png b/assets/img/writeups/holiday-hack-challenge/2024/act3/santa-vision/mqttx-all-topics.png
new file mode 100644
index 0000000..ee881e5
Binary files /dev/null and b/assets/img/writeups/holiday-hack-challenge/2024/act3/santa-vision/mqttx-all-topics.png differ
diff --git a/assets/img/writeups/holiday-hack-challenge/2024/act3/santa-vision/mqttx-send-gold.png b/assets/img/writeups/holiday-hack-challenge/2024/act3/santa-vision/mqttx-send-gold.png
new file mode 100644
index 0000000..e38de14
Binary files /dev/null and b/assets/img/writeups/holiday-hack-challenge/2024/act3/santa-vision/mqttx-send-gold.png differ
diff --git a/assets/img/writeups/holiday-hack-challenge/2024/act3/santa-vision/mqttx-sitestatus.png b/assets/img/writeups/holiday-hack-challenge/2024/act3/santa-vision/mqttx-sitestatus.png
new file mode 100644
index 0000000..55c55bd
Binary files /dev/null and b/assets/img/writeups/holiday-hack-challenge/2024/act3/santa-vision/mqttx-sitestatus.png differ
diff --git a/assets/img/writeups/holiday-hack-challenge/2024/act3/santa-vision/silver-feeds.png b/assets/img/writeups/holiday-hack-challenge/2024/act3/santa-vision/silver-feeds.png
new file mode 100644
index 0000000..524c841
Binary files /dev/null and b/assets/img/writeups/holiday-hack-challenge/2024/act3/santa-vision/silver-feeds.png differ
diff --git a/content/writeups/holiday-hack-challenge/2024/act3/santa-vision.md b/content/writeups/holiday-hack-challenge/2024/act3/santa-vision.md
new file mode 100644
index 0000000..028d923
--- /dev/null
+++ b/content/writeups/holiday-hack-challenge/2024/act3/santa-vision.md
@@ -0,0 +1,384 @@
++++
+author = "Maik de Kruif"
+title = "Santa Vision"
+subtitle = "Act 3 - SANS Holiday Hack Challenge 2024"
+date = 2025-01-04T00:46:44+01:00
+description = "In Santa Vision, we assist Ribb Bonbowford in reclaiming the Santa Broadcast Network (SBN) from Wombley’s control. For the silver medal, we identify admin credentials hidden in the portal’s HTML, log in, and explore MQTT topics for valuable information. To earn gold, we uncover secrets in HTTP headers and retrieve additional user credentials to dig deeper into the northpolefeeds, ultimately restoring the holiday cheer and earning both medals!"
+cover = "img/writeups/holiday-hack-challenge/2024/act3/santa-vision/cover.png"
+tags = [
+ "Holiday Hack Challenge",
+ "ctf",
+ "hacking",
+ "writeup",
+]
+categories = [
+ "ctf",
+ "writeups",
+ "hacking",
+]
++++
+
+## Link
+
+If you want to play the challenge yourself, you can find it here:
+
+
+
+## Story line
+
+Let's start off by talking to the elf:
+
+> Hi, Ribb Bonbowford here, ready to guide you through the SantaVision dilemma!
+>
+> The Santa Broadcast Network (SBN) has been hijacked by Wombley's goons—they're using it to spread propaganda and recruit elves! And Alabaster joined in out of necessity. Quite the predicament, isn’t it?
+>
+> To access this challenge, use this terminal to access your own instance of the SantaVision infrastructure.
+>
+> Once it's done baking, you'll see an IP address that you'll need to scan for listening services.
+>
+> Our target is the technology behind the SBN. We need make a key change to its configuration.
+>
+> We’ve got to remove their ability to use their admin privileges. This is a delicate maneuver—are you ready?
+>
+> We need to change the application so that multiple administrators are not permitted. A misstep could cause major issues, so precision is key.
+>
+> Once that’s done, positive, cooperative images will return to the broadcast. The holiday spirit must prevail!
+>
+> This means connecting to the network and pinpointing the right accounts. Don’t worry, we'll get through this.
+>
+> Let’s ensure the broadcast promotes unity among the elves. They deserve to see the season’s spirit, don't you think?
+>
+> Remember, it’s about cooperation and togetherness. Let's restore that and bring back the holiday cheer. Best of luck!
+>
+> The first step to unraveling this mess is gaining access to the SantaVision portal. You'll need the right credentials to slip through the front door—what username will get you in?
+
+## Hints
+
+{{< collapsible-block title="Mosquito Mosquitto" isCollapsed="true" class="tight" >}}
+[Mosquitto](https://mosquitto.org/) is a great client for interacting with MQTT, but their spelling may be suspect. Prefer a GUI? Try [MQTTX](https://mqttx.app/)
+{{< /collapsible-block >}}
+
+{{< collapsible-block title="Misplaced Credentials (A)" isCollapsed="true" class="tight" >}}
+See if any credentials you find allow you to subscribe to any [MQTT](https://en.wikipedia.org/wiki/MQTT) feeds.
+{{< /collapsible-block >}}
+
+{{< collapsible-block title="Filesystem Analysis (A)" isCollapsed="true" class="tight" >}}
+[jefferson](https://github.com/onekey-sec/jefferson/) is great for analyzing JFFS2 file systems.
+{{< /collapsible-block >}}
+
+{{< collapsible-block title="Database Pilfering (A)" isCollapsed="true" class="tight" >}}
+Consider checking any database files for credentials...
+{{< /collapsible-block >}}
+
+## Recon
+
+After clicking on the challenge, a new tab opens with a landing page. There is not much on it besides a picture of santa, and a weird animal in the bottom right. If we click on the dinosaur(?), some kind of control page opens up.
+
+{{< figure class="small inline" src="/img/writeups/holiday-hack-challenge/2024/act3/santa-vision/landing-page.png" title="Landing page" >}}
+{{< figure class="small inline" src="/img/writeups/holiday-hack-challenge/2024/act3/santa-vision/control-page.png" title="Control page" >}}
+{{< figure class="small inline" src="/img/writeups/holiday-hack-challenge/2024/act3/santa-vision/about-screen.png" title="About screen" >}}
+
+If we click on Time Travel, text starts appearing in the terminal, and, after a while, an IP is shown at the top. If it doesn't show, reload the page and it should be there.
+
+The Objectives page on HHC also shows some questions we need to answer for the medals:
+
+1. What username logs you into the SantaVision portal?
+2. Once logged on, authenticate further without using Wombley's or Alabaster's accounts to see the `northpolefeeds` on the monitors. What username worked here?
+3. Using the information available to you in the SantaVision platform, subscribe to the `frostbitfeed` MQTT topic. Are there any other feeds available? What is the code name for the elves' secret operation?
+4. There are too many admins. Demote Wombley and Alabaster with a single MQTT message to correct the `northpolefeeds` feed. What type of contraption do you see Santa on?
+
+## Solving
+
+### Santa Vision A
+
+#### Silver
+
+Let's start by finding out that is happening on the IP we got. We can use a tool called [nmap](https://en.wikipedia.org/wiki/Nmap) for this. We could run it without any parameters, but add `-sC` and `-sV` will add some additional information about the services running on the server. We should also add `-p-` to make sure we scan all ports, not just the common ones.
+
+```sh
+nmap -sC -sV 34.136.4.185 -p-
+```
+
+```txt
+Starting Nmap 7.95 ( https://nmap.org ) at 2025-01-04 01:09 CET
+Nmap scan report for 185.4.136.34.bc.googleusercontent.com (34.136.4.185)
+Host is up (0.11s latency).
+Not shown: 65531 closed tcp ports (conn-refused)
+PORT STATE SERVICE VERSION
+22/tcp open ssh OpenSSH 9.2p1 Debian 2+deb12u3 (protocol 2.0)
+| ssh-hostkey:
+| 256 f8:97:0d:4e:97:e0:8d:4c:bd:34:c6:bf:15:d1:23:f5 (ECDSA)
+|_ 256 56:9e:99:d9:50:3d:f4:97:32:cf:0e:2e:3b:4d:b8:30 (ED25519)
+1883/tcp open mqtt
+|_mqtt-subscribe: Connection rejected: Not Authorized
+8000/tcp open http Gunicorn
+|_http-server-header: gunicorn
+|_http-title: Santa Vision
+9001/tcp open tor-orport?
+| fingerprint-strings:
+| JavaRMI, Radmin, SSLSessionReq, SSLv23SessionReq, TLSSessionReq, mongodb, tarantool:
+| HTTP/1.0 403 Forbidden
+| content-type: text/html
+| content-length: 173
+|_