欢迎来到天天文库
浏览记录
ID:18435085
大小:386.50 KB
页数:14页
时间:2018-09-17
《入侵实验二网络数据包的捕获及协议的简单分析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、湖南大学入侵检测技术实验报告实验二网络数据包的捕获及协议的简单分析一、实验目的网络数据包的捕获及协议的简单分析。网络数据包是基于网络的入侵检测系统的重要数据源,网络数据包的捕获是基于网络的入侵检测系统实现的第一步。通过该实验,熟悉并掌握Linux环境下基于Lipbcap的网络数据包的捕获方法,理解和掌握基于网络入侵检测系统的源数据的捕获、协议分析的基本原理和实现方法。能够熟练应用Libcap开发包中的函数完成网络环境下功能较为简单的网络捕获包和分析程序。二、实验内容1、学习libpcap开发包的功能,并在linux下配置好libpcap环境。2、在linux系统下基于
2、Libpcap编写C程序,实现对数据包的捕获、过滤和简单分析。三、了解libpcap编程Libpcap的抓包流程1.查找网络设备:目的是发现可用的网卡,实现的函数为pcap_lookupdev(),如果当前有多个网卡,函数就会返回一个网络设备名的指针列表。2.打开网络设备:利用上一步中的返回值,可以决定使用哪个网卡,通过函数pcap_open_live()打开网卡,返回用于捕捉网络数据包的秒数字。3.获得网络参数:这里是利用函数pcap_lookupnet(),可以获得指定网络设备的IP地址和子网掩码。4.编译过滤策略:Lipcap的主要功能就是提供数据包的过滤,函数
3、pcap_compile()来实现。5.设置过滤器:在上一步的基础上利用pcap_setfilter()函数来设置。6.利用回调函数,捕获数据包:函数pcap_loop()和pcap_dispatch()来抓去数据包,也可以利用函数pcap_next()和pcap_next_ex()来完成同样的工作。7.关闭网络设备:pcap_close()函数关系设备,释放资源。libpcap利用BPF来过滤数据包湖南大学入侵检测技术实验报告过滤数据包需要完成3件事:1.构造一个过滤表达式2.编译这个表达式3.应用这个过滤器基于Libpcap实现一个网络数据包嗅探器捕获所有流经本网
4、卡的数据包实现流程:1.查找网络设备2.打开网络设备3.查找设备信息4.输入过滤规则5.编译输入规则设置输入规则6.开始捕获数据包7.调用数据包分析模块8.输出MAC,IP,协议以及数据帧9.结束 一、libpcap安装需要以下四个安装包:先安装bison、flex、m4,最后安装libpcap第一步:解压:tar-xvfbison-2.4.1.tar.gz.gz//因为都是.tar.gz的压缩包,使用tar解压命令第二步:检查:./configure//检查计算机建立包所必须的完整性;根据需要改变默认的路径;激活/禁用编译程序中的各种选项;改变程序将要被安装的路径;
5、第三步:编译:(sudo)make//(有时候需要root权限)第四步:安装:(sudo)makeinstall//(有时候需要root权限)bison-2.4.1.tar.gz.gz、flex-2.5.35.tar.gz.gz、m4-1.4.13.tar.gz.gz都用上述方法安装,最后同样方法安装libpcap-1.5.3.tar.gz.gz最后将解压到的libpcap-1.5.3目录下的pcap目录复制到根目录下的/usr/include里,再将/usr/lib目录下的libpcap.so.1.5.3复制一份改名为libpcap.so.1放到/usr/lib。二
6、、实验代码标准的与上比对的简单实现代码:#include#includeintmain(intargc,char*argv[]){湖南大学入侵检测技术实验报告pcap_t*handle;/*会议手柄*/char*dev;/*嗅探装置*/charerrbuf[PCAP_ERRBUF_SIZE];/*错误字符串*/structbpf_programfp;/*编译过滤器*/charfilter_exp[]="port80";/*过滤器表达式*/bpf_u_int32mask;/*网络掩码*/bpf_u_int32net;/*IP*/stru
7、ctpcap_pkthdrheader;/*PCAP返回的头部*/constu_char*packet;/*实际的数据包*//*查找网络设备*/dev=pcap_lookupdev(errbuf);//如果当前有多个网卡,函数就会返回一个网络设备名的指针列表。if(dev==NULL){fprintf(stderr,"找不到默认的设备:%s",errbuf);return(2);}/*获得网络参数*/if(pcap_lookupnet(dev,&net,&mask,errbuf)==-1){//获得指定网络设备的IP地址和子网掩码fprintf(
此文档下载收益归作者所有