Tor Browser, sniff out the evidence, document everything like a fiend, and keep unscrewing until it breaks.

Tor Browser

Let's grab the Tor browser from the official site: https://www.torproject.org/download/

Note to all of my fellow badass she-hackers out there: never run Tor Browser as sudo or root. You might get pwned or far worse.

We're on Mac for this, so we'll use gpg to verify the download signatures/fingerprint:

gpg --auto-key-locate nodefault,wkd --locate-keys torbrowser@torproject.org

Verify the filenames:

ls -1 ~/Downloads/tor-browser-macos*

We'll export the verified key into a keyring:

gpg --output ~/tor.keyring --export EF6E286DDA85EA2A4BA7DE684E2C6E8793298290

Lastly, verify the download:

gpgv --keyring ~/tor.keyring ~/Downloads/tor-browser-macos-15.0.19.dmg.asc ~/Downloads/tor-browser-macos-15.0.19.dmg
Terminal output verifying the Tor Browser download signature with GPG

Good to proceed. We'll delete the installer, and launch Tor, then configure our connection:

We'll visit this site first:

https://check.torproject.org/
Tor Project connection check confirming the browser is using Tor

Mapping Pantalones

The .onion link has been released:

http://b3u42lmdurcyqieiox3o3ns2c2rst6doyyjnwfuirr7bnewt53gke7yd.onion

Let's hit it in the Tor browser:

Pantalones ransomware crew leak site with a countdown to the release

Pantalones. Panty...ransomware APTs? I love it.

It shows 1 hour and 7 minutes until release, but we'll map out the site in the meantime.

To the /about page.

Pantalones about page describing the ransomware crew

The /crew page:

Pantalones crew page listing vex, crypt, mora, and skid

And the /leaks page (which is.../index?):

Pantalones leaks page listing QuantumCore Systems and AetherFlow Enterprises

The crew is comprised of vex aka operator/panel dev, crypt aka payload engineer, mora aka negotiations, and skid aka initial access.

I have a feeling this is the challenge.

Let's check out the two leaked entries: QuantumCore Systems and Aetherflow Enterprises.

Victim Records

Let's check the QuantumCore info for clues:

QuantumCore Systems victim record on the Pantalones leak site

We can see how the address is structured. Very helpful information.

Let's View Source on the /leaks page:

Leak page source containing a hidden Base64 string

Aha! Hidden Base64. It decodes to : not_the_flag_keep_looking.
Duly noted.

Let's check out the stylesheet:

http://b3u42lmdurcyqieiox3o3ns2c2rst6doyyjnwfuirr7bnewt53gke7yd.onion/style.css

There's no flag or flag-adjacent info in the stylesheet, BUT...

It exposes important unused interface components including password and text inputs (first screenshot just below), error messages, statistic cards, activity logs, infrastructure, and....

Stylesheet source exposing unused form and interface rules

....rainbow-flag style indicators:

What's interesting is that these style elements are not visible on the sites we've seen.

Let's view source on the /crew page:

view-source:http://b3u42lmdurcyqieiox3o3ns2c2rst6doyyjnwfuirr7bnewt53gke7yd.onion/crew.php

Perhaps we can find some comments, links, scripts, or member identifiers that lead to that interface.

We'll return to /downloads/quantumcore/ directory, check out the Parent Directory, then dive into the downloads index:

Open downloads directory listing the published victim folders

It beholds two of the published victim directories.

Let's check out /downloads/quantumcore:

QuantumCore download directory listing internal communications and employee records

My hackery knowledge knows this: communications are the strongest evidence source for a ransomware crew’s aliases, contact details, or infrastructure.

And we've found internal_comms.csv. Let's take a look at it:

view-source:http://b3u42lmdurcyqieiox3o3ns2c2rst6doyyjnwfuirr7bnewt53gke7yd.onion/downloads/quantumcore/internal_comms.csv

Oh yeahhh....

QuantumCore internal communications showing the incident timeline

This conversation confirms a security incident. Score.

On 2026-05-08: Service-account login attempts came from Tor exit nodes. MFA blocked them.

On 2026-05-10: Incident response claimed there was no exfiltration. On the other hand, the files later appeared here. Hmm.

There's one chronologically out of place message to “stein.” It's unusual, but we have nothing yet telling us its meaningful evidence.

Back to /downloads/ to open /aetherflow.

AetherFlow download directory containing leaked internal files

Bigger score. api_keys_internal.yaml could expose service names, endpoints, usernames, or reused credentials.

We'll continue our safety-first open-it-as-text method:

view-source:http://b3u42lmdurcyqieiox3o3ns2c2rst6doyyjnwfuirr7bnewt53gke7yd.onion/downloads/aetherflow/api_keys_internal.yaml
AetherFlow internal API key file identifying i.mccarthy

Hmm. Strong correlation found: i.mccarthy appears in both victim datasets. He's in QuantumCore communications, noted as i.mccarthy who handled security and incident response. He's also mentioned in the AetherFlow secrets file as i.mccarthy@aetherflow.ctf , the IT/security contact.

Ian is also our first concrete OPSEC lead with his cross-company reuse appearances. Let's ID i.mccarthy from QuantumCore’s employee records:

view-source:http://b3u42lmdurcyqieiox3o3ns2c2rst6doyyjnwfuirr7bnewt53gke7yd.onion/downloads/quantumcore/employees.sql

Wow. Look at this:

QuantumCore employee record identifying Ian McCarthy

Well hello again, Ian.

We've established that he appears inside two supposedly separate victim organizations as QuantumCore: Ian McCarthy, IT Director and AetherFlow: i.mccarthy@aetherflow.ctf, IT/Security contact.

All of my women's intuition affirms that these hashes look deliberately synthetic. We have strong implications of an unlinked Admin interface in the stylesheet.

Admin and API

Let's hit the obligatory robots.txt because it's a web challenge:

http://b3u42lmdurcyqieiox3o3ns2c2rst6doyyjnwfuirr7bnewt53gke7yd.onion/robots.txt

Well hello, admin.php and api.php.

robots.txt disclosing the admin and API paths

Thank you for the previously unknown paths, robots.txt. The stylesheet’s password-form rules align with /admin.php.

Let's start with paying admin.php a visit:

http://b3u42lmdurcyqieiox3o3ns2c2rst6doyyjnwfuirr7bnewt53gke7yd.onion/admin.php

It's similar to the feeling of a note near a button that says "Don't touch." What do I want to do?

Click the button. Going in.

Pantalones administration login page

Let's Inspect the admin.php login source:

view-source:http://b3u42lmdurcyqieiox3o3ns2c2rst6doyyjnwfuirr7bnewt53gke7yd.onion/admin.php

The admin login form performs your typical server-side POST via username and password fields.

Let's check the other robots.txt link at api.php:

http://b3u42lmdurcyqieiox3o3ns2c2rst6doyyjnwfuirr7bnewt53gke7yd.onion/api.php
API response listing seven available actions

Dang. api.php openly discloses seven actions. We'll dig into those actions using our read-only/safety-first-viewing actions.

Here's status:

http://b3u42lmdurcyqieiox3o3ns2c2rst6doyyjnwfuirr7bnewt53gke7yd.onion/api.php?action=status
Status API response showing panel version, uptime, storage, and online operators

Let's read messages:

http://b3u42lmdurcyqieiox3o3ns2c2rst6doyyjnwfuirr7bnewt53gke7yd.onion/api.php?action=messages
Messages API requiring a conversation ID parameter

messages requires a conversation_id, which is a parameter we've yet to discover. Noted.

Let's check wallets:

http://b3u42lmdurcyqieiox3o3ns2c2rst6doyyjnwfuirr7bnewt53gke7yd.onion/api.php?action=wallets
Wallets API response exposing Bitcoin wallet and rotation data

This exposes, quite obviously, Bitcoin wallet data via API. No conversation ID or login credential.

Time to investigate payloads:

http://b3u42lmdurcyqieiox3o3ns2c2rst6doyyjnwfuirr7bnewt53gke7yd.onion/api.php?action=payloads
Payloads API response showing cached ransomware deployment records

As we read earlier, the build had moved. That means these are cached records.

Let's dig in to the exfil action:

http://b3u42lmdurcyqieiox3o3ns2c2rst6doyyjnwfuirr7bnewt53gke7yd.onion/api.php?action=exfil
Exfil API response listing completed data-exfiltration jobs

On to decrypt we go:

http://b3u42lmdurcyqieiox3o3ns2c2rst6doyyjnwfuirr7bnewt53gke7yd.onion/api.php?action=decrypt
Decrypt API response exposing a victim ID

IDOR

Aha! A potentially valid victim_id: NXV-2026-041

It says this ID comes from the negotiation channel, which ties it to the messages endpoint. Let's try the victim_id as the conversation_id:

http://b3u42lmdurcyqieiox3o3ns2c2rst6doyyjnwfuirr7bnewt53gke7yd.onion/api.php?action=messages&conversation_id=NXV-2026-041
Messages API response revealing the numeric conversation ID format

We now know the format they expect is conversation_id=0. I am smelling IDOR in the air.

Let's try this:

http://b3u42lmdurcyqieiox3o3ns2c2rst6doyyjnwfuirr7bnewt53gke7yd.onion/api.php?action=messages&conversation_id=0

Oh. This is golden.

Unauthenticated conversation zero returned through the messages API

Conversation 0 confirms that the exposed API allows unbridled, unauthenticated access to crew messages. It also ties skid to NexaVista and vex to AetherFlow’s exfiltration. C'mon, crew. Keep it clean.

Since 0 worked, let's IDOR our way up:

http://b3u42lmdurcyqieiox3o3ns2c2rst6doyyjnwfuirr7bnewt53gke7yd.onion/api.php?action=messages&conversation_id=1

My friends, we have stumbled upon the pivot.

The crew exposed .exfil.sh. It's in the AetherFlow leak, and its contents include a panel URL and API endpoint:

Conversation one disclosing the hidden exfiltration script

It may also expose the panel key they discussed rotating:

Crew messages discussing the hidden script and the need to rotate the panel key

The Hidden Script

Let's first test whether the dotfile they mention exists as a hidden file alongside the AetherFlow directory:

view-source:http://b3u42lmdurcyqieiox3o3ns2c2rst6doyyjnwfuirr7bnewt53gke7yd.onion/downloads/aetherflow/.exfil.sh
Direct request for the hidden exfiltration script returning 404 Not Found

Not a separately hosted dotfile. Noted.

Let's go back to /downloads/aetherflow/ and download aetherflow_leak.zip. If you're following these instructions, don't open the file. Keep reading.

To our Terminal we go:

unzip -l ~/Downloads/aetherflow_leak.zip
ZIP archive listing showing the hidden exfiltration script

The hidden script is in the ZIP! I wrote a hacker poem.

unzip -p ~/Downloads/aetherflow_leak.zip aetherflow/.exfil.sh
Hidden exfiltration script containing an old panel address and key

Guess they didn't get to their TODO list. More importantly, we have a second option:

Panel: http://6562q4ut6lpt6r3s37kxilu2huuou2qia23jzlzmlqqznqv5sfbp2xid.onion/
Key: pantalonesgroup

Let's hit that Panel.

Retired Pantalones panel responding as offline

The old panel is offline, which correlates to the API note we found about rotated infrastructure.

Panel Access

Let's iterate through the other IDOR-esque conversation links. conversation_id=2 is up next:

http://b3u42lmdurcyqieiox3o3ns2c2rst6doyyjnwfuirr7bnewt53gke7yd.onion/api.php?action=messages&conversation_id=2
Conversation two exposing Mora's Base64-encoded password

Big AHA!

  • User: mora
  • Encoded password: UGFudGFsMG4zc19SdWwzeiE=

Let's get it:

printf '%s' 'UGFudGFsMG4zc19SdWwzeiE=' | base64 --decode

Leaked Mora PW: Pantal0n3s_Rul3z!

Let's head back to that login panel:

Pantalones administration panel reached with the recovered credentials

First-250 reward confirmation:

Redacted Flare order confirmation for the first-250 solver reward

Solved at 11:51 AM MST.

Final Attack Chain

source -> CSS indicators -> `robots.txt` -> API disclosure -> IDOR -> hidden ZIP artifact -> Base64 credential -> password reuse -> admin access -> flag.

Redacted completion screen:

Redacted CTF completion screen

Well, that was a very good morning.

Huge thanks to WiCyS, SANS Institute, and Flare for building an experience that welcomes newer participants without watering down the challenge.

Placed 29th. Badge earned. Notes detained.