19-4

做过其他免杀吗,比如结合 CS 和 MSF 的

MSFvenom 生成的 Payload 如何免杀?

msfvenom 是一个强大的命令行工具,用于生成各种 Payload。它自带了多种编码器(Encoder),可以对 Payload 进行编码来绕过简单的静态特征码检测

  • 编码器(Encoders):最简单的免杀方法是使用 msfvenom 自带的编码器,例如 shikata_ga_nai。这个编码器会对 Shellcode 进行多态编码,使得每次生成的 Payload 都不一样。但是,这种方法对于现代杀软来说已经不够了,因为杀软可以识别出编码器本身的行为模式
  • 利用模板文件(Templates):你可以使用 -x 参数指定一个合法的可执行文件(例如 notepad.exe)作为模板,msfvenom 会将 Payload 注入到这个文件中。这样可以改变文件哈希,并且文件看起来像一个正常的程序
  • 自定义 Shellcode 和加载器(Loader)
    • 生成纯 Shellcode:使用 -f raw-f bin 参数生成原始的 Shellcode 二进制文件,不带任何可执行文件头
    • 编写自定义加载器:用 C++、C# 或 PowerShell 等语言编写一个加载器,它的任务是将 Shellcode 加载到内存并执行
    • 混淆加载器代码:对加载器的代码进行混淆,比如使用花指令、字符串加密,以及反沙箱技术,来绕过杀软对加载器的静态检测
    • 内存执行:加载器可以使用一些技巧,如 VirtualAllocWriteProcessMemoryCreateThread 等 API,来分配内存、将 Shellcode 写入,并在新线程中执行。由于 Shellcode 只是数据,不直接在文件中,静态杀软很难发现它