【源码中的策略模式】【vb 力学 结构 源码】【千赢国际源码】snort源码分析

来源:小品屋网站源码

1.网络入侵的码分名词解释
2.sniffer状态
3.网络入侵检测系统之Snort(一)--snort概览
4.黑客工具软件大全100套
5.Snort主要指令
6.微步荐读:19款最好用的免费安全工具,每个安全岗几乎都用得上

snort源码分析

网络入侵的码分名词解释

       1, 入侵检测系统(IDS)被定义为一种计算机和网络资源的恶意使用行为识别和响应处理的系统。这包括系统外部的码分入侵和内部用户的非授权行为,旨在确保计算机系统的码分安全,并能够及时发现并报告系统中未授权或异常现象,码分是码分源码中的策略模式一种检测计算机网络中违反安全策略行为的通用技术。入侵检测方法众多,码分例如基于专家系统的码分入侵检测方法和基于神经网络的入侵检测方法等。目前,码分一些入侵检测系统已经在应用层入侵检测中得到实施。码分

       入侵检测通过执行以下任务来实现:

       1. 监视和分析用户及系统活动;

       2. 审计系统构造和弱点;

       3. 识别反映已知攻击的码分活动模式,并向相关人士报警;

       4. 统计分析异常行为模式;

       5. 评估重要系统和数据文件的码分完整性;

       6. 管理操作系统的审计跟踪,并识别用户违反安全策略的码分行为。

       入侵检测系统的码分典型代表是ISS公司(国际互联网安全系统公司)的RealSecure。它是码分计算机网络上自动实时入侵检测和响应系统。它无妨碍地监控网络传输并自动检测和响应可疑行为,在系统受到危害之前截取和响应安全漏洞和内部误用,从而最大程度地为企业网络提供安全。

       入侵检测系统目前存在的问题:

       1. 现有的入侵检测系统检测速度远小于网络传输速度,导致误报率和漏报率;

       2. 入侵检测产品和其它网络安全产品结合问题,即期间的信息交换,共同协作发现攻击并阻击攻击;

       3. 基于网络的入侵检测系统对加密的数据流及交换网络下的数据流不能进行检测;

       4. 入侵检测系统体系结构问题。

       发展趋势:

       1. 基于代理的分布协作式入侵检测与通用入侵检测结合;

       2. 入侵检测标准的研究,目前缺乏统一标准;

       3. 宽带高速网络实时入侵检测技术;

       4. 智能入侵检测;

       5. 入侵检测的度量。

       2, 在年,Martin Roesch先生用C语言开发了开放源代码(Open Source)的入侵检测系统Snort。直至今天,Snort已发展成为一个多平台(Multi-Platform),实时(Real-Time)流量分析,网络IP数据包(Packet)记录等特性的强大的网络入侵检测/防御系统(Network Intrusion Detection/Prevention System),即NIDS/NIPS。Snort符合通用公共许可(GPL——GUN General Pubic License),在网上可以通过免费下载获得Snort,并且只需要几分钟就可以安装并开始使用它。snort基于libpcap。

       Snort系统组成:Snort由三个重要的子系统构成:数据包解码器,检测引擎,日志与报警系统。

       Snort有三种工作模式:嗅探器、数据包记录器、网络入侵检测系统。嗅探器模式仅仅是从网络上读取数据包并作为连续不断的流显示在终端上。数据包记录器模式把数据包记录到硬盘上。网络入侵检测模式是最复杂的,而且是可配置的。我们可以让snort分析网络数据流以匹配用户定义的一些规则,并根据检测结果采取一定的动作。

       3, SPAN技术主要是用来监控交换机上的数据流,大体分为两种类型,本地SPAN和远程SPAN。本地Switched Port Analyzer (SPAN)和远程SPAN (RSPAN),实现方法上稍有不同。利用SPAN技术我们可以简单地把交换机上某些想要被监控端口(以下简称受控端口)的数据流COPY或MIRROR一份,发送给连接在监控端口上的流量分析仪,比如CISCO的IDS或是装了SNIFFER工具的PC。受控端口和监控端口可以在同一台交换机上(本地SPAN),也可以在不同的vb 力学 结构 源码交换机上(远程SPAN)。

       SPAN会话是指一组受控端口与一个监控端口之间的数据流。可以同时对多个端口的进入流量或是一个端口的外出流量进行监控,也可以对VLAN内所有端口的进入流量进行监控,但不能同时对多个端口的外出流量及VLAN的外出流量进行监控,可以对处于关闭状态的端口设置SPAN,但此时的SPAN会话是非活动的,但只要相关的接口被打开,SPAN就会变为活动的。

       监控端口最好是>=受控端口的带宽,否则可能会出现丢包的情况。

       SPAN的流量是指使用本地SPAN可以监控所有的网络流量,包括multicast、bridge protocol data unit (BPDU),和CDP、VTP、DTP、STP、PagP、LACP packets。 RSPAN不能监控二层协议。

       流量类型被监控的流量类型分为三种,Receive (Rx) SPAN 受控端口的接收流量,Transmit (Tx) SPAN 受控端口的发送流量,Both 一个受控端口的接收和发送流量。

       SPAN会话的源端口(也就是monitored port-即受控端口)受控端口可以是实际的物理端口、VLAN、以太通道端口组EtherChannel,物理端口可以在不同的VLAN中,受控端口如果是VLAN则包括此VLAN中的所以物理端口,受控端口如果是以太通道则包括组成此以太通道组的所有物理端口,如果受控端口是一个TRUNK干道端口,则此TRUNK端口上承载的所有VLAN流量都会受到监控,也可以使用filter vlan 参数进行调整,只对filter vlan 中指定的VLAN数据流量做监控。

       SPAN会话的目的端口(也就是monitoring port-即监控端口)监控端口只能是单独的一个实际物理端口,一个监控端口同时只能在一个SPAN会话中使用,监控端口不参与其它的二层协议如:Layer 2 protocols Cisco Discovery Protocol (CDP), VLAN Trunk Protocol (VTP), Dynamic Trunking Protocol (DTP), Spanning Tree Protocol (STP), Port Aggregation Protocol (PagP), Link Aggregation Control Protocol (LACP).

       缺省情况下监控端口不会转发除SPAN Session以外的任何其它的数据流,也可以通过设置ingress参数,打开监控端口的二层转发功能,比如当连接CISCO IDS的时候会有这种需求,此时IDS不仅要接收SPAN Session的数据流,IDS本身在网络中还会与其它设备有通讯流量,所以要打开监控端口的二层转发功能。

       反射端口只在RSPAN中使用,与RSPAN中的受控端口在同一台交换机上,是用来将本地的受控端口流量转发到RSPAN中在另一台交换机上的远程监控端口的方法,反射端口也只能是一个实际的物理端口,它不属于任何VLAN(It is invisible to all VLANs)。

       RSPAN中还要使用一个专用的VLAN来转发流量,反射端口会使用这个专用VLAN将数据流通过TRUNK端口发送给其它的交换机,远程交换机再通过此专用VLAN将数据流发送到监控端口上的分析仪。

       关于RSPAN VLAN的创建,所有参与RSPAN的交换机应在同一个VTP域中,不能用VLAN 1,也不能用-,这是千赢国际源码保留的(reserved for Token Ring and FDDI VLANs),如果是2-的标准VLAN,则只要在VTP Server上创建即可,其它的交换机会自动学到,如果是-的扩展VLAN,则需要 在所有交换机上创建此专用VLAN.

       反射端口最好是>=受控端口的带宽,否则可能会出现丢包的情况。

       基于VLAN的SPAN只能监控VLAN中所有活动端口接收的流量(only received (Rx) traffic),如果监控端口属于此VLAN,则此端口不在监控范围内,VSPAN只监控进入交换机的流量,不对VLAN接口上的路由数据做监控。

       SPAN和RSPAN与其他特性的互操作性

       Routing--SPAN不监控VLAN间的路由数据;

       STP--监控端口和反射端口不会参与STP,但SPAN对受控端口的STP没有影响;

       CDP--监控端口不参与CDP;

       VTP--RSPAN VLAN可以被修剪pruning;

       VLAN and trunking--可以修改受控端口、监控端口和反射端口的VLAN和TRUNK设置,受控端口的改变会立即生效,而监控端口和反射端口则要在从SPAN中去除后才会生效;

       EtherChannel--整个以太通道组可以做为受控端口使用,如果一个属于某个以太通道组的物理端口被配成了受控端口、监控端口或反射端口,则此端口会自动从以太通道组去除,当SPAN删除后,它又会自动加入原以太通道组;

       QoS--由于受QoS的策略影响,监控端口上收到的数据流会与受控端口实际的数据流不同,比如DSCP值被修改等;

       Multicast--SPAN可以监控组播的数据

sniffer状态

       sniffer是窃听的意思

       应该就是窃听状态

       sniffers(嗅探器)几乎和internet有一样久的历史了.Sniffer是一种常用的收集有用数据方法,这些数据可以是用户的帐号和密码,可以是一些商用机密数据等等。随着Internet及电子商务的日益普及,Internet的安全也越来越受到重视。在Internet安全隐患中扮演重要角色之一的Sniffer以受到越来越大的关注,所以今天我要向大家介绍一下介绍Sniffer以及如何阻止sniffer。

       大多数的黑客仅仅为了探测内部网上的主机并取得控制权,只有那些"雄心勃勃"的黑客,为了控制整个网络才会安装特洛伊木马和后门程序,并清除记录。他们经常使用的手法是安装sniffer。

        在内部网上,黑客要想迅速获得大量的账号(包括用户名和密码),最为有效的手段是使用 "sniffer" 程序。这种方法要求运行Sniffer 程序的主机和被监听的主机必须在同一个以太网段上,故而在外部主机上运行sniffer是没有效果的。再者,必须以root的身份使用sniffer 程序,才能够监听到以太网段上的数据流。谈到以太网sniffer,就必须谈到以太网sniffing。

       那么什么是以太网sniffer呢?

       以太网sniffing是指对以太网设备上传送的数据包进行侦听,发现感兴趣的包。如果发现符合条件的包,就把它存到一个log文件中

       去。通常设置的这些条件是包含字"username"或"password"的包。它的目的是将网络层放到promiscuous模式,从而能干些事情。

       Promiscuous模式是指网络上的所有设备都对总线上传送的数据进行侦听,并不仅仅是它们自己的数据。根据第二章中有关对以太网的工作原理的基本介绍,可以知道:一个设备要向某一目标发送数据时,它是对以太网进行广播的。一个连到以太网总线上的设备在任何时间里都在接受数据。不过只是android 6.0设置 源码将属于自己的数据传给该计算机上的应用程序。

        利用这一点,可以将一台计算机的网络连接设置为接受所有以太

       网总线上的数据,从而实现sniffer。

        sniffer通常运行在路由器,或有路由器功能的主机上。这样就能对大量的数据进行监控。sniffer属第二层次的攻击。通常是攻击者已经进入了目标系统,然后使用sniffer这种攻击手段,以便得到更多的信息。

        sniffer除了能得到口令或用户名外,还能得到更多的其他信息,比如一个其他重要的信息,在网上传送的金融信息等等。sniffer几乎能得到任何以太网上的传送的数据包。黑客会使用各种方法,获得系统的控制权并留下再次侵入的后门,以保证sniffer能够执行。在Solaris 2.x平台上,sniffer 程序通常被安装在/usr/bin 或/dev目录下。黑客还会巧妙的修改时间,使得sniffer程序看上去是和其它系统程序同时安装的。

       大多数以太网sniffer程序在后台运行,将结果输出到某个记录文件中。黑客常常会修改ps程序,使得系统管理员很难发现运行的sniffer程序。

        以太网sniffer程序将系统的网络接口设定为混合模式。这样,它就可以监听到所有流经同一以太网网段的数据包,不管它的接受者或发送者是不是运行sniffer的主机。 程序将用户名、密码和其它黑客感兴趣的数据存入log文件。黑客会等待一段时间 ----- 比如一周后,再回到这里下载记录文件。

       讲了这么多,那么到底我们可以用什么通俗的话来介绍sniffer呢?

       计算机网络与电话电路不同,计算机网络是共享通讯通道的。共享意味着计算机能够接收到发送给其它计算机的信息。捕获在网络中传输的数据信息就称为sniffing(窃听)。

        以太网是现在应用最广泛的计算机连网方式。以太网协议是在同一回路向所有主机发送数据包信息。数据包头包含有目标主机的正确地址。一般情况下只有具有该地址的主机会接受这个数据包。如果一台主机能够接收所有数据包,而不理会数据包头内容,这种方式通常称为"混杂" 模式。

        由于在一个普通的网络环境中,帐号和口令信息以明文方式在以太网中传输, 一旦入侵者获得其中一台主机的root权限,并将其置于混杂模式以窃听网络数据,从而有可能入侵网络中的所有计算机。

       一句话,sniffer就是一个用来窃听的黑客手段和工具。

       二、sniffer的工作原理

        通常在同一个网段的所有网络接口都有访问在物理媒体上传输的所有数据的能力,而每个网络接口都还应该有一个硬件地址,鱼虾蟹玩法源码该硬件地址不同于网络中存在的其他网络接口的硬件地址,同时,每个网络至少还要一个广播地址。(代表所有的接口地址),在正常情况下,一个合法的网络接口应该只响应这样的两种数据帧:

        1、帧的目标区域具有和本地网络接口相匹配的硬件地址。

        2、帧的目标区域具有"广播地址"。

        在接受到上面两种情况的数据包时,nc通过cpu产生一个硬件中断,该中断能引起操作系统注意,然后将帧中所包含的数据传送给系统进一步处理。

        而sniffer就是一种能将本地nc状态设成(promiscuous)状态的软件,当nc处于这种"混杂"方式时,该nc具备"广播地址",它对所有遭遇到的每一个帧都产生一个硬件中断以便提醒操作系统处理流经该物理媒体上的每一个报文包。(绝大多数的nc具备置成 promiscuous方式的能力)

        可见,sniffer工作在网络环境中的底层,它会拦截所有的正在网络上传送的数据,并且通过相应的软件处理,可以实时分析这些数据的内容,进而分析所处的网络状态和整体布局。值得注意的是:sniffer是极其安静的,它是一种消极的安全攻击。

        通常sniffer所要关心的内容可以分成这样几类:

        1、口令

        我想这是绝大多数非法使用sniffer的理由,sniffer可以记录到明文传送的userid和passwd.就算你在网络传送过程中使用了加密的数据,sniffer记录的数据一样有可能使入侵者在家里边吃肉串边想办法算出你的算法。

        2、金融帐号

        许多用户很放心在网上使用自己的信用卡或现金帐号,然而sniffer可以很轻松截获在网上传送的用户姓名、口令、信用卡号码、截止日期、帐号和pin.

        3、偷窥机密或敏感的信息数据

        通过拦截数据包,入侵者可以很方便记录别人之间敏感的信息传送,或者干脆拦截整个的email会话过程。

        4、窥探低级的协议信息。

        这是很可怕的事,我认为,通过对底层的信息协议记录,比如记录两台主机之间的网络接口地址、远程网络接口ip地址、ip路由信息和tcp连接的字节顺序号码等。这些信息由非法入侵的人掌握后将对网络安全构成极大的危害,通常有人用sniffer收集这些信息只有一个原因:他正在进行一次欺诈,(通常的ip地址欺诈就要求你准确插入tcp连接的字节顺序号,这将在以后整理的文章中指出)如果某人很关心这个问题,那么sniffer对他来说只是前奏,今后的问题要大得多。(对于高级的hacker而言,我想这是使用sniffer的唯一理由吧)

       二.sniffer的工作环境

       snifffer就是能够捕获网络报文的设备。嗅探器的正当用处在于分析网络的流量,以便找出所关心的网络中潜在的问题。例如,假设网络的某一段运行得不是很好,报文的发送比较慢,而我们又不知道问题出在什么地方,此时就可以用嗅探器来作出精确的问题判断。

       嗅探器在功能和设计方面有很多不同。有些只能分析一种协议,而另一些可能能够分析几百种协议。一般情况下,大多数的嗅探器至少能够分析下面的协议:

       1.标准以太网

       2.TCP/IP

       3.IPX

       4.DECNet

       嗅探器通常是软硬件的结合。专用的嗅探器价格非常昂贵。另一方面,免费的嗅探器虽然不需要花什么钱,但得不到什么支持。

       嗅探器与一般的键盘捕获程序不同。键盘捕获程序捕获在终端上输入的键值,而嗅探器则捕获真实的网络报文。嗅探器通过将其置身于网络接口来达到这个目的——例如将以太网卡设置成杂收模式。(为了理解杂收模式是怎么回事,先解释局域网是怎么工作的)。

       数据在网络上是以很小的称为帧(Ftame)的单位传输的帧由好几部分组成,不同的部分执行不同的功能。(例如,以太网的前个字节存放的是源和目的的地址,这些位告诉网络:数据的来源和去处。以太网帧的其他部分存放实际的用户数据、TCP/IP的报文头或IPX报文头等等)。

       帧通过特定的称为网络驱动程序的软件进行成型,然后通过网卡发送到网线上。通过网线到达它们的目的机器,在目的机器的一端执行相反的过程。接收端机器的以太网卡捕获到这些帧,并告诉操作系统帧的到达,然后对其进行存储。就是在这个传输和接收的过程中,嗅探器会造成安全方面的问题。

       每一个在LAN上的工作站都有其硬件地址。这些地址唯一地表示着网络上的机器(这一点于Internet地址系统比较相似)。当用户发送一个报文时,这些报文就会发送到LAN上所有可用的机器。

       在一般情况下,网络上所有的机器都可以“听”到通过的流量,但对不属于自己的报文则不予响应(换句话说,工作站A不会捕获属于工作站B的数据,而是简单的忽略这些数据)。

       如果某在工作站的网络接口处于杂收模式,那么它就可以捕获网络上所有的报文和帧,如果一个工作站被配置成这样的方式,它(包括其软件)就是一个嗅探器。

       嗅探器可能造成的危害:

       1.嗅探器能够捕获口令

       2.能够捕获专用的或者机密的信息

       3.可以用来危害网络邻居的安全,或者用来获取更高级别的访问权限

       事实上,如果你在网络上存在非授权的嗅探器就以为着你的系统已经暴露在别人面前了。(大家可以试试天行2的嗅探功能)

       一般我们只嗅探每个报文的前到个字节。用户名和口令都包含在这一部分中,这是我们关心的真正部分。工人,也可以嗅探给定接口上的所有报文,如果有足够的空间进行存储,有足够的那里进行处理的话,将会发现另一些非常有趣的东西……

       简单的放置一个嗅探器宾将其放到随便什么地方将不会起到什么作用。将嗅探器放置于被攻击机器或网络附近,这样将捕获到很多口令,还有一个比较好的方法就是放在网关上。如果这样的话就能捕获网络和其他网络进行身份鉴别的过程。这样的方式将成倍地增加我们能够攻击的范围。

       三.谁会使用sniffers

       可能谁都回知道谁会使用sniffer,但是并不是每个使用它的人都是网络高手,因为现在有很多的sniffer都成了傻瓜似的了,前段时间用的最多的不外乎oicq sniffer。我想那些喜欢查好友ip的朋友都应该记得它吧。呵呵,我都使用过它,现在当然不用了啊!

       当然系统管理员使用sniffer来分析网络信息交通并且找出网络上何处发生问题。一个安全管理员可以同时用多种sniffer, 将它们放置在网络的各处,形成一个入侵警报系统。对于系统管理员来说sniffer是一个非常好的工具,但是它同样是一个经常被黑客使用的工具.骇客安装sniffer以获得用户名和账号,信用卡号码,个人信息,和其他的信息可以导致对你或是你的公司的极大危害如果向坏的方面发展。当它们得到这些信息后,骇客将使用密码来进攻其他的internet 站点甚至倒卖信用卡号码。

       三.sniffer是如何在网络上实施的

       谈这个问题之前还应该先说一下Ethernet的通讯。通常在同一个网段的所有网络接口都有访问在媒体上传输的所有数据的能力,而每个网络接口都还应该有一个硬件地址,该硬件地址不同于网络中存在的其它网络接口的硬件地址,同时,每个网络至少还要一个广播地址。在正常情况下,一个合法的网络接口应该只响应这样的两种数据帧:

        1�帧的目标区域具有和本地网络接口相匹配的硬件地址。

        2�帧的目标区域具有“广播地址”。

        在接受到上面两种情况的数据包时,网卡通过cpu产生一个硬件中断。该中断能引起操作系统注意,然后将帧中所包含的数据传送给系统进一步处理。而sniffer就是一种能将本地网卡状态设成杂乱模式(promiscuous Mode)的软件。当网卡处于杂乱模式时,该网卡具备“广播地址”,它对所有遇到的每一个帧都产生一个硬件中断以提醒操作系统处理每一个报文包。(绝大多数的网卡具备设置成杂乱模式的能力。

        可见,sniffer工作在网络环境中的底层,它会拦截所有的正在网络上传送的数据。通过相应的软件处理,可以实时分析这些数据的内容,进而分析所处的网络状态和整体布局。值得注意的是:sniffer是极其安静的,它是一种消极的安全攻击。

       四.哪里可以得到sniffer

       我们讲的sniffer,主要是在unix系统下运用的,至于那些oicq sniffer就不在我们讨论的范围。

       Sniffer是黑客们最常用的入侵手段之一。你可以在经过允许的网络中运行sniffer,了解它是如何有效地危及本地机器安全。

        Sniffer可以是硬件,也可以是软件。现在品种最多,应用最广的是软件Sniffer,绝大多数黑客们用的也是软件Sniffer。

        以下是一些也被广泛用于调试网络故障的sniffer工具:

        (一).商用sniffer:

        1. Network General.

        Network General开发了多种产品。最重要的是Expert Sniffer,它不仅仅可以sniff,还能够通过高性能的专门系统发送/接收数据包,帮助诊断故障。还有一个增强产品"Distrbuted Sniffer System"可以将UNIX工作站作为sniffer控制台,而将sniffer agents(代理)分布到远程主机上。

        2. Microsoft's Net Monitor

        对于某些商业站点,可能同时需要运行多种协议--NetBEUI、IPX/SPX、TCP/IP、.3和SNA等。这时很难找到一种sniffer帮助解决网络问题,因为许多sniffer往往将某些正确的协议数据包当成了错误数据包。Microsoft的Net Monitor(以前叫Bloodhound)可以解决这个难题。它能够正确区分诸如Netware控制数据包、NT NetBios名字服务广播等独特的数据包。(etherfind只会将这些数据包标识为类型的广播数据包。)这个工具运行在MS Windows 平台上。它甚至能够按MAC地址(或主机名)进行网络统计和会话信息监视。只需简单地单击某个会话即可获得tcpdump标准的输出。过滤器设置也是最为简单的,只要在一个对话框中单击需要监视的主机即可。

        (二).免费软件sniffer

        1. Sniffit由Lawrence Berkeley 实验室开发,运行于Solaris、SGI和Linux等平台。可以选择源、目标地址或地址集合,还可以选择监听的端口、协议和网络接口等。这个SNIFFER默认状态下只接受最先的个字节的信息包,这对于一次登陆会话进程刚刚好。

        2. SNORT:这个SNIFFER有很多选项供你使用并可移植性强,可以记录一些连接信息,用来跟踪一些网络活动。

        3. TCPDUMP:这个SNIFFER很有名,linux,FREEBSD还搭带在系统上,是一个被很多UNIX高手认为是一个专业的网络管理工具,记得以前TsutomuShimomura(应该叫下村侵吧)就是使用他自己修改过的TCPDUMP版本来记录了KEVINMITNICK攻击他系统的记录,后来就配合FBI抓住了KEVINMITNICK,后来他写了一文:使用这些LOG记录描述了那次的攻击,HowMitnickhackedTsutomuShimomurawithanIPsequenceattack

       ( /~lspitz/snoop.html

       (四).Linux下的sniffer工具

       Linux下的sniffer工具,我推荐Tcpdump。

       [1].tcpdump的安装

       在linux下tcpdump的安装十分简单,一般由两种安装方式。一种是以rpm包的形式来进行安装。另外一种是以源程序的形式安装。

        1. rpm包的形式安装

        这种形式的安装是最简单的安装方法,rpm包是将软件编译后打包成二进制的格式,通过rpm命令可以直接安装,不需要修改任何东西。以超级用户登录,使用命令如下:

        #rpm -ivh tcpdump-3_4a5.rpm

        这样tcpdump就顺利地安装到你的linux系统中。怎么样,很简单吧。

        2. 源程序的安装

        既然rpm包的安装很简单,为什么还要采用比较复杂的源程序安装呢?其实,linux一个最大的诱人之处就是在她上面有很多软件是提供源程序的,人们可以修改源程序来满足自己的特殊的需要。所以我特别建议朋友们都采取这种源程序的安装方法。

        · 第一步 取得源程序 在源程序的安装方式中,我们首先要取得tcpdump的源程序分发包,这种分发包有两种 形式,一种是tar压缩包(tcpdump-3_4a5.tar.Z),另一种是rpm的分发包(tcpdump-3_4a5.src.rpm)。这两种 形式的内容都是一样的,不同的仅仅是压缩的方式.tar的压缩包可以使用如下命令解开:

        #tar xvfz tcpdump-3_4a5.tar.Z

        rpm的包可以使用如下命令安装:

        #rpm -ivh tcpdump-3_4a5.src.rpm

        这样就把tcpdump的源代码解压到/usr/src/redhat/SOURCES目录下.

        · 第二步 做好编译源程序前的准备活动

        在编译源程序之前,最好已经确定库文件libpcap已经安装完毕,这个库文件是tcpdump软件所需的库文件。同样,你同时还要有一个标准的c语言编译器。在linux下标准的c 语言编译器一般是gcc。 在tcpdump的源程序目录中。有一个文件是Makefile.in,configure命令就是从Makefile.in文件中自动产生Makefile文件。在Makefile.in文件中,可以根据系统的配置来修改BINDEST 和 MANDEST 这两个宏定义,缺省值是

        BINDEST = @sbindir @

        MANDEST = @mandir @

        第一个宏值表明安装tcpdump的二进制文件的路径名,第二个表明tcpdump的man 帮助页的路径名,你可以修改它们来满足系统的需求。

        · 第三步 编译源程序

        使用源程序目录中的configure脚本,它从系统中读出各种所需的属性。并且根据Makefile.in文件自动生成Makefile文件,以便编译使用.make 命令则根据Makefile文件中的规则编译tcpdump的源程序。使用make install命令安装编译好的tcpdump的二进制文件。

        总结一下就是:

        # tar xvfz tcpdump-3_4a5.tar.Z

        # vi Makefile.in

        # . /configure

        # make

        # make install

       [2].Tcpdump的使用

        tcpdump采用命令行方式,它的命令格式为:

        tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ]

        [ -i 网络接口 ] [ -r 文件名] [ -s snaplen ]

        [ -T 类型 ] [ -w 文件名 ] [表达式 ]

        1. tcpdump的选项介绍

        -a 将网络地址和广播地址转变成名字;

        -d 将匹配信息包的代码以人们能够理解的汇编格式给出;

        -dd 将匹配信息包的代码以c语言程序段的格式给出;

        -ddd 将匹配信息包的代码以十进制的形式给出;

        -e 在输出行打印出数据链路层的头部信息;

        -f 将外部的Internet地址以数字的形式打印出来;

        -l 使标准输出变为缓冲行形式;

        -n 不把网络地址转换成名字;

        -t 在输出的每一行不打印时间戳;

        -v 输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息;

        -vv 输出详细的报文信息;

        -c 在收到指定的包的数目后,tcpdump就会停止;

        -F 从指定的文件中读取表达式,忽略其它的表达式;

        -i 指定监听的网络接口;

        -r 从指定的文件中读取包(这些包一般通过-w选项产生);

        -w 直接将包写入文件中,并不分析和打印出来;

        -T 将监听到的包直接解释为指定的类型的报文,常见的类型有rpc (远程过程 调用)和snmp(简单网络管理协议;)

        2. tcpdump的表达式介绍

        表达式是一个正则表达式,tcpdump利用它作为过滤报文的条件,如果一个报文满足表达式的条件,则这个报文将会被捕获。如果没有给出任何条件,则网络上所有的信息包将会被截获。

        在表达式中一般如下几种类型的关键字,一种是关于类型的关键字,主要包括host,net,port, 例如 host ...2,指明 ...2是一台主机,net .0.0.0 指明 .0.0.0是一个网络地址,port 指明端口号是。如果没有指定类型,缺省的类型是host.

        第二种是确定传输方向的关键字,主要包括src , dst ,dst or src, dst and src ,这些关键字指明了传输的方向。举例说明,src ...2 ,指明ip包中源地址是...2 , dst net .0.0.0 指明目的网络地址是.0.0.0 。如果没有指明方向关键字,则缺省是src or dst关键字。

        第三种是协议的关键字,主要包括fddi,ip ,arp,rarp,tcp,udp等类型。Fddi指明是在FDDI(分布式光纤数据接口网络)上的特定的网络协议,实际上它是"ether"的别名,fddi和ether具有类似的源地址和目的地址,所以可以将fddi协议包当作ether的包进行处理和分析。其他的几个关键字就是指明了监听的包的协议内容。如果没有指定任何协议,则tcpdump将会监听所有协议的信息包。

        除了这三种类型的关键字之外,其他重要的关键字如下:gateway, broadcast,less,greater,还有三种逻辑运算,取非运算是 'not ' '! ', 与运算是'and','&&';或运算 是'or' ,'';

        这些关键字可以组合起来构成强大的组合条件来满足人们的需要,下面举几个例子来说明。

        (1)想要截获所有...1 的主机收到的和发出的所有的数据包:

        #tcpdump host ...1

        (2) 想要截获主机...1 和主机...2 或...3的通信,使用命令:(在命令行中适用括号时,一定要

        #tcpdump host ...1 and \ (...2 or ...3 \)

        (3) 如果想要获取主机...1除了和主机...2之外所有主机通信的ip包,使用命令:

        #tcpdump ip host ...1 and ! ...2

        (4)如果想要获取主机...1接收或发出的telnet包,使用如下命令:

        #tcpdump tcp port host ...1

        3. tcpdump 的输出结果介绍

        下面我们介绍几种典型的tcpdump命令的输出信息

        (1) 数据链路层头信息

        使用命令#tcpdump --e host ice

        ice 是一台装有linux的主机,她的MAC地址是0::::AF:1A

        H是一台装有SOLARIC的SUN工作站,它的MAC地址是8:0:::5B:;上一条命令的输出结果如下所示:

       ::. eth0 < 8:0:::5b: 0::::af:1a ip : h. > ice.telne

       t 0:0(0) ack win (DF)

        分析:::是显示的时间, 是ID号,eth0 <表示从网络接口eth0 接受该数据包,eth0 >表示从网络接口设备发送数据包, 8:0:::5b:是主机H的MAC地址,它表明是从源地址H发来的数据包. 0::::af:1a是主机ICE的MAC地址,表示该数据包的目的地址是ICE . ip 是表明该数据包是IP数据包, 是数据包的长度, h. > ice.telnet 表明该数据包是从主机H的端口发往主机ICE的TELNET()端口. ack 表明对序列号是的包进行响应. win 表明发送窗口的大小是.

        (2) ARP包的TCPDUMP输出信息

        使用命令#tcpdump arp

        得到的输出结果是:

        ::. eth0 > arp who-has route tell ice (0::::af:1a)

        ::. eth0 < arp reply route is-at 0::::: (0::::af:1a)

        分析: ::是时间戳, 是ID号, eth0 >表明从主机发出该数据包, arp表明是ARP请求包, who-has route tell ice表明是主机ICE请求主机ROUTE的MAC地址。 0::::af:1a是主机ICE的MAC地址。

        (3) TCP包的输出信息

        用TCPDUMP捕获的TCP包的一般输出信息是:

        src > dst: flags data-seqno ack window urgent options

        src > dst:表明从源地址到目的地址, flags是TCP包中的标志信息,S 是SYN标志, F (FIN), P (PUSH) , R (RST) "." (没有标记); data-seqno是数据包中的数据的顺序号, ack是下次期望的顺序号, window是接收缓存的窗口大小, urgent表明数据包中是否有紧急指针. Options是选项.

        (4) UDP包的输出信息

        用TCPDUMP捕获的UDP包的一般输出信息是:

        route.port1 > ice.port2: udp lenth

        UDP十分简单,上面的输出行表明从主机ROUTE的port1端口发出的一个UDP数据包到主机ICE的port2端口,类型是UDP, 包的长度是lenth上面,我就详细介绍了TCPDUMP的安装和使用,希望会对大家有所帮助。如果想要熟练运用TCPDUMP这个LINUX环境下的SNIFFER利器,还需要大家在实践中总结经验,充分发挥它的威力。

       (五).windows平台上的sniffer

       我推荐netxray和sniffer pro软件,想必大家都用过他们,不过我在这儿还要再简单介绍一下他们。

       netxray的使用说明

       1.1.1.1----2.2.2.2----3.3.3.3----4.4.4.4 这是一个ShareHub连接下的局域网

       5.5.5.5 这是一个端口上的piler (JD),字节码转源代码的高效工具,JD-GUI或Eclipse插件让分析更加轻松。

       Burp Suite,虽然免费版缺少Web漏洞扫描功能,但Web应用安全测试平台的地位不可撼动。

       Metasploit,自年起引领漏洞利用开发,年被Rapid7收购,成为业界翘楚。

       ModSecurity,虽然对系统稳定性可能产生影响,但其Web应用监控与访问控制作用不容小觑。

       Aircrack-ng,随着年版本的升级,WiFi安全评估更上一层楼,硬件支持更加广泛。

       探索更多工具的魅力,提升你的安全技能,从现在开始!

文章所属分类:时尚频道,点击进入>>