隐藏在注册表的恶意软件 – Poweliks
时间:2022-04-26
本文章向大家介绍隐藏在注册表的恶意软件 – Poweliks,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
日前,国外安全公司GData发现一款比较新型的恶意软件,并定义名称为Poweliks,该恶意软件能够持久的感染目标机器,比较新颖的是该软件不会在目标主机上安装任何文件。Poweliks只在计算机的注册表里面存储它的组件,所以很难通过普通的防病毒软件进行检测。
Poweliks恶意软件传播方式一般是通过邮件的方式,在邮件里面包含一个恶意的word文档,该文档里面包含了一些恶意的代码,一旦执行恶意代码将在注册表里面加一个隐藏的自启动项目。
Poweliks在注册表里面创建的键值使用非ASCII字符作为键名,防止使用Windows注册表编辑器直接读取。如下图1:
我们使用注册表编辑器打开之后如下图:
可以看到注册表编辑器无法读取非ASCII的键名。
GData公司发布的文章提到,Poweliks所有的活动都存储在注册表中,没有任何文件被创建过,所以能够绕过传统的恶意软件文件扫描技术,并且能够执行任意操作。如果要防止这样的攻击,防病毒解决方案必须在Poweliks执行之前检测载体Word文档。
GData举例子说明,Poweliks执行原理如同俄罗斯套娃一样,一层套着一层,最初执行JScript代码,一系列判断之后最终执行包含恶意代码的PowerShell脚本。并且Poweliks会查询机器的硬编码IP地址,攻击者可以执行任意命令,如下载一些攻击的payload等。
Poweliks行为特征:
1、利用Microsoft Word中的漏洞制作Word文件,然后通过电子邮件方式传播
2、创建一个隐藏的自启动注册表项
3、解码该启动项之后发现:代码中一部分会判断系统是否安装了PowerShell,另外一部分是经过Base64编码的PowerShell脚本,
该脚本调用并执行攻击者定义的shellcode
4、shellcode会执行Windows二进制文件的payload,该payload会查询机器硬编码的IP地址,以接受攻击者的进一步指令
5、以上所有的执行过程全部存储在注册表中,没有任何文件被创建
Poweliks是一个功能非常复杂的软件软件,它使用多个代码来隐藏自身,能够不创建任何文件的情况下完成操作,能够执行注册表中任何一项操作,FB小编未找到Poweliks的源代码,如有同学找到了Poweliks的源码,欢迎发到FB一起研究。
- MySQL中的半同步复制(r11笔记第65天)
- Linux系统LVM逻辑卷创建过程以及自动化脚本
- 一个闪回区报警的数据恢复(r11笔记第62天)
- 利用腾讯云COS云对象存储定时远程备份网站
- 分享一个自写的Python远程命令和文件(夹)传输类
- Oracle数据误操作全面恢复实战(r11笔记第78天)
- 远程协助解决异常宕库的问题(r11笔记第75天)
- Nginx-helper纯代码版,文章评论发布自动清理Fastcgi缓存
- MySQL和Oracle行值表达式对比(r11笔记第74天)
- 闪回数据库不是“万金油”(r11笔记第73天)
- 修改Apache的超时设置,解决长连接请求超时问题
- Oracle 12cR2初体验(r11笔记第91天)
- MySQL中的undo截断(r11笔记第89天)
- Linux系统 df 命令显示异常、分区丢失问题解决
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- xxe漏洞学习
- De1CTF2019-SSRFME
- BJDCTF2nd-EasyMd5
- BJDCTF2nd-fakegoogle
- java_Scanner类、Random类、ArrayList 类的使用
- 使用Python获取Oracle索引信息
- 监控Oracle数据泵状态
- MySQL MHA部署 Part 5 MHA部署指南
- MySQL MHA部署 Part 6 MHA故障转移测试
- 一步步搭建基于GTID的MySQL复制
- innobackupex命令总结
- 使用sysbench对数据库进行压测 Part2 sysbench语法介绍
- MySQL Galera Cluster全解析 Part 9 监控Galera Cluster
- redis的介绍及安装
- 使用oradebug捕获SQL语句