安全矩阵

 找回密码
 立即注册
搜索
查看: 2177|回复: 0

记一次实战免杀 powershell 执行 payload

[复制链接]

221

主题

233

帖子

792

积分

高级会员

Rank: 4

积分
792
发表于 2021-6-25 08:34:29 | 显示全部楼层 |阅读模式
记一次实战免杀 powershell 执行 payloadpowershell具有在硬盘中易绕过,内存中难查杀的特点。一般在后渗透中,攻击者可以在计算机上执行代码时,会下载powershell脚本来执行,ps1脚本文件无需写入到硬盘中,直接可以在内存中执行
0x00 前言最近在玩免杀,发现了一些免杀思路
0x01 powershell加载shellcode介绍UNIX系统一直有着功能强大的壳程序(shell),Windows PowerShell的诞生就是要提供功能相当于UNIX系统的命令行壳程序(例如:sh、bash或csh),同时也内置脚本语言以及辅助脚本程序的工具,使命令行用户和脚本编写者可以利用 .NET F ramework的强大功能。
powershell具有在硬盘中易绕过,内存中难查杀的特点。一般在后渗透中,攻击者可以在计算机上执行代码时,会下载powershell脚本来执行,ps1脚本文件无需写入到硬盘中,直接可以在内存中执行
0x02 前戏常见的powershell攻击工具有powersploit、nishang、empire、powercat,试了试这些免杀脚本,发现都不太理想,大部分都被检测到了
想着要不自己尝试尝试?
cs,上号!

首先生成一个自带的powershell脚本

看一下自带的
是把shellcode加载到内存中的代码放到字符串中然后IEX执行代码

查杀效果:

并不是很理想,毕竟大家都在用,很多杀软都有了特征和指纹
0x03 开始尝试混淆

既然是把字符串进行加载不如整个编一个b ase64?然后在解码后加载
想着想着就开始尝试了:
首先把字符串全部给b ase64,我这里先用burp b ase64

然后扔进去在加载之前b ase64还原

           
  • 解密后变量=[System.Text.Encoding]::UTF8.GetString([System.Convert]::Fromb ase64String(加密后变量))
把编码后的代码解码后加载,顺便搞一个UTF-8

执行执行一下看看是否可以上线:

           
  • Powershell -ExecutionPolicy Bypass -File .\payload.ps1

查看cs是否上线:

发现cs成功上线
去查看一下免杀效果:


…这就把杀软干懵逼了?
尝试修改变量的名称来绕过
发现没什么太大的用处,还剩两个
尝试把b ase64编码后的字符串拆开看看

把上面的b ase64的字符串猜开来在b ase64的时候组合一下

查看cs是否上线:

查看免杀效果:

这就完事了,不过只是静态免杀
0x04 实战这一次测试一下,某绒,某60
(这两个杀软一装,我虚拟机都有点扛不住)

全部更新到最新,先静态扫描试试

激动人心得时候到了,试试运行

发现他们一点反应都没有
查看cs是否上线:

成功上线
没想到这么顺利
0x05 结语在测试过程中的一些发现:
如果是没有改证书的话貌似会被某绒给检测到
改证书参考:
Cobalt Strike 绕过流量审计
根据b ase64加密的方法还可以推断出使用其他加密比如ascii码加密也有同样的效果
大家可以根据我的方法变形,比如可以拆成很多段,在配合其他的加密和解密手段进行免杀,制作属于自己的免杀

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-29 06:46 , Processed in 0.014221 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

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