反向木马的主要种植手段是通过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。WinDump的使用需要先安装WinPcap 3.1,然后下载WinDump version 3.9.3,就可以直接运行了。
WinDump的下载地址:
http://www.winpcap.org/windump/install/bin/windump_3_9_3/WinDump.exe
WinPcap 3.1下载地址:
http://www.winpcap.org/install/bin/WinPcap_3_1.exe
监听前介绍一下NOTEBOOK的状态,中了灰鸽子木马。查到服务名的方法很简单,使用入侵检测工具icesword,那么更容易了,打开就可以查看到所有进程和所有服务,无论是否隐藏的,一目了然发现IEXPLORER进程和lente服务是隐藏的(见图1和图2),于是禁止lente服务。(假如没有 icesword也没问题,进入安全模式,system32文件夹下搜索_hook.dll,发现一个systen_Hook.dll,明显是灰鸽子,注册表中搜索systen,发现关联的服务名为lente),把中了灰鸽子的NOTEBOOK一切有关网络的第三方开机自启动程序都禁止,防止引起不必要的域名查询混淆监听结果,把lente服务改成Manual方式,最后启动服务,?C机上观察监听结果。