梦中

发表文章数:82

首页 » 免杀,钓鱼 » 正文

Veil使用以下方法实现文件免杀:

将payload以加密形式保存
aes
des

判断运行环境是否是目标的运行环境(反沙箱 反虚拟机)
进程数量
cpu核数
当前计算机加入的域的名称
当前计算机的计算机名
当前系统的用户名
当前running的进程数

混淆
对源代码中的变量名进行混淆(见对17yes.go源代码的讲解部分)
内存申请方式
stager以RW权限申请内存 -> 将shellcode写入这部分内存 -> 将内存权限从RW更改为RX -> 调用CreateThread和WaitForSingleObject
内存申请方式
传统内存申请方式:stager程序使用RWX(读,写和执行)权限申请内存,将shellcode写入这部分内存,创建一个线程来执行shellcode,等待shellcode完成运行(即退出Meterpreter或Beacon)即可退出stager程序。

“传统内存申请方式”可能被反病毒引擎、沙箱引擎视为恶意的。

其实为了内存免杀效果,Veil 从3.1版本开始,shellcode_inject几乎不会使用“传统内存申请方式”申请内存空间。而是使用“渐进的内存申请方式”。

渐进的内存申请方式:stager程序以RW(读,写)权限申请内存内存,此时stager程序能够将shellcode写入这部分内存。stager将调用[VirtualProtect]函数(https://docs.microsoft.com/zh-cn/windows/desktop/api/memoryapi/nf-memoryapi-virtualprotect)将内存权限从RW更改为RX(读,执行),然后stager将继续正常调用CreateThread和WaitForSingleObject。

实操 – 文件免杀

打开Cobalt Strike客户端,进行常规操作:

  • 创建一个http监听器
  • 生成payload

Attacks -> Packages -> Payload Generator

  • 创建一个http监听器

cs 使用Veil进行免杀

cs 使用Veil进行免杀

生成了一段payload \xfc\xe8\x89...

Veil安装

打开Veil use 1之后,使用list 看到到41种stager:

cs 使用Veil进行免杀

对于CS生成的payload (\x00…),需使用shellcode_inject类型的stager进行免杀。

本次以第17个stager go/shellcode_inject/virtual.py 为例,生成一个包含并执行CSpayload的go语言代码,和该代码编译成的可执行文件test.exe(见下文):

use 17

接下来看到以下设置,意思是该stager执行时执行哪些检查与必要的配置(可以保证只有在满足指定条件时才会注入并执行嵌入的shellcode从而避免被沙箱等引擎行为分析)cs 使用Veil进行免杀

 

具体解释下:

BADMACS 设置为Y表示 查看运行环境的MAC地址如果不是虚拟机才会执行payload (反调试)
CLICKTRACK 设置为4表示 表示需要4次点击才会执行
CURSORCHECK 设置为100表示 运行环境的硬盘大小如果大于100GB才会执行payload (反沙箱)
COMPILE_TO_EXE 设置为Y表示 编译为exe文件
HOSTNAME 设置为Comp1表示 只有在Hostname计算机名为Comp1时才会执行payload(指定目标环境 反沙箱的方式)
INJECT_METHOD 可设置为Virtual 或 Heap
MINPROCS 设置为20表示 只有运行环境的运行进程数大于20时才会执行payload(指定目标环境 反沙箱的方式)
PROCCHECK 设置为Y表示 只有运行环境的进程中没有虚拟机进程时才会执行payload(指定目标环境 反沙箱的方式)
PROCESSORS 设置为2表示 只在至少2核的机器中才会执行payload(指定目标环境 反沙箱的方式)
RAMCHECK 设置为Y表示 只在运行环境的内存为3G以上时才会执行payload(指定目标环境 反沙箱的方式)
SLEEP 设置为10表示 休眠10秒 以检测是否运行过程中被加速(反沙箱)
USERNAME 设置为Tom表示 只有在当前用户名为Tom的机器中才执行payload。
USERPROMPT 设置为Y表示 在injection之前提醒用户(提示一个错误框,让用户误以为该程序执行错误才无法打开)
DEBUGGER 设置为Y表示 当被调试器不被attached时才会执行payload (反调试)
DOMAIN 设置为Comp表示 受害者计算机只有加入Comp域中时,才会执行payload(指定目标环境 反沙箱的方式)
UTCCHECK 设置为Y表示 只在运行环境的系统使用UTC时间时,才会执行payload

尝试生成:

generate

 

在此选3 并输入刚才生成的CS的payload字符串。cs 使用Veil进行免杀

然后Veil提示
[>] Please enter the base name for output files (default is payload):
请输入生成文件的名称,我输入了test

最后 生成了2个文件:

cs 使用Veil进行免杀

其中test.exe就是进行文件免杀后生成的程序。

对test.exe进行文件扫描,查杀结果如下:

cs 使用Veil进行免杀

未经允许不得转载:作者:梦中, 转载或复制请以 超链接形式 并注明出处 梦中博客
原文地址:《cs 使用Veil进行免杀》 发布于2020-10-21

分享到:
赞(0) 生成海报

评论 抢沙发

6 + 5 =


长按图片转发给朋友

Vieu4.5主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册