题外话:本文写于5年前,源于实战。主题是如何在大型网络环境中做镜像引流,作者没有象一般文章那样夸夸其谈的“绕”,而是侧重于实战操作,因此实用价值非常高。

场景:我们经常在工作中接触到这样一个场景:某单位连接有上百、上千台电脑,怎么快速地从中找到那台感染了木马的机器呢?有人也许会说:抓包呗。对,就是要进行抓包,但抓包之前我们还要做哪些工作呢,通过这篇文章,结合最近发生的实际案例,我们来详细地了解下如何在大型网络环境下开展定位工作,直至找到木马。

一、事由

2015年X月的一天,我们接到......(此处省略五百字),控制端IP为162.211.xxx.xx,要求定位到具体机器。

二、现场网络环境

来到该单位,发现是个网络环境复杂、有着数X台服务器、数X员工电脑的企业。

企业共用IP出口一个,既有办公网络也有生产线网络。查看了下该企业的机房网络,为光纤接入,有一些入侵防护设备、行为管理设备。主交换为H3C-s7502,以及多台H3C-s3100接入交换机,整个网络采用vlan划分区域。(为了不提真实环境,我们进行了弱化处理)

我们下面利用的方法是在核心设备(这里为H3C-s7502)上做端口镜像,在PC端进行抓包。

在介绍方法之前,先要做一些必要的知识铺垫。

三、交换机知识简单介绍

1、什么叫端口镜像?

镜像端口简单的说,就是把交换机一个(数个)端口(源端口)的流量完全拷贝一份,从另外一个端口(目的端口)发出去,以便网络管理人员从目的端口通过分析源端口的流量来找出网络存在问题的原因。

配置好交换机的端口镜像,就可以方便使用网路岗上网行为管理软件来监控管理您的网络了,可以使用网路岗之类监控公司员工的上网记录,监控聊天内容、流量控制等。

2、交换机支持镜像端口吗?

这个要找一些支持端口镜像功能的交换机才行的,并不是所有交换机都支持端口镜像功能。不过最近几年出的交换机大部分都支持端口镜像功能。

关于交换机的镜像资料,你可以去CSNA网络分析论坛看看:http://www.csna.cn/viewthread.php?tid=9703,收集了目前主流品牌交换机的镜像方法。有Cisco、华为、H3C、港湾、北电、D-link、锐捷、inter、HP、神州数码、联想系列的交换机,比较全面。

3、镜像方式

查了下H3C s7500系列的技术手册,发现s7500系列支持“本地端口镜像、远程端口镜像、流镜像、远程流镜像”四种方式。因为是在现场同一个交换机上做镜像,我们就用最方便的“本地端口镜像”方式来做。

对于本地端口镜像,镜像源和镜像,目的都属于同一台设备上的同一个镜像组,该镜像组就称为本地镜像组。本地端口镜像通过本地镜像组的方式实现,即源端口和目的端口在同一个本地镜像组中,设备将源端口的报文复制一份并转发到目的端口。如图所 示,源端口(GE3/0/1)的报文被镜像到目的端口(GE3/0/2),这样连接在目的端口上的数据监测设备就可以对这些报文进行监控和分析。这是最简 单的端口镜像方式。如果交换机上有多个单板,则本地镜像组支持跨板镜像,即目的端口和源端口可以在同一设备的不同单板上。

4、H3C s7502相关的镜像命令介绍

①mirroring-group group-id local : 用来创建一个镜像组。

group-id:表示镜像组的编号。

local:表示本地镜像组。

all:表示所有镜像组。

mirroring-group group-id mirroring-port mirroring-port-list { both | inbound | outbound }:用来为镜像组配置源端口。

group-id:表示镜像组的编号。

mirroring-port-list:源端口列表,表示多个源端口。

both:表示对端口收发的报文都进行镜像

inbound:表示仅对端口收到的报文进行镜像。

outbound:表示仅对端口发出的报文进行镜像。

③mirroring-group group-id monitor-port monitor-port-id:用来为镜像组配置目的端口。

group-id:表示镜像组的编号,该镜像组必须存在。

monitor-port-id:表示目的端口。

镜像端口的方法基本雷同,涉及到不同的产品,命令可能有所不同,查看了相应的技术手册就可以了。

四、配置交换机,做镜像,抓包定位、分析

该企业的主交换机上的进线端口在3号口上,我们现在要做的就是将3号口的数据镜像到闲置的12号口上,通过12号将该企业的所有进出双向数据进行镜像,再利用PC端的软件对这些进出数据进行抓包分析,从而找出木马的位置。

1、按以下顺序进行镜像操作:

①telnet IP \\进入s7502交换机。有两种方式,在知道交换机IP和登陆电脑许可的情况下,可以采用telnet这种方式。如果不知道交换机的IP且登陆电脑不许可的情况下,就要采用console接入方式了,这种方式的好处是直接接触交换机(使用console线把交换机和电脑连接),而且console可能保存着密码,不需要重新输入。

②system-view \\进入设备的用户视图

③mirroring-group 1 local \\配置本地镜像组1

④mirroring-group 1 mirroring-port GigabitEthernet0/0/3 both \\设置为被镜像口

⑤ mirroring-group 1 monitor-port GigabitEthernet0/0/12

\\设置为镜像端口

⑥quit \\退出

至此,镜像端口工作完成,现在所有的进出双向数据都被镜像到12号端口上了。我们可以在12号口上接电脑进行PC端的抓包。

2、抓包,找到木马

这里抓包,可以选用windows下的wireshark,但在实例中我用的是linux下自带的抓包工具tcpdump。因为我是知道反弹木马的联接IP的,那就直接抓它,看谁外连这个IP。

tcpdump是一个用于截取网络分组,并输出分组内容的工具。tcpdump凭借强大的功能和灵活的截取策略,使其成为类UNIX系统下用于网络分析和问题排查的首选工具。

一般用tcpdump –i lan host IP

-i后面接要「监听」的网络接口,例如 eth0, lo, ppp0 等等的接口。如图:

tcpdump –i lan2 host 162.211.xxx.xx

很快,就发现了有个外连的IP:192.168.0.3,一查,原来是台服务器的。这个包的长度为1,可能是心跳包,但也太短了吧,不管了直接找机器。

利用工具,发现了外连的程序,原来是svchost.exe,如图:

原来是svchost.exe,PID为6108。

找到路径,发现原来不是windows的svchost,而是个起了同名的、不同路径的svchost,提取出来。剩下的活交给某单位处理吧,分工负责嘛。

3、分析木马(简单介绍)

分析下svchost.exe,发现它将自身添加到启动注册表中,并在windows\system32下生成一个随机的文件及一个key文件,同时将自身复制到windows\XXXX+随机文件名的目录下,删除自身后启动副本,并外连162.211.xxx.xx:8888。因为162.211.xxx.xx是处于不活动状态,也就没有继续分析了。

用自写的软件“NetEye.exe”进行抓包,很快就发现了发包的内容,居然里面有“Gh0st”字样,看来又是这款流传很广的木马软件改的吧。

本方中没有分析木马的横向渗透、横向漂移问题,也没考虑木马的静默问题,从简处理了。

声明:本文来自MicroPest,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。