背景
Unbuntu 操作系统对权限有相当高的要求,在部署 Cuckoo Sandbox 环境过程中,因安裝远程桌面用的是 root 帐号,并用 root 帐号创建的 vncserver
访问 virtualbox 创建的客机,折腾一圈,终于搞明白了 Cuckoo Sandbox 的启动流程。
核心就是权限一致,用什么帐号启动 Cuckoo ,所有的环境部署都应该基于该帐号,建议用普通帐号。
本期小编推送2021初学者一定会用到的Python资料,含有小编自己呕心沥血整理的免费书籍/视频/在线文档和编辑器/源代码,关于
Python
的安装qun:850973621
root 用户创建的实例
Cuckoo 客机是使用 root 用户运行 virtualbox 后创建的,此时用普通用户启动 cuckoo 时,即使配置文件正确,也会报客机连接失败问题:
异常信息为:
CuckooCriticalError: Please update your configuration. Unable to shut 'cuckoo1' down or find the machine in its proper state: The virtual machine 'cuckoo1' doesn't exist!
Please create one or more Cuckoo analysis VMs and properly fill out the Cuckoo configuration!
复制代码
切换到 root 帐号启动,此时错误信息为快照问题,原因是 virtualbox.conf
中配置了一个快照名称为 Cuckoo1SnapWin7
,报错找不到这个快照:
Could not find a snapshot named 'Cuckoo1SnapWin7'
,后台异常信息如下。
切入到 Guest 中,创建一个同名快照:
再用 root 启动,总算见到曙光了:
此时虚拟机的客机节点状态变成了 saved:
浏览器访问
首先,运行 web 服务命令 cuckoo web runserver 0.0.0.0:8XXX
,如果以前运行过,需要先查找进程,kill 掉后重新执行。
其次,ufw allow 8XXX
放开访问端口。
就可以远程访问主页啦:
web 登录的密码
进入上述页面后,输入的密码是 cuckoo.conf 中的
这一点,官方文档中 web/local_settings.py
中一个注释掉的字段 SECRET_KEY
,这一直误导笔者,认为这个才是真正的网页秘钥。密码正确,页面却还是一直提示 “Secret incorrect. Please try again.
” 为了找到密码定义的地方,开始跟踪 web 的源码。
后来放弃网页,直接走 API 来检测,看了官方文档中关于 cuckoo api
的用法,里面说在 cuckoo.conf
中配置 api_token
,看 API 秘钥时,发现了 web_secret
这个配置,输入对应的值,终于进入了控制页面。
至此,cuckoo sandbox 的环境总算搭建成功了!
启示录
Unbuntu 的权限控制很严格,所以搭建 cuckoo 时,处理安装需要切换 root 帐号外,其他使用虚拟机创建客户机节点、vncserver 远程桌面、以及启动 cuckoo 后台和 web ,都应该统一用一个普通帐号。
整体感觉是,部署过程中,可参考的、能直接解决问题的资料几乎没有,靠着自己分析错误信息,猜测可能的原因,一个个破解的。不得不说,运维工作不好干呐!
主要问题如下:
- pip 和 setuptools 升级的问题
- virtualbox 版本问题,开始用清华镜像,安装的是 5.1.38 版本,导致 win7 实例无法安装增强功能,换成阿里云镜像后,安装了一个 6.1 版本后,解决了
- cuckoo 启动帐号和和客户机安装不是同一个帐号导致启动报客户机未创建问题
- 客户机镜像与 virtualbox.conf 配置需要一直
- web 页面的 secret 密码配置的位置在 cuckoo.conf 中
原文链接:https://juejin.cn/post/6915533140538687502