应用层协议识别之FTP(非标准端口)

来源:互联网 发布:图书管理数据库系统 编辑:程序博客网 时间:2024/05/17 06:24

随着技术和生活条件的提升,网络安全的重视度逐渐提高了。上网冲浪实质就是“信息共享”,那么共享信息用到的协议如HTTP、FTP、SMB、邮件(smtp、pop3、imap)、p2p等。如何分析是那个协议在共享信息???起初分析网络流量识别只需要判断端口号即可(因为这些服务都用的默认端口如http80,https443,ftp21,dns53,smb443…..),如果某些人群为了数据安全性、修改了标准端口我们该如何识别?
FTP协议分析识别如下:
ftp有主动与被动模式,互联网中大多数都用被动模式了(因防火墙的原因)。
被动模式工作的流程:(简单ftp工作原理,如想了解ftp的详细工作过程参考:http://www.cnblogs.com/xiaohh/p/4789813.html)
1 client向server发起连接请求(命令通道)
2 server向client返回确认连接ack和告诉client我用的是被动模式,你来连接的我的Y端口(我们用Y端口进行数据传输)
3 client连接server的Y端口(建立了数据通道)
4 client与server在命令通道传输ftp的命令(上传、下载等),在数据通道中传输数据。
下面抓包解析ftp协议:(应用层协议识别是通过建立连接(tcp会话)后,server发[psh,ack]头信息来判断的,每个协议规定的格式是不一样的。)
ftp-server: 命令通道端口2333
数据通道端口55388
用wireshark抓下该网络通信数据包
(ftp协议识别:通过RFC定义的有,1 欢迎语 2 关键字 user、pass等 3 221、227字段等 )
一、先看一个标准端口(21)的ftp包:(如图1,2)
图1
图2 命令通道数据包头的信息
有图1,2可以看出,wireshark已经识别出是ftp协议了,命令通道端口21,欢迎语220 3Com 3CDaemon FTP Server Version 2.0,关键字user pass pavs,227字段,PASV被动模式等。
二、非标准端口的ftp包:(如图3,4)
图3
图4 ftp命令通道-数据包头的信息
图5 数据通道
哈哈哈,wireshark也识别不出来是FTP协议了。只知道是一些tcp会话。
但是不要忘记RCF定义的ftp协议标准,下面分析[psh,ack]数据段头ftp相关的规定,判断该包就是ftp协议。
欢迎语:
220 http://www.aq817.cn(这个欢迎语??? 其实是用私人ftp软件,被人改了)
关键字: auth,user,pass, 221字段,PASV字段, ftp编码中的命令MLSD(具体参考RFC标准)
还有PASV 227 Entering Passive Mode (192,168,1,2,216,90).是告诉client我用的被动模式,server-ip:192.168.1.2 数据端口是:【216,90】转码后55388。ftp源码中是这么计算的(216&0xFF)<<8 ^(90&0xFF)=55388
通过抓取了这些关键信息与RFC中ftp协议对比,判断,确认是ftp协议。
(判断就是抓取更多ftp协议规定的信息,然后做出更准确的判断)
注:[psh,ack]说明是tcp连接后发送数据的信息

原创粉丝点击