反向木马的主要种植手段是通过IE的众多漏洞,bt下载时不小心运行,或者来路不明的软件,使未打补丁的用户点击之后下载运行了木马程序,而这些用户基本都是拥有动态IP的个人用户,若不使用反向连接的方式,势必无法长久控制。
下面让我们来讨论一下如何查出木马的最关键的要素――反向连接域名,知道了反向连接域名,你就可以随时了解到幕后元凶究竟在哪,是否在线等隐私资料,甚至可以进行域名劫持,从而使他所控制的单位全都连到你所设置的IP上去,可见反向域名一旦暴露,要抓住幕后黑手是轻而易举的事情。木马反向连接必须先向域名服务器发送查询要求,然后由域名服务器返回查询结果――域名对应的IP,有了IP之后再去连接主控端。而许多木马都通过修改系统文件,进程插入,API HOOK等众多方式实现了在系统中服务隐藏,进程隐藏,文件隐藏,端口隐藏,所以此时系统的输出已经不是可靠的输出了,可能你的抓包数据已经被恶意篡改,抹去了木马的相关数据(事后发现我的测试对象灰鸽子并没有这么做…但不排除别的木马会这么做…)。于是我想到了通过物理上的方法,木马虽然可以在系统中隐藏,但是这个域名查询的请求无论如何都会经过网线或者无线信号传送出去。
为了查出反向连接域名,构建以下网络拓扑结构:一台NOTEBOOK和一台PC连接在HUB上,ADSL MODEM接到HUB的UPLINK口上(注意:一般HUB的UPLINK口与旁边的接口绝对不能同时使用),选用HUB而不是宽带路由器的原因是我没钱…呵呵,其实真正的原因是HUB可以把任意一个端口发送的数据转发到除了本身端口外的其他任何一个端口,所以NOTEBOOK网卡的所有数据都会流经 PC的网卡,NOTEBOOK系统中可能被木马隐藏的网络数据,都会毫无保留的暴露再PC机的网卡上。
需要真正透彻理解从而提高技术还是需要实践,下面我就拿国内比较著名的灰鸽子木马做试验,尝试找出灰鸽子木马的反向连接域名(大家完全可以用别的木马做测试,因为我的机器不小心中了灰鸽子所以才将计就计)。PC机上的监听工具选择了TcpDump的WINDOWS版本WinDump,现在想来多余了,PC 上装着LINUX呢,可以直接使用TcpDump。
监听前介绍一下NOTEBOOK的状态,中了灰鸽子木马。查到服务名的方法很简单,使用入侵检测工具icesword,那么更容易了,打开就可以查看到所有进程和所有服务,无论是否隐藏的,一目了然发现IEXPLORER进程和lente服务是隐藏的(见图1和图2),于是禁止lente服务。(假如没有 icesword也没问题,进入安全模式,system32文件夹下搜索_hook.dll,发现一个systen_Hook.dll,明显是灰鸽子,注册表中搜索systen,发现关联的服务名为lente),把中了灰鸽子的NOTEBOOK一切有关网络的第三方开机自启动程序都禁止,防止引起不必要的域名查询混淆监听结果,把lente服务改成Manual方式,最后启动服务,在PC机上观察监听结果。
图1
图2
其中192.168.1.2是NOTEBOOK的IP地址,202.96.209.6是NOTEBOOK的主域名服务器,并且没有设置辅助域名服务器。 PC机的IP地址是192.168.1.3,这不太重要,因为是通过HUB连接的,只要启用网卡,无论设置成怎么样都会监听到NOTEBOOK的数据。
监听NOTEBOOK向默认域名服务器(202.96.209.6)的域名查询请求(图3):
图3