共享网络嗅探工具(如Sniffer Pro)的功能使用和结构分析和IP地址欺骗扫描工具Hping2的使用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计II报告
(2011 / 2012 学年第一学期)
题目1:共享网络嗅探工具(如Sniffer Pro)的功能使用和结构分析
题目2:IP地址欺骗扫描工具Hping2的使用
专业
学生姓名
班级学号
指导教师
指导单位
日期年月日
指导教师成绩评定表
学生姓名刘铭菲班级学号08001019 专业信息安全
评分内容评分标准优秀良好中等差
平时成绩认真对待课程设计,遵守实验室规定,上机不迟到早退,不做和设计无关的事
设计成果设计的科学、合理性
功能丰富、符合题目要求界面友好、外观漂亮、大方程序功能执行的正确性
程序算法执行的效能
设计报告设计报告正确合理、反映系统设计流程文档内容详实程度
文档格式规范、排版美观
验收答辩
简练、准确阐述设计内容,能准确有条理回答各
种问题,系统演示顺利。

评分等级
指导教师
简短评语
指导教师签名日期
备注评分等级有五种:优秀、良好、中等、及格、不及格
实验一Sniffer Pro的使用
一.课题内容和要求
1) 熟练掌握Sniffer Pro对数据包捕获的使用方法。

2) 掌握利用Sniffer Pro进行数据包结构分析、进而理解协议对数据的封装。

重点:1) Sniffer Pro对数据包捕获的使用方法。

2) 利用Sniffer Pro进行数据包结构分析。

难点:Sniffer Pro进行数据包结构分析。

【实验环境】
Windows XP、2003 Server等系统,Sniffer Pro软件。

二、设计思路分析
打开snifeer 软件,出现下图,这个界面是用来选择要抓包得网卡,选择好了之后点击OK
常用功能介绍
1、Dashboard (网络流量表)
点击图1中①所指的图标,出现三个表,第一个表显示的是网络的使用率,第二个表显示的是网络的每秒钟通过的包数量,第三个表显示的是网络的每秒错误率。

通过这三个表可以直观的观察到网络的使用情况,红色部分显示的是根据网络要求设置的上限。

当选择Network和Size Distributtion将显示更为详细的网络相关数据的曲线图。

2、Host table(主机列表)
点击①所指的图标,出现图中显示的界面,选择所指的IP选项,界面中出现的是所有在线的本网主机地址及连到外网的外网服务器地址
此时想看看192.168.113.88这台机器的上网情况怎对其进行点击则会出现
3、Detail(协议列表)
点击所示的“Detail”图标,图中显示的是整个网络中的协议分布情况,可清楚地看出哪台机器运行了那些协议。

4、Bar(流量列表)
点击所示的竖状图标,图中显示的是整个网络中的机器所用带宽前10名的情况,点击下面的大饼就显现圆形图
5、Matrix (网络连接)
点击图标,出现全网的连接示意图,图中绿线表示正在发生的网络连接,蓝线表示过去发生的连接。

将鼠标放到线上可以看出连接情况。

鼠标右键在弹出的菜单中可选择放大此图。

三、概要设计
重点:1) Sniffer Pro对数据包捕获的使用方法。

2) 利用Sniffer Pro进行数据包结构分析。

难点:Sniffer Pro进行数据包结构分析。

四、详细设计
1、抓某台机器的所有数据包
如图9所示,本例要抓192.168.113.208这台机器的所有数据包,如图中①选择这台机器。

点击②所指图标,出现图10界面,等到图10中箭头所指的望远镜图标变红时,表示已捕捉到数据,点击该图标出现图11界面,选择箭头所指的Decode选项即可看到捕捉到的所有包。

图9
图10
2、抓Telnet密码
本例从192.168.113.208 这台机器telnet到192.168.113.50,用Sniff Pro抓到用户名和密码。

步骤1:设置规则
如图12所示,选择Capture菜单中的Defind Filter,出现图13界面,选择图13
中的ADDress项,在station1和2中分别填写两台机器的IP地址,如图14所示选择Advanced选项,选择选IP/TCP/Telnet ,将Packet Size设置为Equal 55,Packet Type 设置为Normal.。

图12
图13
图14
步骤2:抓包
按F10键出现图15界面,开始抓包。

图15
步骤3:运行telnet命令
本例使telnet到一台开有telnet服务的Linux机器上。

telnet 192.168.113.50
login: test
Password:
3、抓FTP密码
本例从192.168.113.208 这台机器ftp到192.168.113.50,用Sniff Pro抓到用户名和密码。

步骤1:设置规则
如图12所示,选择Capture菜单中的Defind Filter出现图19界面,选择图19中的ADDress项,在station1和2中分别填写两台机器的IP地址,选择Advanced选项,选择选IP/TCP/FTP ,将Packet Size设置为In Between 63 -71,Packet Type 设置为Normal。

如图20所示,选择Data Pattern项,点击箭头所指的Add Pattern按钮,出现图21界面,按图设置OFFset为2F,方格内填入18,name可任意起。

确定后如图22点击Add NOT按钮,再点击Add Pattern按钮增加第二条规则,按图23所示设置好规则,确定后如图24所示。

图19
图20
图21
图22 图23
步骤2:抓包
按F10键出现图15界面,开始抓包。

步骤3:运行FTP命令
本例使FTP到一台开有FTP服务的Linux机器上
D:/>ftp 192.168.113.50
Connected to 192.168.113.50.
220 test1 FTP server (Version wu-2.6.1(1) Wed Aug 9 05:54:50 EDT 2000) ready.
User (192.168.113.50:(none)): test
331 Password required for test.
Password:
步骤4:察看结果
图16中箭头所指的望远镜图标变红时,表示已捕捉到数据,点击该图标出现图25界面,选择箭头所指的Decode选项即可看到捕捉到的所有包。

可以清楚地看出用户名为test密码为123456789。

4、抓HTTP密码
步骤1:设置规则
按照下图29、30进行设置规则,设置方法同上。


图30
步骤2:抓包
按F10 键开始抓包。

步骤3:访问网站
步骤4:察看结果
五、测试数据及其结果分析
1、抓某台机器的所有数据包
图表1
2、抓Telnet密码
本例使telnet到一台开有telnet服务的Linux机器上。

telnet 192.168.113.50
login: test
Password:
3、抓FTP密码
步骤4:察看结果
图16中箭头所指的望远镜图标变红时,表示已捕捉到数据,点击该图标出现图17界面,选择箭头所指的Decode选项即可看到捕捉到的所有包。

可以清楚地看出用户名为test密码为123456。

分析:
虽然把密码抓到了,但大家也许对包大小(Packet Size)设为55不理解,网上的数据传送是把数据分成若干个包来传送,根据协议的不同包的大小也不相同,从
图18可以看出当客户端telnet到服务端时一次只传送一个字节的数据,由于协议的头长度是一定的,所以telnet的数据包大小=DLC(14字节)+IP(20字节)+TCP(20字节)+数据(一个字节)=55字节,这样将Packet Size设为55正好能抓到用户名和密码,否则将抓到许多不相关的包。

4、抓HTTP密码
察看结果
图中箭头所指的望远镜图标变红时,表示已捕捉到数据,点击该图标出现图31界面,选择箭头所指的Decode选项即可看到捕捉到的所有包。

在Summary中找到含有POST关键字的包,可以清楚地看出用户名为qiangkn997,密码为。

六、调试过程中的问题
1.如何导入导出snifferPro定义的过滤器的过滤文件?
方法一、强行覆盖法
C:\Program Files\NAI\SnifferNT\Program\
下面有很多Local打头的目录,对应select settings里各个profile,
进入相应的local目录,用sniffer scan.csf 去覆盖Sniffer.csf(捕获过滤)或者snifferdisplay.csf(显示过滤)
2.sniffer的警报日志是些做什么用的??
sniffer警报日志也是sniffer专家系统的一部分,通常不正常的TCP/IP通讯会产生警报和日志.
比如: ping 的反映时间太长, 某一个会话中丢包或者重传数过多,单位时间
产生的广播/多播数过多等等.
Sniffer抓包时,为什么总是自己机器在流量最大?
网络环境:电信2M ADSL+宽带路由器+四口交换机,四个人通过交换机共享一个2M的ADSL,在的电脑接在交换机的端口之,然后在我的电脑安装Sniffer,然后看主机列表中的数据包,为什么老是我的机器的数据流最大?为什么比网关(路由器IP)的收发的数据包还多??
Q: 他们说的对,主要是与你接入的位置有关.
取流量的三种方式:交换机镜象口\HUB\TAP32
七、专业课程设计总结
经过了两个周的学习与实践sniffer pro 工具的使用与分析使我们更有兴趣深入了解这些内容,我们甚至还没有得到全部的负载内容。

Sniffer Pro是一种非常有价值的工具,可以用它来深入挖掘数据的详细资料,就像我们正在做的一样。

我们还只是在查看一个数据帧而已!
题目二:IP地址欺骗扫描工具Hping2的使用
一、课题内容和要求:
1. 学会使用 Hping2
2. 进行 IP 地址欺骗扫描
二、设计思路分析:
Hping2是一个命令行下使用的TCP/IP数据包组装/分析工具,其命令模式很像Unix下的ping命令,但是它不是只能发送ICMP响应请求,它还可以支持TCP、UDP、ICMP和RAW-IP协议,它有一个路由跟踪模式,能够在两个相互包含的通道之间传送文件。

Hping2常被用于检测网络和主机,其功能非常强大,可在多种操作系统下运行,如Linux,FreeBSD,NetBSD,OpenBSD,Solaris,MacOs X,Windows。

Hping2的主要功能有:
1、防火墙测试
2、实用的端口扫描
3、网络检测,可以用不同的协议、服务类型(TOS)、IP分片
4、手工探测MTU(最大传输单元)路径
5、先进的路由跟踪,支持所有的协议
6、远程操作系统探测
7、远程的运行时间探测
8、TCP/IP堆栈审计
三、概要设计:
该课题为实践型课题,详情见数据测试及结果分析章节。

四、详细设计:
该课题为实践型课题,详情见数据测试及结果分析章节。

五、测试数据及其结果分析:
一在Linux环境下安装Hping2
1)根据平台差异,下载相应的安装包
2)下载Hping2到相应的目录
3)修改配置脚本Vi conflg,主要是man.path变量
将加亮出修改为INSTALL-MANPACH-manpath cut-fl-d
键入Esc退出编辑,输入wq!保存修改
4)输入/conflgure
5)输入make,进行编辑
s
6)编译完成之后,安装Hping2,输入make install
二在Linux环境下使用Hping2
在局域网内某一主机作为测试对象,其中IP地址为192.168.0.50
1)不带参数测试hping2 192.168.0.50
使用Hping2时,如果只指定主机二不设置任何参数,Hping2会每秒都向目标主机发送一个不设置任何标志且目标端口为0的数据包,以测试主机的反应
目标主机返回的数据包中R和A位置,即该主机对询问做出Reset+ACK应答数据包,虽然该端口没有开放吗,但至少可以确定目标主机是激活的。

2)带参数的测试Hping2 192.168.0.50—S—P 22
向目标主机的22号端口发出SYN请求,以测试目标主机的反应
目标主机返回的数据包的S和A位置,即该主机对询问做出了应答,问三次握手的第二个步骤,说明该端口是开放的
3)伪装源IP地址Hping2测试hping2 192.168.0.50-a192.168.0.11-S
-a是指-spoof,即进行源地址欺骗。

因此上述测试语句的含义为,将原地址伪装为192.168.0.11想目标主机的0号端口发出SYN测试数据包。

而此时本地主机并没有接收到任何应答的数据包,应为192.168.0.50主机只对192.168.0.11号主机做出应答。

目标主机的测试反应
经过测试,hping2已经正常工作,则可以进行IP欺骗实验
三IP地址欺骗扫描的地址隐藏
首先对于IP地址欺骗扫描的过程做出解释
在这种IP欺骗方式的端口扫描的过程中,设计到3个主机,假定
1主机A扫描者自己的主机
2主机B扫描者需要借助的第三方主机,假定该主机在扫描过程中不向外发送任何数据包
3主机C被扫描的目标主机
其过程为:
1主机A向主机C的某个TCP端口发送一个SYN包,并将源地址写为主机B。

如果端口是打开的,则主机C就会返回给主机B一个SYN+ACK包,否则,主机C将返回一个RST+ACK包
2主机A通过主机B通信中IP头中的ID域,应该知道主机B正在发送的数据包的编号。

3根据TCP/IP的相关规定,主机B对于主机C发送到某端口的SYN+ACK包,应该返回一个RST,而对于发来的RST包,则应该没有反应
4在一般情况下IP数据包头部ID域的值,每次增量为1
本质上,这还是一种SYN扫描的方式。

试验中,分为主机B无网络通信和主机B有网络通信两种情况来测试
通过任务二的测试表明,实验所局域网中IP地址为192.168.0.50的主机的0号端口是关闭的,22号端口是开放的,因此在任务三中,将其作为被扫描的目标主机,即主机C同时对局域网地址为192.168.0.11的主机进行不带参数的NULL 扫描
测试结果如下
192.168.0.11可以看做是主机B
1被利用主机无网络通信
1)切断192.168.0.11的网络通信
在本机对192.168.0.11的扫描数据可以看出ID域的值比较零乱,难以找到规律,
此时,以人工方式中断192.168.0.11的网络通信,即关闭其所有的网络活动,然后再对其进行不带参数的NULL扫描
可以看出id序列号是以增量为1增加的
2)扫描关闭状态的端口情况
对C主机的0号端口进行扫描,操作者发送的数据包中源IP地址填上B机的IP 地址,这样,C主机返回的数据包应该到B主机
因为C主机上被扫描的0号端口没有监听,C主机会向B主机发送RST+ACK 包,而B主机对这样的数据包是不反应的,所以,操作者看到B主机发到A主机上的IP包头中的ID域增量还是1
3)扫描listenning状态的端口情况
接下来对主机C的20号端口进行扫描,因为被扫描的端口是正在监听的,C主机就会向B主机发送SYN+ACK包,这时候,B主机还需要向一直给它发送NULL 包得A主机返回RST+ACK,由于C的介入,A主机可以断定,正在扫描的C 主机的端口是打开的
4)以上是理想的讨论,但是在测试中,还出现了B主机的ID增量与A发给C 的测试数据包不匹配的情况。

如3中显示的测试结果,其实A主机只向C发送了一个SYN请求包,但出现了两次增量为2的情况。

通过Ethereeal,发现交换机需要定时向交换局域网内德所有主机发送广播数据包,以维护和更新内部表现,故仅凭借B的ID值的单个增量是不够准确的
上图中加框的两个数据包就是交换机发出的广播数据包,对于单个的测试包可能会有影响。

由此我们可以看出,一方面三台主机需要位于同一个交换局域网内,即交换机需要维护自身的地址表,另一方面要保证没有网络通信,这样的理想状态是不可能完全达到的。

比较好的拆裹方式为,每次测试通过发送数据包的数量选项
-c来制定数据包的个数,每次发送的数据量大到足以使操作者看到B机上通信流量是否发生了变化,也就由此可以判断目标端口是否正在监听了
现在向192.168.0.50的22号端口发送如下数据包
则主机B的应答为
即使有若干个包序列号不正确,但整体的趋势是与A发送C的测试包是一致的,那么久可以认定主机B的22号端口是开放的
2.被利用主机的网络通信
对于第三方主机C有网络通信的情况,步骤上与1完全一致,现实结果上很不理想,基本处于乱序状态。

从Ethereal抓包分布来看,TCP的数据包的数量骤然上升。

下图所示为主机A对主机B的0号端口进行扫描的情况。

由于主机B的
0号端口是关闭的,理论上ID序列号应该以1的步骤增加,但结果很明显ID是无序的
六、调试过程中遇到的问题:
实践型课题,此环节省略。

七、专业课程设计总结:
经过了两个周的课程设计,我们通过对上述实例的操作,已经学会了hping2的使用。

Hping2如同一个路由跟踪,最大的妙处在于,它能够支持多种协议,这就给我们在网络数据的提取和分析上提供了很大的方便。

相关文档
最新文档