信安圈

无文件启动方式之Poweliks实现

2016-08-08  本文已影响0人  hippuris

我们首先分析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://mp.weixin.qq.com/s?__biz=MjM5MTA3Nzk4MQ==&mid=207025811&idx=1&sn=76130bdd0d6273af23f234e13faa160f#rd

http://www.freebuf.com/articles/system/108288.html


上一篇 下一篇

猜你喜欢

热点阅读