File-Browser Writeup - Proving Grounds
Created October 8, 2026 • Last updated October 8, 2026 • 2 min read
File Browser is left with default credentials and its shell-execution feature enabled, giving authenticated command execution. Planting an SSH key in david's authorized_keys gives a stable foothold, and a SUID aa-exec binary hands over root through GTFOBins.
Reconnaissance
Nmap
Scan for open ports.
22/tcp open ssh 8080/tcp open http-proxy
Port 8080 hosts a File Browser login portal. Default credentials admin:admin work.
Exploitation
Enabling command execution
File Browser has a shell toggle in the top bar, but commands are disabled by default. From Settings -> User Management, enable the system executables (space-separated): id bash nc rm sudo find cd echo mkdir touch ls cat curl wget. Toggling the shell icon now runs commands directly.
SSH access as david
An SSH private key exists for the user david, but password authentication is enabled on the service, so the key alone will not log in. Instead, host a public key and write it into authorized_keys through the enabled shell.
id_rsa id_rsa.pub authorized_keys
Serving HTTP on 0.0.0.0 port $ATTACKER_PORT
david@filebrowser:~$ id uid=1001(david) gid=1001(david) groups=1001(david)
Privilege Escalation
SUID aa-exec (GTFOBins)
Look for SUID binaries.
/usr/bin/aa-exec /usr/bin/sudo /usr/bin/su /usr/bin/passwd /usr/lib/openssh/ssh-keysign
aa-exec is SUID. GTFOBins lists a direct privilege escalation for it.
# id uid=1001(david) gid=1001(david) euid=0(root) groups=1001(david)
Related
References
-
GTFOBins: aa-execTOOL: GTFOBins: aa-exec, gtfobins.github.io/gtfobins/aa-exec/#suid (opens in new tab)
Using a SUID aa-exec binary to spawn a root shell.