搜索
查看: 1681|回复: 0

Powershell编码与混淆

[复制链接]

1839

主题

2255

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
11913
发表于 2019-7-10 15:12:15 | 显示全部楼层 |阅读模式
原文链接:http://www.freebuf.com/sectool/136328.html


在powershell中最常使用的编码就是base64编码了,今天主要说一下Invoke-Obfuscation 这个powershell混淆编码框架,这也是著名的组织APT32 (海莲花)经常使用的一个工具。

地址http://github.com/danielbohannon/Invoke-Obfuscation

下载后,在当前目录的ps命令行中输入 Import-Module.\Invoke-Obfuscation.psd1; Invoke-Obfuscation   装载框架

[/url]

输入set  scriptblock  ‘echo xss ‘  这里输入要编码的powershell命令
然后输入ENCODING  就会列出以下几种编码方式

[url=http://image.3001.net/images/20170603/14964826124943.png]

输入1选择ascii编码

[/url]

在Result中看到了编码后的命令,可以直接在powershell里面执行
然后我们输入back返回到上一层
输入launcher  选择命令的启动方式,可以尝试多种不同的方法结合。

[url=http://image.3001.net/images/20170603/14964828105696.png]

输入ps 然后选择67 (67代表隐藏执行与绕过执行限制)  就会生成完整的混淆与编码后的命令

[/url]

输入show options  打开设置选项

[url=http://image.3001.net/images/20170603/14964829197530.png]

我们也可以直接在ps的命令行中直接进行编码


Invoke-Obfuscation -ScriptBlock {echo xss} -Command 'Encoding\1,Launcher\PS\67' -Quiet

[/url]

进行多次编码
在进行第一次编码后然后输入要编码的类型进行二次编码

[url=http://image.3001.net/images/20170603/14964830991499.png]

选项中可以看到使用了2次编码命令
undo取消最近一次的编码命令/reset取消所有的编码命令

[/url]

在系统日志中(%systemroot%\System32\winevt\powershell.evtx),通过混淆与编码后的powershell命令更加增加了溯源的难度

[url=http://image.3001.net/images/20170603/14964831902234.png]

总结:

在windows环境下,使用powershell的攻击者将会越来越多,通过对powershell 编码与混淆,可以有效的绕过一些杀软检测并且更加具备隐藏的目的。同时也让我们认识到了powershell脚本的灵活性。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?Join BUC

x
过段时间可能会取消签到功能了
您需要登录后才可以回帖 登录 | Join BUC

本版积分规则

Powered by Discuz!

© 2012-2015 Baiker Union of China.

快速回复 返回顶部 返回列表