• 记一次 PowerShell 免杀实战


    记一次 PowerShell 免杀实战

    最近在玩免杀,发现了一些免杀思路,今天来给大家做个分享,希望可以帮到大家。

    0x01 powershell 加载 shellcode 介绍

    UNIX 系统一直有着功能强大的壳程序(shell),Windows 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

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

    
    

    把编码后的代码解码后加载,顺便搞一个 UTF-8

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

    Powershell -ExecutionPolicy Bypass -File .\payload.ps1

    查看 cs 是否上线:

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

    https://www.virustotal.com

    ...这就把杀软干懵逼了 ?

    尝试修改变量的名称来绕过

    发现没什么太大的用处,还剩两个

    尝试把 base64 编码后的字符串拆开看看

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

    查看 cs 是否上线:

    查看免杀效果:

    这就完事了,不过只是静态免杀

    0x04 实战

    这一次测试一下,某绒,某 60,(这两个杀软一装,我虚拟机都有点扛不住)

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

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

    发现他们一点反应都没有

    查看 cs 是否上线:

    成功上线

    没想到这么顺利

    0x05 结语

    在测试过程中的一些发现:

    如果是没有改证书的话貌似会被某绒给检测到

    改证书参考:

    Cobalt Strike 绕过流量审计

    https://paper.seebug.org/1349/

    根据 base64 加密的方法还可以推断出使用其他加密比如 ascii 码加密也有同样的效果

    大家可以根据我的方法变形,比如可以拆成很多段,在配合其他的加密和解密手段进行免杀,制作属于自己的免杀

  • 相关阅读:
    进程 线程
    random模块 时间模块 sys模块 os模块 json模块 pickle模块
    异常处理
    面向对象进阶篇
    面向对象初级篇
    正则表达式
    re模块的相关知识
    CNN归纳偏好
    window和Linux下安装nvidia的apex
    使用GrabCut做分割
  • 原文地址:https://www.cnblogs.com/bonelee/p/15947640.html
Copyright © 2020-2023  润新知