来古计算机 > 病毒与安全 > 正文

恶意软件TeamSpy如何滥用TeamViewer

TeamViewer,远程支持、远程访问、在线协作和会议,用于实现远程支持、远程访问、远程管理、家庭办公及在线协作和会议功能的软件。

支持Windows、Mac、Linux、Chrome OS、iOS、Android、Windows Mobile和BlackBerry平台。不幸的是,恶意软件 TeamSpy也发现这个工具非常有利于用来进行恶意活动。恶意软件 TeamSpy 是由远程访问工具 TeamViewer 和键盘记录器等组件组成。攻击者利用社会工程学诱骗受害者安装TeamSpy,并通过 DLL 劫持技术进行隐藏,然后利用合法的远程访问工具 TeamViewer 执行未经授权的操作,从而从受害者的设备中窃取机密文档和加密密钥。

隐藏命令

在感染设备后,大多数恶意软件会与命令和控制(C&C)服务器进行通信,因为,C&C服务器是发送恶意软件执行命令的控制中心。 C&C服务器也是恶意软件收集数据的地方,在和C&C服务器进行通信时,恶意软件的开发者通常会实现一个自定义协议,但这样,杀毒软件就可以很容易地发现它与其他流量的不同,从而进行阻止。于是,为了使杀毒软件更加难以检测到恶意行为,一些恶意软件的开发者便想到利用流行的远程控制程序(如TeamViewer),而不是利用其VPN网络,这样就能起到更好地掩盖其恶意软件和C&C服务器之间通信的作用。

TeamSpy如何进行感染

TeamSpy通过垃圾邮件传播,旨在诱骗受害者打开附件。附件是一个带有宏的Excel文件,打开附件后,将出现以下内容:

微信图片_20191011151217.png

当攻击目标启用宏时,感染过程就会开始,这一切都会在后台完全运行,因此受害者不会发现任何攻击征兆。但如果让安全人员来查看这些恶意宏,他们就可以看到经过混淆的字符串,这些经过修改的字符串通常会分割成一个或多个子串,这些子串最后又能被连接起来。最重要的信息,我在下图已用红色圈出来了,并且是一个链接,攻击者可以通过这个链接下载攻击程序以及稍后使用的密码:

微信图片_20191011151344.png

该链接disk.karelia.pro是用于上传和共享文件的合法的俄罗斯服务,虽然下载的附件是PNG,但它实际上是一个EXE文件,更具体地说,它是一个受密码保护的Inno安装程序:

微信图片_20191011151440.png

在innounp实用程序的帮助下,我可以轻松地从恶意软件使用的Inno Setup安装程序列出或提取文件。如下图列所示,大多数文件都是常规的经过数字签名的TeamViewer二进制文件,但两个文件除外——msimg32.dll和tvr.cfg。 Tvr.cfg是TeamSpy的配置文件,稍后我会介绍,而msimg32.dll则是恶意软件的一个组成部分。 Msimg32.dll是一个DLL库,它是Windows操作系统的一部分。然而TeamSpy会滥用DLL搜索顺序,以便将当前目录中的假msimg32.dll加载到进程中,而不是从Windows / System32目录中删除原始msimg32.dll。恶意软件本身就位于假的msimg32.dll库中:

微信图片_20191011151526.png

TeamSpy的隐藏过程

通常当你安装TeamViewer时,会看到一个带有ID和密码的GUI窗口,但对于攻击者来说,他们需要知道是否要远程连接到攻击目标的计算机:

微信图片_20191011151731.png

如果TeamSpy成功感染了用户,则不会显示任何内容,因为所有操作都是在后台运行的,因此攻击目标不会注意到安装了TeamViewer。这是通过挂接许多API函数并改变其行为来实现的。 TeamSpy挂接了以下近50种不同的API:

kernel32.dllCreateMutexW, CreateDirectoryW, CreateFileW, CreateProcessW, GetVolumeInformationW, GetDriveTypeW, GetCommandLineW, GetCommandLineA, GetStartupInfoA, MoveFileExW, CreateMutexAuser32.dllSetWindowTextW, TrackPopupMenuEx, DrawTextExW, InvalIDAteRect, InvalidateRgn, RedrawWindow, SetWindowRgn, UpdateWindow, SetFocus, SetActiveWindow, SetForegroundWindow, MoveWindow, DialogBoxParamW, LoadIconW, SetWindowLongW, FindWindowW, SystemParametersInfoW, RegisterClassExW, CreateWindowExW, CreateDialogParamW, SetWindowPos, ShowWindow, GetLayeredWindowAttributes, SetLayeredWindowAttributes, IsWindowVisible, GetWindowRect, MessageBoxA, MessageBoxWadvapi32.dllRegCreateKeyW, RegCreateKeyExW, RegOpenKeyExW, CreateProcessAsUserW, CreateProcessWithLogonW, CreateProcessWithTokenW, Shell_NotifyIconW, ShellExecuteWiphlpapi.dll

GetAdaptersInfo其中有一些挂接会阻止应用程序访问某些特定资源,例如如果RegCreateKey或RegOpenKey尝试访问Software TeamViewer注册表项,则会返回错误代码ERROR_BADKEY:

微信图片_20191011151814.png

挂接GetCommandLine使得TeamViewer认为它是以预定义的密码开始的,而不是随机生成的密码,TeamViewer用户通常可以通过添加命令行参数将此密码设置为任意值.

挂接 SetWindowLayeredAttributes将TeamViewer窗口的不透明度设置为0(指令PUSH 0),根据MSDN文档,该视图的含义如下:“当bAlpha为0时,窗口是完全透明的。当bAlpha为255时,窗口是不透明的.

挂钩CreateDialogParam会阻止一些恶意软件创建不需要的对话框,用户可以在文件TeamViewer_Resource_en.dll中查找这些对话框,它们以10075的数字引用

在ShowWindow的情况下,它定义了它自己的nCmdShow参数范围4d2h-10e1h。如果其他值超过这个范围,则不会发生任何进程

其中最有趣的挂钩便是CreateWindowEx API。通过一系列类名检查,我发现它属于TeamViewer聊天窗口的窗口和其他窗口控件。在WinSpy ++等工具的帮助下,即使特定进程的所有窗口被隐藏,我们还是可以看到这些窗口的。从下图可以看出,有一个ControlWin窗口,它有几个TVWidgets。TvWidget是一个TV常用效果控件,包括焦点、边框处理等, 它有两个ATL:????????文本编辑,一个用于聊天消息历史,一个用于新的聊天消息,还有一个组合框,具有聊天参与者的下拉列表和按钮发送。 “消息01”代表聊天中收到的消息,“消息02”代表在点击“发送”按钮后发送的消息。聊天窗口无法正常显示,因为恶意软件在后台运行,但是可以修复恶意软件,从而不会发生隐藏窗口:

01.gif

TeamSpy的配置文件

TeamSpy的配置存储在tvr.cfg文件中,它使用简单的自定义加密算法,可以在下图中看到。它读取输入文件并使用密码“TeamViewer”,该算法运行两个计数器,cnt1(0.v.tvr.cfg中的字节数)和cnt2(0..length的密码)。它需要一个来自密码的字节,加上乘法cnt1 * cnt2的结果。这些密码会通过异或,产生一个字符,并且在循环结束时,它与来自配置文件的相应字节进行异或,配置文件中的所有字节都重复这些步骤

受感染的设备和C&C服务器之间的通信是在感染过程开始后才建立的,之后便会定期发送以下请求,大多数参数的名称可以清楚地推导出来

d = TeamViewer ID,网络犯罪分子需要这个id,它与密码一起就足以远程连接到受感染的计算机

tout = timeout

idl =空闲时间

osbt = 32bit / 64bit

osv = OS版本

osbd = OS构建版本

ossp = service pack

tvrv = TeamViewer版本

uname =用户名

cname =计算机名称

vpn =有TeamViewer vpn

avr =防病毒解决方案当我在网络浏览器中打开C&C服务器时,就可以看到登录页面


通信插件

受感染的计算机是通过TeamViewer控制的,攻击者可以连接到远程计算机,因为他们已经知道了TeamViewer的ID和密码,或者他们可以通过TeamViewer聊天发送命令,这样就可以在受感染的机器上做任何事情。通过TeamViewer聊天的通信可以实现基本的后门功能:applist,wcmd,ver,os,vpn,locale,time,webcam,genid。在TeamSpy代码中,这些命令与它们的crc32校验和进行比较,所以很容易发生冲突。因为crc32(wcmd)= 07B182EB = crc32(aacvqdz),这两个命令都是可互换

攻击者使用TeamViewer的合法VPN加密流量,使其与合法的TeamViewer流量无法区分。一旦设备受到感染,他们就可以完全访问计算机。他们可以窃取和渗透敏感数据,下载和执行任意程序等等。不得不说,滥用合法应用程序是一个聪明的技术,因为并不是每个用户都会检查所有DLL库在同一目录的合法性。检查主可执行文件的签名没有显示任何可疑的内容,可能让受害者认为一切都是正常的。详细情况,请参考下面的main_w32.exe文件的数字签名,这个文件就不是恶意的。

安全专家发现,目前除了TeamSpy外,已有越来越多的恶意软件类开始滥用TeamViewer。


推荐文章

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

标签列表
网站分类
最新留言

Powered By Z-BlogPHP and Terry

Copyright @ laigucomputer.com 来古计算机 工信部备案号:粤ICP备18009132号