你是网络管理员吗?你是不是有过这样的经历:在某一天的早上你突然发现网络性能急剧下降,网络服务不能正常提供,服务器访问速度极慢甚至不能访问,网络交换机端口指示灯疯狂地闪烁、网络出口处的路由器已经处于满负荷的工作状态、路由器CPU已经到了百分之百的负荷……重启动后没有几分钟现象又重新出现了。 

这是什么问题?设备坏了吗?不可能几台设备同时出问题。一定是有什么大流量的数据文件,耗尽了网络设备的资源,它们是什么?怎么看到它们?这时有经验的网管人员会想到用局域网抓包工具来分析一下。 

你一定听说过红色代码、Nimda、冲击波以及震荡波这些臭名昭著的网络杀手。就是它们制造了上述种种恶行。它们来势汹汹,阻塞网络、感染主机,让网络管理员苦不堪言。当网络病毒出现时,如何才能及时发现染毒主机?下面我根据网络病毒都有扫描网络地址的特点,给大家介绍一个很实用的方法:用抓包工具寻找病毒源。 

.安装抓包工具。目的就是用它分析网络数据包的内容。找一个免费的或者试用版的抓包工具并不难。我使用了一种叫做SpyNet3. 的抓包工具,非常小巧, 运行的速度也很快。安装完毕后我们就有了一台抓包主机。你可以通过SpyNet设置抓包的类型,比如是要捕获IP包还是ARP包,还可以根据目的地址的不同,设置更详细的过滤参数。 

.配置网络路由。你的路由器有缺省网关吗?如果有,指向了哪里?在病毒爆发的时候把缺省网关指向另外一台路由器是很危险的(除非你想搞瘫这台路由器)。在一些企业网里往往仅指出网内地址段的路由,而不加缺省路由,那么就把缺省路由指到抓包主机上吧(它不下地狱谁下地狱?当然这台主机的性能最好是高一点的,否则很容易被病毒冲击而亡)。这样可以让那些病毒主机发出的绝大部分扫描都自动送上门来。或者把网络的出口映像到抓包主机上,所有对外访问的网络包都会被分析到。 

.开始抓包。抓包主机已经设置好了,网络里的数据包也已经送过来了,那么我们看看网络里传输的到底是些什么。打开SpyNet 点击Capture 你会看到好多的数据显示出来,这些就是被捕获的数据包(如图)。 

图中的主体窗口里显示了抓包的情况。列出了抓到数据包的序号、时间、源目的MAC地址、源目的IP地址、协议类型、源目的端口号等内容。很容易看出IP地址为10.32.20.71的主机在极短的时间内向大量的不同主机发出了访问请求,并且目的端口都是445。 

.找出染毒主机。从抓包的情况看,主机10.32.20.71值得怀疑。首先我们看一下目的IP地址,这些地址我们网络里存在吗?很可能网络里根本就没有这些网段。其次,正常情况下访问主机有可能在这么短的时间里发起这么多的访问请求吗?在毫秒级的时间内发出几十甚至几百个连接请求,正常吗?显然这台10.32.20.71的主机肯定有问题。再了解一下Microsoft-DS协议,该协议存在拒绝服务攻击的漏洞,连接端口是445,从而进一步证实了我们的判断。这样我们就很容易地找到了染毒主机的IP地址。剩下的工作就是给该主机操作系统打补丁杀病毒了。 

既然抓到了病毒包,我们看一下这个数据包二进制的解码内容: 

这些数据包的长度都是62个字节。数据包前12个字节包括了目的MAC和源MAC的地址信息,紧跟着的2字节指出了数据包的类型,0800代表的是IP包格式,0806代表ARP包格式。接着的20个字节是封装的IP包头,包括了源、目的IP地址、IP版本号等信息。剩下的28个字节封装的是TCP包头,包括了源、目的端口,TCP链接的状态信息等。这就构成了一个62字节的包。可以看出除了这些包头数据之外,这个包没有携带其他任何的有效数据负荷,所以这是一个TCP要求445端口同步的空包,也就是病毒主机在扫描445端口。一旦染毒主机同步上没有采取防护措施的主机445端口,便会利用系统漏洞传播感染。 

Spynet3. 下载地址:http://www.315safe.com/showarticle.asp?NewsID=2654

什么是"抓包"?怎样"抓包"?的更多相关文章

  1. Charles 如何抓取https数据包

    Charles可以正常抓取http数据包,但是如果没有经过进一步设置的话,无法正常抓取https的数据包,通常会出现乱码.举个例子,如果没有做更多设置,Charles抓取https://www.bai ...

  2. Fiddler:在PC和移动设备上抓取HTTPS数据包

    Fiddler是一个免费的Web调试代理,支持任何浏览器.系统以及平台.这个工具是进行Web和App网络开发的必备工具,戳此处下载. 根据Fiddler官网的描述,具有以下六大特点: Web调试 性能 ...

  3. wireshark如何抓取本机包

    在进行通信开发的过程中,我们往往会把本机既作为客户端又作为服务器端来调试代码,使得本机自己和自己通信.但是wireshark此时是无法抓取到数据包的,需要通过简单的设置才可以. 具体方法如下: 方法一 ...

  4. 用C++实现网络编程---抓取网络数据包的实现方法

    一般都熟悉sniffer这个工具,它可以捕捉流经本地网卡的所有数据包.抓取网络数据包进行分析有很多用处,如分析网络是否有网络病毒等异常数据,通信协议的分析(数据链路层协议.IP.UDP.TCP.甚至各 ...

  5. Android利用tcpdump和wireshark抓取网络数据包

    Android利用tcpdump和wireshark抓取网络数据包 主要介绍如何利用tcpdump抓取andorid手机上网络数据请求,利用Wireshark可以清晰的查看到网络请求的各个过程包括三次 ...

  6. Android利用Fiddler进行网络数据抓包,手机抓包工具汇总

    Fiddler抓包工具 Fiddler抓包工具很好用的,它可以干嘛用呢,举个简单例子,当你浏览网页时,网页中有段视频非常好,但网站又不提供下载,用迅雷下载你又找不到下载地址,这个时候,Fiddler抓 ...

  7. Burp Suite抓包、截包和改包

    Burp Suite..呵呵.. 听说Burp Suite是能够监測.截取.改动我们訪问web应用的数据包,这么牛X? 条件:本地网络使用代理.由Burp Suite来代理.也就是说,每一个流出外网的 ...

  8. tcp断开连接,4次握手,为什么wireshark 只能抓到3个包?

    用wireshark 抓包,看看tcp 断开连接的过程.  以前书上说tcp断开连接,4次握手,可我为什么wireshark 只能抓到3个包? 百度一下,别人也有类似的疑问. [求助]书上和网上的资料 ...

  9. Wireshark网络抓包(一)——数据包、着色规则和提示

    一.数据包详细信息 Packet Details面板内容如下,主要用于分析封包的详细信息. 帧:物理层.链路层 包:网络层 段:传输层.应用层 1)Frame 物理层数据帧概况 2)Ethernet ...

  10. linux使用tcpdump抓包工具抓取网络数据包,多示例演示

    tcpdump是linux命令行下常用的的一个抓包工具,记录一下平时常用的方式,测试机器系统是ubuntu 12.04. tcpdump的命令格式 tcpdump的参数众多,通过man tcpdump ...

随机推荐

  1. 更新Python以及随后的nose,easy_install,pip,numpy,scipy和theano

    这里报错:ImportError: No module named models.dnn. 应该是PDNN的目录没有加入到PYTHONPATH当中,因而执行下一句: export PYTHONPATH ...

  2. Json转list,两种包,两种方式

    1.使用fastjson 对于json串大小写没什么要求,测试的时候,我把javaBean属性设置成和json串一样的大小写,代码如下: package com.myTest.json.test1; ...

  3. wm8976 codec

    root@phyCORE-AM335x:~ amixer controlsnumid=38,iface=MIXER,name='Headphone Playback Switch'numid=39,i ...

  4. JDBC 查询的三大参数 setFetchSize prepareStatement(String sql, int resultSetType, int resultSetConcur)

    JDBC 查询的三大参数 本文转载至 http://blog.csdn.net/turkeyzhou/article/details/5115228 DBC1.0 .JDBC2.0 .JDBC3.0  ...

  5. C#操作word类文件

    最近频繁操作Word文档,写了很多word的操作代码及方法,虽然已经有很多关于word的操作类了,自己还是进行了一下整合: 1.通过模板创建新文件 2.在书签处插入值 3.插入表格 4.合并单元格 5 ...

  6. Hive Tuning(一) 连接策略

    群里共享了一本hive调优的书记,名叫<Hive Tunning>,就忍不住开始看了,也顺便记录一下自己学到的东西,备忘! 首先,这是hive的数据摘要,别问我什么意思,我也没看懂. 好, ...

  7. 单网卡绑定多个ip, 多个网卡绑定成一块虚拟网卡

    Linux网卡配置与绑定   Redhat Linux的网络配置,基本上是通过修改几个配置文件来实现的,虽然也可以用ifconfig来设置IP,用route来配置默认网关,用hostname来配置主机 ...

  8. Oracle的sql语句中关键字冲突用双引号

    select distinc user from instrument where created>"TO_DATE"('2015-02-05 12:00:00', 'yyy ...

  9. 受打击了:你是学.net 的吧?

    我在网上投了简历,今天去面试, 去到才知道有面试题做,做完之后自知答的很烂. 没想到面试我的那个人,一开始就很直接,说: 我感觉你很喜欢用英语, 但英语很烂 我觉得你很喜欢用别人的东西, 但技术水平很 ...

  10. loadrunner循环执行某个动作

    1.action部分定义  int   i;  int   count; 2. 打算循环的代码前代码如下:   count=rand() % 8 +1;       for(i=0;i<coun ...