基于“行为模拟”的木马线索调查方法
徐国天
中国刑警学院,网络犯罪侦查系,辽宁沈阳 110854

作者简介:徐国天(1978—),男,汉族,辽宁人,硕士,副教授,研究方向:网络安全、数据还原。Tel:13940399033; E-mail:xu_guo_tian888@163.com

摘要

目的 研究木马线索的提取、分析方法。方法 针对“肉机”与黑客主机无法正常建立通信连接的情况,提出了一种基于“行为模拟”的调查方法。即搭建起一个实验环境,模拟黑客主机与“肉机”进行通信,诱使“肉机”产生通信数据,截获这些数据并从中提取出黑客的相关线索。结果 提出的调查方法可以提取出一些“疑难”木马的相关痕迹。结论 该方法可以应用于公安侦查破案。

关键词: 行为模拟; 木马; 线索; 调查; sniffer; 电子证据
中图分类号:DF795.1 文献标志码:A 文章编号:1008-3650(2014)02-0019-04
Trojan investigation method based on behavior simulation
XU Guo-tian
China Criminal Police College, Shenyang 110854,China
Abstract

Objective To explore a extraction and analysis method of Trojan.Methods Communication between simulation machine and victim machine was established first, then the data sent from simulation machine to victim machine were intercepted, and the Trojan was extract.Results Some Trojans were detected.Conclusion This method can be used in casework.

Keyword: behavior simulation; Trojan; digital evidence

信息科学技术的快速发展和计算机网络的普及在给人们生活带来极大便利的同时, 也滋生了各类黑客技术的迅速生长, 其中尤以木马技术的发展最为迅猛、危害最大。近年来, 通过各种媒体经常可以听到黑客入侵的相关报道, 如某政府机构的服务器被入侵、核心数据库遭到篡改; 某大型网络游戏平台遭到僵尸网络攻击而暂停运行; 大量用户的网上银行账户信息被盗、资金被转移, 等等。这些攻击事件无一例外都与两种类型木马有关, 即远程控制和盗号木马。远程控制木马程序一般由两部分构成, 客户端和服务端。在被入侵的主机上种植客户端, 在黑客主机上运行服务端。服务端通过计算机网络对客户端进行远程控制。盗号木马会悄悄记录受害者输入的敏感信息(例如银行账户、邮箱账户、QQ密码等等), 然后将窃取的敏感信息发送到黑客指定的邮箱或服务器上。深入研究这两类木马线索的提取、分析方法对公安机关的侦查、取证工作有重要意义。

犯罪分子为了逃避公安机关的打击, 会采用各种方法来隐藏、销毁木马入侵痕迹, 因此木马线索的调查、分析一直是公安取证工作中的一个难点问题。目前常用的木马线索分析方法主要有两种, 一种是使用反汇编技术分析木马的程序文件。利用反汇编工具(例如OllyDBG)将木马客户端的二进制程序文件转换为汇编代码, 再逐步跟踪代码的执行流程, 进而提取出域名、IP、邮箱地址、用户名等黑客相关线索。但这种方法实施起来有较多困难。例如很多木马将自己隐藏进某个合法程序中, 它自身并不存在一个独立的程序文件, 此时很难定位木马程序。再如一些木马采用了加壳、加密技术保护自身的程序文件, 这使得调查人员很难进行程序代码的跟踪调试。由于涉及到比较深入的计算机知识, 因此这种方法只适合极少数的专业人员使用, 无法大面积推广应用。

第二种方法是通过抓取网络数据包来获得木马线索。这种方法是利用数据包捕获工具(例如sniffer、wireshark)抓取受害者主机收发的通信数据, 从中提取出木马控制端域名、IP地址等相关线索。但在某些情况下, “ 肉机” 端种植的木马程序无法与远程的黑客主机建立通信连接。此时办案人员无法通过数据包捕获的方式来查询到黑客的相关线索。本文正是基于这种情况, 提出了一种“ 行为模拟” 的调查方法, 即搭建起一个实验环境, 模拟黑客主机与“ 肉机” 进行通信, 诱使“ 肉机” 产生通信数据, 截获这些数据并从中提取出黑客的相关线索。

1 木马线索追查

木马程序一般由两部分构成, 客户端和服务端。在被入侵的主机上种植客户端, 在黑客主机上运行服务端, 服务端通过计算机网络对客户端进行远程控制。被种植木马的受害者主机称为“ 肉机” , 黑客可以远程完全控制“ 肉机” 。

TCP是一种可靠的传输层协议, 它提供完善的差错校验、流量和拥塞控制功能, 可以实现两个进程之间的可靠通信。UDP是一种不可靠的传输层协议, 它只能提供有限的差错校验机制, 没有流量和拥塞控制。如果选用UDP实现进程之间的可靠通信, 就必须在应用层实现流量和拥塞控制功能, 这增加了程序开发的难度。

木马需要实现对“ 肉机” 的完全控制、监控“ 肉机” 的操作画面、监控“ 肉机” 的语音和视频通信, 这些功能需要在“ 肉机” 和黑客主机之间可靠传递大量通信数据, 因此TCP成为远程控制木马的首选协议。

早期的木马(如冰河)采用的是黑客主机主动寻找“ 肉机” 的通信模式, 但由于大量“ 肉机” 分散在局域网(使用专用地址, 对外不可见)或家庭拨号网络中(每次登陆IP地址变化), 导致这种通信模式失效。目前远程控制木马普遍采用“ 肉机” 主动寻找黑客主机的通信模式。但这种模式也存在一个问题, 那就是黑客通常位于家庭拨号网络环境之中, 黑客主机每次联网都会从网络运营商那里获得一个全局合法IP地址, 中断连接时释放这个IP, 下次重新联网会获得另一个不同的IP地址。这导致“ 肉机” 无法以IP地址作为远程连接的稳定条件, 因此出现了动态域名映射技术, 以图1为例进行解释(见图1)。

图1 动态域名映射

黑客主机联网之后获得一个动态IP地址60.1.2.3, 之后将这个IP地址传递给动态域名服务器, DNS服务器将域名www.hacker.com映射为60.1.2.3。假设黑客主机下次联网获得IP地址为70.1.2.3, DNS服务器会将域名www.hacker.com重新映射为70.1.2.3。可见IP地址虽然在不断变化, 但域名是稳定不变的。

图2(a)显示的是“ 肉机” 与黑客主机正常建立TCP连接的通信过程。“ 肉机” 首先使用DNS协议将域名www.hacker.com解析为对应的IP地址60.1.2.3。之后通过TCP的三次握手机制与黑客主机建立一条TCP连接, 远程控制通道建立完成。远程通道建立起来之后, 在“ 肉机” 端使用netstat-an命令可以查看到这条控制连接。图2(d)表示“ 肉机” 使用1065端口与远程主机(IP地址为60.1.2.3)的1066端口建立了一条TCP连接。

在两种情况下“ 肉机” 不能与黑客主机正常建立TCP连接, 这时采用netstat-an命令不能查看到对应的控制连接, 即不能获得黑客主机的IP地址。图2(b)表示的是第一种情况, 可以看出域名解析任务正常完成, 即“ 肉机” 获得了黑客主机的IP地址, 但在向黑客主机发出第一次TCP握手报文时, 对方并未应答。图2(c)表示的是第二种情况, 可以看出域名解析请求并未得到应答, 这是因为域名服务器中并不存在对应的域名解析记录。此时我们无法获得黑客的任何线索。

图2 不同情况下的通信过程

2 基于“ 行为模拟” 的疑难木马线索追查方法

这里说的“ 疑难木马” 是指那些不能与远程黑客主机正常建立TCP控制连接的木马。对于这类“ 疑难木马” 可以在图3所示的拓扑环境中, 使用“ 行为模拟” 方法来诱使“ 肉机” 上的木马客户端发出信息, 而这些信息通常包含了可以证明木马存在的相关证据。调查人员可以将受害者主机、一台IIS服务器和一台DNS服务器通过集线器进行连接, 要保证与外部因特网隔绝。

这里选取IIS服务器来模拟黑客主机是因为两者的初始工作机制极为相似, 均监听某个特定的TCP端口。区别在于监听的端口号不同, IIS默认监听80端口, 而黑客主机可以监听任何端口。这时用户需要将IIS的监听端口调整为黑客主机的工作端口。这样一来, 两者的初始工作状态完全相同, 可以达到行为模拟的相关要求。

整个调查过程共分为4个阶段(见图4)。第1阶段是DNS模拟应答阶段。调查人员先将受害者主机连入因特网, 同时使用数据包捕获软件(例如sniffer)监听一段时间, 从捕获的通信数据中识别出那些未获得应答的DNS请求报文, 记录下其中携带的域名信息, 将这些域名中的一个添加到图3所示的DNS服务器中, 同时将它的映射IP地址设置为IIS服务器的IP。这样一来, 当组成图3所示的网络环境后, 这个之前未获得响应的DNS请求将得到应答, IP地址指向IIS服务器。

图3 “ 行为模拟” 方法采用的拓扑结构

第2阶段是模拟3次握手机制建立TCP控制连接。“ 肉机” 收到DNS应答报文之后, 信任其中携带的信息, 向IIS服务器发出第1次握手SYN报文。由于“ 肉机” 连接的端口很可能不是TCP80端口, 因此这个连接请求通常会被IIS服务器以一个RST报文拒绝。调查人员通过在IIS服务器端运行的监听软件了解到这一信息之后, 按照“ 肉机” 的实际连接端口值调整IIS服务器的工作端口, 之后“ 肉机” 与IIS服务器通过TCP 3次握手机制建立起一条控制连接。

第3阶段是证据收集阶段。当TCP连接通道建立起来之后, “ 肉机” 会误认为IIS服务器就是远程黑客主机, 于是将数据发送给它, 这些数据可以是木马盗取到的账户信息, 或远程控制指令, 等等。IIS服务器上运行的监听软件会将它们记录下来, 提供给调查人员进行分析, 同时以ACK报文确认接收到的数据。

第4阶段是连接终止阶段。由于IIS服务器只是简单的以ACK报文确认收到的数据, 而没有与“ 肉机” 形成更深层次的互动, 因此“ 肉机” 端运行的木马程序会识别出这一异常, 而后使用一个FIN或RST报文来终止这条连接, IIS服务器会以一个RST报文进行响应。至此调查工作完成, 在IIS服务器端收集到“ 肉机” 在第三阶段发出的相关数据。

图4 基于“ 行为模拟” 的疑难木马线索追查方法

3 基于“ 行为模拟” 的盗号木马线索追查方法应用举例

盗号木马在窃取到敏感信息(例如受害者的网银账户和密码)之后会将这些信息发送给黑客指定的服务器。在“ 肉机” 无法与黑客服务器建立通信连接的情况下、可以应用本文提出的“ 行为模拟” 方法进行追踪, 以寻找出黑客的相关线索, 下面具体举例分析。

初始网络拓扑结构如图5所示, 首先确定“ 肉机” 端未获得应答的DNS请求报文。将“ 肉机” 正常接入因特网, 同时在监控主机上使用sniffer监听“ 肉机” 与外网的通信数据, 一段时间之后停止监听, 从捕获的数据报中确定那些未被响应的DNS请求报文(如果数据报较多, 可以利用sniffer提供的过滤功能筛选出DNS数据报)。

在本例中未获得响应的DNS请求报文如图6所示。可见“ 肉机” (IP地址为192.168.111.3)向DNS服务器(IP地址为210.47.128.135)发出了一个DNS请求报文, 请求解析域名www.xinxi.com对应的IP地址, 但这一请求并未获得应答。

图5 初始网络拓扑结构

图6 未获得响应的DNS请求报文

按照图7所示拓扑结构组成网络, 其中DNS服务器的IP地址为192.168.111.6, IIS服务器的IP地址为192.168.111.8。在DNS服务器上新增加一组映射, 将域名www.xinxi.com映射为192. 168. 111. 8(即IIS服务器的IP地址)。将“ 肉机” 的DNS服务器IP地址由之前的210.47.128.135修改为192.168.111.6。之后再次运行监控主机上的sniffer监听一段时间。由于“ 肉机” 的网络设置发生了变化, 因此“ 肉机” 会重新尝试进行网络连接, 它收发的数据报会被sniffer截获(见图8)。

图7 调整后的拓扑结构

图8 监控主机截获的数据

编号17的数据报是“ 肉机” 向新DNS服务器发出的请求报文, 请求解析域名www.xinxi.com对应的IP地址。编号18的数据报是DNS服务器返回的应答报文, 其携带的具体数据如图9所示, 可见域名www.xinxi.com被映射为192.168.111.8。编号19的数据报是“ 肉机” 向IIS服务器提交的第一次握手报文, 可见“ 肉机” 主动连接的端口为3030。由于IIS服务器端并未开放这个端口, 因此IIS服务器使用一个RST报文拒绝了这个连接请求, 即编号20的数据报。

图9 DNS应答报文

接下来将IIS服务器的工作端口由默认的80改为3030, 停止再重新激活“ 肉机” 的网卡, 这一行为会促使“ 肉机” 重新进行网络连接, 而其产生的数据报会被监控主机截获, 如图10所示。

图10 监控主机截获的完整通信数据

编号8~10的数据报是“ 肉机” 使用3次握手机制与IIS服务器建立一条TCP连接, “ 肉机” 选择随机端口1120, IIS服务器使用3030端口。

编号11的数据报是“ 肉机” 使用HTTP-GET方式向IIS服务器的aa.asp脚本文件提交了一组参数, 参数值为id=peter和pass=86982480, 显然这是“ 肉机” 端的木马程序记录到的敏感信息。由于服务器端并不存在一个名为aa.asp的脚本文件, 因此IIS服务器返回一个3780字节的错误信息, 这一错误信息被封装为3个HTTP数据报返回, 即编号12、13和15的报文。编号14和16的报文是“ 肉机” 返回的ACK确认报文。

编号17~20的数据报是“ 肉机” 使用四次挥手机制与IIS服务器断开这条TCP连接, 致此通信结束。通过“ 肉机” 提交的参数可以确定这是木马程序产生的一组通信数据, 木马使用服务器的域名为www.xinxi.com。如果DNS解析环节能正常进行的话, 还可以得到木马服务器的IP地址。

如果“ 肉机” 是使用ESMTP协议来提交盗取的敏感信息, 那么通过“ 行为模拟” 的方法还可以获得黑客使用的发信邮箱、账户、密码和邮件正文等信息, 采用的“ 行为模拟” 方法与本例相同, 这里就不再阐述。

4 讨 论

针对“ 肉机” 无法与远程黑客建立通信连接的情况, 本文提出了一种基于“ 行为模拟” 的木马线索调查方法。该方法可以模拟黑客主机与“ 肉机” 进行通信, 诱使“ 肉机” 提交数据, 这些数据通常包含了黑客盗取的敏感信息、提交的远程控制命令、黑客使用的邮箱地址、用户名、密码、黑客主机的域名, 等等。通过这些信息可以直接或间接地获得木马的相关线索。如果DNS域名解析过程能成功进行的话, 调查人员还可以获得黑客使用远程服务器的IP地址。

The authors have declared that no competing interests exist.

参考文献
[1] 徐国天 . 论中间人攻击对网上银行的安全威胁[J]. 中国刑警学院学报, 2008( 3). [本文引用:1]
[2] 张选波. 计算机网络协议原理实验教程[M]. 福建: 锐捷网络大学出版社, 2006. [本文引用:1]
[3] 徐国天. 基于OSPF路由欺骗的“黑洞”攻击及防御措施研究[J]. 信息网络安全, 2012. [本文引用:1]