网络端口监听与端口技术

上传人:W**** 文档编号:149817645 上传时间:2020-10-30 格式:PPT 页数:33 大小:403.50KB
返回 下载 相关 举报
网络端口监听与端口技术_第1页
第1页 / 共33页
网络端口监听与端口技术_第2页
第2页 / 共33页
网络端口监听与端口技术_第3页
第3页 / 共33页
网络端口监听与端口技术_第4页
第4页 / 共33页
网络端口监听与端口技术_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《网络端口监听与端口技术》由会员分享,可在线阅读,更多相关《网络端口监听与端口技术(33页珍藏版)》请在金锄头文库上搜索。

1、第4章,网络端口监听与端口扫描技术,本章提示 4.1 计算机网络监听的概述 4.2网络监听工具Sniffer(嗅探器) 4.3 端口扫描技术,4.1 计算机网络监听的概述,随着计算机技术的发展,网络已日益成为生活中不可或缺的工具,但伴之而来的非法入侵也一直威胁着计算机网络系统的安全。由于局域网中采用广播方式,因此,在某个广播域中可以监听到所有的信息包。而黑客通过对信息包进行分析,就能获取局域网上传输的一些重要信息。事实上,很多黑客入侵时都把局域网扫描和侦听作为其最基本的步骤和手段,原因是想用这种方法获取其想要的密码等信息。但另一方面,我们对黑客入侵活动和其它网络犯罪进行侦查、取证时,也可以使用

2、网络监听技术来获取必要的信息。因此,了解以太网监听技术的原理、实现方法和防范措施就显得尤为重要。 所谓的网络监听,是指主机网络进程接受到IP数据包后,察看其的目标端口是不是自己的端口号,如果是的话就接受该数据包进行处理。进行网络通讯的主机,既要发送数据,也要接受数据,所以就要开启相应的端口以接受数据。一个网络上的主机有可能开启多个网络进程(如即浏览网页又上QQ),也就是监听了多个端口。,4.1 计算机网络监听的概述,4.1.1网络监听的原理,Ethernet协议的工作方式是将要发送的数据包发往连接在一起的所有主机。在包头中包括有应该接收数据包的主机的正确地址,因为只有与数据包中目标地址一致的那

3、台主机才能接收到信息包,但是当主机工作在监听模式下的话不管数据包中的目标物理地址是什么,主机都将可以接收到。许多局域网内有十几台甚至上百台主机是通过一个电缆、一个集线器连接在一起的,在协议的高层或者用户来看,当同一网络中的两台主机通信的时候,源主机将写有目的的主机地址的数据包直接发向目的主机,或者当网络中的一台主机同外界的主机通信时,源主机将写有目的的主机IP地址的数据包发向网关。但这种数据包并不能在协议栈的高层直接发送出去,要发送的数据包必须从TCP/IP协议的IP层交给网络接口,也就是所说的数据链路层。网络接口不会识别IP地址的。在网络接口由IP层来的带有IP地址的数据包又增加了一部分以太

4、祯的祯头的信息。在祯头中,有两个域分别为只有网络接口才能识别的源主机和目的主机的物理地址这是一个48位的地址,这个48位的地址是与IP地址相对应的,换句话说就是一个IP地址也会对应一个物理地址。对于作为网关的主机,由于它连接了多个网络,它也就同时具备有很多个IP地址,在每个网络中它都有一个。而发向网络外的祯中继携带的就是网关的物理地址。 (待续),4.1 计算机网络监听的概述,4.1.1网络监听的原理,Ethernet中填写了物理地址的祯从网络接口中,也就是从网卡中发送出去传送到物理的线路上。如果局域网是由一条粗网或细网连接成的,那么数字信号在电缆上传输信号就能够到达线路上的每一台主机。再当使

5、用集线器的时候,发送出去的信号到达集线器,由集线器再发向连接在集线器上的每一条线路。这样在物理线路上传输的数字信号也就能到达连接在集线器上的每个主机了。当数字信号到达一台主机的网络接口时,正常状态下网络接口对读入数据祯进行检查,如果数据祯中携带的物理地址是自己的或者物理地址是广播地址,那么就会将数据祯交给IP层软件。对于每个到达网络接口的数据祯都要进行这个过程的。但是当主机工作在监听模式下的话,所有的数据祯都将被交给上层协议软件处理。 当连接在同一条电缆或集线器上的主机被逻辑地分为几个子网的时候,那么要是有一台主机处于监听模式,它还将可以接收到发向与自己不在同一个子网(使用了不同的掩码、IP地

6、址和网关)的主机的数据包,在同一个物理信道上传输的所有信息都可以被接收到。 在UNIX系统上,当拥有超级权限的用户要想使自己所控制的主机进入监听模式,只需要向Interface(网络接口)发送I/O控制命令,就可以使主机设置成监听模式了。而在Windows 9x的系统中则不论用户是否有权限都将可以通过直接运行监听工具就可以实现了。 (待续),4.1 计算机网络监听的概述,当连接在同一条电缆或集线器上的主机被逻辑地分为几个子网的时候,那么要是有一台主机处于监听模式,它还将可以接收到发向与自己不在同一个子网(使用了不同的掩码、IP地址和网关)的主机的数据包,在同一个物理信道上传输的所有信息都可以被

7、接收到。 在UNIX系统上,当拥有超级权限的用户要想使自己所控制的主机进入监听模式,只需要向Interface(网络接口)发送I/O控制命令,就可以使主机设置成监听模式了。而在Windows 9x的系统中则不论用户是否有权限都将可以通过直接运行监听工具就可以实现了。 在网络监听时,常常要保存大量的信息(也包含很多的垃圾信息),并将对收集的信息进行大量的整理,这样就会使正在监听的机器对其它用户的请求响应变的很慢。同时监听程序在运行的时候需要消耗大量的处理器时间,如果在这个时候就详细的分析包中的内容,许多包就会来不及接收而被漏走。所以监听程序很多时候就会将监听得到的包存放在文件中等待以后分析。分析

8、监听到的数据包是很头疼的事情。因为网络中的数据包都非常之复杂。两台主机之间连续发送和接收数据包,在监听到的结果中必然会加一些别的主机交互的数据包。监听程序将同一TCP会话的包整理到一起就相当不容易了,如果你还期望将用户详细信息整理出来就需要根据协议对包进行大量的分析。Internet上那么多的协议,运行进起的话这个监听程序将会十分的大哦。 (待续),4.1.1网络监听的原理,现在网络中所使用的协议都是较早前设计的,许多协议的实现都是基于一种非常友好的,通信的双方充分信任的基础。在通常的网络环境之下,用户的信息包括口令都是以明文的方式在网上传输的,因此进行网络监听从而获得用户信息并不是一件难点事

9、情,只要掌握有初步的TCP/IP协议知识就可以轻松的监听到你想要的信息的。前些时间美籍华人China-babble曾提出将望路监听从局域网延伸到广域网中,但这个想法很快就被否定了。如果真是这样的话我想网络必将天下大乱了。而事实上现在在广域网里也可以监听和截获到一些用户信息。只是还不够明显而已。在整个Internet中就更显得微不足道了。监听的协议分析 我们的研究从监听程序的编写开始,用Linux C语言设计实现。 以太网上数据帧的监听剖析 以太网上的数据帧主要涉及Tcp/ip协议,针对以下几个协议的分析:IP,ARP,RARP,IPX,其中重点在于ip和 arp协议,这两个协议是多数网络协议的

10、基础,因此把他们研究彻底,就对大多数的协议的原理和特性比较清楚了。 由于各种协议的数据帧个不相同,所以涉及很多的数据帧头格式分析,接下来将一一描述. (待续),4.1 计算机网络监听的概述,4.1.1网络监听的原理,4.1 计算机网络监听的概述,4.1.1网络监听的原理,在linux 下监听网络,应先设置网卡状态,使其处于杂混模式以便监听网络上的所有数据帧。然后选择用Linux socket 来截取数据帧,通过设置socket() 函数参数值,可以使socket截取未处理的网络数据帧,关键是函数的参数设置,下面就是有关的程序部分: AF_INET=2 表示 internet ip protoc

11、ol SOCK_PACKET=10 表示 截取数据帧的层次在物理层,既不作处理。 Htons(0 x0003)表示 截取的数据帧的类型为不确定,既接受所有的包。 总的设定就是网卡上截取所有的数据帧。这样就可以截取底层数据帧,因为返回的将是一个指向数据的指针,为了分析方便,我设置了一个基本的数据帧头结构。 Struct etherpacket struct ethhdr eth; struct iphdr ip; struct tcphdr tcp; char buff8192; ep; (待续),4.1 计算机网络监听的概述,4.1.1网络监听的原理,将返回的指针赋值给指向数据帧头结构的指针,

12、然后对其进行分析。以下是有关协议的报头:ethhdr 这是以太网数据帧的mac报头: |48bit 目的物理地址 | 48bit 源物理地址 | 16bit 协议地址| 相应的数据结构如下 struct ethhdr unsigned char h_destETH_ALEN; unsigned char h_sourceETH_ALEN; unsigned short h_proto; 其中h_dest6是48位的目标地址的网卡物理地址,h_source 6 是48位的源地址的物理网卡地址。H_proto是16位的以太网协议,其中主要有0 x0800 ip,0 x8035.X25,0 x813

13、7 ipx,0 x8863-0 x8864 pppoe(这是Linux的 ppp),0 x0600 ether _loop_back ,0 x0200-0 x0201 pup等。Iphdr 这是ip协议的报头: 由此可以定义其结构如下: 这是Linux 的ip协议报头,针对版本的不同它可以有不同的定义,我们国内一般用BIG的定义,其中version 是ip的版本,protocol是ip的协议分类主要有0 x06 tcp.0 x11 udp,0 x01 icmp,0 x02 igmp等,saddr是32位的源ip地址,daddr是32位的目标ip地址。相应的数据结构: (待续),4.1 计算机网

14、络监听的概述,4.1.1网络监听的原理,struct arphdrunsigned short int ar_hrd; unsigned short int ar_pro; unsigned char ar_hln;unsigned char ar_pln; unsigned short int ar_op;#if 0unsigned char _ar_shaETH_ALEN;unsigned char _ar_sip4;unsigned char _ar_thaETH_ALEN;unsigned char _ar_tip4;#end if; 这是linux 的arp 协议报头,其中ar_hr

15、d 是硬件地址的格式,ar_pro协议地址的格式,ar_hln是硬件地址的长度,ar_pln时协议地址的长度,ar_op是arp协议的分类0 x001是arp echo 0 x0002 是 arp reply.接下来的分别是源地址的物理地址,源ip地址,目标地址的物理地址,目标ip地址。 Tcphdr ip协议的tcp协议报头 以下是相应数据结构: struct tcphdr u_int16_t source; u_int16_t dest; u_int32_t seq; u_int32_t ack_seq; # if _BYTE_ORDER = _LITTLE _ENDIANu_int16_

16、t resl:4; u_int16_t doff:4;u_int16_t fin:1;u_int16_t syn:1; u_int16_t rst:1;u_int16_t psh:1;u_int16_t ack:1; u_int16_t urg:1;u_int16_t res2:2; (待续),4.1 计算机网络监听的概述,4.1.1网络监听的原理,#elif _BYTE _ORDER = _BIG _ENDIANu_int16_t doff:4; u_int16_t res1:4;u_int16_t res2:2;u_int16_t urg:1; u_int16_t ack:1;u_int16_t psh:1;u_int16

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 专业基础教材

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号