无文件启动方式之Poweliks实现

我们首先分析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


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,127评论 19 139
  • 好像关于Powershell说的已经差不多了,所以最后一篇文章就来使用Powershell写一些脚本,帮助我们完成...
    乐百川阅读 2,144评论 1 10
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,677评论 9 468
  • 我不知道是不是因为学习学得越来越欧巴桑,反正是有人觉得我离他们很遥远。第一似乎是因为我是一个悲剧的JD,第二似乎是...
    生如如花阅读 561评论 0 2
  • 应用分发领域的玩家情况、格局态势 据艾瑞、Questmobile、Newzoo等第三方数据机构提供的消息,在国内安...
    schsjh阅读 5,067评论 0 2