欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

全新的恶意攻击技术已出现:针对日本用户的复杂多阶段PowerShell恶意脚本分析

来源:本站整理 作者:佚名 时间:2019-03-30 TAG: 我要投稿

Get-Variable '*mDR*'语句的输出内容
执行剩余代码,会输出一个字符串。首先使用frOMbaSe64stRING函数解码长字符串,然后使用DEFlATeSTREam解压。最后,将结果转换为ASCII。我们可以使用PowerShell或PowerShell ISE运行这部分来删除这一阶段。你可以通过删除图4中的红色部分来实现,现在我应该能得到如下图所示的代码。

第3阶段的反混淆结果
这个阶段不依赖于定义的变量,而是依赖于环境变量来构造“iex”。在命令的其余部分中,这些数字用0x0c(12)进行xored,然后转换为字符,最后连接在一起形成一个字符串。注意,这部分非常耗时,然后使用iex执行得到的字符串。

第4阶段的反混淆结果
在这个阶段,构造一个字符串并通过管道连接到iex(红色部分)。$PSHome是一个指向PowerShell主目录的预定义变量。
要构造字符串,首先将每个数字(以二进制表示)转换为字符串,然后转换为Int16,再转换为字符。最后,将所有得到的字符连接在一起形成最终字符串。

第5阶段的反混淆结果
重申一下,红色部分是如何构建iex的过程。在这个脚本的其余部分中,format运算符用于构造一个字符串。然后使用replace函数(蓝色部分)将一些字符和子字符串替换为其他字符,得到的字符串如下图所示。

第6阶段的反混淆结果
此PowerShell脚本中使用了相同的技术,在对此阶段进行反混淆处理后,我们得到如下内容。

第7阶段的反混淆结果
我们可以再次使用我们的python脚本来反混淆字符串格式化技术(请注意该文件是ASCII格式,因此将python脚本中的编码从utf_16更改为utf_8)。我们还可以简化代码以更好地理解它的作用。

第8阶段的反混淆结果
在第44行,根据当前Windows的版本,调用v6B或v10A函数。第3行至第27行与第1至21行类似,添加的行数较少。如果Windows版本等于6,则调用v6B。此函数首先尝试从两个URL下载图像(如果第一个URL不可用,则尝试第二个URL)。如果图像的大小高于55555,则在第35到36行上提取嵌入图像中的字符串。

包含PowerShell代码的图像(隐写技术)
此示例中的隐写术提取函数与ursnif使用的技术非常相似(类似于https://twitter.com/DissectMalware/status/1057518886709612546)

隐写技术类似于ursnif使用的技术
然后,使用Nice函数对提取的代码进行解密和解压缩(第39行),生成的base-64编码字符串先被解码然后执行(第40行)。
https://i.postimg.cc/kn50Ph3h/6A.png?dl=1
https://i.imgur.com/wRli0qz.png
如果Windows版本不等于6,则调用函数v10A。首先,对base64编码的字符串进行解码,并通过[Reflection.Assembly] :: Load函数加载结果。基于这个函数,我们可以推断出数据是一个. net dll二进制文件,然后调用静态函数Stefan.gavbo.pf()。

嵌入式.NET DLL
此时pf函数会下载另一个图像,如下图所示。

pf函数下载的图像,它包含PowerShell代码
从v6B中的下载图像中提取的代码如下图所示:

从下载的图像中提取的PowerShell代码,返混淆后的结果如下:

对提取的PowerShell脚本进行第一轮反混淆处理后的结果

经过第二轮反混淆后提取的PowerShell脚本

上一页  [1] [2] [3]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载