首页
社区
课程
招聘
[原创]CUCKOO沙箱源码分析 上篇
发表于: 2020-6-11 09:19 15421

[原创]CUCKOO沙箱源码分析 上篇

2020-6-11 09:19
15421

鄙人现今是一名研究生, 研究方向为样本分析自动化, cuckoo 沙箱项目是一个非常不错的例子, 给大家分享一下.

使用pip安装cuckoo之后, 可以使用cuckoo命令.查看一下cuckoo命令的位置:

可以看到cuckoo命令其实是一个python脚本, 最后执行代码是cuckoo模块中main函数

main函数中使用了click模块, 可以很方便的构建命令行程序.
main函数中核心就是调用了下列的两个函数:

功能: 进行cuckoo的初始化,包括:

创建CWD文件夹

CWD(Current Working Directory)文件夹包含了除了运行代码以外的其余文件,非常重要.

连接数据库

cuckoo支持三种数据库: mysql, sqlite3, postgres, 可以在配置文件中进行配置.其中最常用的是mysql, 一般用作web模块存储数据.

init_modules

init_tasks

init_yara

init_binaries

SIGTERM信号

关键代码

主要用于与client主机进行数据传输.

构造函数

create_server

del_task

add_task

Scheduler类cuckoo沙箱的一个任务调度类,

initialize函数

start函数

 
 
 
 
os: Ubuntu 18.04
python: python2
link: https://www.jianshu.com/p/ac009f6c2710(这个链接是我试过最靠谱的)
 cuckoo总体架构如下图, host接收分析任务,然后开启虚拟机client, 将样本和一些必要的分析代码通过http协议传输给client端. 必要的分析代码通过会包括一些hook代码和内核模块,以及一些其他与这些模块交互的Python代码, 以Windows系统为例:monitor.dll(hook), zer0m0n.sys(内核模块), inject.exe(控制monitor),execsc.exe(执行shellcode)等. cuckoo通过这些分析代码来获取样本的行为, 然后待分析时间耗尽, 将分析结果通过tcp传输给host端, 将client回复到样本执行的状态.
cuckoo community --> 获取一些恶意样本的特征库
cuckoo init --> 初始化cucko
cuckoo web --> 开启web服务, 可以使用浏览器上传样本,查看报告
cuckoo -d --> 开启分析样本服务, 
cuckoo submit --> 提交样本
cuckoo clean --> 清空分析结果

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 6
支持
分享
最新回复 (12)
雪    币: 1793
活跃值: (1123)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
感谢分享,支持
2020-6-11 09:38
0
雪    币: 23080
活跃值: (3432)
能力值: (RANK:648 )
在线值:
发帖
回帖
粉丝
3
期待下篇
2020-6-11 09:51
0
雪    币: 14539
活跃值: (17553)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
4
mark,楼主辛苦了
2020-6-11 11:13
0
雪    币: 26205
活跃值: (63302)
能力值: (RANK:135 )
在线值:
发帖
回帖
粉丝
5
感谢分享!
2020-6-11 11:17
0
雪    币: 967
活跃值: (1138)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
6
234567    init_modules()
init_tasks()
init_yara()
init_binaries()
init_rooter() # VPN的一些初始化
init_routing() # VPN的初始化文件:
 core/startup.py

现在都带vpn了?

2020-6-11 12:10
1
雪    币: 4975
活跃值: (3858)
能力值: ( LV13,RANK:270 )
在线值:
发帖
回帖
粉丝
7
是的,我感觉vpn没啥用,就没多看。
2020-6-11 14:01
0
雪    币: 259
活跃值: (283)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
666
2020-6-11 16:14
0
雪    币: 2157
活跃值: (12639)
能力值: ( LV12,RANK:312 )
在线值:
发帖
回帖
粉丝
9
幸苦,这些流程熟悉后,个人感觉研究重心转移到Monitor和签名规则,根据需求实现想要的目的。
也许对你有帮助:https://cuckoo-monitor.readthedocs.io/en/latest/hooks.html 加油
2020-6-11 21:24
1
雪    币: 4975
活跃值: (3858)
能力值: ( LV13,RANK:270 )
在线值:
发帖
回帖
粉丝
10
是的,后续内容会涉及的。
2020-6-11 21:59
0
雪    币: 4975
活跃值: (3858)
能力值: ( LV13,RANK:270 )
在线值:
发帖
回帖
粉丝
11
好的内容需要时间,平时还需要看些论文,做研究,估计一周一篇。谢谢大家关注。
2020-6-11 22:05
0
雪    币: 60
活跃值: (290)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
正好这段时间在研究cuckoo,就看到了博主的文章
2020-7-14 18:14
0
雪    币: 1319
活跃值: (1330)
能力值: ( LV8,RANK:140 )
在线值:
发帖
回帖
粉丝
13
代码有链接么
2021-7-29 14:31
0
游客
登录 | 注册 方可回帖
返回
//