① 怎么用wireshark抓包分析ftp协议
你是网络管理员吗?你是不是有过这样的经历:在某一天的早上你突然发现网络性能急剧下降,网络服务不能正常提供,服务器访问速度极慢甚至不能访问,网络交换机端口指示灯疯狂地闪烁、网络出口处的路由器已经处于满负荷的工作状态、路由器CPU已经到了百分之百的负荷……重启动后没有几分钟现象又重新出现了。
这是什么问题?设备坏了吗?不可能几台设备同时出问题。一定是有什么大流量的数据文件,耗尽了网络设备的资源,它们是什么?怎么看到它们?这时有经验的网管人员会想到用局域网抓包工具来分析一下。
你一定听说过红色代码、Nimda、冲击波以及震荡波这些臭名昭着的网络杀手。就是它们制造了上述种种恶行。它们来势汹汹,阻塞网络、感染主机,让网络管理员苦不堪言。当网络病毒出现时,如何才能及时发现染毒主机?下面我根据网络病毒都有扫描网络地址的特点,给大家介绍一个很实用的方法:用抓包工具寻找病毒源。
1.安装抓包工具。目的就是用它分析网络数据包的内容。找一个免费的或者试用版的抓包工具并不难。我使用了一种叫做SpyNet3.12 的抓包工具,非常小巧, 运行的速度也很快。安装完毕后我们就有了一台抓包主机。你可以通过SpyNet设置抓包的类型,比如是要捕获IP包还是ARP包,还可以根据目的地址的不同,设置更详细的过滤参数。
2.配置网络路由。你的路由器有缺省网关吗?如果有,指向了哪里?在病毒爆发的时候把缺省网关指向另外一台路由器是很危险的(除非你想搞瘫这台路由器)。在一些企业网里往往仅指出网内地址段的路由,而不加缺省路由,那么就把缺省路由指到抓包主机上吧(它不下地狱谁下地狱?当然这台主机的性能最好是高一点的,否则很容易被病毒冲击而亡)。这样可以让那些病毒主机发出的绝大部分扫描都自动送上门来。或者把网络的出口映像到抓包主机上,所有对外访问的网络包都会被分析到。
3.开始抓包。抓包主机已经设置好了,网络里的数据包也已经送过来了,那么我们看看网络里传输的到底是些什么。打开SpyNet 点击Capture 你会看到好多的数据显示出来,这些就是被捕获的数据包(如图)。
图中的主体窗口里显示了抓包的情况。列出了抓到数据包的序号、时间、源目的MAC地址、源目的IP地址、协议类型、源目的端口号等内容。很容易看出IP地址为10.32.20.71的主机在极短的时间内向大量的不同主机发出了访问请求,并且目的端口都是445。
4.找出染毒主机。从抓包的情况看,主机10.32.20.71值得怀疑。首先我们看一下目的IP地址,这些地址我们网络里存在吗?很可能网络里根本就没有这些网段。其次,正常情况下访问主机有可能在这么短的时间里发起这么多的访问请求吗?在毫秒级的时间内发出几十甚至几百个连接请求,正常吗?显然这台10.32.20.71的主机肯定有问题。再了解一下Microsoft-DS协议,该协议存在拒绝服务攻击的漏洞,连接端口是445,从而进一步证实了我们的判断。这样我们就很容易地找到了染毒主机的IP地址。剩下的工作就是给该主机操作系统打补丁杀病毒了。
既然抓到了病毒包,我们看一下这个数据包二进制的解码内容:
这些数据包的长度都是62个字节。数据包前12个字节包括了目的MAC和源MAC的地址信息,紧跟着的2字节指出了数据包的类型,0800代表的是IP包格式,0806代表ARP包格式。接着的20个字节是封装的IP包头,包括了源、目的IP地址、IP版本号等信息。剩下的28个字节封装的是TCP包头,包括了源、目的端口,TCP链接的状态信息等。这就构成了一个62字节的包。可以看出除了这些包头数据之外,这个包没有携带其他任何的有效数据负荷,所以这是一个TCP要求445端口同步的空包,也就是病毒主机在扫描445端口。一旦染毒主机同步上没有采取防护措施的主机445端口,便会利用系统漏洞传播感染。
② 如何利用wireshark分析http及ftp协议
Wireshark 进行监听TCP FTP HTTP三个协议
一、下载安装wireshark Windows平台的wireshark,双击安装文件安装即可,在安装过程中注意选择安装winpcap。
二、启动wireshark后,选择工具栏中的快捷键(红色标记的按钮)即可Start a new live capture。
主界面上也有一个interface list(如下图红色标记1),列出了系统中安装的网卡,选择其中一个可以接收数据的的网卡也可以开始抓包。 在启动时候也许会遇到这样的问题:弹出一个对话框说 NPF driver 没有启动,无法抓包。在win7或Vista下找到C: \system\system32下的cmd.exe 以管理员身份运行,然后输入 net start npf,启动NPf服务。重新启动wireshark就可以抓包了。
③ 用wireshark抓包sftp和ftp的区别
-A 以ASCII码方式显示每一个数据包(不会显示数据包中链路层头部信息). 在抓取包含网页数据的数据包时, 可方便查看数据(nt: 即Handy for capturing web pages).
-X 当分析和打印时, tcpmp 会打印每个包的头部数据, 同时会以16进制和ASCII码形式打印出每个包的数据(但不包括连接层的头部).这对于分析一些新协议的数据包很方便.
-i eth1:指定监听的网络接口,可以使用ifconfig获取网络配置
host 数据包的源或目的地址是指定IP或者主机名
-w 数据包保存到指定文件
④ ftp的背景知识
FTP是文件传输协议(File Transfer Protocol)的简称,RFC959中对该协议作了具体说明。
FTP的目标是:提高文件的共享性;提供非直接使用远程计算机的方法(通过程序);使存储介质对用户透明(屏蔽了不同主机上文件系统的差异);可靠高效地传送数据。
FTP命令
DOS command窗口中敲ftp后回车,在ftp命令提示符后敲?回车,可以列出ftp支持的所有命令。具体用法就不在这里叙述了(网上都可以查到,拷贝粘贴一大堆很没劲),在使用中可以慢慢体会。
FTP匿名访问
用户选择匿名访问时不需要输入用户名和密码,系统视用户名为anonymous。对于这个特殊的匿名用户帐号,目前大多数站点都明确要求使用电子邮件地址作为匿名用户密码。提供电子邮件地址,有助于让站点的拥有者了解到是哪些人在使用他们的服务。(原文参见RFC1635 How to Use Anonymous FTP)
请注意,anonymous用户通常不会被允许向档案站点上传文件,只允许下载。
FTP传输模式
这个有必要说一下。FTP传输模式分为PASV模式与PORT模式两种(默认为PASV模式)。
FTP是仅基于TCP的服务,不支持UDP。与其他TCP服务不同的是,FTP使用2个端口,一个数据端口和一个命令端口(或叫做控制端口)。通常来说,这两个端口分别是21(命令端口)和20(数据端口)。但根据FTP工作方式(传输模式)的不同,数据端口并不总是20端口。下面分别阐述:
主动传输模式(PORT模式)
当FTP的控制连接建立,客户提出目录列表、传输文件时,客户端发出PORT命令与服务器进行协商,FTP服务器使用一个标准端口20作为服务器端的数据连接端口,与客户建立数据连接。端口20只用于连接源地址是服务器端的情况,并且端口20没有监听进程来监听客户请求。 在主动传输模式下,FTP的数据连接和控制连接方向相反,由服务器向客户端发起一个用于数据传输的连接。客户端的连接端口由服务器端和客户端通过协商确定。主动传输模式下,FTP服务器使用20端口与客户端的高位随机端口进行连接,并传输数据,客户端只是处于接收状态。
主动FTP对FTP服务器的管理有利,但对客户端的管理不利。因为FTP服务器企图与客户端的高位随机端口建立连接,而这个端口很有可能被客户端的防火墙阻塞掉。 为了解决这个服务器发起到客户端的连接问题,人们开发了一种不同的FTP连接方式,这就是所谓的被动方式,或者叫做PASV方式。当客户端通知服务器它处于被动模式时才启用。
被动传输模式(PASV模式)
当FTP的控制连接建立,客户提出目录列表、传输文件时,客户端发送PASV命令使服务器处于被动传输模式,FTP服务器等待客户与其联系。FTP服务器在非20端口的其它数据传输端口上监听客户请求。 在被动传输模式下,FTP的数据连接和控制连接方向一致,由客户端向服务器发起一个用于数据传输的连接。客户端的连接端口是发起该数据连接请求时使用的端口。当FTP客户在防火墙之外访问FTP服务器时,需要使用被动传输模式。被动传输模式下,FTP服务器打开一个高位随机端口等待客户端对其进行连接,并传输数据,服务器并不参与数据的主动传输,只是被动接受。
被动FTP对FTP客户端的管理有利,但对服务器端的管理不利。因为客户端要与服务器端建立两个连接,其中一个连接要连到服务器端的一个高位随机端口,而这个端口很有可能被服务器端的防火墙阻塞掉。
目前默认都采用PASV方式(除非服务器不支持)。现在的FTP服务器大多也都支持被动FTP,因为管理员需要他们的服务器有最多的客户连接。通过为FTP服务器指定一个有限的端口范围可以减小服务器高位端口的暴露,不在这个范围的任何端口会被服务器的防火墙阻塞,这样,虽然这没有消除所有针对服务器的危害,但它毕竟大大减少了风险。
在WWW泛滥的时代,大多数web浏览器(可用作FTP客户端)在访问ftp://这样的URL时也都是默认支持被动模式的(在浏览器的 "Internet 选项" 中可看到使用被动FTP的相关设置)。
FTP数据分析与测试
如果需要分析FTP过程中的一些状态及数据,可以使用Ethereal工具抓包,获取经过网卡的数据。前提是:FTP服务器IP不为本机IP,否则,数据不经过网卡。
⑤ wireshark所抓包的分析
问IP包格式 IP协议网络层协议.主要完数据包发送作用. 面表IP4数据包格式,IP封包格式(IPv4包首部度20字节)
|0......4........8..............16....................................32
-------------------------------------------------------------------------
|版本4.|首部度|服务类型(优先级|数据包总............................|
-------------------------------------------------------------------------
|标识...........................|RF|DF|MF|碎片偏移.....................|
-------------------------------------------------------------------------
|存间TTL....|协议(TCP/UDP)..|首部较验............................|
-------------------------------------------------------------------------
|源IP址..............................................................|
-------------------------------------------------------------------------
|目IP址............................................................|
-------------------------------------------------------------------------
|选项..................................................................|
=========================================================================
|数据..................................................................|
-------------------------------------------------------------------------Version (4) Internet Header Length (4) Type of Service (8) Total Length (16)
Identification (16) Flags (3) Fragment Offset (13)
Time To Live (8) Protocol (8) Header checksum (16)
Source Address (32)
Destination Address (32)
Options (Variable) Padding (0-24)
Data
....
IP包字段含义
IP包字段含义
图括号内数字各部件度(bit)您够细计算每列总度都32bit面我别各部件名称解释
Version
版本(VER)表示IP规格版本目前IP规格版本4(version 4)所数值通 0x4 (注意封包使用数字通都十六进位)
Internet Header Length(值5表示包度5行即532位5行=5*32bit=20*8bit=20byte=0x14byte)
标度(IHL)IP封包规格看前面6行headerOptionsPadding没5行所度5我知道每行32bit4byte麽5行20byte20数值换16进制0x14所封包标度短候数值终换算0x14
让我看看我撷取ICMP封包其属于IP部份
我看数值45前面4版本号数后面5则标度
Type of Service
服务类型(TOS)指IP封包传送程要求服务类型其共由8bit组其每bit组合别代表同意思
000..... Routine 设定IP顺序预设0否则数值越高越优先
...0.... Delay 延迟要求0值1低要求
....0... Throughput 通讯量要求0值1高要求
.....0.. Reliability 靠性要求0值1高要求
......00 Not Used 未使用
例我看TOS值0全部设置值
Total Length
封包总(TL)通byte做单位表示该封包总度数值包括标数据总
图我看十六进位数值003C换十进位60
Identification
识别码(ID)每IP封包都16bit唯识别码我OSI网路层级知识面知道程序产数据要通网络传送都拆散封包形式发送封包要进行重组候ID依据
图我看封包ID40973 ( a00d 换十进制知道)
Flag
标记(FL)封包传输程进行佳组合使用3bit识别记号请参考表
000. Reserved Fragment 值0候表示目前未使用
.0.. Don't Fragment 值0候表示封包割1则能割
..0. More Fragment 值0:值0示该封包后封包1则表示其后割封包
例我看封包标记0目前并未使用
Fragment Offset
割定位(FO)封包切后由于网路情况或其素影响其抵达顺序并初切割顺序至所封包进行切割候各片段做定位记录所重组候能够依号入座
我刚才撷取封包并没切割所暂找例参考例我看FO0
Time To Live
延续间(TTL)TTL我许网路设定都碰物件赋予TTL值(秒单位)后进行计物件达TTL值候没处理遗弃 并所 TTL 都间单位例 ICMP 协定 TTL则封包路由程跳站数目(Hop Count)做单位TTL 值每经跳站(或 router 处理)后减低数值 封包传递程由于某些原未能抵达目候避免其直充斥网路面
图我看数值 20 哦十六进位数字要换十进位才知道 TTL 原 32 跳站
Protocol
协定(PROT)指该封包所使用网路协定类型例ICMPDNS等要注意使用协定网路层协定层程式协定(FTPPOP等)同您Linux/etc/protocol档案找些协定其代号档案存放于NT\winnt\system32\drivers\etc目录面其内容
------------------------------------------------------
ip 0 IP # internet protocol, pseudo protocol number
icmp 1 ICMP # internet control message protocol
igmp 2 IGMP # Internet Group Management
ggp 3 GGP # gateway-gateway protocol
ipencap 4 IP-ENCAP # IP encapsulated in IP (officially ``IP'')
st 5 ST # ST datagram mode
tcp 6 TCP # transmission control protocol
egp 8 EGP # exterior gateway protocol
pup 12 PUP # PARC universal packet protocol
udp 17 UDP # user datagram protocol
hmp 20 HMP # host monitoring protocol
xns-idp 22 XNS-IDP # Xerox NS IDP
rdp 27 RDP # "reliable datagram" protocol
iso-tp4 29 ISO-TP4 # ISO Transport Protocol class 4
xtp 36 XTP # Xpress Tranfer Protocol
ddp 37 DDP # Datagram Delivery Protocol
idpr-cmtp 39 IDPR-CMTP # IDPR Control Message Transport
rspf 73 RSPF #Radio Shortest Path First.
vmtp 81 VMTP # Versatile Message Transport
ospf 89 OSPFIGP # Open Shortest Path First IGP
ipip 94 IPIP # Yet Another IP encapsulation
encap 98 ENCAP # Yet Another IP encapsulation
------------------------------------------------------
我例看PROT号码01照/etc/protocol档案我知道ICMP协定
Header Checksum
标检验值(HC)数值主要用检错用用确保封包确误接收封包始进行传送后接收端主机利用检验值检验馀封包切看误发确认信息表示接收
图我看封包HC9049
Source IP Address
源址(SA)相信用解释发送端IP址
我c0.a8.00.0f换十进位192.168.0.15址
Destination IP Address
目址(DA)接收端IP址啦
看看能能a8.5f.01.54换168.95.1.84
Options & Padding
两选项甚少使用某些特殊封包需要特定控制才利用作细表啦
面我看看IP结构定义
struct ip
{
#if __BYTE_ORDER == __LITTLE_ENDIAN
unsigned int ip_hl:4; /* header length */
unsigned int ip_v:4; /* version */
#endif
#if __BYTE_ORDER == __BIG_ENDIAN
unsigned int ip_v:4; /* version */
unsigned int ip_hl:4; /* header length */
#endif
u_int8_t ip_tos; /* type of service */
u_short ip_len; /* total length */
u_short ip_id; /* identification */
u_short ip_off; /* fragment offset field */
#define IP_RF 0x8000 /* Reserved Fragment flag */
#define IP_DF 0x4000 /* Don't Fragment flag即第二位1(包) */
#define IP_MF 0x2000 /* More Fragments flag即二三位00(包,包)或01(继包) */
#define IP_OFFMASK 0x1fff /* mask for fragmenting bits */
u_int8_t ip_ttl; /* time to live */
u_int8_t ip_p; /* protocol */
u_short ip_sum; /* checksum */
struct in_addr ip_src, ip_dst; /* source and dest address */
};
ip_v IP协议版本号,4,现IPV6已经
ip_hl IP包首部度,值4字节单位.IP协议首部固定度20字节,IP包没选项,值5.
ip_tos服务类型,说明提供优先权.
ip_len说明IP数据度.字节单位.
ip_id标识IP数据包.
ip_off碎片偏移,面ID起用重组碎片.
ip_ttl存间.没经路由候减,直0抛弃.
ip_p协议,表示创建IP数据包高层协议.TCP,UDP协议.
ip_sum首部校验,提供首部数据校验.
ip_src,ip_dst发送者接收者IP址
⑥ FTP服务的工作机制
FTP(File Tranfer Protocol) 文本传输协议,主要用于internet上文件的双向传输,同时ftp也是一种应用程序。
一、特性
基于C/S 结构
双通道协议:数据和命令连接
数据传输格式:二进制(默认)和文本格式
端口:基于tcp服务,数据端口(20)和控制端口(21)
二、模式支持
1、主动模式
主动模式FTP:(服务器主动连接)客户端从任意的一个非特权端口N,连接到FTP服务器的命令端口,也就是21端口。让后客户端开始监听端口N+1,并发送FTP命令“port
N+1” 到ftp服务器。接着服务器会从自己的数据端口(20)主动连接到客户端指定的数据端口(N+1)
以上描述可以在实验环境下查看
主要方法以上文中已有所描述,下面是在wondows上查看端口的命令
netstat -ant|findstr :21
针对FTP服务器前面的防火墙雷说,必须允许以下通信才能支持主动方式FTP。
1、 允许任何大于1024的端口到FTP服务器的21端口。 (客户端初始化连接)
2、 允许FTP服务器的21端口到大于1024的端口。(服务器响应客户端的控制端口)
3、 允许FTP服务器的20端口到大于1024端口。(服务器初始化数据连接到客户端的数据端口)
4、 允许大于1024端口到ftp服务器的20端口。(客户端发送ack响应到服务器的数据端口)
2、被动模式
为了解决服务器发起到客户端的连接问题,人们开发了一种不同的ftp连接方式。这就是所谓的被动方式,或成为PASV,当客户端通知服务器它处于被动模式时才启用。
在被动模式ftp中,命令连接和数据连接由客户端发起,这样就可以解决从服务器到客户端的数据端口入方向连接被防火墙过滤掉的问题。
当开启FTP连接时,客户端打开两个任意非特权本地端口N,N+1。第一个端口连接服务器的21端口,但与主动模式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交PASV命令。这样做的结果是服务器会开启一个任意的非特权端口
P,并发送port P命令给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传输数据。
对于服务器端的防火墙来说,必须允许下面的通讯才能只是被动方式的FTP:
1、 允许从任何大于1024的端口到服务器的21端口(客户端初始化连接)
2、 允许服务器的21端口到任何大于1024的端口(服务器响应到客户端的控制端口的连接)
3、 从任何大于1024端口到服务器的大于1024的端口(客户端初始化数据连接到服务器的指定端口)
4、 服务器的大于1024端口到客户端的大于1024 的端口(服务器发送ack响应和数据到客户端的数据端口。)
三、简述解释及抓包分析过程
1、主动模式
命令连接:客户端任意大于1024端口 N —> 服务器21端口
数据连接:服务器20端口 -----> 客户端 N端口。
2、被动模式
命令连接:客户端任意大于1024端口N ------> 服务器21端口
数据连接:客户端任意大于1024端口N+1 --------> 服务器端口P
服务器被动模式数据端口示例:
227 Entering Passive Mode (172,16,0,1,239,20)
服务器的数据端口为239*256+20=61204 服务器端口P为61204
四、FTP连接响应码
1XX:信息 125:数据连接打开
2XX:成功类状态 200:命令OK 230:登录成功
3XX:补充类 331:用户名OK
4XX:客户端错误 425:不能打开数据连接
5XX:服务器错误 530:不能登录
⑦ wiresharp抓包FTP问题
具体不了解ftp协议,但是凡通信肯定是要建立在tcp或ip协议上的,如果没有这些协议来完成网络路由,那么其他协议怎么能完成自己的业务?
⑧ 如何使用Wireshark 进行监听TCP FTP HTTP三个协议
Wireshark 进行监听TCP FTP HTTP三个协议
一、下载安装wireshark 从http://www.wireshark.org/ 下载安装Windows平台的wireshark,双击安装文件安装即可,在安装过程中注意选择安装winpcap。
二、启动wireshark后,选择工具栏中的快捷键(红色标记的按钮)即可Start anewlivecapture。
建立命令通道的包交互过程中,有很多FTP命令,包括了SYST、PWD、CWD等,是FTP的标准命令,网络上都可以查到。
Wireshark 进行监听TCP FTP HTTP完成。