Grandmaster rank emblem

Lvl 99

Level XP3,807/5,718

3807 of 5718
Grandmaster dreadnaught
Machine
Crossfit
OS
Linux
Difficulty
Insane
Steps
6
Added
23 Mar 2023

A blog XSS enumerates internal subdomains and creates an FTP account via CSRF; a writable share gives a shell, a cracked hash gives Hank, a shellcommand injection reaches Isaac, and a dbmsg race plants a root SSH key.

0Reconnmap1Footholdblog XSS2FootholdCSRF account3Footholddev-test shell4Footholdhank5Lateralisaac6Priv escdbmsg race
1Recon2Foothold3Lateral4Priv escnmap1blog XSS2CSRF account3dev-test shell4hank5isaac6dbmsg race7

How it went

  1. 0
    nmap

    An nmap scan shows FTP with a wildcard certificate and an Apache site; the certificate reveals a gym-club subdomain.

  2. 1
    blog XSS

    A stored blog-comment XSS runs in a staff browser; JavaScript enumerates internal subdomains and finds an ftp.crossfit.htb account-management panel.

  3. 2
    CSRF account

    The XSS reads the panel's CSRF token and posts to it, creating an FTP account.

  4. 3
    dev-test shell

    FTP access exposes a writable development-test share; a PHP shell uploaded there and called internally gives code execution as www-data.

  5. 4
    hank

    LinPEAS surfaces an Ansible playbook with Hank's password hash, which John cracks to powerpuffgirls for an SSH login as Hank and the user flag.

  6. 5
    isaac

    Isaac's send_update cron uses a vulnerable shellcommand library; a malicious database email plus a message file dropped over FTP triggers command injection as Isaac.

  7. 6
    dbmsg race

    Isaac can write /var/local, so a race against the root dbmsg binary symlinks root's authorized_keys to plant an SSH key for root.