像木马的主要种植手段是通过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–点击可直接下载,就可以直接运行了。 监听前介绍一下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
PC机命令行输入:windump –vvnXi2 src 192.168.1.2 and dst 202.96.209.6 命令中vv表示更详细的显示输出,n表示用数字表示服务端口和用IP表示已知域名的IP,src 192.168.1.2 and dst 202.96.209.6 表示只监听来自192.168.1.2并且目标是202.96.209.6的数据包,当然可以根据需要随机应变。 监听NOTEBOOK接受到默认域名服务器(202.96.209.6)的域名查询响应(图4): 图4
从以上监听数据来看,灰鸽子服务的启动过程中只向域名服务器查询了ns1.3322的IP地址,并且域名服务器返回的结果告诉我 ns1.3322的IP地址是61.177.95.125,查询类型为A,即最普通的域名到IP的查询。当然ns1.3322绝不可能是那个反向连接域名,因为这是希望动态域名解析的主DNS服务器。灰鸽子居然向我的默认DNS服务器查询另外一个DNS服务器的IP,或许是使用别的域名服务器,为了掩人耳目?我停止了PC机上的监听,准备改成监听ns1.3322和NOTEBOOK之间的数据,果然不出所料,得到以下结果。 监听NOTEBOOK向域名服务器ns1.3322的域名查询请求(图5): 图5
监听NOTEBOOK收到域名服务器ns1.3322的域名查询响应(图6): 图6
从给ns1.3322的域名查询请求中可以看到,中了灰鸽子的NOTEBOOK向ns1.3322发送了一个查询域名 65200.huigezi的请求,查询类型为MX,即邮件交换记录,也就是发向邮件地址someone@65200.huigezi 的邮件将会到达的的主机的地址(注意这里的MX记录正好是和原来的域名一样,其实完全可以不一样的,若MX记录为163,那么这封邮件就发送到 163这台主机去了)。至此已经可以清晰地看出这个灰鸽子的反向域名为65200.huigezi,我ping了一下,发现这与我刚开机时ICESWORD里看到的IEXPLORER进程连接某IP的8000端口的那个IP相同,可以确定结果完全正确。反向域名成功获得。不过这里出现一个技术疑问,nslookup后发现huigezi的域名服务器为ns1.3322,但是为何会直接向ns1.3322服务器查询呢?应该是我设置的域名服务器去问ns1.3322,然后告诉我查询结果,并且缓存查询结果,我对于这个过程是一无所知的,就像我的域名服务器原来就知道答案一样,我猜测是木马的自我保护方式,各位有更好的解释的话指点我下,谢谢了。得到域名后接下来可以做的事很多,我也不一一例举了(其实是域名劫持的综合技术要求很高,我没那水准…),不过假如你实在是很气愤的话,比如对方删了你硬盘重要文件等等,我可以告诉你,110找网警… 在整个监听过程中遇到过许多麻烦,比如NOTEBOOK上有其他程序访问网络,导致PC机上的终端输出狂闪不止,根本没法看,保存在文件里的话,也找得头晕,重启系统无数次等等…我始终相信技术是可以灵活使用的,创新的思路尤其重要,可能会有很意想不到的结果,无论是成功或者失败,去尝试一下总会获得一些经验,学到一点东西(在此稍点一下,名叫LOVEBOOM[DFCG][FCG][CUG]的家伙反编译了灰鸽子的客户端找出了灰鸽子的配置信息,当然包括反向连接域名,技术厉害哦,呵呵,不过遇到一个木马就反编译一个那就-_-,说笑的,偶很佩服他)。通过监听与域名服务器的通讯的方式从原理上来说对于一切木马都有效,所以我不太使用反向连接的木马,很早以前就觉得不安全。大家有技术上的问题可以和我一起学习探讨。 花絮:我的灰鸽子是BT下载死神漫画的时候机缘巧合中的,看到bleach000.exe,一个JPG图像的图标(我把系统中的显示已知文件名的后缀选项去掉的),来不及了,我太喜欢黑崎一户了,手快了…