我们首先分析Poweliks这款著名的无文件启动的恶意程序的运行过程,随后我们基于对Poweliks的理解,从Poweliks中抽取出关键的指令信息,以实现一个可以无文件启动的程序。只作技术交流,勿非法用途。
Poweliks运行过程
1.在启动项中,调用javascript读取注册表值,这个值就是加密的数据data1
2.data1是javascript.encode过的,使用decode解密后
3.这个脚本,会判断有没有powershell,如果没有会接着判断安装了哪些.NET Framework版本,根据不同版本下载不同的补丁包安装powershell,随后运行一段base64过的代码
4.有gd函数,有调用GetModuleHandle,GetProcAddr函数等,运行一段base64过的代码
5.解密出这个base64代码就是一个PE
利用过程:
我们将利用的文件,放在文末的下载地址中,文件经过下面的几部就可轻松easy的实现无文件启动。当然,写个脚本串联起这几个步骤,可以很容易实现自动化生成。
1.将我们想要无文件启动的文件命名为AAA,文件我体积最好不要太大
2.将AAA进行base64后替换“第四步”文件中的powershell中的密文部分,替换后的“第四步”文件记为BBB
3.将BBB进行base64后替换掉“第三步”文件中的密文部分,同时可以根据自身需要将第三步文件中的log函数进行清理,处理完后的“第三步”文件记为CCC
4.写个javascript脚本,将CCCencode一下下,或者通过自已喜欢的手法混淆后保存,记为DDD
使用时,将DDD写入注册表EEE位置处中,将“文件1”中注册表位置改成EEE处,然后将“文件1”写入注册表的启动项中
另外:Poweliks写入的注删表文件,使用regedit无法正常的查看与编辑,我们通过pchunter工具对比后,找到原因:
病毒写入的注册表用regedit是无法查看的
但可以用xurte进行导出后,看到出现这种情况的原因,是因为regedit对字符的处理方式不同,对a字体串值判断的问题,判断是00就直接当成空字符串了
文件下载链接:http://pan.baidu.com/s/1o8wAs3o 密码:o7jo
参考资料:
http://www.freebuf.com/articles/system/108288.html