病毒描述
病毒名称 : TrojanSpy/Agent.xcu
文件MD5 : c9714008b97d6e1a1ae4edd435d2378c
文件大小 : 147,456 字节
编写环境 : C++
是否加壳 : 否
文档公开级别 : 完全公开
病毒执行体描述:
TrojanSpy/Agent.xcu 伪装成系统动态链接库(DLL)文件,伪装成动态链接库名称 "ntshrui.dll","msls31.dll",并在伪装程序的导出表里对"ntshrui.dll","msls31.dll"的导出表进行了克隆跳转,对调用的一些敏感函数进行转发调用,得到保存调用参数。
经过技术鉴定TrojanSpy/Agent.xcu 是间谍病毒程序,对中毒的机器进行邮件截取,以及对QQ等相关聊天软件信息的记录。 若未发现聊天软件,则进行全局键盘鼠标钩子的安装,对网页,邮件等相关进行监视。
病毒还有对整个系统硬盘进行逻辑分区的读取,进行每个逻辑分区内的文件系统结构进行分析,得到所有文件的信息,保存在文件中。在注册表中添加一系列表项键值为其保存在固定目录的文件名称。对当前操作系统的屏幕进行抓取,通过二值化操作,进行简单的压缩,保存。对屏幕的截取是由工作线程完成,每间隔一段时间都会抓取一张当前屏幕图像保存。
并对当前系统中的网络防火墙以及杀毒软件进行枚举,国内外所有的杀软及防火墙均在其列,提升自身的权限至用户态最高权限,并对杀软进行映像劫持,使杀软或防火墙再启动的时候失效。具有与服务器交互的能力,与服务器间通信使用UDP无连接通信,截取到的信息并不是立即发送,而是等待服务端的指令再进行发送,再与服务器通信的时候采用心跳包检测当前是否断开。
对TrojanSpy/Agent.xcu的动态分析以及可知的程序运行流程为以上流程,并有部分功能无法激活,通过静态分析知道其还对当前操作系统的硬件信息进行收集,对IE相关的网址收集或劫持,并从对注册表的字符串分配的序号来看,中毒以后对当前系统信息的收集至少有十项之多。从病毒被加载的流程看,此病毒只是一部分并不完整,缺失了可执行文件部分和驱动文件部分,病毒连接的服务器已经无法验证,相关的连接均无法响应。虽然代码中有这些功能但未经过发包测试。
病毒行为流程分析:
以上为流程的粗略流程,可有个大致的了解.
流程步骤:
一 病毒动态链接库文件(DLL)被加载运行后第一次先进行互斥的创建,动态连接库的加载是由系统或者其他可执行文件的加载随之加载的,其本身并不会自己执行。再检测当前操作系统环境如果是Windows xp 操作系统,则对"ntshrui.dll"进行加载劫持。
二 病毒动态链接库文件被任何一个EXE都可以加载,所以运行后会检测自身所加载的宿主文件是否是系统有效的高权限进程,并检测%SystemRoot%temp 目录下是否存在名为
“{E53B9A13-F4C6-4d78-9755-65C029E88F02}”的目录。如果该目录不存在则进行创建,依次检测注册表项中的键值,(该键值为病毒创建的与temp目录内存放的文件进行名称对应)
HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionTelephony
tst001 , tst002, tst003, tst009 ,tst010 这些tst开头,按序号进行排列的名称内存放的键值名称对应“{E53B9A13-F4C6-4d78-9755-65C029E88F02}”目录下的截取文件。
完成了病毒存放文件位置的环境搭建,进入工作线程的创建。
创建100059A0(线程过程函数) 一号线程
创建1000611D(线程过程函数) 二号线程
一号线程 执行过程:
首先检测当前进程是否运行在QQ.exe的进程中,如果运行在QQ线程中则创建一个针对QQ 的新线程,并且当前Dll执行的流程发生改变。专门对QQ.exe进行操作的流程。
若非在QQ进程中则检测当前的进程权限级别,并且检测当前用户,与系统服务的登录用户是否相同,进入相关流程。
检测系统硬盘数据,并写入到
%SystemRoot%temp{E53B9A13-F4C6-4d78-9755-65C029E88F02}目录中,保存的名字为
“drive.d" 文件,此文件是压缩的文件未被加密。用Winrar,或WinZip,均可打开。打开后存放的信息为我的磁盘目录和文件的结构信息。
并且对当前系统的桌面进行截图,保存在
%SystemRoot%temp{E53B9A13-F4C6-4d78-9755-65C029E88F02}目录中,
名称为"1344922135.v"系列的截图,并且间隔一段时间就会截图。
该目录中还有其他的文件,这些文件保存的都是用户机器上的信息,软件安装的情况,以及杀毒软件等,聊天记录,指定截取的信息等,都会被记录在此,等待服务端的收取。
在注册表目录中检测软件安装的信息,截取到的DisplayName与已知的杀毒或者防火墙的名字进行对比,找到则进入添加映像劫持的流程。
劫持的杀软名称有如下:
一号线程与二号线程都是独立线程,但是两者之间的数据同步是依靠信号量来完成的。
二号线程
主要完成对系统网络相关的信息获取和检测网络连接,并取得当前系统硬件的先关信息(CPU 主板芯片 硬盘容量),并连接到国外的一台服务器与53端口进行通讯, 之间的通讯采用UDP(不可靠无连接传输协议),发送心跳包。
当服务器返回数据后,两者进行联通。但是我测试的过程中该连接无法连接,导致这个过程是个循环的过程,直到联通后才有其他发送的流程。程序的流程并不是顺序流程,而是同步的逻辑,有些需要验证的点服务器无响应。
通过静态分析得到了,服务端在接受到发送的数据后,病毒则会把保存的信息文件给全部删除,并且清空注册表项中的对应键值。
病毒技术要点
TrojanSpy/Agent.xcu样本在截取信息方面用的比较有新意的方法 ,相同进程内的不同独立线程使用的同步来稳定操作,对劫持的Dll做了异常调用的检查,保存数据采用存放临时目录下的文件,使用zlib压缩修改其扩展名。与服务端通信之前对baidu.com sina.com 163.com 进行了连接操作,但并为真正连接,只是把他们的host转换保存起来, 其此部分防止防火墙对它进行拦截,但拦截提示是正常的域名连接,迷惑用户放过对其的限制,而直接放过拦截。对杀毒软件劫持方面利用映像劫持。
病毒清理流程
1.TrojanSpy/Agent.xcu 样本并非独立的可执行文件,而是作为动态链接库供其他程序调用,其只做信息获取和发送,对杀毒软件的劫持。
2.只对杀毒软件进行了劫持,但没有对一些安全类软件进行劫持,可以利用安全软件卸载此动态连接库所加载的进程,并删除动态链接库。
3.目前江民杀毒软件已经对此样本进行了查杀,并且对系统映像劫持有免疫。
|