发新话题
打印

HACK知识:全面学习与了解嗅探器的基础

HACK知识:全面学习与了解嗅探器的基础

HACK知识:全面学习与了解嗅探器的基础
首先说好,想认真学的就认真看,这篇文章也绝对值得你认真去学习

如果觉得太长了的,那你基本也就不用看了,哪有东西是随便一下就能学会的

付出与收获是成正比的

最后一句:大家如果觉得不错的话就帮顶下,希望别让帖子给沉了。



【精华分享】全面学习与了解嗅探器的基础知识



sniffer原理 :

  
    现在人们谈到黑客攻击,一般所指的都是以主动方式进行的,例如利用漏洞或者猜测系统密码的方式对系统进行攻击。但是其实还有一类危害非常大的被动攻击方式往往为大家所忽视,那就是利用Sniffer进行嗅探攻击。
   Sniffer,中文可以翻译为嗅探器,是一种威胁性极大的被动攻击工具。使用这种工具,可以监视网络的状态、数据流动情况以及网络上传输的信息。当信息以明文的形式在网络上传输时,便可以使用网络监听的方式来进行攻击。将网络接口设置在监听模式,便可以将网上传输的源源不断的信息截获。黑客们常常用它来截获用户的口令。据说某个骨干网络的路由器曾经被黑客攻人,并嗅探到大量的用户口令。本文将详细介绍Sniffer的原理和应用。
  一、Sniffer 原理
  1.网络技术与设备简介
   在讲述Sni计er的概念之前,首先需要讲述局域网设备的一些基本概念。
   数据在网络上是以很小的称为帧(Frame)的单位传输的,帧由几部分组成,不同的部分执行不同的功能。帧通过特定的称为网络驱动程序的软件进行成型,然后通过网卡发送到网线上,通过网线到达它们的目的机器,在目的机器的一端执行相反的过程。接收端机器的以太网卡捕获到这些帧,并告诉操作系统帧已到达,然后对其进行存储。就是在这个传输和接收的过程中,嗅探器会带来安全方面的问题。
   每一个在局域网(LAN)上的工作站都有其硬件地址,这些地址惟一地表示了网络上的机器(这一点与Internet地址系统比较相似)。当用户发送一个数据包时,这些数据包就会发送到LAN上所有可用的机器。
   在一般情况下,网络上所有的机器都可以“听”到通过的流量,但对不属于自己的数据包则不予响应(换句话说,工作站A不会捕获属于工作站B的数据,而是简单地忽略这些数据)。如果某个工作站的网络接口处于混杂模式(关于混杂模式的概念会在后面解释),那么它就可以捕获网络上所有的数据包和帧。
  2.网络监听原理
   Sniffor程序是一种利用以太网的特性把网络适配卡(NIC,一般为以太同卡)置为杂乱(promiscuous)模式状态的工具,一旦同卡设置为这种模式,它就能接收传输在网络上的每一个信息包。
   普通的情况下,阿卡只接收和自己的地址有关的信息包,即传输到本地主机的信息包。要使Sniffer能接收并处理这种方式的信息,系统需要支持BPF,Linux下需要支持SOCKET一PACKET。但一般情况下,网络硬件和TCP/IP堆栈不支持接收或者发送与本地计算机无关的数据包,所以,为了绕过标准的TCP/IP堆栈,网卡就必须设置为我们刚开始讲的混杂模式。一般情况下,要激活这种方式,内核必须支持这种伪设备Bpfilter,而且需要root权限来运行这种程序,所以sniffer需要root身份安装,如果只是以本地用户的身份进人了系统,那么不可能唤探到root的密码,因为不能运行Sniffer。
   基于Sniffer这样的模式,可以分析各种信息包并描述出网络的结构和使用的机器,由于它接收任何一个在同一网段上传输的数据包,所以也就存在着捕获密码、各种信息、秘密文档等一些没有加密的信息的可能性。这成为黑客们常用的扩大战果的方法,用来夺取其他主机的控制权
  3 Snifffer的分类
   Sniffer分为软件和硬件两种,软件的Sniffer有 NetXray、Packetboy、Net monitor等,其优点是物美价廉,易于学习使用,同时也易于交流;缺点是无法抓取网络上所有的传输,某些情况下也就无法真正了解网络的故障和运行情况。硬件的Sniffer通常称为协议分析仪,一般都是商业性的,价格也比较贵。
   实际上本文中所讲的Sniffer指的是软件。它把包抓取下来,然后打开并查看其中的内容,可以得到密码等。Sniffer只能抓取一个物理网段内的包,就是说,你和监听的目标中间不能有路由或其他屏蔽广播包的设备,这一点很重要。所以,对一般拨号上网的用户来说,是不可能利用Sniffer来窃听到其他人的通信内容的。
  4.网络监听的目的
   当一个黑客成功地攻陷了一台主机,并拿到了root权限,而且还想利用这台主机去攻击同一网段上的其他主机时,他就会在这台主机上安装Sniffer软件,对以太网设备上传送的数据包进行侦听,从而发现感兴趣的包。如果发现符合条件的包,就把它存到一个LOg文件中去。通常设置的这些条件是包含字“username”或“password”的包,这样的包里面通常有黑客感兴趣的密码之类的东西。一旦黑客截获得了某台主机的密码,他就会立刻进人这台主机。
   如果Sniffer运行在路由器上或有路由功能的主机上,就能对大量的数据进行监控,因为所有进出网络的数据包都要经过路由器。
   Sniffer属于第M层次的攻击。就是说,只有在攻击者已经进入了目标系统的情况下,才能使用Sniffer这种攻击手段,以便得到更多的信息。
   Sniffer除了能得到口令或用户名外,还能得到更多的其他信息,比如一个重要的信息、在网上传送的金融信息等等。Sniffer几乎能得到任何在以大网上传送的数据包。
   Sniffer是一种比较复杂的攻击手段,一般只有黑客老手才有能力使用它,而对于一个网络新手来说,即使在一台主机上成功地编译并运行了Sniffer,一般也不会得到什么有用的信息,因为通常网络上的信息流量是相当大的,如果不加选择地接收所有的包,然后从中找到所需要的信息非常困难;而且,如果长时间进行监听,还有可能把放置Snifkr的机器的硬盘撑爆。
  5.一个简单的Sniffer程序
   下面是一个非常简单的C程序,它可以完成一般的监听功能,/* */中的内容是本文的注解。
  /*下面是包含进行调用系统和网络函数的头文件*/
  #include〈stdio.h〉
  #include〈sys/socket.h〉
  #include〈netinet/in.h〉
  #include〈arpa/inet.h〉
  /*下面是IP和TCP包头结构*/
  struct IP{
   unsigned int ip_length:4;
   /*定义IP头的长度*/
   unsigned int ip_version:4;
   /*IP版本,Ipv4 */
   unsigned char ip_tos;
   /*服务类型*/
   unsigned short
  ip_total_length; /*IP数据包的总长度*/
   unsigned short ip_id;
   /*鉴定城*/
   unsigned short ip_flags;
   /*IP 标志 */
   unsigned char ip_ttl;
   /*IP 包的存活期*/
   unsigned char ip_protocol;
   /*IP 上层的协议*/
   unsigned short ip_cksum;
   /*IP头校验和*/
  unsigned int ip_source ;
  /*源IP地址*/
  unsigned int ip_source;
  /*目的IP地址*/
   };
  struct tcp{
  unsigned short tcp_source_port;
  /*定义TCP源端口*/
   unsigned short tcp_dest_port;
   /*TCP目的端口*/
   unsigned short tcp_seqno;
   /*TC P序列号*/
  unsigned int tcp_ackno;
  /*发送者期望的下一个序列号*/
  unsigned int tcp_res1:4;
  /*下面几个是TCP标志*/
  tcp_hlen:4
  tcp_fin:1,
  tcp_syn:1,
  tcp_rst:1,
  tcp_psh:1,
  tcp_ack:1,
  tcp_urg:1,
  tcp_res2:2;
  unsignd short tcp_winsize; /*能接收的最大字节数*/
   unsigned short tcp_cksum;
   /* TCP校验和*/
   unsigned short tcp_urgent;
   /* 紧急事件标志*/
  };
  /*主函数*/
  int main()
  {
  int sock,bytes_recieved,fromlen;
  char buffer[65535];
  struct sockaddr_in from;
   /*定义socket结构*/
  struct ip ip;
   /*定义IP和TCP*/
  struct tcp *tcp;
   sock=socket(AF_INET,SOCK_RAW,IPPROTO_TCP);
  /* 上面是建立socket连接,第一个参数是地址族类型,用INTERNET类型*/
  /* 第二个参数是socket类型,这里用了SOCK_RAW,它可以绕过传输层*/
  /* 直接访问IP层的包,为了调用SOCK_RAW,需要有root权限*/
  /* 第三个参数是协议,选IPPROTO_TCP指定了接收TCP层的内容*/
  while(1)
  /*建立一个死循环,不停的接收网络信息*/
  {
  fromlen=sizeof from;
  bytes_recieved=recvfrom(sock,buffer,sizeofbuffer,0,(struct sockaddr *)&from,&fromlen);
  /*上面这个函数是从建立的socket连接中接收数据*/
  /*因为recvfrom()需要一个sockaddr数据类型,所以我们用了一个强制类型转换*/
  print("\nBytes received ::: %5d\n",bytes_recieved);
  /*显示出接收的数据字节数*/
  printf("source address ::: %s\n",inet_ntoa(from.sin_addr));
  /*显示出源地址*/
  ip=(struct ip *)buffer;
  /*把接收的数据转化为我们预先定义的结构,便于查看*/
  printf("IP header length ::: %d\n",ip->ip_length);
  /*显示IP头的长度*/
  print("Protocol ::: %d\n",ip->ip_protocol);
  /*显示协议类型,6是TCP,17是UDP*/
  tcp=(struct tcp *)(buffer + (4*ip->ip_iplength));
  /*上面这名需要详细解释一下,因为接收的包头数据中,IP头的大小是固定的4字节*/
  /*所以我用IP长度乘以4,指向TCP头部分*/
  printf("Source port ::: %d\n",ntohs(tcp->tcp_source_port); /*显示出端口*/
  printf("Dest prot ::: %d\n",ntohs(tcp->tcp_dest_port));/*显示出目标端口*/
   以上这个C程序是为了说明Sniffer的接收原理而列举的一个最简单的例子,它只是完成了Sniffer的接收功能,在运行它之前,我们还需要手工把同卡设为混杂模式,在root权限下用如下命令设置:
  ifconfig eth0 promisc
   假设etho是你的以太网设备接口,然后运行编译好的程序,就可以看到接收的数据包了。
   这个程序虽然简单,但是它说明了Sniffer的基本原理,就是先把同卡设备设为混杂模式,然后直接接收IP层的数据。
   当然这个程序的功能也太简单,只能显示源地址、目标地址和源端口、目标端口等极为简单的信息,这对于黑客来说是没有什么用处的,黑客要的是密码之类的信息,这可以使用一些免费的Sniffer程序来完成。


Sniffer含义及工作原理 :

  


  
一.有关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模式是指网络上的所有设备都对总线上传送的数据进行侦听,并不仅仅是它们自己的数据。根据第二章中有关对以太网的工作原理的基本介绍,可以知道:一个设备要向某一目标发送数据时,它是对以太网进行广播的。一个连到以太网总线上的设备在任何时间里都在接受数据。不过只是将属于自己的数据传给该计算机上的应用程序。
    利用这一点,可以将一台计算机的网络连接设置为接受所有以太网总线上的数据,从而实现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)的单位传输的帧由好几部分组成,不同的部分执行不同的功能。(例如,以太网的前12个字节存放的是源和目的的地址,这些位告诉网络:数据的来源和去处。以太网帧的其他部分存放实际的用户数据、TCP/IP的报文头或IPX报文头等等)。
  帧通过特定的称为网络驱动程序的软件进行成型,然后通过网卡发送到网线上。通过网线到达它们的目的机器,在目的机器的一端执行相反的过程。接收端机器的以太网卡捕获到这些帧,并告诉操作系统帧的到达,然后对其进行存储。就是在这个传输和接收的过程中,嗅探器会造成安全方面的问题。
  每一个在LAN上的工作站都有其硬件地址。这些地址唯一地表示着网络上的机器(这一点于Internet地址系统比较相似)。当用户发送一个报文时,这些报文就会发送到LAN上所有可用的机器。
  在一般情况下,网络上所有的机器都可以“听”到通过的流量,但对不属于自己的报文则不予响应(换句话说,工作站A不会捕获属于工作站B的数据,而是简单的忽略这些数据)。
  如果某在工作站的网络接口处于杂收模式,那么它就可以捕获网络上所有的报文和帧,如果一个工作站被配置成这样的方式,它(包括其软件)就是一个嗅探器。
  嗅探器可能造成的危害:
  1.嗅探器能够捕获口令
  2.能够捕获专用的或者机密的信息
  3.可以用来危害网络邻居的安全,或者用来获取更高级别的访问权限
  事实上,如果你在网络上存在非授权的嗅探器就以为着你的系统已经暴露在别人面前了。(大家可以试试天行2的嗅探功能)
  一般我们只嗅探每个报文的前200到300个字节。用户名和口令都包含在这一部分中,这是我们关心的真正部分。工人,也可以嗅探给定接口上的所有报文,如果有足够的空间进行存储,有足够的那里进行处理的话,将会发现另一些非常有趣的东西……
  简单的放置一个嗅探器宾将其放到随便什么地方将不会起到什么作用。将嗅探器放置于被攻击机器或网络附近,这样将捕获到很多口令,还有一个比较好的方法就是放在网关上。如果这样的话就能捕获网络和其他网络进行身份鉴别的过程。这样的方式将成倍地增加我们能够攻击的范围。
  三.谁会使用sniffers
  可能谁都回知道谁会使用sniffer,但是并不是每个使用它的人都是网络高手,因为现在有很多的sniffer都成了傻瓜似的了,前段时间用的最多的不外乎oicq sniffer。我想那些喜欢查好友ip的朋友都应该记得它吧。呵呵,我都使用过它,现在当然不用了啊!
  当然系统管理员使用sniffer来分析网络信息交通并且找出网络上何处发生问题。一个安全管理员可以同时用多种sniffer, 将它们放置在网络的各处,形成一个入侵警报系统。对于系统管理员来说sniffer是一个非常好的工具,但是它同样是一个经常被黑客使用的工具.骇客安装sniffer以获得用户名和账号,信用卡号码,个人信息,和其他的信息可以导致对你或是你的公司的极大危害如果向坏的方面发展。当它们得到这些信息后,骇客将使用密码来进攻其他的internet 站点甚至倒卖信用卡号码。



网络监听技术 :



  在网络中,当信息进行传播的时候,可以利用工具,将网络接口设置在监听的模式,便可将网络中正在传播的信息截获或者捕获到,从而进行攻击。网络监听在网络中的任何一个位置模式下都可实施进行。而黑客一般都是利用网络监听来截取用户口令。比如当有人占领了一台主机之后,那么他要再想将战果扩大到这个主机所在的整个局域网话,监听往往是他们选择的捷径。很多时候我在各类安全论坛上看到一些初学的爱好者,在他们认为如果占领了某主机之后那么想进入它的内部网应该是很简单的。其实非也,进入了某主机再想转入它的内部网络里的其它机器也都不是一件容易的事情。因为你除了要拿到他们的口令之外还有就是他们共享的绝
  对路径,当然了,这个路径的尽头必须是有写的权限了。在这个时候,运行已经被控制的主机上的监听程序就会有大收效。不过却是一件费神的事情,而且还需要当事者有足够的耐心和应变能力。
  
  █网络监听的原理
  
  Ethernet(以太网,它是由施乐公司发明的一种比较流行的局域网技术,它包含一条所有计算机都连接到其上的一条电缆,每台计算机需要一种叫接口板的硬件才能连接到以太网)协议的工作方式是将要发送的数据包发往连接在一起的所有主机。在包头中包括有应该接收数据包的主机的正确地址,因为只有与数据包中目标地址一致的那台主机才能接收到信息包,但是当主机工作在监听模
  式下的话不管数据包中的目标物理地址是什么,主机都将可以接收到。许多局域网内有十几台甚至上百台主机是通过一个电缆、一个集线器连接在一起的,在协议的高层或者用户来看,当同一网络中的两台主机通信的时候,源主机将写有目的的主机地址的数据包直接发向目的主机,或者当网络中的一台主机同外界的主机通信时,源主机将写有目的的主机IP地址的数据包发向网关。但这种数据包并不能在协议栈的高层直接发送出去,要发送的数据包必须从TCP/IP协议的IP层交给网络接口,也就是所说的数据链路层.网络接口不会识别IP地址的。在网络接口由IP层来的带有IP地址的数据包又增加了一部分以太祯的祯头的信息。在祯头中,有两个
  域分别为只有网络接口才能识别的源主机和目的主机的物理地址这是一个48位的地址,这个48位的地址是与IP地址相对应的,换句话说就是一个IP地址也会对应一个物理地址。对于作为网关的主机,由于它连接了多个网络,它也就同时具备有很多个IP地址,在每个网络中它都有一个。而发向网络外的祯中继携带的就是网关的物理地址。
  Ethernet中填写了物理地址的祯从网络接口中,也就是从网卡中发送出去传送到物理的线路上。如果局域网是由一条粗网或细网连接成的,那么数字信号在电缆上传输信号就能够到达线路上的每一台主机。再当使用集线器的时候,发送出去的信号到达集线器,由集线器再发向连接在集线器上的每一条线路。这样在物理线路上传输的数字信号也就能到达连接在集线器上的每个主机了。当数字信号到达一台主机的网络接口时,正常状态下网络接口对读入数据祯进行检查,如果数据祯中携带的物理地址是自己的或者物理地址是广播地址,那么就会将数据祯交给IP层软件。对于每个到达网络接口的数据祯都要进行这个过程的。但是当主机工作在监听
  模式下的话,所有的数据祯都将被交给上层协议软件处理。
  
  当连接在同一条电缆或集线器上的主机被逻辑地分为几个子网的时候,那么要是有一台主机处于监听模式,它还将可以接收到发向与自己不在同一个子网(使用了不同的掩码、IP地址和网关)的主机的数据包,在同一个物理信道上传输的所有信息都可以被接收到。
  
  在UNIX系统上,当拥有超级权限的用户要想使自己所控制的主机进入监听模式,只需要向Interface(网络接口)发送I/O控制命令,就可以使主机设置成监听模式了。而在Windows9x的系统中则不论用户是否有权限都将可以通过直接运行监听工具就可以实现了。
  
  在网络监听时,常常要保存大量的信息(也包含很多的垃圾信息),并将对收集的信息进行大量的整理,这样就会使正在监听的机器对其它用户的请求响应变的很慢。同时监听程序在运行的时候需要消耗大量的处理器时间,如果在这个时候就详细的分析包中的内容,许多包就会来不及接收而被漏走。所以监听程序很多时候就会将监听得到的包存放在文件中等待以后分析。分析监听到的数据包是很头疼的事情。因为网络中的数据包都非常之复杂。两台主机之间连续发送和接收数据包,在监听到的结果中必然会加一些别的主机交互的数据包。监听程序将同一TCP会话的包整理到一起就相当不容易了,如果你还期望将用户详细信息整理出来就需要根据协议对包进行大量的分析。Internet上那么多的协议,运行进起的话这个监听程序将会十分的大哦。
  
  现在网络中所使用的协议都是较早前设计的,许多协议的实现都是基于一种非常友好的,通信的双方充分信任的基础。在通常的网络环境之下,用户的信息包括口令都是以明文的方式在网上传输的,因此进行网络监听从而获得用户信息并不是一件难点事情,只要掌握有初步的TCP/IP协议知识就可以轻松的监听到你想要的信息的。前些时间美籍华人China-babble曾提出将望路监听从局域网延伸到广域网中,但这个想法很快就被否定了。如果真是这样的话我想网络必将天下大乱了。而事实上现在在广域网里也可以监听和截获到一些用户信息。只是还不够明显而已。在整个Internet中就更显得微不足道了。
  
  下面是一些系统中的著名的监听程序,你可以自己尝试一下的。
  
  Windows9x/NT NetXRay http://semxa.kstar.com/hacking/netxray.zip
  
  DEC Unix/Linux Tcpdump http://semxa.kstar.com/hacking/management.zip
  
  Solaris Nfswatch http://semxa.kstar.com/hacking/nfswatch.zip
  
  SunOS Etherfind http://semxa.kstar.com/hacking/etherfind012.zip
  
  █检测网络监听的方法
  
  网络监听在上述中已经说明了。它是为了系统管理员管理网络,监视网络状态和数据流动而设计的。但是由于它有着截获网络数据的功能所以也是黑客所惯用的伎俩之一。
  一般检测网络监听的方法通过以下来进行:
  ►网络监听说真的,是很难被发现的。当运行监听程序的主机在进听的过程中只是被动的接收在以太网中传输的信息,它不会跟其它的主机交换信息的,也不能修改在网络中传输的信息包。这就说明了网络监听的检测是比较麻烦的事情。
  
  一般情况下可以通过ps-ef或者ps-aux来检测。但大多实施监听程序的人都会通过修改ps的命令来防止被ps-ef的。修改ps只需要几个shell把监听程序的名称过滤掉就OK了。一能做到启动监听程序的人也绝对不是个菜的连这个都不懂的人了,除非是他懒。
  
  上边提到过。当运行监听程序的时候主机响应一般会受到影响变的会慢,所以也就有人提出来通过响应的速率来判断是否受到监听。如果真是这样判断的话我想世界真的会大乱了,说不准一个时间段内会发现无数个监听程序在运行呢。呵呵。
  
  如果说当你怀疑网内某太机器正在实施监听程序的话(怎么个怀疑?那要看你自己了),可以用正确的IP地址和错误的物理地址去ping它,这样正在运行的监听程序就会做出响应的。这是因为正常的机器一般不接收错误的物理地址的ping信息的。但正在进听的机器就可以接收,要是它的IP stack不再次反向检查的话就会响应的。不过这种方法对很多系统是没效果的,因为它依赖于系统的IP stack。
  
  另一种就是向网上发大量不存在的物理地址的包,而监听程序往往就会将这些包进行处理,这样就会导致机器性能下降,你可以用icmp echo delay来判断和比较它。还可以通过搜索网内所有主机上运行的程序,但这样做其的难度可想而知,因为这样不但是大的工作量,而且还不能完全同时检查所有主机上的进程。可是如果管理员这样做也会有很大的必要性,那就是可以确定是否有一个进程是从管理员机器上启动的。
  
  在Unix中可以通过ps –aun或ps –augx命令产生一个包括所有进程的清单:进程的属主和这些进程占用的处理器时间和内存等。
  这些以标准表的形式输出在STDOUT上。如果某一个进程正在运行,那么它将会列在这张清单之中。但很多黑客在运行监听程序的时候会毫不客气的把ps或其它运行中的程序修改成Trojan Horse程序,因为他完全可以做到这一点的。如果真是这样那么上述办法就不会有结果的。但这样做在一定程度上还是有所作为的。在Unix和Windows NT上很容易就能得到当前进程的清单了。但DOS、
  Windows9x好象很难做到哦,具体是不是我没测试过不得而知。
  
  还有一种方式,这种方式要靠足够的运气。因为往往黑客所用的监听程序大都是免费在网上得到的,他并非专业监听。所以做为管理员用来搜索监听程序也可以检测。使用Unix可以写这么一个搜索的小工具了,不然的话要累死人的。呵呵。
  
  有个叫Ifstatus的运行在Unix下的工具,它可以识别出网络接口是否正处于调试状态下或者是在进听装下。要是网络接口运行这样的模式之下,那么很有可能正在受到监听程序的攻击。Ifstatus一般情况下不会产生任何输出的,当它检测到网络的接口处于监听模式下的时候才回输出。管理员可以将系统的cron参数设置成定期运行Ifstatus,如果有好的cron进程的话可以将它产生的输出用mail发送给正在执行cron任务的人,要实现可以在crontab目录下加****/usr/local/etc/ifstatus一行参数。这样不行
  的话还可以用一个脚本程序在crontab下00****/usr/local/etc/run-ifstatus。
  
  抵御监听其实要看哪个方面了。一般情况下监听只是对用户口令信息比较敏感一点(没有无聊的黑客去监听两台机器间的聊天信息的那是个浪费时间的事情)。所以对用户信息和口令信息进行加密是完全有必要的。防止以明文传输而被监听到。现代网络中,SSH(一种在应用环境中提供保密通信的协议)通信协议一直都被沿用,SSH所使用的端口是22,它排除了在不安全信道上通信的信息,被监听的可能性使用到了RAS算法,在授权过程结束后,所有的传输都用IDEA技术加密。但SSH并不就是完全安全的。至少现在我们可以这么大胆评论了。
  
  █著名的Sniffer监听工具
  
  Sniffer之所以著名,权因它在很多方面都做的很好,它可以监听到(甚至是听、看到)网上传输的所有信息。Sniffer可以是硬件也可以是软件。主要用来接收在网络上传输的信息。网络是可以运行在各种协议之下的,包括以太网Ethernet、TCP/IP、ZPX等等,也可以是集中协议的联合体系。
  
  Sniffer是个非常之危险的东西,它可以截获口令,可以截获到本来是秘密的或者专用信道内的信息,截获到信用卡号,经济数据,E-mail等等。更加可以用来攻击与己相临的网络。
  
  Sniffer可以使用在任何一种平台之中。而现在使用Sniffer也不可能别发现,这个足够是对网络安全的最严重的挑战。
  
  在Sniffer中,还有“热心人”编写了它的Plugin,称为TOD杀手,可以将TCP的连接完全切断。总之Sniffer应该引起人们的重视,否则安全永远做不到最好。



SNIFFER(嗅探器)-简介 :
SNIFFER(嗅探器)-简介
  
  Sniffer(嗅探器)是一种常用的收集有用数据方法,这些数据可以是用户的帐号和密码,可以是一些商用机密数据等等。Snifffer可以作为能够捕获网络报文的设备,ISS为Sniffer这样定义:Sniffer是利用计算机的网络接口截获目的地为其他计算机的数据报文的一种工具。
  
  Sniffer的正当用处主要是分析网络的流量,以便找出所关心的网络中潜在的问题。例如,假设网络的某一段运行得不是很好,报文的发送比较慢,而我们又不知道问题出在什么地方,此时就可以用嗅探器来作出精确的问题判断。 在合理的网络中,sniffer的存在对系统管理员是致关重要的,系统管理员通过sniffer可以诊断出大量的不可见模糊问题,这些问题涉及两台乃至多台计算机之间的异常通讯有些甚至牵涉到各种的协议,借助于sniffer%2C系统管理员可以方便的确定出多少的通讯量属于哪个网络协议、占主要通讯协议的主机是哪一台、大多数通讯目的地是哪台主机、报文发送占用多少时间、或着相互主机的报文传送间隔时间等等,这些信息为管理员判断网络问题、管理网络区域提供了非常宝贵的信息。
  
  嗅探器与一般的键盘捕获程序不同。键盘捕获程序捕获在终端上输入的键值,而嗅探器则捕获真实的网络报文。
  
  为了对sniffer的工作原理有一个深入的了解,我们先简单介绍一下HUB与网卡的原理。
  
  预备知识
  
  HUB工作原理
  由于以太网等很多网络(常见共享HUB连接的内部网)是基于总线方式,物理上是广播的,就是当一个机器发给另一个机器的数据,共享HUB先收到然后把它接收到的数据再发给其他的(来的那个口不发了)每一个口,所以在共享HUB下面同一网段的所有机器的网卡都能接收到数据。
  
  交换式HUB的内部单片程序能记住每个口的MAC地址,以后就该哪个机器接收就发往哪个口,而不是像共享HUB那样发给所有的口,所以交换HUB下只有该接收数据的机器的网卡能接收到数据,当然广播包还是发往所有口。显然共享HUB的工作模式使得两个机器传输数据的时候其他机器别的口也占用了,所以共享HUB决定了同一网段同一时间只能有两个机器进行数据通信,而交换HUB两个机器传输数据的时候别的口没有占用,所以别的口之间也可以同时传输。这就是共享HUB与交换HUB不同的两个地方,共享HUB是同一时间只能一个机器发数据并且所有机器都可以接收,只要不是广播数据交换HUB同一时间可以有对机器进行数据传输并且数据是私有的。
  
  网卡工作原理
  再讲讲网卡的工作原理。网卡收到传输来的数据,网卡内的单片程序先接收数据头的目的MAC地址,根据计算机上的网卡驱动程序设置的接收模式判断该不该接收,认为该接收就在接收后产生中断信号通知CPU,认为不该接收就丢弃不管,所以不该接收的数据网卡就截断了,计算机根本就不知道。CPU得到中断信号产生中断,操作系统就根据网卡驱动程序中设置的网卡中断程序地址调用驱动程序接收数据,驱动程序接收数据后放入信号堆栈让操作系统处理。
  
  局域网如何工作
  数据在网络上是以很小的称为帧(Frame)的单位传输的帧由好几部分组成,不同的部分执行不同的功能。(例如,以太网的前12个字节存放的是源和目的的地址,这些位告诉网络:数据的来源和去处。以太网帧的其他部分存放实际的用户数据、TCP/IP的报文头或IPX报文头等等)。
  
  帧通过特定的网络驱动程序进行成型,然后通过网卡发送到网线上。通过网线到达它们的目的机器,在目的机器的一端执行相反的过程。接收端机器的以太网卡捕获到这些帧,并告诉操作系统帧的到达,然后对其进行存储。就是在这个传输和接收的过程中,嗅探器会造成安全方面的问题。
  
  通常在局域网(LAN)中同一个网段的所有网络接口都有访问在物理媒体上传输的所有数据的能力,而每个网络接口都还应该有一个硬件地址,该硬件地址不同于网络中存在的其他网络接口的硬件地址,同时,每个网络至少还要一个广播地址。(代表所有的接口地址),在正常情况下,一个合法的网络接口应该只响应这样的两种数据帧:
  
    1、帧的目标区域具有和本地网络接口相匹配的硬件地址。
    2、帧的目标区域具有“广播地址”。
  
  在接受到上面两种情况的数据包时,网卡通过cpu产生一个硬件中断,该中断能引起操作系统注意,然后将帧中所包含的数据传送给系统进一步处理。
  
  当采用共享HUB,用户发送一个报文时,这些报文就会发送到LAN上所有可用的机器。在一般情况下,网络上所有的机器都可以“听”到通过的流量,但对不属于自己的报文则不予响应(换句话说,工作站A不会捕获属于工作站B的数据,而是简单的忽略这些数据)。
  
  如果局域网中某台机器的网络接口处于杂收(promiscuous)模式(即网卡可以接收其收到的所有数据包,下面会详细地讲),那么它就可以捕获网络上所有的报文和帧,如果一台机器被配置成这样的方式,它(包括其软件)就是一个嗅探器。
  
  Sniffer
  
  Sniffer原理
  有了这HUB、网卡的工作原理就可以开始讲讲SNIFFER。首先,要知道SNIFFER要捕获的东西必须是要物理信号能收到的报文信息。显然只要通知网卡接收其收到的所有包(一般叫作杂收promiscuous模式:指网络上的所有设备都对总线上传送的数据进行侦听,并不仅仅是它们自己的数据。),在共享HUB下就能接收到这个网段的所有包,但是交换HUB下就只能是自己的包加上广播包。
  
  要想在交换HUB下接收别人的包,那就要让其发往你的机器所在口。交换HUB记住一个口的MAC是通过接收来自这个口的数据后并记住其源MAC,就像一个机器的IP与MAC对应的ARP列表,交换HUB维护一个物理口(就是HUB上的网线插口,这之后提到的所有HUB口都是指网线插口)与MAC的表,所以可以欺骗交换HUB的。可以发一个包设置源MAC是你想接收的机器的MAC,那么交换HUB就把你机器的网线插的物理口与那个MAC对应起来了,以后发给那个MAC的包就发往你的网线插口了,也就是你的网卡可以SNIFFER到了。注意这物理口与MAC的表与机器的ARP表一样是动态刷新的,那机器发包后交换HUB就又记住他的口了,所以实际上是两个在争,这只能应用在只要收听少量包就可以的场合。
  
  内部网基于IP的通信可以用ARP欺骗别人机器让其发送给你的机器,如果要想不影响原来两方的通信,可以欺骗两方,让其都发给你的机器再由你的机器转发,相当于做中间人,这用ARP加上编程很容易实现。并且现在很多设备支持远程管理,有很多交换HUB可以设置一个口监听别的口,不过这就要管理权限了。
  
  利用这一点,可以将一台计算机的网络连接设置为接受所有以太网总线上的数据,从而实现sniffer。Sniffer就是一种能将本地网卡状态设成‘杂收’状态的软件,当网卡处于这种“杂收”方式时,该网卡具备“广播地址”,它对遇到的每一个帧都产生一个硬件中断以便提醒操作系统处理流经该物理媒体上的每一个报文包。(绝大多数的网卡具备置成杂收方式的能力)
  
  可见,sniffer工作在网络环境中的底层,它会拦截所有的正在网络上传送的数据,并且通过相应的软件处理,可以实时分析这些数据的内容,进而分析所处的网络状态和整体布局。值得注意的是:sniffer是极其安静的,它是一种消极的安全攻击。
  
  嗅探器在功能和设计方面有很多不同。有些只能分析一种协议,而另一些可能能够分析几百种协议。一般情况下,大多数的嗅探器至少能够分析下面的协议:标准以太网、TCP/IP、IPX、DECNet。
  
  嗅探器造成的危害
  sniffing是作用在网络基础结构的底层。通常情况下, 用户并不直接和该层打交道,有些甚至不知道有这一层存在。所以,应该说snffer的危害是相当之大的,通常,使用sniffer是在网络中进行欺骗的开始。它可能造成的危害:
  
  嗅探器能够捕获口令。这大概是绝大多数非法使用sniffer的理由,sniffer可以记录到明文传送的userid和passwd。
  能够捕获专用的或者机密的信息。比如金融帐号,许多用户很放心在网上使用自己的信用卡或现金帐号,然而sniffer可以很轻松截获在网上传送的用户姓名、口令、信用卡号码、截止日期、帐号和pin。比如偷窥机密或敏感的信息数据,通过拦截数据包,入侵者可以很方便记录别人之间敏感的信息传送,或者干脆拦截整个的email会话过程。
  可以用来危害网络邻居的安全,或者用来获取更高级别的访问权限。
  窥探低级的协议信息。
  这是很可怕的事,通过对底层的信息协议记录,比如记录两台主机之间的网络接口地址、远程网络接口ip地址、ip路由信息和tcp连接的字节顺序号码等。这些信息由非法入侵的人掌握后将对网络安全构成极大的危害,通常有人用sniffer收集这些信息只有一个原因:他正要进行一次欺骗(通常的ip地址欺骗就要求你准确插入tcp连接的字节顺序号),如果某人很关心这个问题,那么sniffer对他来说只是前奏,今后的问题要大得多。(对于高级的hacker而言,我想这是使用sniffer的唯一理由吧)
  事实上,如果你在网络上存在非授权的嗅探器就意味着你的系统已经暴露在别人面前了。
  
  一般Sniffer只嗅探每个报文的前200到300个字节。用户名和口令都包含在这一部分中,这是我们关心的真正部分。工人,也可以嗅探给定接口上的所有报文,如果有足够的空间进行存储,有足够的那里进行处理的话,将会发现另一些非常有趣的东西……
  
  简单的放置一个嗅探器并将其放到随便什么地方将不会起到什么作用。将嗅探器放置于被攻击机器或网络附近,这样将捕获到很多口令,还有一个比较好的方法就是放在网关上。sniffer通常运行在路由器,或有路由器功能的主机上。这样就能对大量的数据进行监控。sniffer属第二层次的攻击。通常是攻击者已经进入了目标系统,然后使用sniffer这种攻击手段,以便得到更多的信息。如果这样的话就能捕获网络和其他网络进行身份鉴别的过程



sniffer技术资料 :

  


    sniffer中文翻译过来就是嗅探器。是一中威胁性极大的被动攻击工具!使用在个攻击可以监视网络的状态。数据流动情况以及网络上传输的信息,便可以用网络监听到方式来进行攻击,截获网上的信息。所以黑客常常喜欢用他来截获用户口令!
  
  sniffer可以分为两类一个是硬件的一个软件的,今天给大家讲的主要是软件的sniffer.sniffer只能抓取一个物理网段的包,就是说你和监听的目标中间不能有路由(交换)或其他屏蔽广播包的设备,这一点很重要。所以对一般拨号伤亡的用户来说,是不可能利用sniffer来窃听到其他人的通信内容的!
  
  sniffer属于第二层次的攻击。就是说只有在攻击者已经进入了目标系统的情况下,才能使用sniffer这中攻击手段,以便得到更多的信息。sniffer除了能得到口令或用户名外,还能得到更多的其他的信息,比如一个其他重要的信息,在网上转送的金融信息等等。sniffer几乎能得到任何在以太网上转送的数据包。sniffer是一中比较复杂的攻击手段,一般只有黑客老手才有能力使用他(其实只要了解了也可以去试试我就是常常练习才知道!)而对于一个网络新手来说,即使在一台主机上成功地编译并运行了sinffer,一般也不会得到什么有用的信息。因为通常网络上的信息流量是相当大的,如果不加选绎的接收所有的包,然后要从中找到所需要的信息是非常的困难的,而且如果长时间地进行监听,还有可能把放置sniffer的机器的硬盘撑爆!
  
  现在给大家看一个C程序,它可以完成一般的监听功能,【* *】是注解!
  【*下面是包含进行调试用系统和网络的函数的头文件*】
  #include
  #include
  #include
  【*下面是IP和TCP包头结构*】
  struct ip {
  unsigend int ip_length:4; 【*定义IP头的长度*】
  unsigend int ip_version:4; 【*IP版本,IPV4*】
  unsigend char ip_tos; 【*服务类型*】
  unsigend short ip_total_length; 【*IP数据包的总长度*】
  unsigend short ip_id; 【*鉴定域*】
  unsigend short ip_flags; 【*IP标志*】
  unsigend char ip_ttl; 【*IP包的存活期*】
  unsigend char ip_protocol; 【*IP上层的协议*】
  unsigend short ip_sksum; 【*IP头校研和*】
  unsigend int ip_source; 【*源IP地址*】
  unsigend int ip_dest; 【*目的IP地址*】
  }
  
  struct tcp {
  unsigend short tcp_source_port; 【*定义TCP源端口*】
  unsigend short tcp_dest_port 【*TCP目的的端口*】
  unsigend int tcp_seqno; 【*TCP序列号*】
  unsigend int tcp_ackno; 【*发送者期望的下一个序列号*】
  unsigend int tcp_resl:4; 【*下面几个是TCP的标志*】
  tcp_hlen:4,
  tcp_fin:1,
  tcp_syn:1,
  tcp_rst:1,
  tcp_psh:1,
  tcp_ack:1,
  tcp_urg:1,
  tcp_res:2,
  unsigend short tcp_winsize; 【*能接收的最大字节数*】
  unsigend short tcp_cksum; 【*TCP校研和*】
  unsigend short tcp_urgent; 【*紧急事件标志*】
  }
  【*主函数*】
  int main()
  {
  int sock, bytes_recieved,fromlen;
  char buffer[65535];
  struct sockaddr_in from; 【*定义socket结构*】
  struct ip ip; 【*定义IP和TCP结构*】
  struct tcp *tcp
  sock = socket(AF_INET,SOCK,IPPROTO_TCP)
  【*上面是建立socket连接,第一个参数是地址族类型,用INTERNET类型*】
  【*第二个参数是socket类型,这里用了SOCK--RAW,它可以绕过传输层,*】
  【*直接访问IP层的包,为了调用SOCK--RAW,需要有ROOT权限*】
  【*第三个参数是协议,选IPPROTO--TCP指定可接收TCP层的内容*】
  while(1)
  {
  fromlen=sizeof from;
  bytes_recieved=recvfrom(sock,buffer,sizeofbuffer,0,(struct sockaddr*)&from,&fromlen);
  【*上面这个函数是从建立的socket连接中接收数据*】
  【*因为recvfrom()需要一个sockaddr数据类型,所以我们用一个强制类型转换*】
  printf("\nByets received ::: %4d\n",bytes_recieved); 【*显示出接收的数据字节数*】
  printf("Source address:::%s\n",inet_ntoa(ftom.sin_addr); 【*显示出源地址*】
  ip=(struct ip*)buffer; 【*把接收的数据转换为我们预先定义的结构,便于查看*】
  printf("IP header length:::%d\n",ip->ip_length); 【*显示IP头的长度*】
  printf("Protocol:::%d\n",ip->ip_potocol); 【*显示协议类型,6是TCP,17是UDP*】
  tcp=(struct tcp*)(buffer+(4*ip->ip_length);
  【*上面这句需要详细解释一下,因为接收到的包头数据中,IP头的大小是固定的4字节*】
  【*所以我们用IP长度乘以4,指向TCP头部分*】
  printf("Source potr:::%d\n",ntohs(tcp->tcp_source_port) 【*显示出源端口*】
  prinft("Dest potr:::%d\n",ntohs(tcp->tcp_dest_port) 【*显示出目标端口*】
  }
  以上这个C程序是为了说明sniffer的接收原理而列举的一个最简单的列子,它这是完成了sniffer的接收功能,在运行之前我们还需要手工把网卡设置为混杂模式,在root权限下用命令设置:
  ifconfig eth0 promisc
  假设eth0是你的以太网设备接口,然后运行编译好的程序清单(就是上面的C程序)就可以看到接受的数据包了!(重要消息:这个程序的功能太简单,只能显示源地址,目标地址和源端口,目标端口等极为简单的信息,对于你来说没有用但是你可以改一下)
  
  现在来看看**的sniffer程序
  sniffit 可以运行在linux Solaris SGI NT等各种平台运行的网络监听软件,他主要针对的是TCP/IP协议的不安全性,对运行该协议的计算机进行监听。
  安装
  跟我来一步一步走别跑掉了嘻嘻!跑掉了别怪我呀!
  1。用tat zvfx sniffit.*.*.*.tgz将下载的sniffit.*.*.*.tgz解压缩到你想要的目的文件夹,如果版本是。0。3。7的话,你会看到该目录下出现一个sniffit。0。3。7的目录。
  2。打开sniffit。0。3。7的目录
  3。执行/configure && make命令,只要在个过程中终端上没有意外的错误提示信息出现,就算编译成功了,然后就可以得到一个二进制的sniffit文件,直接运行他即可!
  4。最后使用make clean命令清除掉临时文件。
  sniffit的使用方法
  sniffit的命令
  选项 作用
  -V 显示版本信息
  -t 让程序去监听指定流向某IP的数据
  -s 让程序去监听从某IP流出的IP数据包,可以使用@统配符如-t 192.168.@
  -i 显示出窗口界面,能查出当前 在所属网络上进行连接的机器
  -l 扩展的交互模式,忽略所以其他选项,比-L强大的多
  -c 利用脚本来运行程序
  -F 强制使程序使用网络硬盘
  -n 显示出假的数据包,如果使用ARP,RARP或者其他不是IP的数据包也会显示出来
  -N 只运行plugin时的选项,使其他选项失效
  
  使用示列
  假设在一个子网中有两台主机,一台运行了sniffit,为sniffit.com另一台的IP地址是192.168.0.1我把他称为xxx.com按下列步骤操作!
  1,检查sniffit能否运行;
  sniffit~/#sniffit -d -p 7 -t 192.168.0.1
  并且打开另外一个窗口;
  sniffit~/$telnet xxx.com
  sniffit~/#sniffit -p 21 -l 0 -t 192.168.0.1
  应该可以看到sniffit将远程登陆到对方7号端口echo服务的包捕获。
  2,截获xxx.com上的用户密码
  sniffit:~/#sniffit -p 23 -t 192.168.0.1
  意思就是监听23端口包
  3,如果xxx.com主机的根用户声称有陌生的FTP连接并且希望记录其动作
  sniffit:~/3 sniffit -p 21 -l 0 -t 192.168.0.1
  4,阅读所有进出xxx.com的信件
  sniffit:~/# sniffit -p 25 -l 0 -b -t 192.168.0.1&
  或者sniffit:~/#- sniffit -p 25 -l0 -b -s 192.168.0.1&
  5,监听所以从192.168.0.1进出的包,对其行完全监视
  sniffit:~/# sniffit -P ipicmptcp -p 0 -b -a -d -x -s 192.168.0.1
  6,用more 192*命令读取用下列方式记录的密码:
  sniffit:~/# sniffit -p 23 -A .-t 192.168.0.1
  
  哎好难写呀!现在改给大家一个WIN下的嗅探器了呀!因为win普遍是的吗HOHO
  NetXRay
  NetXRay的功能主要分为三大类
  1,接收并分析数据包
  2,传送数据包功能
  3,网路管理监看的功能
  NetXRay的第三个功能是网络管理监看,网络管理功能中一共有7个按钮。现在给大家介绍一下把!
  DashBoard按钮:将子网下的流量以简要的形式显示出来
  HostTable按钮:观察子网下每台主机的网络流量情况
  Matrix按钮:观察子网下主机与主机之间的流量情况
  History按钮:将网络上的数据以图表的方式显示
  Protocal Distribution按钮:分析网络上各种通信协议的分布情况
  Alarm LOG按钮:设定网络状况警告
  Addree Book按钮:设定主机资料
  由于时间的问题我就在这里介绍一下DashBoard按钮的用法,(哇绝对又有用说我偷懒了,请大家原谅我还是学生没很多时间接触计算机所以就……等我放假了给大家更好的教材行不!)
  对于其他的按钮的详细资料大家可以去http://216.239.33.102找找!
  DashBoard按钮用来以简要的形式显示子网上的流量,单击后会出现一个图形界面很像汽车的油门表一样的东西(没时间给大家抓图了请原谅)
  其中,Packets行表示到目前为止共有多少数据包,Broadcasts行标称有多少个广播的数据包,Multucasts行表示有多少个播数据包,Bytes行表示共有多少字节的数据在你的子网中传输,Errors行表示网络中错误发生的次数。
  本文章转自中国北方黑客网http://www.wltop.com/

TOP

发新话题