- A+
AutoIt是一个自动化的Windows界面交互的脚本语言,具有很高的灵活性和较低的学习曲线。由于AutoIt解释器本身属于合法程序,黑客可以把恶意代码藏在脚本文件中,从而灵活地创建恶意软件,在系统中没有独立进程存在,从而延长其存活周期。
以下是一个从国外流传进来的AutoIt木马样本,代表着此类木马家族典型的攻击手法。
样本信息
[AutoIt3.exe] 71D8F6D5DC35517275BC38EBCC815F9F [googleupdate.a3x] E58C5E3F461089CA9688D3ACA204EA70
AutoIt3.exe是AutoIt脚本解释器,带有正规数字签名:
真正的病毒体是googleupdate.a3x
执行时依靠AutoIt3.exe调用googleupdate.a3x脚本。便会执行其中的恶意代码
如:
C:\Windows\system32\cmd.exe /c start skypee\autoit3.exe autoit3executescript skypee\googleupdate.a3x explorer "%cd%" & exit
在网上搜索C:\Google\ googleupdate.a3x,可以找到不少中招反馈。(此木马脚本被某些杀毒软件清理之后,没有清理干净残留文件,就会出现开机弹出这个错误框的现象)
代码分析
代码总共接近3300行,前1300行左右像是复制了一个通用代码。
里面有大量的常量的声明,封装了大量的WinAPI和GDI函数,并定义了大量的字符串、数组操作函数,甚至有限制鼠标活动范围的函数。
但这些预定义好的常量和函数后面用到的却很少。可能是出于作者习惯,每个脚本都要带上这段通用代码方便随时调用。
中间1582行是在拼一个很大的变量,内容是用base64编码过的
解开之后是一个不明身份的小帅哥照片。看照片信息是用三星Galaxy S4手机(GT-i9500)拍摄的,并经过PS处理,但没找到GPS左边或其他有用的信息,无法推断这人是谁……并且病毒执行后也没有调用这段数据,完全是一段垃圾数据。
只有最后的400行是真正的病毒代码。这部分代码主要做了四部分的工作:
一、检查自身运行环境
二、创建开机自启动
三、感染全部磁盘
四、驻留内存并与服务器通信实现远程控制
【检查自身运行环境】
1.检查自身是否存在于“c:\google”目录下,或目录中是否包含“skypee”字样,如果都没有则退出
2.通过创建互斥量“googleupdate”检查自身是否已经运行,如果已经运行则退出,不重复运行
3.检查自身是否处于被分析的环境中,如果认定自己处于被分析的环境则退出。检查逻辑如下表(字符串检测均不区分大小写):
4.检查自身是否在“c:\google”目录下,若不在,则将自身当前所在目录复制为“c:\google”,同时将目录设置为只读/系统/隐藏属性,启动新目录下的病毒脚本,并退出自身。
【创建开机自启动】
手法比较常规,就是写注册表的run项和向“启动”目录添加快捷方式:
1.注册表run项
2.向“启动”文件夹写入快捷方式
【感染全部磁盘】
1.检测注册表值,设置为不显示系统SuperHidden的文件:
2.遍历本地磁盘,在每个盘符下作如下操作:
a)在当前盘符根目录下新建名为“skypee”的目录。并将autoit3.exe和病毒脚本复制到该目录下。并将该目录属性设置为“只读/系统/隐藏”
b)遍历当前盘符根目录下所有文件夹,在每个文件夹下,创建一个与该文件夹同名的快捷方式文件。快捷方式指向a步骤中创建的病毒。并将快捷方式图标设置为文件夹图标
c)如果当前盘符属性为“removable”(最常见的是U盘),则会在盘符根目录下额外创建如下名称的快捷方式,指向a步骤中的病毒复制体,并将快捷方式图标设置为文件夹:
my games my pictuers my videos hot downloads movies
【远程控制】
脚本在完成上述操作之后,会利用一个死循环代码常驻系统内存,并与远端服务器通信实现远程控制。
1.首先会循环尝试解析服务器列表中的所有域名,一旦解析成功则使用这个解析成功的域名作为连接地址,跳出这个尝试循环。不过脚本本身只在列表中填了一个域名:
2.进入常驻内存的远控死循环,连通远程服务器的95端口。成功后,会先将本地的机器名、用户名、所在国家、系统版本、当前存在的安全软件等信息发送出去。然后等待远端指令进行进一步操作。接受的指令如下:
由于脚本本身特性所致,很容易被编辑修改。所以分析人员将远控的控制服务器稍作修改,就在自己的机器中实现了对虚拟机内脚本的控制:
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫