本帖最后由 zhaorong 于 2021-1-5 17:01 编辑
0x00 前言
最近在玩免杀发现了一些免杀思路
0x01 powershell加载shellcode介绍
UNIX系统一直有着功能强大的壳程序shellWindows PowerShell的诞生就是要提供功能相当于UNIX系
统的命令行壳程序 例如:sh bash或csh 同时也内置脚本语言以及辅助脚本程序的工具 使命令行用户和
脚本编写者可以利用 NET Framework的强大功能。
powershell具有在硬盘中易绕过 内存中难查杀的特点。一般在后渗透中 攻击者可以在计算机上执行代码时
会下载powershell脚本来执行 ps1脚本文件无需写入到硬盘中 直接可以在内存中执行
0x02 前戏
常见的powershell攻击工具有powersploit、nishang、empire、powercat试了试这些免杀脚本
发现都不太理想大部分都被检测到了
想着要不自己尝试尝试?
cs上号
首先生成一个自带的powershell脚本
看一下自带的
是把shellcode加载到内存中的代码放到字符串中然后IEX执行代码
查杀效果:
并不是很理想毕竟大家都在用很多杀软都有了特征和指纹
0x03 开始尝试混淆
既然是把字符串进行加载不如整个编一个base64?然后在解码后加载
想着想着就开始尝试了:
首先把字符串全部给base64,我这里先用burp base64
<mbr>
然后扔进去在加载之前base64还原
- 解密后变量=[System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String(加密后变量))
复制代码
把编码后的代码解码后加载,顺便搞一个UTF-8
执行执行一下看看是否可以上线:
- Powershell -ExecutionPolicy Bypass -File .\payload.ps1
复制代码
查看cs是否上线:
发现cs成功上线
去查看一下免杀效果:
...这就把杀软干懵逼了?
尝试修改变量的名称来绕过
发现没什么太大的用处,还剩两个
尝试把base64编码后的字符串拆开看看
把上面的base64的字符串猜开来在base64的时候组合一下
查看cs是否上线:
查看免杀效果:
这就完事了不过只是静态免杀
0x04 实战
这一次测试一下某绒,某60
(这两个杀软一装我虚拟机都有点扛不住)
全部更新到最新先静态扫描试试
激动人心得时候到了试试运行
发现他们一点反应都没有
查看cs是否上线:
成功上线
没想到这么顺利 |