欢迎来到天天文库
浏览记录
ID:55952222
大小:174.50 KB
页数:7页
时间:2020-06-18
《网络攻击与防御实验2.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、计算机与通信工程学院天津理工大学计算机与通信工程学院实验报告2015至2016学年第一学期课程名称网络攻击与防御技术学号姓名20135632王远志专业班级计算机科学与技术2班实验实验名称网络攻防软件设计实验时间2015年11月21日5~6节主讲教师张健辅导教师张健分组人员及各自完成工作王远志进行试验整理报告实验目的:了解网络攻防中软件开发的一般方法。实验方式:采用某种高级语言进行网络攻防软件的设计。实验要求:以下题目选一个或多个并编程实现。(1)网络扫描器的设计。(主机扫描、端口扫描、操作系统探测、漏洞扫描)7计算机与
2、通信工程学院(2)网络嗅探器的设计。(3)远程控制软件的设计与实现。(4)防火墙的设计与实现。报告中包括程序原理、功能模块图及文字介绍、流程图、源代码(带注释),运行过程。实验设备:PC机实验分组:2人/组完成时间:2学时实验内容:网络嗅探器的设计嗅探器的设计原理:嗅探器作为一种网络通讯程序,也是通过对网卡的编程来实现网络通讯的,对网卡的编程也是使用通常的套接字(socket)方式来进行。但是,通常的套接字程序只能响应与自己硬件地址相匹配的或是以广播形式发出的数据帧,对于其他形式的数据帧比如已到达网络接口但却不是发给此
3、地址的数据帧,网络接口在验证投递地址并非自身地址之后将不引起响应,也就是说应用程序无法收取到达的数据包。而网络嗅探器的目的恰恰在于从网卡接收所有经过它的数据包,这些数据包即可以是发给它的也可以是发往别处的。显然,要达到此目的就不能再让网卡按通常的正常模式工作,而必须将其设置为混杂模式。网络技术与设备简介及监听原理:数据在网络上是以很小的称为帧(Frame)的单位传输的,帧由几部分组成,不同的部分执行不同的功能。帧通过特定的称为网络驱动程序的软件进行成型,然后通过网卡发送到网线上,通过网线到达它们的目的机器,在目的机器的
4、一端执行相反的过程。接收端机器的以太网卡捕获到这些帧,并告诉操作系统帧已到达,然后对其进行存储。就是在这个传输和接收的过程中,存在安全方面的问题。每一个在局域网(LAN)上的工作站都有其硬件地址,这些地址惟一地表示了网络上的机器。当用户发送一个数据包时,这些数据包就会发送到LAN上所有可用的机器。在一般情况下,网络上所有的机器都可以“听”到通过的流量,但对不属于自己的数据包则不予响应(如果某个工作站的网络接口处于混杂模式,那么它就可以捕获网络上所有的数据包和帧。Sniffor程序是一种利用以太网的特性把网络适配卡(NI
5、C,一般为以太网卡)置为(promiscuous)模式状态的工具,一旦网卡设置为这种模式,它就能接收传输在网络上的每一个信息包。普通的情况下,网卡只接收和自己的地址有关的信息包,即传输到本地主机的信息包。要使Sniffer能接收并处理这种方式的信息,系统需要支持BPF,Linux下需要支持SOCKET-PACKET。但一般情况下,网络硬件和TCP/IP堆栈不支持接收或者发送与本地计算机无关的数据包,所以,为了绕过标准的TCP/IP堆栈,网卡就必须设置为混杂模式。一般情况下,要激活这种方式,内核必须支持这种伪设备BPFi
6、lter,而且需要root权限来运行这种程序,所以Sniffer需要root身份安装,如果只是以本地用户的身份进入了系统,那么不可能嗅探到root的密码,因为不能运行Sniffer。基于Sniffer这样的模式,可以分析各种信息包并描述出网络的结构和使用的机器,由于它接收任何一个在同一网段上传输的数据包,所以也就存在着捕获密码、各种信息、秘密文档等一些没有加密的信息的可能性。这成为黑客们常用的扩大战果的方法,用来夺取其他主机的控制权。网络嗅探器源代码及其说明:#include7计算机与通信工程学
7、院/*windowssocket的头文件,系统定义的*/#include#include#include#include#pragmacomment(lib,"ws2_32.lib")/*链接API相关连的Ws2_32.lib静态库*/#defineMAX_HOSTNAME_LAN255#defineSIO_RCVALL_WSAIOW(IOC_VENDOR,1)#define MAX_ADDR_LEN 16 struct ipheade
8、r { unsigned char ip_hl:4; /*header length(报头长度)*/ unsigned char ip_v:4; /*version(版本)*/ unsigned char ip_tos; /*type os service服务类型*/ unsigned short int ip_len; /*to
此文档下载收益归作者所有