THCon 2025 - OSINT track

Posted Sat 12 April 2025
Author Horus
Category Writeup
Reading 6 min read
Featured image

This series of OSINT challenges was all based on the same “GeoGuessr” mechanic—we were dropped into a panoramic “StreetView” without the ability to move. Ranging from easy to hard, these challenges taught us to focus on the most important elements of our surroundings to pinpoint our location in space.


Gunnar’s Vacation — Picture 1

50 points (easy)

It looks like Gunnar (a.k.a “The Executioner”) has given his fellow gang members the slip and run off with the money they extorted from THBank!

Panoramic view for “Gunnar’s Vacation — Picture 1”

Luckily, we have some access to The Razor’s infrastructure, and it seems he has glimpses of Gunnar’s cybernetic eyes. The XSS is tracking him, and the website we discovered is likely used to send minions to locate the fugitive under the supervision of a—particularly original—AI named Glad0s.

Our goal is to leverage this platform to find as many pictures as possible of places Gunnar has visited during his trip. This way, we can check CCTV footage and maybe predict his next move.

For your sanity (and copyright reasons), we’ve disabled the music the AI was constantly playing. But if you want the full experience, here it is: https://www.youtube.com/watch?v=FheUboY-9bo

To start, we need to identify the most notable elements—those that can be easily and quickly exploited to give us a reliable result. In this case, the most striking feature is the facade of this hotel:

captionless image

A quick Google search leads us straight to the “Beau Rivage” hotel in Nice.

captionless image

We double-check on Google Maps to confirm it’s the same city:

captionless image

Then, all we have to do is click on the interactive map in the top-right corner to validate the location.


Gunnar’s Vacation — Picture 2

50 points (easy)

Panoramic view for “Gunnar’s Vacation — Picture 2”

What stands out in this view is the peninsula in the background.

captionless image

The location is immediately identified using Google’s reverse image search.

Capo Testa in Sardinia found with Google

View of the peninsula on Google Maps

Given the proximity to the road and an isolated building, we could guess that the photo was taken somewhere around here:

captionless image

Viewpoints are marked on OpenStreetMap, which is why I used it to identify the rocks matching those in the photo.

Viewpoint near an isolated building.

THC{Hum4n5_4r3_5l0w}


Gunnar’s Vacation — Picture 3

50 points (medium)

Panoramic view for “Gunnar’s Vacation — Picture 3”

Here, we see a mountain clearly visible on the horizon. Mountains are often excellent landmarks because they change very little over time. Their size and “popularity” mean they appear more frequently in photos and are better documented.

Reverse image search with Google

Only two locations are associated with this viewpoint: La-Seyne-sur-Mer and Saint-Mandrier-sur-Mer. These places are side by side near Toulon.

Checking Google StreetView, we notice that Toulon’s port isn’t available because it’s a military zone. So, our port probably isn’t on that side. There’s also no mountain on the Saint-Mandrier-sur-Mer peninsula.

captionless image

Most importantly, if we have almost the same view from both towns, maybe we should look at the border between them.

captionless image

Bingo!

Now, we just need to find the exact spot, but we’re already within a few dozen meters.

captionless image

THC{U_L0s3_Gl4d05_W1nz}


Gunnar’s Vacation — Picture 4

50 points (medium)

Panoramic view for “Gunnar’s Vacation — Picture 4”

As before, the goal is to identify the most distinctive element that can help us locate our position.

I immediately thought of identifying the tram. Only a limited number of cities have one, and they’re usually unique to each city in France. This would let us quickly identify the city and even the line in some cases.

captionless image

After another reverse image search on Google and some digging, I confirmed that Marseille is the city with these specific trams.

Identifying the tram as belonging to Marseille.

Next, we need to look at the other elements in the photo to see where they’re located in Marseille, especially near a tram line.

captionless image

Here, we see a Nexity sign next to the number 56.

We could have used this simple Overpass Turbo query to find the only location with the brand “Nexity.”

captionless image

This is clearly the exact sign we’re looking for—it’s at number 56 on a street with a tram line. There’s no real doubt, but we should always verify.

captionless image

captionless image

All the visible elements match the location we’re looking for. Confirmed!

THC{Y0u_Shur3_W3_4re_St1ll_l00king_4_Gunn3r?}


Gunnar’s Vacation — Picture 5

86 points (hard)

Panoramic view for “Gunnar’s Vacation — Picture 5”

Now things get tricky ;)

Here, it wasn’t easy to find standout elements—just the color of the crosswalk, the Spar store, and the feeling that we’re in a bay.

The small “mountain” in the background didn’t help, as it’s probably not notable enough.

Although the vibe suggests the south of France, I found nothing along the Mediterranean coast.

Eventually, I tried identifying the building housing the Spar store—it seemed unusual.

captionless image

I found similar places in Turkey with matching architecture and mountains, but we need a location where French is spoken (given the “cédez le passage” sign).

Most importantly, the first location detected by Google was in Corsica! My mistake was only searching mainland France.

captionless image

Next, I needed to find all Spar stores. For this, I used Overpass Turbo again with a simple query to locate Spar stores in Corsica, then checked those near Sartenais-Valinco-Taravo.

Spar store locations near Sartenais-Valinco-Taravo

We could rule out the ones in Propriano and Sartène, as they didn’t match, leaving us with Olmeto as the correct location.

Alternatively, we could have used Overpass Turbo to filter for stores near a roundabout close to the sea.

captionless image

THC{M3h_1_Gu355_u_f1nd_stuff_3v3ntu411y}


Gunnar’s Vacation — Picture 6

136 points (hard)

🩸 First Blood*

(*First team to find the flag.)

Non-panoramic view for “Gunnar’s Vacation — Picture 6”

This challenge was definitely the hardest of them all. My only clues were the sign indicating distances to nearby towns/landmarks:

  • IS ARUTAS (10.5km)
  • ORISTANO (19km)
  • PUTZU IDU (19.5km)

Apparently, in Sardinia, road signs show distance, not travel time (unlike France since April 1, 2024).

Other clues included the hill in the background, the paved road, and the sign in the distance suggesting an intersection.

captionless image

The easiest part was identifying the towns, all located in Sardinia (an Italian island).

I noticed that very few roads in the area were paved, and one of the landmarks (IS ARUTAS) is mostly just a beach name, making it unlikely to appear on a sign.

captionless image

Triangulation seemed like the best approach.

Looking at the road distance between Putzu Idu and Oristano, it’s about 29km for the longest route, which is also the closest to Is Arutas. This is good because our target location is much closer to Is Arutas than to either town.

captionless image

The logic was to head southwest until we were about 19km from Oristano and Putzu Idu, landing us near San Giovanni di Sinis.

From there, I traced all possible routes to find the sign or a matching location.

Although I could have found it this way, nothing confirmed the exact spot.

So, I checked alternatives to Google StreetView:

When I saw that the only part of Sardinia mapped on Panoramax was the area I was researching, I knew I was on the right track.

captionless image

This was further confirmed when I noticed the vehicle’s view matched the challenge photo.

captionless image

With this, I easily traced the vehicle’s route and found the exact viewpoint from the challenge.

joy

After a few attempts to pinpoint the location:
THC{1_4m_4lm0st_1mpr3ss3d…_jk_Hum4ns_4r3_P4th3t1c}