1.求助:《网络嗅探技术分析与实现》信息
无线局域网(WLAN)因其安装便捷、组网灵活的优点在许多领域获得了越来越广泛的应用,但由于其传送数据通过无线电波传播,发射的数据可能到达预期之外的接收设备,因此WLAN的传送信息存在被窃取的危险。
这就是我们今天要说的嗅探技术,它是利用计算机的网络接口截获网络中数据报文的一种技术。嗅探一般工作在网络的底层,可以在对网络传输数据进行记录,从而捕获账号和口令、以及其他用户敏感信息,甚至可以用来获取更高级别的访问权限、分析网络结构进行网络渗透等。
随着无线局域网技术的广泛应用,其安全问题也被越来越多的用户关注。 WLAN中无线信道的开放性给网络嗅探带来了极大的方便。
在WLAN中网络嗅探对信息安全的威胁来自其被动性和非干扰性,运行监听程序的主机在窃听的过程中只是被动的接收网络中传输的信息,它不会与其它主机交换信息,也不修改在网络传输的信息包,使得网络嗅探具有很强的隐蔽性,往往使网络信息的丢失不容易被发现。尽管它没有对网络进行主动攻击或破坏行为明显,但由它造成的损失也是不可估量的。
只有通过分析网络嗅探的原理与本质,才能更有效地防患于未然,增强无线局域网的安全防护能力。 字串9 网络嗅探原理 字串3 要理解网络嗅探的本质,就必须要清楚数据在网络中封装、传输的过程。
根据TCP/IP协议,数据包是经过封装后,再被发送的。假设客户机A、B和FTP服务器C通过接入点(AP)或其他无线连接设备连接,主机A通过使用一个FTP命令向主机C进行远程登录,进行文件下载。
那么首先在主机A上输入登录主机C的FTP口令,FTP口令经过应用层FTP协议、传输层TCP协议、网络层IP协议、数据链路层上的以太网驱动程序一层一层包裹,最后送到了物理层,再通过无线的方式播发出去。主机C接收到数据帧,对数据信息进行对比分析处理。
这时主机B也同样接收到主机A播发的数据帧,并检查在数据帧中的地址是否和自己的地址相匹配,如不匹配则丢弃包。这就是TCP/IP协议通信的一般过程。
字串8 网络嗅探就是从通信中捕获和解析信息。假设主机B想知道登陆服务器C的FTP口令是什么,那么它要做的就是捕获主机A向C发送的数据包,对包信息进行解析,依次剥离出以太帧头、IP包头、TCP包头等,然后对报头部分和数据部分进行相应的分析处理,从而得到包含在数据帧中的有用信息。
字串7 俗话说巧妇难为无米之炊,在进行嗅探前,首先设置嗅探的计算机(安装配置无线网卡并把网卡设置为混杂模式)。这样网卡能够接收一切通过它的数据包,进而对数据包解析,实现数据监听;其次循环包,并将抓到的包送到数据解析模块处理;最后进行数据解析,依次提取出以太帧头、IP包头、TCP包头等,然后对各个报头部分和数据部分进行相应的分析处理。
字串9 防范策略 字串5 尽管嗅探技术实现起来比较隐蔽,但并不是没有防范的方法,下面笔者再来介绍下如何对嗅探行为进行防护。 字串3 首先,加强网络访问控制。
一种极端的手段是通过房屋的电磁屏蔽来防止电磁波的泄漏,通过强大的网络访问控制可以减少无线网络配置的风险。同时配置勘测工具也可以测量和增强AP覆盖范围的安全性。
虽然确知信号覆盖范围可以为WLAN安全提供一些有利条件,但这并不能成为一种完全的网络安全解决方案。攻击者使用高性能天线仍有可能在无线网络上嗅探到传输的数据。
字串7 其次,设置网络为封闭系统。为了避免网络被NetStumbler之类的工具发现,应把网络设置为封闭系统。
封闭系统是对SSID标为“any”的客户端不进行响应,并且关闭具有网络身份识别的功能的系统。这样可以比较好的禁止非授权访问,但不能完全防止被嗅探。
字串4 再其次,采用可靠的加密协议。如果用户的无线网络是用于传输比较敏感的数据,那么仅用WEP加密方式是远远不够的,需要进一步采用适合用户需求的第三方加密方式。
加密协议简单的可以理解为,介于HTTP协议与TCP协议之间的可选层,如SSL是在TCP之上建立了一个加密通道,对通过这一层的数据进行加密,从而达到保密的效果。 字串3 另外,使用安全Shell而不是Telnet。
SSH是一个在应用程序中提供安全通信的协议,通过使用RSA的算法建立连接。在授权完成后,接下来的通信数据是用IDEA技术来加密的。
SSH后来发展成为F-SSH,提供了高层次的、军方级别的对通信过程的加密。它为通过TCP/IP网络通信提供了通用的最强的加密。
目前,还没有人突破过这种加密方法。嗅探到的信息自然将不再有任何价值。
此外,使用安全拷贝而不是用文件传输协议也可以加强数据的安全性。 字串3 最后,使用一次性口令。
通常的计算机口令是静态的,容易被嗅探窃取。采用一次性口令技术,能使窃听账号信息失去意义。
例如S/key的原理是远程主机已得到一个口令(这个口令不会在不安全的网络中传输),当用户连接时会获得一个请求信息,用户将这个信息和口令经过算法运算,产生一个正确的响应回执信息(如果通信双方口令正确的话)。这种验证方式无需在网络中传输口令,而且相同的“请求/响应信息”也不会出现两次。
字串5 网络嗅探。
2.求助:《网络嗅探技术分析与实现》信息
无线局域网(WLAN)因其安装便捷、组网灵活的优点在许多领域获得了越来越广泛的应用,但由于其传送数据通过无线电波传播,发射的数据可能到达预期之外的接收设备,因此WLAN的传送信息存在被窃取的危险。
这就是我们今天要说的嗅探技术,它是利用计算机的网络接口截获网络中数据报文的一种技术。嗅探一般工作在网络的底层,可以在对网络传输数据进行记录,从而捕获账号和口令、以及其他用户敏感信息,甚至可以用来获取更高级别的访问权限、分析网络结构进行网络渗透等。
随着无线局域网技术的广泛应用,其安全问题也被越来越多的用户关注。 WLAN中无线信道的开放性给网络嗅探带来了极大的方便。
在WLAN中网络嗅探对信息安全的威胁来自其被动性和非干扰性,运行监听程序的主机在窃听的过程中只是被动的接收网络中传输的信息,它不会与其它主机交换信息,也不修改在网络传输的信息包,使得网络嗅探具有很强的隐蔽性,往往使网络信息的丢失不容易被发现。尽管它没有对网络进行主动攻击或破坏行为明显,但由它造成的损失也是不可估量的。
只有通过分析网络嗅探的原理与本质,才能更有效地防患于未然,增强无线局域网的安全防护能力。 字串9 网络嗅探原理 字串3 要理解网络嗅探的本质,就必须要清楚数据在网络中封装、传输的过程。
根据TCP/IP协议,数据包是经过封装后,再被发送的。假设客户机A、B和FTP服务器C通过接入点(AP)或其他无线连接设备连接,主机A通过使用一个FTP命令向主机C进行远程登录,进行文件下载。
那么首先在主机A上输入登录主机C的FTP口令,FTP口令经过应用层FTP协议、传输层TCP协议、网络层IP协议、数据链路层上的以太网驱动程序一层一层包裹,最后送到了物理层,再通过无线的方式播发出去。主机C接收到数据帧,对数据信息进行对比分析处理。
这时主机B也同样接收到主机A播发的数据帧,并检查在数据帧中的地址是否和自己的地址相匹配,如不匹配则丢弃包。这就是TCP/IP协议通信的一般过程。
字串8 网络嗅探就是从通信中捕获和解析信息。假设主机B想知道登陆服务器C的FTP口令是什么,那么它要做的就是捕获主机A向C发送的数据包,对包信息进行解析,依次剥离出以太帧头、IP包头、TCP包头等,然后对报头部分和数据部分进行相应的分析处理,从而得到包含在数据帧中的有用信息。
字串7 俗话说巧妇难为无米之炊,在进行嗅探前,首先设置嗅探的计算机(安装配置无线网卡并把网卡设置为混杂模式)。这样网卡能够接收一切通过它的数据包,进而对数据包解析,实现数据监听;其次循环包,并将抓到的包送到数据解析模块处理;最后进行数据解析,依次提取出以太帧头、IP包头、TCP包头等,然后对各个报头部分和数据部分进行相应的分析处理。
字串9 防范策略 字串5 尽管嗅探技术实现起来比较隐蔽,但并不是没有防范的方法,下面笔者再来介绍下如何对嗅探行为进行防护。 字串3 首先,加强网络访问控制。
一种极端的手段是通过房屋的电磁屏蔽来防止电磁波的泄漏,通过强大的网络访问控制可以减少无线网络配置的风险。同时配置勘测工具也可以测量和增强AP覆盖范围的安全性。
虽然确知信号覆盖范围可以为WLAN安全提供一些有利条件,但这并不能成为一种完全的网络安全解决方案。攻击者使用高性能天线仍有可能在无线网络上嗅探到传输的数据。
字串7 其次,设置网络为封闭系统。为了避免网络被NetStumbler之类的工具发现,应把网络设置为封闭系统。
封闭系统是对SSID标为“any”的客户端不进行响应,并且关闭具有网络身份识别的功能的系统。这样可以比较好的禁止非授权访问,但不能完全防止被嗅探。
字串4 再其次,采用可靠的加密协议。如果用户的无线网络是用于传输比较敏感的数据,那么仅用WEP加密方式是远远不够的,需要进一步采用适合用户需求的第三方加密方式。
加密协议简单的可以理解为,介于HTTP协议与TCP协议之间的可选层,如SSL是在TCP之上建立了一个加密通道,对通过这一层的数据进行加密,从而达到保密的效果。 字串3 另外,使用安全Shell而不是Telnet。
SSH是一个在应用程序中提供安全通信的协议,通过使用RSA的算法建立连接。在授权完成后,接下来的通信数据是用IDEA技术来加密的。
SSH后来发展成为F-SSH,提供了高层次的、军方级别的对通信过程的加密。它为通过TCP/IP网络通信提供了通用的最强的加密。
目前,还没有人突破过这种加密方法。嗅探到的信息自然将不再有任何价值。
此外,使用安全拷贝而不是用文件传输协议也可以加强数据的安全性。 字串3 最后,使用一次性口令。
通常的计算机口令是静态的,容易被嗅探窃取。采用一次性口令技术,能使窃听账号信息失去意义。
例如S/key的原理是远程主机已得到一个口令(这个口令不会在不安全的网络中传输),当用户连接时会获得一个请求信息,用户将这个信息和口令经过算法运算,产生一个正确的响应回执信息(如果通信双方口令正确的话)。这种验证方式无需在网络中传输口令,而且相同的“请求/响应信息”也不会出现两次。
字串5 网络嗅探。
3.网络嗅探器的设计与实现 全代码 最简单的就行 最好用java 可以用的加
主要原理是利用网卡的混杂模式,和以太网自身的特点进行的。
java写的话用 JPACAP
Jpcap是一个能够抓取与发送网络数据包的Java组件。可以使用Jpcap从一个网络接口获取数据包,然后在Java中对它们进行分析和显示。同样也可以通过一个网络接口发送任意数据包。Jpcap当前能够 捕获以太网,IPv4,IPv6,ARP/RARP,TCP,UDP和ICMPv4数据包。
Jpcap实际上并非一个真正去实现对数据链路层的控制,而是一个中间件,Jpcap调用wincap/libcap,而给Java语言提供一个公共的接口,从而实现了平台无关性。在官方网站上声明,Jpcap支持FreeBSD3.x,Linux RedHat6.1, Fedora Core4,Solaris,and Microsoft Windows 2000/XP等系统。
Jpcap的整个结构大体上跟wincap/libpcap是很相像的,例如NetworkInterface类对应wincap的 typedef struct_ADAPTER ADAPTER,getDeviceList()对应pcap_findalldevs()等等。
Jpcap主要的类有如下几个:
1.NetworkInterface
该类的每一个实例代表一个网络设备,一般就是网卡。这个类只有一些数据成员,除了继承自java.lang.Object的基本方法以外,没有定义其它方法。
2.JpcapCaptor
该类提供了一系列静态方法实现一些基本的功能。该类一个实例代表建立了一个与指定设备的链接,可以通过该类的实例来控制设备,例如设定网卡模式、设定过滤关键字等等。
3.JpcapSender
该类专门用于控制数据包的发送。
4.Packet
这个是所有其它数据包类的父类。Jpcap所支持的数据包有:
ARPPacket、DatalinkPacket、EthernetPacket、ICMPPacket、IPPacket、TCPPacket、UDPPacket。
4.【c++ 课程设计】 简单的网络嗅探器 目的与要求:实现网络层抓包,
#include
5.用VC编写网络嗅探工具
目前,已经有不少的Sniff工具软件,如Windows环境下,最富盛名的工具是Netxray和Sniffer pro,用它们在 Windows环境下抓包来分析,非常方便。
在UNIX环境下如Sniffit,Snoop,Tcpdump,Dsniff 等都是比较常见的。这里介绍一个用C语言和网络数据包和分析开发工具libpcap及winpcap实现的简易网络Sniffer。
2网络嗅探器程序实现在c环境下编程,源码如下:/* June 2nd,2002* Project for graduation qualification By Bby Team 19 */#include #include //必须加路径,必须把头文件packet32.h包含进去#include "..\..\Include\packet32.h"#include "..\..\Include\ntddndis.h"#define Max_Num_Adapter 10// Prototypes原形//发包void PrintPackets(LPPACKET lpPacket);//设备列表char AdapterList[Max_Num_Adapter][1024];// 主程序开始int main(){//define a pointer to an ADAPTER structure设备指针LPADAPTER lpAdapter = 0;//define a pointer to a PACKET structure包指针LPPACKET lpPacket;int i;DWORD dwErrorCode;DWORD dwVersion;DWORD dwWindowsMajorVersion;//Unicode strings (WinNT)WCHAR AdapterName[8192]; //网络适配器设备列表WCHAR *temp,*temp1;//ASCII strings (Win9x)char AdapterNamea[8192]; //网络适配器设备列表char *tempa,*temp1a;int AdapterNum=0,Open;ULONG AdapterLength;char buffer[256000]; // 容纳来自驱动器的数据的缓冲区struct bpf_stat stat;// 获得本机网卡名AdapterLength=4096;printf("Packet.dll test application. Library version:%s\n", PacketGetVersion());printf("Adapters installed:\n");i=0; 下面这段代码是用来在不同版本下得到网络适配器名:Win9x 和WinNT中的网卡名称是分别用ASCII和UNICODE实现的,所以首先要得到本地操作系统的版本号.:dwVersion=GetVersion();dwWindowsMajorVersion= (DWORD)(LOBYTE(LOWORD(dwVersion)));这里首先用到的Packet.dll函数是PacketGetAdapterNames(PTSTR pStr,PULONG BufferSize,通常它是与驱动程序通信并被调用的第一个函数,它将返回的用户本地系统中安装的网络适配器的名字放在缓冲区pStr中;BufferSize是缓冲区的长度:if (!(dwVersion >= 0x80000000 && dwWindowsMajorVersion >= 4)){ //是Windows NT// 找不到设备列表if(PacketGetAdapterNames(AdapterName,&AdapterLength)==FALSE){printf("Unable to retrieve the list of the adapters!\n");return -1;一个简易网络嗅探器的实现 来自: 书签论文网 }// 找到设备列表temp=AdapterName;temp1=AdapterName;while ((*temp!='\0')||(*(temp-1)!='\0')){if (*temp=='\0') {memcpy(AdapterList,temp1,(temp-temp1)*2);temp1=temp+1;i++;}temp++;}// 显示适配器列表AdapterNum=i;for (i=0;i wprintf(L"\n%d- %s\n",i+1,AdapterList);printf("\n");}else //否则就是windows 9x,获取适配器名的方法同WinNT下{if(PacketGetAdapterNames(AdapterNamea,&AdapterLength)==FALSE){printf("Unable to retrieve the list of the adapters!\n");论文一个简易网络嗅探器的实现来自 return -1;}tempa=AdapterNamea;temp1a=AdapterNamea;while ((*tempa!='\0')||(*(tempa-1)!='\0')){if (*tempa=='\0') {memcpy(AdapterList,temp1a,tempa-temp1a);temp1a=tempa+1;i++;}tempa++;}AdapterNum=i;for (i=0;i printf("\n%d- %s\n",i+1,AdapterList);printf("\n");}下面这段代码就是让用户选择监听的网络适配器号:// 选择设备do {printf("Select the number of the adapter to open : ");scanf("%d",&Open);if (Open>AdapterNum) printf("\nThe number must be smaller than %d",AdapterNum); } while (Open>AdapterNum);然后,将所选择的设备打开,这里可以设置为“混杂”模式打开,也可以是“直接”模式打开。代码如下:// 打开设备lpAdapter = PacketOpenAdapter(AdapterList[Open-1]);// 当设备无法打开时,出示错误信息:if (!lpAdapter || (lpAdapter->hFile == INVALID_HANDLE_VALUE)){dwErrorCode=GetLastError();printf("Unable to open the adapter, Error Code : %lx\n",dwErrorCode); return -1;} 将网卡设置为“混杂”模式,代码如下:这里用到函数PacketSetHwFilter(LPADAPTER AdapterObject,ULONG Filter),它在到来的包上设置了一个硬件过滤器,如操作成功,返回TRUE。
AdapterObject是过滤器所在的网卡设备指针;过滤器的常量Filter定义在头文件ntddndis.h 中,包括有:•NDIS-PACKET-TYPE-PROMISCUOUS:设置混杂模式,每个到来的包都会被网卡接受;•NDIS-PACKET-TYPE-DIRECTED:只有直接到主机网卡的包才会被接受;•NDIS-PACKET-TYPE-BROADCAST:只接受广播包;•NDIS-PACKET-TYPE-MULTICAST:只接受到主机所在的组的多播包;•NDIS-PACKET-TYPE-ALL-MULTICAS:接受每个多播的包。// set the network adapter in promiscuous mode// 如果混杂模式设置失败,提示错误:if(PacketSetHwFilter(lpAdapter,NDIS_PACKET_TYPE_PROMISCUOUS)==FALSE){一个简易网络嗅探器的实现 来自: 书签论文网 。
6.《 网络攻击与防范实践》开题报告有资料的顶一下
网络攻击与防范技术研究毕业论文
随着全球科学技术的迅猛发展和信息技术的广泛应用,信息网络系统的安全性问题已经成为全社会关注的焦点,并且已成为涉及国家政治、军事、经济和文教等诸多领域的重要课题。网络攻击越来越猖獗,对网络安全造成了很大的威胁。本文主要讲述了进行网络攻击的目的、常用攻击方法、常用工具、入侵检测、安全扫描以及出现网络攻击的处理策略,并介绍了网络攻击中常用的网络监听和扫描器。
4,目 录
摘 要 5
关键字 5
Abstract 6
Key words 6
1 引言 7
1.1 网络安全的定义 7
1.2 计算机网络安全的内容 7
1.3网络攻击的目的 8
2 网络攻击的一般步骤 9
2.1 攻击的准备阶段 9
2.2 攻击的实施阶段 10
2.3攻击的善后工作 11
3 网络攻击常见的方法及措施 13
3.1 获取口令 13
3.1.1 获取口令的方法 13
3.1.2防御获取口令的措施 13
3.2 特洛伊木马程序 14
3.2.1 特洛伊木马程序简介 14
3.2.2 特洛伊木马服务端程序的植入方法 14
3.2.3 特洛伊木马程序的检测 15
3.2.4 特洛伊木马程序的清除 16
3.2.5 特洛伊木马程序的预防 17
3.3 网络监听 17
3.3.1 网络监听原理 18
3.3.2 网络监听的防范方法 18
3.3.3 检测网络监听的手段 19
3.4 缓冲区溢出攻击 20
3.4.1 攻击缓冲区溢出简介 20
3.4.2 缓冲区溢出攻击防范 21
3.5 拒绝服务攻击 22
3.5.1 DoS攻击的基本过程 22
3.5.2 分布式拒绝服务 22
3.5.3 拒绝服务攻击的防御 23
3.6 网络扫描与嗅探 24
3.6.1网络扫描的原理及方法 24
3.6.2 隐蔽扫描及其对策 25
3.6.3基于ICMP的网络扫描及其在操作系统之别中的应用 29
3.6.4 网络嗅探 30
3.6.5 欺骗攻击 31
4 入侵检测 36
4.1 入侵检测系统 36
4.1.1 入侵检测系统的主要功能 36
4.1.2 入侵检测系统的分类 36
4.1.3 入侵检测产品的选购原则 37
4.1.4 网络安全扫描技术 37
5 网络攻击的处理策略 46
5.1 发现入侵者 46
5.2 发现入侵后的对策 46
5.2.1 估计形势 46
5.2.2 采取措施 47
结 语 48
致 谢 49
参考文献 50
下载全文:
转载请注明出处众文网 » 网络嗅探实现毕业论文