SourcePoint Cobalt Strike服务器C2配置文件生成器|躲避检测

SourcePoint Cobalt Strike服务器C2配置文件生成器|躲避检测

SourcePoint介绍

SourcePoint 是 Cobalt Strike C2 的多态 C2 配置文件生成器,用 Go 编写

SourcePoint  Cobalt Strike服务器C2配置文件生成器|躲避检测

SourcePoint 允许动态生成独特的 C2 配置文件,这有助于减少我们的妥协指标 (“IoC”),并允许操作员以最少的努力启动复杂的配置文件。

这是通过广泛审查文章补丁说明来完成的识别关键功能和可修改功能。

SourcePoint 旨在解决如何使我们的 C2 活动更难以检测的问题,重点是从恶意 IoC 转移到可疑 IoC。这里的目标是,如果我们的 IoC 本质上不是恶意的,并且需要额外的研究来发现可疑的性质,那么检测我们的 C2 就会更加困难。

SourcePoint 包含许多不同的可配置选项供您选择以修改您的配置文件(在大多数情况下,如果留空 SourcePoint 将随机为您选择它们​​)。生成的配置文件会修改 C2 的所有方面。该项目的目标不仅是帮助规避基于检测的控制,还有助于将 C2 流量和活动融入环境中,使所述活动难以检测

SourcePoint  Cobalt Strike服务器C2配置文件生成器|躲避检测
SourcePoint  Cobalt Strike服务器C2配置文件生成器|躲避检测

SourcePoint安装方法

go get gopkg.in/yaml.v2

go build SourcePoint.go

SourcePoint用法

#./SourcePoint -h

	   _____                            ____        _       __
	  / ___/____  __  _______________  / __ \____  (_)___  / /_
	  \__ \/ __ \/ / / / ___/ ___/ _ \/ /_/ / __ \/ / __ \/ __/
	 ___/ / /_/ / /_/ / /  / /__/  __/ ____/ /_/ / / / / / /_
	/____/\____/\__,_/_/   \___/\___/_/    \____/_/_/ /_/\__/
  							(@Tyl0us)

                                                                                                                        
Usage of ./SourcePoint:
  -Allocation string
        请求注入内容的最小内存数量(必须高于4096)
  -CDN string
        CDN cookie名称(通常用于AzureEdge配置文件)
  -CDN-Value string
        CDN cookie值(通常用于AzureEdge配置文件)
  -Customuri string
        自定义HTTP GET/POST配置文件的基本URI(默认“0”)
  -Datajitter string
        向HTTP-Get和HTTP-Post服务器输出追加一个值(默认为“50”)
  -Host string
        团队服务器域名
  -Injector string
        选择在远程进程中分配内存的首选方法:
        [*] VirtualAllocEx(适用于x86 -> x64和x64->x86)
        [*] NtMapViewOfSection(一个更隐蔽的选项,然而失败的VirtualAllocEx,生成更多的事件)
  -Jitter string
        信标呼叫家的抖动百分比
  -Keylogger string
        选择信标用来记录击键的首选方法:
        [*] GetAsyncKeyState(使用GetAsyncKeyState API(单独的DLL for x86/x64进程))
        [*] SetWindowsHookEx(使用SetWindowsHookEx API)
  -Keystore string
        SSL密钥存储库名称
  -Metadata string
        指定如何转换和嵌入元数据到HTTP请求:
        [*] base64
        [*] base64url
        [*] netbios
        [*] netbiosu (默认"base64url")
  -Outfile string
        输出文件名
  -PE_Clone string
        PE文件信标将模拟(使用号码):
        [1] srv.dll
        [2] ActivationManager.dll
        [3] audioeng.dll
        [4] AzureSettingSyncProvider.dll
        [5] BingMaps.dll
        [6] BootMenuUX.dll
        [7] DIAGCPL.dll
        [8] FIREWALLCONTROLPANEL.dll
        [9] WMNetMgr.dll
        [10] wwanapi.dll
        [11] Windows.Storage.Search.dll
        [12] Windows.System.Diagnostics.dll
        [13] Windows.System.Launcher.dll
        [14] Windows.System.SystemManagement.dll
        [15] Windows.UI.BioFeedback.dll
        [16] Windows.UI.BlockedShutdown.dll
        [17] Windows.UI.Core.TextInput.dll
        [18] FILEMGMT.dll
        [19] polprocl.dll
        [20] GPSVC.dll
        [21] libcrypto.dll
        [22] rdpcomapi.dll
        [23] winsqlite3.dll
        [24] wow64.dll
        [25] wow64win.dll
        [26] WWANSVC.dll
  -Password string
        SSL证书密码
  -PostEX_Name string
        文件Post-Ex活动将生成和注入(使用编号):
        [1] WerFault.exe
        [2] WWAHost.exe
        [3] wlanext.exe
        [4] auditpol.exe
        [5] bootcfg.exe
        [6] choice.exe
        [7] bootcfg.exe
        [8] dtdump.exe
        [9] expand.exe
        [10] fsutil.exe
        [11] gpupdate.exe
        [12] gpresult.exe
        [13] logman.exe
        [14] mcbuilder.exe
        [15] mtstocom.exe
        [16] pcaui.exe
        [17] powercfg.exe
        [18] svchost.exe
  -Profile string
        HTTP GET/POST配置文件(使用号码):
        [1] Windowsupdate
        [2] Slack
        [3] Gotomeeting
        [4] Outlook.Live
        [5] Cloudfront
        [6] AzureEdge
        [7] Custom (Used with ProfilePath)
  -ProfilePath string
        自定义HTTP GET/POST配置文件的路径…
  -Sleep string
        初始信标休眠时间
  -Stage string
        禁用主机暂存(默认值:False)(默认值“False”)
  -Uri string
        用于选择信标的配置文件的编号uri
  -Useragent string
        信标使用的UserAgent字符串(留空,以便随机选择一个):
        [*] Win10Chrome
        [*] Win10Edge
        [*] Win10IE
        [*] Win10
        [*] Win6.3
        [*] Linux
        [*] Mac
  -Yaml string
        Yaml配置文件的路径

重要的

SourcePoint 主要自动化配置文件的构建过程。了解这些配置文件中修改的所有功能非常重要。了解这些功能确实有助于提高您的成功率。

选项

虽然 SourcePoint 的帮助功能中描述了许多设置和功能,但每个配置文件中都有许多重要的功能需要熟悉。这些功能是:

全局选项

您个人资料的这一部分修改了信标运营商的方式。用于修改行为的一些功能是:

  • Host Stage – 允许团队服务器托管 HTTP、HTTPS、DNS 的暂存 shellcode。如果启用此功能,任何发送具有特定值的 GET 请求/9ZXq的人也可以拉取 shellcode
  • 睡眠 – 信标回调回家的时间长度
  • 抖动 – 将百分比附加到信标呼叫归属时间
  • Useragent – 通信 HTTP 和 HTTPS 流量时使用的用户代理字符串。使用适当的用户代理字符串有助于融入环境
  • 数据抖动 – 向所有 GET 和 POST 请求添加一个随机长度的字符串,以确保传入的请求长度不同
  • SMB 帧标头 – 向 SMB 信标消息添加标头值
  • Pipename – 设置信标将用于通信的 SMB 管道的名称
  • Pipename Stager – 为信标设置 SMB stager 的名称
  • TCP 帧标头 – 向 TCP 信标消息添加标头值
  • SSH Banner – 使用的 SSH 横幅
  • SSH 管道名称 – 用于 SSH 横幅的名称

阶段

配置文件的这一部分控制信标如何加载到内存中并编辑信标 DLL 的内容。用于修改行为的一些功能是:

  • Obfuscate – 混淆反射 DLL 的导入表
  • Stomppe – 要求payloads在加载后踩踏 MZ、PE 和 e_lfanen 值
  • 清理 – 告诉信标释放与初始化它的反射 DLL 相关的内存
  • UseRWX – 确保 shellcode 不使用读取、写入执行权限
  • Smart Inject – 使用嵌入的函数指针提示来引导信标代理,而无需遍历 kernel32 EAT
  • 睡眠掩码 – TCP 和 SMB 信标在等待建立连接时会在静止状态下混淆自己
  • PE Header – 改变你的 Beacon Reflective DLL 的特性,使其看起来像内存中的其他东西
  • 转换 – 通过删除或添加字符串到 .rdata 部分来转换信标的反射 DLL 阶段

进程注入

配置文件的这一部分控制信标如何塑造注入的内容并控制进程注入行为。用于修改行为的一些功能是:

  • 分配器 – 确定信标的反射加载器如何分配内存
  • 最小分配 – 请求注入内容的最小内存量
  • Userwx – 确保 shellcode 不使用读取、写入执行权限(替代方法是 RW)
  • Startrwx – 使用读取、写入执行作为注入内容的初始权限(替代方法是 RW)
  • Transformer – 添加由信标注入的填充内容块
  • 执行 – 此部分确定如何执行注入的代码

执行后

配置文件的这一部分控制信标如何处理后开发模块和命令。用于修改行为的一些功能是:

  • Spawnto – 确定将为其后开发命令和选项生成的默认临时进程信标
  • Obfuscate – 混淆反射 DLL 的导入表
  • 智能注入 – 将关键功能指针从信标传递到其子作业
  • AMSI disable – 为 powerpick、execute-assembly 和 psinject 禁用 AMSI(某些 EDR 可以检测到这一点,最好避免使用这些工具)
  • Keylogger – 确定击键记录 API 如何用于捕获击键

简介

目前,SourcePoint 基于现有配置文件为您提供了 6 个用于 HTTP/HTTPS 流量配置文件的内置选项。在这 6 个中,其中 4 个受以下因素的影响并基于:

  • Microsoft Window 的更新通信
  • Slack 的消息通信
  • Gotomeeting 的主动会议通讯
  • Microsoft Outlook 的电子邮件通信

2 个配置文件选项(5 和 6)专为:

  • Cloudfront.net
  • AzureEdge.net

最后一个选项 (7) 旨在输入自定义配置文件。此选项旨在允许运营商利用完全自定义的流量配置文件。在很多情况下,完全独特的流量配置文件会产生很高的成功率,而不是其中之一。这也允许运营商仍然利用 SourcePoint 的延展性功能及其首选或最喜欢的流量配置文件。由于这允许独特的配置文件,因此确保您调整和调整 SourcePoint 的配置文件以使其工作非常重要。最低限度:

  • 替换 –header "Host" "acme.com";header "Host" "{{.Variables.Host}}";
  • 替换 –/pathtolegitpage/在 GET 字段下{{.Variables.HTTP_GET_URI}}
  • 替换 –/pathtolegitpage/在 POST 字段下{{.Variables.HTTP_POST_URI}}

要做到这一点,使用下列选项-CustomURI-ProfilePath沿-Profile 7。在开发配置文件时,强烈建议使用本机 ./c2lint 来验证一切正常。

示例 Yaml 配置

Stage: "False"
Host: "acme-email.com"
Keystore: "acme-email.com.store"
Password: "Password"
Metadata: "netbios"
Injector: "VirtualAllocEx"
Outfile: "acme.profile"
PE_Clone: 20
Profile: 4
Allocation: 5312
Jitter: 30
Debug: true
Sleep: 35
Uri: 3
Useragent:  "Mac"
Post-EX Processname: 11
Datajitter: 40
Keylogger: "SetWindowsHookEx"
Customuri: 
CDN:
CDN_Value: 
ProfilePath: 

SSL证书

配置文件模式 1-4 可以在没有验证 SSL 的情况下使用,SourcePoint 将生成与配置文件类型相关的自签名证书。但是,有效的 SSL 证书对于任何类型的 C2 的成功都极为重要。出于多种原因,但显然没有证书意味着流量将是未加密的(即不应使用的 HTTP),但使用自签名证书有其明显的局限性。有很多方法可以获得有效的 SSL 证书来制作密钥库,我的方法是使用Cham423创建的HTTPsC2DoneRight.sh的修改版本。

域名系统

当前 DNS 定制不直接通过 SourcePoint 提供。为了仍然允许基于 dns 的信标,在每个生成的配置文件中都有一个 dns-beacon 的注释部分。

待办事项清单

  •  添加更多配置文件
  •  DNS 暂存

项目地址:

Github: https://github.com/Tylous/SourcePoint

SourcePoint下载地址

①GitHub:

SourcePoint_1.1_darwin_amd64 3.06 MB
SourcePoint_1.1_linux_amd64 2.84 MB
SourcePoint_1.1_windows_amd64.exe 3 MB

②云中转网盘:

yunzhongzhuan.com/#sharefile=NjzmRo9Z_7…0
解压密码 ww.ddosi.org

Leave a Reply

您的电子邮箱地址不会被公开。