使用cuckoo沙箱的过程中不时出现一些错误,网上几乎没有中文的问题帖,解决方法都是在github找到。在此记录一些解决方法。
1. Cuckoo沙箱有一本Book,里边提到一些用户问过的问题。
文件地址:https://readthedocs.org/projects/cuckoo/downloads/pdf/latest/。
2. CuckooCriticalError: Unable to bind ResultServer on 192.168.56.1:2042 [Errno 99] Cannot assign requested address. This usually happens when you start Cuckoo without bringing up the virtual interface associated with the ResultServer IP address. Please refer to https://cuckoo.sh/docs/faq/#troubles-problem for more information.
解决方法:先开一下虚拟机运行一下,再启动cuckoo。
3. 报错:没有m2crypto 0.24.0(一定要这个版本,安装比这新的版本会接着报错)
要安装swig,libssl-dev,libpcre3,libpcre3-dev,gcc-multilib
用pip安装m2crypto0.24.0的过程中常会出错,如下面这个:
error: ‘CRYPTO_NUM_LOCKS’ undeclared
于是采用Failling to downgrade m2crypto · Issue #2606 · cuckoosandbox/cuckoo · GitHub中网友leniwiec16的方案,整套执行下来还是有错,在python中 import M2Crypto 时会报错:ImportError: M2Crypto/__m2crypto.so: undefined symbol: sk_find_ex
之后寻遍百度谷歌也找不到能解决这个问题的方法。
后来想到,我是在conda环境中安装cuckoo的,而官方建议在virtualenv环境下运行,于是换用一个virtualenv环境,问题解决。
4. 报错:virtual machine hasn’t been able to contact back to the cuckoo host
把iptables卸掉,把ufw关掉。虚拟机里的防火墙也得关了。
(虚拟机可以不用联网)。确保虚拟机里的agent.pyw处于运行状态
(任务管理器中能看到pythonw后台程序)更新:发现配置好iptables转发规则后,host-only的虚拟机能联网……转发规则如下(仅供参考):
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.56.0/24 -j MASQUERADE
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -s 192.168.56.0/24 -j ACCEPT
5. Analysis results folder does not contain any behavior log files (报告中没有behavior的部分)
把虚拟机中的UAC(用户账号管理)关掉
,避免在运行程序时弹出弹框问是否运行。
6. CuckooPackageError: Unable to execute the initial process, analysis aborted
在分析迅雷的安装程序时报的错。后来发现分析一个virusshare的样本时也有同样的报错。
按网上的说法,虚拟机中的登录账号需要是administrator。
先激活之:
net user administrator /active:yes
然后注销当前账号并登录administrator
以后的操作中要确保agent.py由admin启动(有时开机时先自动登录了非管理员账号并根据设置的开机自启项启动了agent.py,这时就可能出错)
7. Warning: It appears that you haven’t loaded any Cuckoo Signatures.
cuckoo推荐这个cuckoo签名,说有了它可以让分析得的信息更丰富,也让打分更准确。 命令行执行
cuckoo community
即可。
附:官网举了四点cuckoo签名的用处:
- 通过解析一些独特的行为特征(如文件名或互斥锁)来将恶意软件划分到某个恶意软件家族。
- 发现恶意软件在系统上所作的一些修改,比如下载驱动。
- 通过解析一些只有某家族的恶意软件才会有的特定操作,进而识别出恶意软件所属范畴。
- 对样本进行分类(恶意/未知类型(这么称是因为正常软件种类繁多而无法分类))
8. 使用REST API提交任务时,报错:AttributeError: ‘Request’ object has no attribute 'is_xhr’
出错的地方在werkzeug包里,是Flask包的版本依赖问题,按网友的说法,
将werkzeug降为0.17
即可(原来是1.0.1)。
9. 使用python调用REST API后的401错误
一般是http请求头部的authorization字段值的问题,需要有 Authorization: Bearer \<TOKEN\> ,其中token值在cuckoo.conf中配置,找到设置api_token值的那一行并设置其值(或使用cuckoo为用户生成的默认token值)
# 任务插队 url = "http://192.168.2.142:8090/tasks/create/file" SAMPLE_FILE = "C:\\Users\\40622\\Desktop\\demo\\cuckoo_test.exe" header = { "Authorization": "Bearer " + token } data = { "priority": 3 } with open(SAMPLE_FILE, "rb") as sample: files = {"file": ("cuckoo_test111.exe", sample)} res = requests.post(url=url, headers=header, files=files, data=data)
10. 调用REST API提交任务后cuckoo后台发现没有任务在进行
本人在jupyter notebook中写代码调用REST API,并因为401错误而改过authorization。
重新运行当前jupyter页面的kernel
,问题解决。
11. 使用REST API提交大量文件后,cuckoo后台出现同时starting任务的情况,并且之后会报错: (sqlite3.OperationalError) database is locked
在操作中发现提交文件较少的话就没这个问题,但本人一次提交几百个文件会有这个问题。
使用cuckoo的web界面提交一整个文件夹(其中有超过1000个文件)则常会卡住,久久无反应。 最后用命令行执行命令的方法,执行cuckoo submit <存放可执行文件的目录>,成功提交多个任务。
使用REST API出现的锁数据库的问题暂时不知道如何解决。也许应该先关了cuckoo后台,等把文件都提交完了之后,再运行cuckoo。
12. Error enumerating exported functions: ‘Invalid NT Headers signature’.
遇到一次,之后没出现过。暂无解决方法。
13. 某些文件出现 Analysis timeout hit, terminating analysis. 报告中无behavioral分析。
分析文件的timeout的设置再cuckoo.conf中的timeouts节中,默认是120秒。
在提交任务时加上--timeout选项,长一点,如300秒。
发现有一些是因为缺失了dll(弹窗报错),但cuckoo模拟点击操作没有作用到弹窗的按钮上,最后才timeout。
14. 启动cuckoo时的报错:The maximum number of open files is low (4096). If you do not increase it, you may run into errors later on.
/etc/security/limits.conf文件限制着用户可以使用的最大文件数,最大线程,最大内存等资源使用量。 在该文件末尾添加:
* hard nofile 500000
* soft nofile 500000
root hard nofile 500000
root soft nofile 500000
15. ERROR: Virtual machine /status failed. HTTPConnectionPool(host=‘192.168.56.3’, port=8000): Read timed out. (read timeout=5)
这个链接 https://github.com/cuckoosandbox/cuckoo/issues/2965 提到解决方法是修改iptables规则。
本人的实践中发现即使对同一exe文件,这个问题时有时无。而导致这个问题的原因是虚拟机中的agent程序没有响应,有可能是网络不通的问题,也有可能是虚拟机本身系统出问题了,比如卡死。分析发现本人的情况可能是后者,于是进入虚拟机,发现CPU占用率100%,几乎不降,鼠标也卡,于是关机后增加CPU核数(原先只有1核),再重启,保存快照,问题解决。
16. WindowsError
当虚拟机系统为win10时,有时会出现此错误;
换成win7
则没有。原因暂不明。
17. cannot import name UnrewindableBodyError. Please review its contents and/or validity!
卸载urllib3重新安装