libpcap编程-编写自己的网络嗅探程序.pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:19 大小:424KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

libpcap编程-编写自己的网络嗅探程序.pdf

libpcap编程-编写自己的网络嗅探程序.pdf

预览

免费试读已结束,剩余 9 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

ProgrammingwithLibpcap--SniffingtheNetworkAuthor:LuisMartinGarcia=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-|**你将会学到什么?**||1.数据包捕获的原则;||2.如何利用libpcap捕获数据包;||3.关于我们何时需要编写数||据包捕获程序等方面.||||**你应该所掌握的...**||1.C语言程序设计;||2.网络的基本工作原理和OSI的标||准模型;||3.了解常见的协议,比如以太协仪,||TCP/IP协议,或者ARP协议。|=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-******概要*********************************************************************自从1969年第一条电子信息带着研究人员的期望成功地通过阿葩网(ARPANET)进行了有史以来最便捷的信息传递方式,计算机网络已经发生了巨大的变化。以前网络(此处及以下均指计算机网络)规模小,结构简单,利用一些简单的诊断工具通常便可以解决网络问题。但随着网络的不断复杂化,对复杂网络的管理和检测的需求日益增加。现如今,计算机网络不仅规模大而且通常有着各种系统利用大量不同种类的协议所进行的通信。这种复杂的局面产生了更多的可以监视和检测网络通信的智能化工具。今天,在任何一个网络管理员的管理工具箱中都有着这样的一个工具,那就是嗅探器(sniffer)。嗅探器,也称做数据包分析器,是一些拥有拦截网络传输数据的能力的程序。这些程序在网络管理人员和黑帽社区之中相当流行,因为他们既可被环绕于正义的光环也可沦为邪恶的爪牙。在本文中,我们将阐述数据包捕获的主要原则和方法并且为大家介绍libpcap(一个开源并可移植的数据捕获库,著名的网络工具tcpdump,dsniff,kismet,snort和ettercap的核心便有libpcap库中的各种API)。******数据包捕获**************************************************************数据包捕获是在数据传输的网络上进行数据收集的一种行为。嗅探器是捕获数据包的最佳实现,但是许多其它种类的应用需要通过网卡才能完成数据包的捕获,它们包括网络数据统计工具,入侵检测系统,端口锁定守护进程,密码嗅探器,ARP注入攻击,路由检测器等等。首先让我们大致了解一下数据包捕获在以太网络中的工作原理。每当一个网卡收到一个以太帧,它就会检测该帧的目的网卡地址(MACaddress)是否与自己的网卡地址相符(相同)。如果相符,网卡便产生一个中断请求,该中断请求将由负责处理此类中断的系统网卡驱动程序处理。该驱动给接收到的数据打上时间戳,然后将数据从网卡缓冲区复制到系统内核空间的一块内存上。接着系统通过查看以太数据帧头的以太类型区域判断接收到的数据包是属于哪一种类型继而将该包中的数据传递给协议堆栈由相应的协议处理机制处理。大多数情况下数据包包含一个IPv4数据报,如此,IPv4协议处理机制将被激活。这种处理机制将进行一系列验证行为来确保比如数据包没有遭到损坏,本机的确是该包的目的地等等。当所有验证均通过后,IP头被移除,剩下的部分再被传递到下一层协议处理机制(可能是TCP或者UDP)。这种处理过程不断重复直到数据到达由用户空间的应用程序来处理的应用层。当我们使用嗅探器时,数据包将完成上述的相同过程,但除了一个地方:网络驱动程序也将拷贝接收到的或是发出的任何数据到内核中名叫数据包过滤器的部分。而正是数据包过滤器使数据包的捕获成为可能。默认的情况下,数据包过滤器允许任意包通过,但是,我们稍候将会看到它们通常提供了高级的过滤能力。由于数据包捕获可能涉及到网络安全,因此多数操作系统要求必须要有管理员的权限才能使用数据过滤的这一项功能。图1阐释了捕获数据包的过程。******Libpcap*****************************************************************Libpcap是一个提供了针对网络数据包捕获系统的高层接口的开源函数库。它是在1994年由麦克坎尼(McCanne),莱乐士(Leres)和杰科宾森(Jacobson)创建的。当时他们是美国加洲柏克利大学劳恩斯国家实验室的研究生,而Libpcap正是他们研究和改善TCP和英特网网关功能的一部分成果。Libpcap作者的主要愿望是开创一个独立平台的应用程序接口(