⑴ 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 站点甚至倒卖信用卡号码。
三.sniffer是如何在网络上实施的
谈这个问题之前还应该先说一下Ethernet的通讯。通常在同一个网段的所有网络接口都有访问在媒体上传输的所有数据的能力,而每个网络接口都还应该有一个硬件地址,该硬件地址不同于网络中存在的其它网络接口的硬件地址,同时,每个网络至少还要一个广播地址。在正常情况下,一个合法的网络接口应该只响应这样的两种数据帧:
1
⑵ 在地址为192.168.1.44的主机上,要检查到另一台主机的端到端连接性,可通过CLI执行哪个命令
1
通过SSH连接
打开计算机上的SSH客户端(例如Mac OS X上的Terminal,或者Windows下使用PuTTY)
在PuTTY登录界面输入主机名称或者IP地址,EdgeOS默认的IP地址为192.168.1.1。在初次登录的时候,会显示一个主机密钥。你会被询问确认保存主机密钥到本地数据库。点击“是”可以在以后略过这个消息。
在用户名和密码提示符处,输入用户名和密码,默认是ubnt/ubnt。
对于命令帮助,你可以按下?键或者输入show然后按下?键。
回第一步
⑶ kali linux中的social engining toolkit版本过低怎么更新啊
安装cuda以及nvidia驱动
这一步比较简单,安装之前,推荐大家编辑一下/etc/apt/source.list文件,把国外的源注释掉换成国内科大的,下载比较快。科大源的地址如下
deb kali main non-free contrib
deb-src kali main non-free contrib
deb -security kali/updates main contrib non-free
设置完之后,执行以下命令安装
apt-get update
apt-get install nvidia-detect nvidia-libopencl1 nvidia-opencl-common nvidia-support nvidia-opencl-icd nvidia-visual-profiler nvidia-glx nvidia-installer-cleanup nvidia-kernel-common nvidia-smi nvidia-alternative nvidia-opencl-dev libglx-nvidia-alternatives nvidia-kernel-dkms nvidia-cuda-toolkit nvidia-vdpau-driver nvidia-xconfig glx-alternative-nvidia libgl1-nvidia-alternatives nvidia-settings libgl1-nvidia-glx xserver-xorg-video-nvidia libcublas4 libcudart4 libcufft4 libnpp4 libnvidia-compiler libcuda1 libcuinj4 libnvidia-ml1 libxvmcnvidia1 libcusparse4 libcurand4 python-pycuda-doc python-pycuda-headers python-pycuda nvidia-cuda-doc nvidia-cuda-gdb
由于包比较多可能有点慢,安装过程会弹出两个窗口需要确认,直接OK就好,执行完之后toolkit和驱动都装上了,然后把一些变量写入系统,在/root/.bashrc最后面加上下面一段
PATH=$PATH:/usr/lib/nvidia-cuda-toolkit/bin
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/nvidia-cuda-toolkit/lib:/lib
export PATH
export LD_LIBRARY_PATH
可以执行一下ldconfig马上生效,不过反正都要重启一次的了,重启。
安装pyrit-cuda
下面重新编译个pyrit来试一试使用GPU。下载pyrit的地址是:
我们需要下载pyrit-0.4.0.tar.gz和cpyrit-cuda-0.4.0.tar.gz,下载完之后,安装一下编译所需要的工具
atp-get install libpcap-dev python2.7-dev
解压pyrit-0.4.0.tar.gz并且安装
tar -xzvf pyrit-0.4.0.tar.gz
cd pyrit-0.4.0
python setup.py build
python setup.py install
解压cpyrit-cuda-0.4.0.tar.gz
tar -xzvf cpyrit-cuda-0.4.0.tar.gz
cd cpyrit-cuda-0.4.0
这里需要进行一些改动,编辑setup.py,把第35行
for path in ('/usr/local/cuda', '/opt/cuda'):
改成
for path in ('/usr/local/cuda','/usr/lib/nvidia-cuda-toolkit','/opt/cuda'):
免得安装程序找不到nvcc
然后就安装
python setup.py build
python setup.py install
安装完,运行一下
pyrit list_cores
应该能看到GPU了,类似
#1: 'CUDA-Device #1 'GeForce 8400 GS''
#2: 'CPU-Core (SSE2)'
#3: 'CPU-Core (SSE2)'
#4: 'CPU-Core (SSE2)'
#5: 'CPU-Core (SSE2)'
#6: 'CPU-Core (SSE2)'
#7: 'CPU-Core (SSE2)'
#8: 'CPU-Core (SSE2)'
安装optimus
把源Key取回来
wget -O - | apt-key add -
在/etc/apt/source.list中加入Bumblebee的源
deb sid main contrib
deb-src sid main
然后执行安装
apt-get update
apt-get install bumblebee bumblebee-nvidia
安装完毕,把root加入bemblebe组,然后重启
adser root bumblebee
重启完毕可以测试一下,分别运行
glxspheres
optirun glxspheres
可以看到帧数是不同的
⑷ ntop 用途
这个是用来监控流量的
先来安装ntop,ntop需要使用一个web服务器,所以我在这里使用的apache,一起安装了吧命令如下
jonsk:~# apt-get install ntop apache
需要安装22个包
apache、 apache-common 、apache2-utils、libapr1、libaprutil1 、libexpat1、libfreetype6 、libgd2-noxpm 、libglib1.2 、libjpeg62 、libkrb53 、libmagic1 、libpcap0.7、libpcre3 、libpng12-0 、libpq4 、libsqlite3-0 、lynx 、mime-support 、ntop 、perl、perl-moles
debian的包管理还是不是很理想,到连lynx都装上了,明明用不到嘛。
设置ntop的管理密码
jonsk:~# ntop --set-admin-password
Mon Jul 30 23:59:52 2007 NOTE: Interface merge enabled by default
Mon Jul 30 23:59:52 2007 Initializing gdbm databases
ntop startup - waiting for user response!
Please enter the password for the admin user:在这里输入admin的密码
Please enter the password again:再次输入
Mon Jul 30 23:59:58 2007 Admin user password has been set
jonsk:~# /etc/init.d/ntop start 启动ntop服务
OK,现在打开你的浏览器输入你的IP地址加端口号3000就可以查看你的网络流量了例:
http://127.0.0.1:3000
http://一定要指定http的头,要不然浏览器不知道使用使用协议来连接
ntop默认监听端口号是3000。
现在有空顺便再来说一下ntop的常用参数
-d : 放入后台执行。 常用
-L : 输出讯息写入系统记录文件。
-r : 设定页面的自动更新频率,预设每 3 秒更新一次. 。
-w : 使用其它端口 (预设是 3000) 。
-W : 同 -w , 不过这个是使用 SSL 联机 。
-u : 指定使用其它身份执行 。
-i : 指定 ntop 监听的网卡,"," 隔开多个网卡。
-M : 使用 -i 指定多张网卡时, 预设是合并统计.
ntop的页面说明
o About: 在线手册。
o Summary : 目前网络的整体概况
* Traffic : 流量
* Hosts : 所有主机使用概况
* Network Load : 各时段的网络负载
* Netflows : 网络流量图。
o IP Summary : 各主机的流量状况与排名明细
* Traffic : 所有主机的流量明细
* Multicast : 多点传送情况。
* Domain : 域名
* Distribution : 通讯量状况
* Local >>Local 本地流量。
* Local>>Remote : 所有主机对外的明细
* Remote>>Local :
* Remote>>Remote :
o All Protocols : 查看各主机占用的频宽与各时段网络使用者等的明细
* Traffic : 流量。
* Throughput : 频宽使用明细表 (点选主机,可以看到该主机详细的信息及使用状况)
* Activity : 各时段所有主机使用流量(状况). (点选主机,可以看到该主机详细的信息及使用状况)
o Local IP : 局域网络内各主机使用状况.
* Routers : 路由器状况。3.2版的ntop中已经好像没有这一项了
* Ports Used : 端口使用情况。
* Active TCP Sessions : 目前正在进行的联机 。
* Host Fingerprint : 主机快照情况。
* Host Characterization : 主机描述。
* Local Matrix : 局域网络内各主机间的流量明细。
o Media: 高级货,一般人用不到的东西
* Fibre Channel 光纤通道,企业级存储时使用的东西
o Utils 日志一类的东西
oPlugins 一些插件
ICMPWATCH:用于端口检测很多人都已经知道了可以借助NETSTAT -AN来查看当前的连接与开放的端口,但NETSTAT并不万能,比如你的Win2000遭到OOB攻击的时候,不等NETSTAT你就已经死机了。为此,出现了一种特殊的小工具——端口监听程序。端口监听并不是一项复杂的技术,但却能解决一些局部问题。
NetFlow:近年来,很多服务提供商一直使用NetFlow。因为 NetFlow在大型广域网环境里具有伸缩能力,可以帮助支持对等点上的最佳传输流,同时可以用来进行建立在单项服务基础之上的基础设施最优化评估,解决服务和安全问题方面所表现出来的价值,为服务计费提供基础。NetFlow是一种数据交换方式,其工作原理是:NetFlow利用标准的交换模式处理数据流的第一个IP包数据,生成NetFlow 缓存,随后同样的数据基于缓存信息在同一个数据流中进行传输,不再匹配相关的访问控制等策略,NetFlow缓存同时包含了随后数据流的统计信息。但是, NetFlow也不是万能的,比如它无法提供应用反应时间。
rrdPlugin:用于生成流量图。RRD的作者,也是MRTG的作者,RRD可以简单的说是MRTG的升级版,它比MRTG更灵活,更适合用shell、perl等程序来调用,成生所要的图片。
sFlow:sFlow (RFC 3176)是基于标准的最新网络导出协议,能够解决当前网络管理人员面临的很多问题。sFlow已经成为一项线速运行的“永远在线”技术,可以将 sFlow技术嵌入到网络路由器和交换机ASIC芯片中。与使用镜像端口、探针和旁路监测技术的传统网络监视解决方案相比,sFlow能够明显地降低实施费用,同时可以使面向每一个端口的全企业网络监视解决方案成为可能。与数据包采样技术(如RMON)不同,sFlow是一种导出格式,它增加了关于被监视数据包的更多信息,并使用嵌入到网络设备中的sFlow代理转发被采样数据包,因此在功能和性能上都超越了当前使用的RMON、RMON II和NetFlow技术。sFlow技术独特之处在于它能够在整个网络中,以连续实时的方式监视每一个端口,但不需要镜像监视端口,对整个网络性能的影响也非常小。
snmpPlugin:这个大家都知道,就不说是
最后说一下,ntop确实很消耗资源,建议找专门找台闲置的PC做这个,而且主机放置的位置最好是在路由器边上,如果是交换机上,哪么最好将交换机出口做一个端口镜象,将镜象的端口用来连接ntop
附上ntop的运行后的服务情况
jonsk:/# vmstat 2
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 0 37164 15184 24732 0 0 7 9 255 16 0 2 98 0
0 0 0 37164 15184 24740 0 0 0 0 238 13 0 0 100 0
0 0 0 37164 15184 24740 0 0 0 0 234 8 1 1 99 0
0 0 0 37164 15192 24732 0 0 0 20 238 17 0 1 99 0
0 0 0 37164 15192 24740 0 0 0 0 240 17 0 0 100 0
top - 01:33:17 up 1:24, 2 users, load average: 0.13, 0.06, 0.02
Tasks: 37 total, 1 running, 36 sleeping, 0 stopped, 0 zombie
Cpu0 : 0.5%us, 1.9%sy, 0.0%ni, 96.7%id, 0.0%wa, 0.9%hi, 0.0%si, 0.0%st
Mem: 127024k total, 90056k used, 36968k free, 15256k buffers
Swap: 369452k total, 0k used, 369452k free, 24744k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1782 root 15 0 1624 372 308 S 0.6 0.3 0:00.17 /usr/sbin/gpm -m /d 2147 root 15 0 2232 1104 864 R 0.6 0.9 0:00.16 top
参考:
www.ntop.org
服务器应用:用NTOP精确监控网络
你可以到这里看看
http://q.163.com/linuxer/blog/wjw1td/33171271200763043923718/#33171271200763043923718
⑸ 使用pcap_loop函数会不会漏掉数据包
函数本身不会,但是当你数据处理量大的时候,CPU可能来不及相应,导致丢包。
一般编程的时候,会用多线程解决上述问题。一个线程专门抓包(这个必须是实时的),另外一个负责后续处理(在你这里就是重组分片,可以不是实时地)。这样程序就不会因为等待计算结果,而来不及接收数据包了。
线程之间可以共享全局变量。
⑹ redis 怎么启用多端口
我来回答通常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/IP3.IPX4.DECNet嗅探器通常是软硬件的结合。专用的嗅探器价格非常昂贵。另一方面,免费的嗅探器虽然不需要花什么钱,但得不到什么支持。嗅探器与一般的键盘捕获程序不同。键盘捕获程序捕获在终端上输入的键值,而嗅探器则捕获真实的网络报文。嗅探器通过将其置身于网络接口来达到这个目的——例如将以太网卡设置成杂收模式。(为了理解杂收模式是怎么回事,先解释局域网是怎么工作的)。数据在网络上是以很小的称为帧(Ftame)的单位传输的帧由好几部分组成,不同的部分执行不同的功能。(例如,以太网的前12个字节存放的是源和目的的地址,这些位告诉网络:数据的来源和去处。以太网帧的其他部分存放实际的用户数据、TCP/IP的报文头或IPX报文头等等)。帧通过特定的称为网络驱动程序的软件进行成型,然后通过网卡发送到网线上。通过网线到达它们的目的机器,在目的机器的一端执行相反的过程。接收端机器的以太网卡捕获到这些帧,并告诉操作系统帧的到达,然后对其进行存储。就是在这个传输和接收的过程中,嗅探器会造成安全方面的问题。每一个在LAN上的工作站都有其硬件地址。这些地址唯一地表示着网络上的机器(这一点于Internet地址系统比较相似)。当用户发送一个报文时,这些报文就会发送到LAN上所有可用的机器。在一般情况下,网络上所有的机器都可以“听”到通过的流量,但对不属于自己的报文则不予响应(换句话说,工作站A不会捕获属于工作站B的数据,而是简单的忽略这些数据)。如果某在工作站的网络接口处于杂收模式,那么它就可以捕获网络上所有的报文和帧,如果一个工作站被配置成这样的方式,它(包括其软件)就是一个嗅探器。嗅探器可能造成的危害:1.嗅探器能够捕获口令2.能够捕获专用的或者机密的信息3.可以用来危害网络邻居的安全,或者用来获取更高级别的访问权限事实上,如果你在网络上存在非授权的嗅探器就以为着你的系统已经暴露在别人面前了。(大家可以试试天行2的嗅探功能)一般我们只嗅探每个报文的前200到300个字节。用户名和口令都包含在这一部分中,这是我们关心的真正部分。工人,也可以嗅探给定接口上的所有报文,如果有足够的空间进行存储,有足够的那里进行处理的话,将会发现另一些非常有趣的东西……简单的放置一个嗅探器宾将其放到随便什么地方将不会起到什么作用。将嗅探器放置于被攻击机器或网络附近,这样将捕获到很多口令,还有一个比较好的方法就是放在网关上。如果这样的话就能捕获网络和其他网络进行身份鉴别的过程。这样的方式将成倍地增加我们能够攻击的范围。三.谁会使用sniffers可能谁都回知道谁会使用sniffer,但是并不是每个使用它的人都是网络高手,因为现在有很多的sniffer都成了傻瓜似的了,前段时间用的最多的不外乎oicqsniffer。我想那些喜欢查好友ip的朋友都应该记得它吧。呵呵,我都使用过它,现在当然不用了啊!当然系统管理员使用sniffer来分析网络信息交通并且找出网络上何处发生问题。一个安全管理员可以同时用多种sniffer,将它们放置在网络的各处,形成一个入侵警报系统。对于系统管理员来说sniffer是一个非常好的工具,但是它同样是一个经常被黑客使用的工具.骇客安装sniffer以获得用户名和账号,信用卡号码,个人信息,和其他的信息可以导致对你或是你的公司的极大危害如果向坏的方面发展。当它们得到这些信息后,骇客将使用密码来进攻其他的internet站点甚至倒卖信用卡号码。三.sniffer是如何在网络上实施的谈这个问题之前还应该先说一下Ethernet的通讯。通常在同一个网段的所有网络接口都有访问在媒体上传输的所有数据的能力,而每个网络接口都还应该有一个硬件地址,该硬件地址不同于网络中存在的其它网络接口的硬件地址,同时,每个网络至少还要一个广播地址。在正常情况下,一个合法的网络接口应该只响应这样的两种数据帧:1帧的目标区域具有和本地网络接口相匹配的硬件地址。2帧的目标区域具有“广播地址”。在接受到上面两种情况的数据包时,网卡通过cpu产生一个硬件中断。该中断能引起操作系统注意,然后将帧中所包含的数据传送给系统进一步处理。而sniffer就是一种能将本地网卡状态设成杂乱模式(promiscuousMode)的软件。当网卡处于杂乱模式时,该网卡具备“广播地址”,它对所有遇到的每一个帧都产生一个硬件中断以提醒操作系统处理每一个报文包。(绝大多数的网卡具备设置成杂乱模式的能力。可见,sniffer工作在网络环境中的底层,它会拦截所有的正在网络上传送的数据。通过相应的软件处理,可以实时分析这些数据的内容,进而分析所处的网络状态和整体布局。值得注意的是:sniffer是极其安静的,它是一种消极的安全攻击。四.哪里可以得到sniffer我们讲的sniffer,主要是在unix系统下运用的,至于那些oicqsniffer就不在我们讨论的范围。Sniffer是黑客们最常用的入侵手段之一。你可以在经过允许的网络中运行sniffer,了解它是如何有效地危及本地机器安全。Sniffer可以是硬件,也可以是软件。现在品种最多,应用最广的是软件Sniffer,绝大多数黑客们用的也是软件Sniffer。以下是一些也被广泛用于调试网络故障的sniffer工具:(一).商用sniffer:1.NetworkGeneral.NetworkGeneral开发了多种产品。最重要的是ExpertSniffer,它不仅仅可以sniff,还能够通过高性能的专门系统发送/接收数据包,帮助诊断故障。还有一个增强产品"DistrbutedSnifferSystem"可以将UNIX工作站作为sniffer控制台,而将snifferagents(代理)分布到远程主机上。2.Microsoft'sNetMonitor对于某些商业站点,可能同时需要运行多种协议--NetBEUI、IPX/SPX、TCP/IP、802.3和SNA等。这时很难找到一种sniffer帮助解决网络问题,因为许多sniffer往往将某些正确的协议数据包当成了错误数据包。Microsoft的NetMonitor(以前叫Bloodhound)可以解决这个难题。它能够正确区分诸如Netware控制数据包、NTNetBios名字服务广播等独特的数据包。(etherfind只会将这些数据包标识为类型0000的广播数据包。)这个工具运行在MSWindows平台上。它甚至能够按MAC地址(或主机名)进行网络统计和会话信息监视。只需简单地单击某个会话即可获得tcpmp标准的输出。过滤器设置也是最为简单的,只要在一个对话框中单击需要监视的主机即可。(二).免费软件sniffer1.Sniffit由LawrenceBerkeley实验室开发,运行于Solaris、SGI和Linux等平台。可以选择源、目标地址或地址集合,还可以选择监听的端口、协议和网络接口等。这个SNIFFER默认状态下只接受最先的400个字节的信息包,这对于一次登陆会话进程刚刚好。2.SNORT:这个SNIFFER有很多选项供你使用并可移植性强,可以记录一些连接信息,用来跟踪一些网络活动。3.TCPDUMP:这个SNIFFER很有名,linux,FREEBSD还搭带在系统上,是一个被很多UNIX高手认为是一个专业的网络管理工具,记得以前TsutomuShimomura(应该叫下村侵吧)就是使用他自己修改过的TCPDUMP版本来记录了KEVINMITNICK攻击他系统的记录,后来就配合FBI抓住了KEVINMITNICK,后来他写了一文:使用这些LOG记录描述了那次的攻击,((四).Linux下的sniffer工具Linux下的sniffer工具,我推荐Tcpmp。[1].tcpmp的安装在linux下tcpmp的安装十分简单,一般由两种安装方式。一种是以rpm包的形式来进行安装。另外一种是以源程序的形式安装。1.rpm包的形式安装这种形式的安装是最简单的安装方法,rpm包是将软件编译后打包成二进制的格式,通过rpm命令可以直接安装,不需要修改任何东西。以超级用户登录,使用命令如下:#rpm-ivhtcpmp-3_4a5.rpm这样tcpmp就顺利地安装到你的linux系统中。怎么样,很简单吧。2.源程序的安装既然rpm包的安装很简单,为什么还要采用比较复杂的源程序安装呢其实,linux一个最大的诱人之处就是在她上面有很多软件是提供源程序的,人们可以修改源程序来满足自己的特殊的需要。所以我特别建议朋友们都采取这种源程序的安装方法。·第一步取得源程序在源程序的安装方式中,我们首先要取得tcpmp的源程序分发包,这种分发包有两种形式,一种是tar压缩包(tcpmp-3_4a5.tar.Z),另一种是rpm的分发包(tcpmp-3_4a5.src.rpm)。这两种形式的内容都是一样的,不同的仅仅是压缩的方式.tar的压缩包可以使用如下命令解开:#tarxvfztcpmp-3_4a5.tar.Zrpm的包可以使用如下命令安装:#rpm-ivhtcpmp-3_4a5.src.rpm这样就把tcpmp的源代码解压到/usr/src/redhat/SOURCES目录下.·第二步做好编译源程序前的准备活动在编译源程序之前,最好已经确定库文件libpcap已经安装完毕,这个库文件是tcpmp软件所需的库文件。同样,你同时还要有一个标准的c语言编译器。在linux下标准的c语言编译器一般是gcc。在tcpmp的源程序目录中。有一个文件是Makefile.in,configure命令就是从Makefile.in文件中自动产生Makefile文件。在Makefile.in文件中,可以根据系统的配置来修改BINDEST和MANDEST这两个宏定义,缺省值是BINDEST=@sbindir@MANDEST=@mandir@第一个宏值表明安装tcpmp的二进制文件的路径名,第二个表明tcpmp的man帮助页的路径名,你可以修改它们来满足系统的需求。·第三步编译源程序使用源程序目录中的configure脚本,它从系统中读出各种所需的属性。并且根据Makefile.in文件自动生成Makefile文件,以便编译使用.make命令则根据Makefile文件中的规则编译tcpmp的源程序。使用makeinstall命令安装编译好的tcpmp的二进制文件。总结一下就是:#tarxvfztcpmp-3_4a5.tar.Z#viMakefile.in#./configure#make#makeinstall[2].Tcpmp的使用tcpmp采用命令行方式,它的命令格式为:tcpmp[-adeflnNOpqStvx][-c数量][-F文件名][-i网络接口][-r文件名][-ssnaplen][-T类型][-w文件名][表达式]1.tcpmp的选项介绍-a将网络地址和广播地址转变成名字;-d将匹配信息包的代码以人们能够理解的汇编格式给出;-dd将匹配信息包的代码以c语言程序段的格式给出;-ddd将匹配信息包的代码以十进制的形式给出;-e在输出行打印出数据链路层的头部信息;-f将外部的Internet地址以数字的形式打印出来;-l使标准输出变为缓冲行形式;-n不把网络地址转换成名字;-t在输出的每一行不打印时间戳;-v输出一个稍微详细的信息,例如在ip包中可以包括ttl和服务类型的信息;-vv输出详细的报文信息;-c在收到指定的包的数目后,tcpmp就会停止;-F从指定的文件中读取表达式,忽略其它的表达式;-i指定监听的网络接口;-r从指定的文件中读取包(这些包一般通过-w选项产生);-w直接将包写入文件中,并不分析和打印出来;-T将监听到的包直接解释为指定的类型的报文,常见的类型有rpc(远程过程调用)和snmp(简单网络管理协议;)2.tcpmp的表达式介绍表达式是一个正则表达式,tcpmp利用它作为过滤报文的条件,如果一个报文满足表达式的条件,则这个报文将会被捕获。如果没有给出任何条件,则网络上所有的信息包将会被截获。在表达式中一般如下几种类型的关键字,一种是关于类型的关键字,主要包括host,net,port,例如host210.27.48.2,指明210.27.48.2是一台主机,net202.0.0.0指明202.0.0.0是一个网络地址,port23指明端口号是23。如果没有指定类型,缺省的类型是host.第二种是确定传输方向的关键字,主要包括src,dst,dstorsrc,dstandsrc,这些关键字指明了传输的方向。举例说明,src210.27.48.2,指明ip包中源地址是210.27.48.2,dstnet202.0.0.0指明目的网络地址是202.0.0.0。如果没有指明方向关键字,则缺省是srcordst关键字。第三种是协议的关键字,主要包括fddi,ip,arp,rarp,tcp,udp等类型。Fddi指明是在FDDI(分布式光纤数据接口网络)上的特定的网络协议,实际上它是"ether"的别名,fddi和ether具有类似的源地址和目的地址,所以可以将fddi协议包当作ether的包进行处理和分析。其他的几个关键字就是指明了监听的包的协议内容。如果没有指定任何协议,则tcpmp将会监听所有协议的信息包。除了这三种类型的关键字之外,其他重要的关键字如下:gateway,broadcast,less,greater,还有三种逻辑运算,取非运算是'not''!',与运算是'and','&&';或运算是'or','';这些关键字可以组合起来构成强大的组合条件来满足人们的需要,下面举几个例子来说明。(1)想要截获所有210.27.48.1的主机收到的和发出的所有的数据包:#tcpmphost210.27.48.1(2)想要截获主机210.27.48.1和主机210.27.48.2或210.27.48.3的通信,使用命令:(在命令行中适用括号时,一定要#tcpmphost210.27.48.1and\(210.27.48.2or210.27.48.3\)(3)如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包,使用命令:#tcpmpiphost210.27.48.1and!210.27.48.2(4)如果想要获取主机210.27.48.1接收或发出的telnet包,使用如下命令:#tcpmptcpport23host210.27.48.13.tcpmp的输出结果介绍下面我们介绍几种典型的tcpmp命令的输出信息(1)数据链路层头信息使用命令#tcpmp--ehosticeice是一台装有linux的主机,她的MAC地址是0:90:27:58:AF:1AH219是一台装有SOLARIC的SUN工作站,它的MAC地址是8:0:20:79:5B:46;上一条命令的输出结果如下所示:21:50:12.847509eth08:0:20:79:5b:460:90:27:58:af:1aip60:h219.33357>ice.telnet0:0(0)ack22535win8760(DF)分析:21:50:12是显示的时间,847509是ID号,eth0表示从网络接口设备发送数据包,8:0:20:79:5b:46是主机H219的MAC地址,它表明是从源地址H219发来的数据包.0:90:27:58:af:1a是主机ICE的MAC地址,表示该数据包的目的地址是ICE.ip是表明该数据包是IP数据包,60是数据包的长度,h219.33357>ice.telnet表明该数据包是从主机H219的33357端口发往主机ICE的TELNET(23)端口.ack22535表明对序列号是222535的包进行响应.win8760表明发送窗口的大小是8760.(2)ARP包的TCPDUMP输出信息使用命令#tcpmparp得到的输出结果是:22:32:42.802509eth0>arpwho-hasroutetellice(0:90:27:58:af:1a)22:32:42.802902eth0表明从主机发出该数据包,arp表明是ARP请求包,who-hasroutetellice表明是主机ICE请求主机ROUTE的MAC地址。0:90:27:58:af:1a是主机ICE的MAC地址。(3)TCP包的输出信息用TCPDUMP捕获的TCP包的一般输出信息是:src>dst:flagsdata->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:udplenthUDP十分简单,上面的输出行表明从主机ROUTE的port1端口发出的一个UDP数据包到主机ICE的port2端口,类型是UDP,包的长度是lenth上面,我就详细介绍了TCPDUMP的安装和使用,希望会对大家有所帮助。如果想要熟练运用TCPDUMP这个LINUX环境下的SNIFFER利器,还需要大家在实践中总结经验,充分发挥它的威力。(五).windows平台上的sniffer我推荐netxray和snifferpro软件,想必大家都用过他们,不过我在这儿还要再简单介绍一下他们。
⑺ VC问题:None of the functions with this name in scope match the target type
问题在 __cdecl
_cdecl 是C Declaration的缩写,表示C语言默认的函数调用方法:所有参数从右到左依次入栈,这些参数由调用者清除,称为手动清栈。被调用函数不需要求调用者传递多少参数,调用者传递过多或者过少的参数,甚至完全不同的参数都不会产生编译阶段的错误。
_stdcall 是Standard Call的缩写,是C++的标准调用方式:所有参数从右到左依次入栈,如果是调用类成员的话,最后一个入栈的是this指针。这些堆栈中的参数由被调用的函数在返回后清除,使用的指令是 retn X,X表示参数占用的字节数,CPU在ret之后自动弹出X个字节的堆栈空间。称为自动清栈。函数在编译的时候就必须确定参数个数,并且调用者必须严格的控制参数的生成,不能多,不能少,否则返回后会出错。
VC6.0 下你可以这样这样试一下
ALT+F7
C/C++ 属性页里面 分类 里选择 Code Generation
然后 修改一下 Calling convention 的值
⑻ 请那位大哥发表一下Solaris 8的安装程序.越详细越好.谢谢了
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 站点甚至倒卖信用卡号码。
三.sniffer是如何在网络上实施的
谈这个问题之前还应该先说一下Ethernet的通讯。通常在同一个网段的所有网络接口都有访问在媒体上传输的所有数据的能力,而每个网络接口都还应该有一个硬件地址,该硬件地址不同于网络中存在的其它网络接口的硬件地址,同时,每个网络至少还要一个广播地址。在正常情况下,一个合法的网络接口应该只响应这样的两种数据帧:
1
⑼ 请问电脑处于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 站点甚至倒卖信用卡号码。
三.sniffer是如何在网络上实施的
谈这个问题之前还应该先说一下Ethernet的通讯。通常在同一个网段的所有网络接口都有访问在媒体上传输的所有数据的能力,而每个网络接口都还应该有一个硬件地址,该硬件地址不同于网络中存在的其它网络接口的硬件地址,同时,每个网络至少还要一个广播地址。在正常情况下,一个合法的网络接口应该只响应这样的两种数据帧:
1
⑽ [高分悬赏]wireshark捕捉阿里旺旺数据包
实时捕捉数据包时Wireshar的特色之一
Wiershark捕捉引擎具备以下特点
支持多种网络接口的捕捉(以太网,令牌环网,ATM...)
支持多种机制触发停止捕捉,例如:捕捉文件的大小,捕捉持续时间,捕捉到包的数量...
捕捉时同时显示包解码详情
设置过滤,减少捕捉到包的容量。见第 4.8 节 “捕捉时过滤”
长时间捕捉时,可以设置生成多个文件。对于特别长时间的捕捉,可以设置捕捉文件大小罚值,设置仅保留最后的N个文件等手段。见第 4.6 节 “捕捉文件格式、模式设置”
Wireshark捕捉引擎在以下几个方面尚有不足
从多个网络接口同时实时捕捉,(但是您可以开始多个应用程序实体,捕捉后进行文件合并)
根据捕捉到的数据停止捕捉(或其他操作)
4.2. 准备工作
第一次设置Wireshark捕捉包可能会遇到一些小麻烦
这里有一些常见需要注意的地方
你必须拥有root/Administrator特权以开始捕捉[12]
必须选择正确的网络接口捕捉数据
如果您想捕捉某处的通信,你必须作出决定:在什么地方可以捕捉到
……以及许多
如果你碰到设置问题,建议看看前面的那个向导,或许会有所帮助
4.3. 开始捕捉
可以使用下任一方式开始捕捉包
使用打开捕捉接口对话框,浏览可用的本地网络接口,见图 4.1 “"Capture Interfaces"捕捉接口对话框”,
选择您需要进行捕捉的接口启动捕捉
你也可以使用"捕捉选项"按钮启动对话框开始捕捉,见图 4.2 “"Capture Option/捕捉选项"对话框”
如果您前次捕捉时的设置和现在的要求一样,您可以点击"开始捕捉"按钮或者是菜单项立即开始本次捕捉。
如果你已经知道捕捉接口的名称,可以使用如下命令从命令行开始捕捉:
wireshark -i eth0 -k
上述命令会从eht0接口开始捕捉,有关命令行的介绍参见第 9.2 节 “从命令行启动Wireshark”
4.4. 捕捉接口对话框
如果您从捕捉菜单选择"Interface...",将会弹出如图 4.1 “"Capture Interfaces"捕捉接口对话框”所示的对话框
图 4.1. "Capture Interfaces"捕捉接口对话框
描述
从操作系统获取的接口信息
IP
Wireshark能解析的第一个IP地址,如果接口未获得IP地址(如,不存在可用的DHCP服务器),将会显示"Unkow",如果有超过一个IP的,只显示第一个(无法确定哪一个会显示).
Packets
打开该窗口后,从此接口捕捉到的包的数目。如果一直没有接收到包,则会显示为灰度
Packets/s
最近一秒捕捉到包的数目。如果最近一秒没有捕捉到包,将会是灰度显示
Stop
停止当前运行的捕捉
Capture
从选择的接口立即开始捕捉,使用最后一次捕捉的设置。
Options
打开该接口的捕捉选项对话框,见 第 4.5 节 “捕捉选项对话框”
Details(仅Win32系统)
打开对话框显示接口的详细信息
Close
关闭对话框
4.5. 捕捉选项对话框
如果您从捕捉菜单选择"start..."按钮(或者从主工具栏选择对应的项目),Wireshark弹出"Capture Option/捕捉选项"对话框。如图 4.2 “"Capture Option/捕捉选项"对话框”所示
图 4.2. "Capture Option/捕捉选项"对话框
你可以用对话框中的如下字段进行设置
4.5.1. 捕捉桢
Interface
该字段指定你想用于进行捕捉的借口。一次只能使用一个接口。这是一个下拉列表,简单点击右侧的按钮,选择你想要使用的接口。默认第一是支持捕捉的non-loopback(非环回)接口,如果没有这样的接口,第一个将是环回接口。在某些系统中,回借口不支持捕捉包(windows平台下的环回接口就不支持。)
在命令行使用-i <interface>参数可以替代该选项
IP address
表示选择接口的IP地址。如果系统未指定IP地址,将会显示为"unknown"
Link-layer header type
除非你有些特殊应用,尽量保持此选项默认。想了解更多详情,见 第 4.7 节 “链路层包头类型”
Buffer size: n megabyte(s)
输入用于捕捉的缓层大小。该选项是设置写入数据到磁盘前保留在核心缓存中捕捉数据的大小,如果你发现丢包。尝试增大该值。
Capture packets in promiscuous mode
指定Wireshark捕捉包时,设置接口为杂收模式(有些人翻译为混杂模式)。如果你未指定该选项,Wireshark 将只能捕捉进出你电脑的数据包(不能捕捉整个局域网段的包)[13]
Limit each packet to n bytes
指定捕捉过程中,每个包的最大字节数。在某些地方被称为。"snaplen".[14]如果禁止该选项,默认值为65535,这适用于大多数协议,下面是一些大多数情况下都适用的规则(这里又出现了拇指规则,第一章,系统需求时提到过。这里权且翻译作普适而非绝对的规则))
· 如果你不确定,尽量保持默认值
· 如果你不需要包中的所有数据。例如:如果您仅需要链路层、IP和TCP包头,您可能想要选择一个较小的快照长度。这样只需要较少的cpu占用时间用于复制包,包需要的缓存也较少。如此在繁忙网络中捕捉时丢失的包也可能会相应少一点。
· 如果你没有捕捉包中的所有数据(适用snpaplen截断了包),你可能会发现有时候你想要的包中的数据部分被截断丢弃了。或者因为缺少重要的部分,想对某些包进行重组而发现失败。
Capture Filter
指定捕捉过滤。捕捉过滤器将会在有第 4.8 节 “捕捉时过滤”详细介绍,默认情况下是空的。
同样你也可以点击捕捉按钮,通过弹出的捕捉过滤对话框创建或选择一个过滤器,详见第 6.6 节 “定义,保存过滤器”
4.5.2. 捉数据帧为文件。
捕捉文件设置的使用方法的详细介绍见第 4.6 节 “捕捉文件格式、模式设置”
File
指定将用于捕捉的文件名。该字段默认是空白。如果保持空白,捕捉数据将会存储在临时文件夹。详见第 4.6 节 “捕捉文件格式、模式设置”
你可以点击右侧的按钮打开浏览窗口设置文件存储位置
Use multiple files
如果指定条件达到临界值,Wireshark将会自动生成一个新文件,而不是适用单独文件。
Next file every n megabyte(s)
仅适用选中Use multiple files,如果捕捉文件容量达到指定值,将会生成切换到新文件
Next file every n minutes(s)
仅适用选中Use multiple files,如果捕捉文件持续时间达到指定值,将会切换到新文件。
Ring buffer with n files
仅适用选中Use multiple files,仅生成制定数目的文件。
Stop caputure after n file(s)
仅适用选中Use multiple files,当生成指定数目文件时,在生成下一个文件时停止捕捉(生成n个还是n+1个文件?)
4.5.3. 停止捕捉桢
... after n packet(s)
在捕捉到指定数目数据包后停止捕捉
... after n megabytes(s)
在捕捉到指定容量的数据(byte(s)/kilobyte(s)/megabyte(s)/gigabyte(s) )后停止捕捉。如果没有适用"user multiple files",该选项将是灰色
... after n minute(s)
在达到指定时间后停止捕捉
4.5.4. 显示桢选项
Update list of packets in real time
在包列表面板实时更新捕捉数据。如果未选定该选项,在Wireshark捕捉结束之前将不能显示数据。如果选中该选项,Wireshark将生成两个独立的进程,通过捕捉进程传输数据给显示进程。
Automatic scrolling in live capture
指定Wireshark在有数据进入时实时滚动包列表面板,这样您将一直能看到最近的包。反之,则最新数据包会被放置在行末,但不会自动滚动面板。如果未设置"update list of packets in real time",该选项将是灰色不可选的。
Hide capture info dialog
选中该选项,将会隐藏捕捉信息对话框
4.5.5. 名称解析设置
Enable MAC name resolution
设置是否让Wireshark翻译MAC地址为名称,见第 7.6 节 “名称解析”
Enable network name resolution
是否允许Wireshark对网络地址进行解析,见第 7.6 节 “名称解析”
4.5.6. 按钮
进行完上述设置以后,你可以点击start按钮进行捕捉,也可以点击Cancel退出捕捉.
开始捕捉以后,在你收集到足够的数据时你可以停止捕捉。见第 4.9 节 “在捕捉过程中”
4.6. 捕捉文件格式、模式设置
在 捕捉时,libpcap 捕捉引擎(linux环境下)会抓取来自网卡的包存放在(相对来说)较小的核心缓存内。这些数据由Wireshark读取并保存到用户指定的捕捉文件中。
保存包数据到捕捉文件时,可采用差异模式操作。
表 4.1. 捕捉文件模式选项
"File"选项
"Use multiple files"选项
"Ring buffer with n files"选项
Mode
最终文件命名方式
-
-
-
Single temporary file
etherXXXXXX (where XXXXXX 是一个独立值)
foo.cap
-
-
Single named file
foo.cap
foo.cap
x
-
Multiple files,continuous
foo_00001_20040205110102.cap, foo_00002_20040205110102.cap, ...
foo.cap
x
x
Multiple files,ring buffer
foo_00001_20040205110102.cap, foo_00002_20040205110102.cap, ...
Single temporary file
将会创建并使用一个临时文件(默认选项).捕捉文件结束后,该文件可以由用户指定文件名。
Single named file
使用单独文件,如果你想放到指定目录,选择此模式
Multiple files,continuous
与single name file模式类似,不同点在于,当捕捉达到多文件切换临界条件时之一时,会创建一个新文件用于捕捉
Multiple files,ring buffer
与"multiple files continuous"模式类似,不同之处在于,创建的文件数目固定。当达到ring buffer with n值时,会替换掉第一个文件开始捕捉,如此循环往复。
该模式可以限制最大磁盘空间使用量,即使未限制捕捉数据输入,也只能保留最后几个捕捉数据。
4.7. 链路层包头类型
在通常情况下,你不需要选择链路层包头类型。下面的段落描述了例外的情况,此时选择包头类型是有必要的,所以你需要知道怎么做:
如果你在某种版本BSD操作系统下从某种802.11 设备(无线局域网设备)捕捉数据,可能需要在"802.11"和"Ethernet"中做出选择。"Ethernet"将会导致捕捉到的包带有伪以太网帧头(不知道是不是应该叫伪首部更准确些);"802.11"将会导致他们带有802.11帧头。如果捕捉时的应用程序不支持"802.11帧头",你需要选择"802.11"
如果你使用Endace DAG card(某种网络监视卡)连接到同步串口线(译者注:E文为synchronous serial line,权且翻译作前文吧,未接触过此卡、未熟稔此线名称),可能会出现"PPP over serial" 或 "Cisco HDLC"(自己google去)供选择。根据你自己的情况选择二者中的一个。
如果你使用Endace DAG card(同上)连接到ATM网络,将会提供"RFC 1483 IP-over-ATM"、"Sun raw ATM"供选择。如果捕捉的通信是RFC 1483封装IP(RFC 1483 LLC-encapsulated IP,不翻译为妙),或者需要在不支持SunATM帧头的应用程序下捕捉,选择前者。反之选择后者。
如果你在以太网捕捉,将会提供"Ethernet"、"DOCSIS"供选择,如果您是在Cisco Cable Modem Termination System(CMTS是思科同轴电缆终端调制解调系统?)下捕捉数据。它会将DOCSIS(同轴电缆数据服务接口)通信放置到以太网中,供捕捉。此时需要选择"DOCSIS",反之则反之。
4.8. 捕捉时过滤
Wireshark使用libpcap过滤语句进行捕捉过滤(what about winpcap?)。在tcpmp主页有介绍,但这些只是过于晦涩难懂,所以这里做小幅度讲解。
在Wireshark捕捉选项对话(见图 4.2 “"Capture Option/捕捉选项"对话框”)框输入捕捉过滤字段。下面的语句有点类似于tcpmp捕捉过滤语言。在tcpmp主页http://www.tcpmp.org/tcpmp_man.html可以看到tcpmp表达式选项介绍。
捕捉过滤的形式为:和取值(and/or)进行进行基本单元连接,加上可选的,高有限级的not:
[not] primitive [and|or [not] primitive ...]
例 4.1. 捕捉来自特定主机的telnet协议
tcp port 23 and host 10.0.0.5
本例捕捉来自或指向主机10.0.0.5的Telnet 通信,展示了如何用and连接两个基本单元。另外一个例子例 4.2 “捕捉所有不是来自10.0.0.5的telnet 通信”展示如何捕捉所有不是来自10.0.0.5的telnet 通信。
例 4.2. 捕捉所有不是来自10.0.0.5的telnet 通信
tcp host 23 and not src host 10.0.0.5
此处笔者建议增加更多范例。但是并没有添加。
一个基本单元通常是下面中的一个
[src|dst] host <host>
此基本单元允许你过滤主机ip地址或名称。你可以优先指定src|dst关键词来指定你关注的是源地址还是目标地址。如果未指定,则指定的地址出现在源地址或目标地址中的包会被抓取。
ether [src|dst] host <ehost>
此单元允许你过滤主机以太网地址。你可以优先指定关键词src|dst在关键词ether和host之间,来确定你关注的是源地址还是目标地址。如果未指定,同上。
gateway host<host>
过滤通过指定host作为网关的包。这就是指那些以太网源地址或目标地址是host,但源ip地址和目标ip地址都不是host的包
[src|dst] net <net> [{mask<mask>}|{len <len>}]
通过网络号进行过滤。你可以选择优先指定src|dst来确定你感兴趣的是源网络还是目标网络。如果两个都没指定。指定网络出现在源还是目标网络的都会被选择。另外,你可以选择子网掩码或者CIDR(无类别域形式)。
[tcp|udp] [src|dst] port <port]
过滤tcp,udp及端口号。可以使用src|dst和tcp|udp关键词来确定来自源还是目标,tcp协议还是udp协议。tcp|udp必须出现在src|dst之前。
less|greater <length>
选择长度符合要求的包。(大于等于或小于等于)
ip|ether proto <protocol>
选择有指定的协议在以太网层或是ip层的包
ether|ip broadcast|multicast
选择以太网/ip层的广播或多播
<expr> relop <expr>
创建一个复杂过滤表达式,来选择包的字节或字节范围符合要求的包。请参考http://www.tcpmp.org/tcpmp_man.html
4.8.1. 自动过滤远程通信
如果Wireshark是使用远程连接的主机运行的(例如使用SSH,X11 Window输出,终端服务器),远程连接必须通过网络传输,会在你真正感兴趣的通信中产生大量数据包(通常也是不重要的)
想要避免这种情况,wireshark可以设置为如果发现有远程连接(通过察看指定的环境变量),自动创建一个过滤器来匹配这种连接。以避免捕捉Wireshark捕捉远程连接通信。
下列环境变量可以进行分析
SSH——CONNECTION(ssh)
<remote IP> <remote port> <local IP> <local port>
SSH_CLIENT (ssh)
<remote IP> <remote port> <local port>
REMOTEHOST (tcsh, others?)
<remote name>
DISPLAY (x11)
[remote name]:<display num>
SESSIONNAME (terminal server)
<remote name>
4.9. 在捕捉过程中
捕捉时,会出现下面的对话框
图 4.3. 捕捉信息对话框
上述对话框会向你显示捕捉到包的数目,捕捉持续时间。选择的被统计的协议无法更改(什么鸟意思?)
4.9.1. 停止捕捉
运行中的捕捉线程可以用下列方法停止:
使用捕捉信息对话框上的"stop"按钮停止。
使用菜单项"Capture/ Stop"
使用工具栏项" Stop"
使用快捷键:Ctrl+E
如果设置了触发停止的条件,捕捉达到条件时会自动停止。
4.9.2. 重新启动捕捉
运行中的捕捉进程可以被重新启动。这将会移出上次捕捉的所有包。如果你捕捉到一些你不感兴趣的包,你不想保留它,这个功能十分有用。
重新启动是一项方便的功能,类似于停止捕捉后,在很短的时间内立即开始捕捉。以下两种方式可以实现重新启动捕捉:
使用菜单项"Capture/ Restart"
使用工具栏项" Restart"
[12] 记得在Windows安装那一节层提到如果作为服务启动可以避免非管理员无法进行捕捉,不知道二者能否相互印证。
[13] 网卡在局域网内会接到很多不属于自己的包,默认情况下,网卡会不对这些包进行处理。貌似设置为杂收模式,Wireshak会监听所有的包,但并不作出相应。
[14] 粗略查了一下,未找到该词的合适翻译,多见于Winpcap的描述,如果把该单词拆分,snap:单元,快照,len:长度,似乎就是单位长度,单元大小的意思。在看看该段下面第二个如果中提到的snapshot length,snaplen应该是二者的简写形式,快照长度