3.获取恶意软件的内存镜像;
4.以 PCAP 格式记录恶意软件的网络流量;
5.获取恶意软件执行过程中的屏幕截图;
6.获取执行恶意软件的客户机的完整内存镜像
Cuckoo 可以分析的文件类型包括但不限于:Windows 可执行文件、DLL 文件、PDF 文件、MS Office 文件、URL 和 HTML 文件、PHP 脚本文件、CPL 文件、VB 脚本文件、ZIP 压缩包、JAR 文件、Python 脚本文件、APK 文件、ELF 文件
Cuckoo 的架构也比较简单,在 Host 机上运行 Cuckoo 主程序,多个 Guest 机通过虚拟网络与 Host 机相连,每个 Guest 机上有一个 Cuckoo Agent 程序,用来做 Cuckoo 的监控代理。
1.3 官方文档
官方wiki https://github.com/cuckoosandbox/cuckoo/issues?page=3&q=is%3Aissue+is%3Aopen
官方手册 http://docs.cuckoosandbox.org/en/latest/installation/
参考资料:
中翻手册 https://cuckoo-sandbox.readthedocs.io/zh_CN/latest/introduction/index.html
布谷鸟沙箱初体验 http://www.freebuf.com/articles/system/123816.html
布谷鸟安装配置详解 http://www.freebuf.com/sectool/108533.html
VBoxManage命令详解 http://dong717.iteye.com/blog/1967739
2. 环境准备
使用ubuntu16.04(最契合版本),cuckoo完全兼容python2.7,为避免不必要的环境问题,采用2.7以及pip2,并且使用虚拟环境管理-virtualbox,内部镜像推荐win7(实测为win10可能会出现WindowsError错误),如果是vmware安装,推荐使用兼容性Workstation 15.x,ubuntu版本选择Ubuntu 64位-因为配置低了不方便后续虚拟嵌套。
特殊说明:云上安装需要支持虚拟嵌套,目前华为云仅裸金属服务器及专属主机支持。具体可以询问云服务器客服。
Ubuntu下载:http://releases.ubuntu.com
安装其他依赖,更换国内源之后操作
#(1) 先把源文件复制到sources.list.old,备份
cd /etc/apt/ && sudo cp sources.list sources.list.old
#(2 ) 没有安装过vim 先安装 vim。安装完后修改
sudo apt-get install vim -y
#这里gedit也比较方便,不过注意执行需要以登录用户执行,如果不是root,加上sudo就好了
sudo vim /etc/apt/sources.list
18.04#将原来文件的内容全部注释/删除,添加清华源,由于我安装的是18.04的Ubuntu,所以下列以18.04举例
默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://security.ubuntu.com/ubuntu/ bionic-security main restricted universe multiverse
预发布软件源,不建议启用
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
#更新
sudo apt-get update
#安装aptitude,先使用较为匹配的依赖
sudo apt install aptitude gedit -y
#安装编译工具和基本库:
sudo aptitude install gcc g++ make build-essential zlib1g-dev libssl-dev libffi-dev
#安装通用依赖项:
sudo aptitude install zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev git mongodb swig libtiff5-dev libjpeg8-dev libfreetype6-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev
#安装Python及其相关依赖项:
sudo aptitude install python python-dev python-pip python-setuptools python-virtualenv python-pil python-sqlalchemy python-bson python-dpkt python-jinja2 python-magic python-pymongo python-gridfs python-libvirt python-bottle python-pefile python-chardet python-tk
#安装其他特定依赖项:
sudo aptitude install libjpeg-dev
2.1 安装python2.7:
2.1.1 源码编译安装:
wget https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tgz -O Python-2.7.12.tgz
tar -zvxf Python-2.7.12.tgz
cd Python-2.7.12
./configure
make && make install
cd
#查看py版本
python -V
2.1.1 联网安装:
sudo add-apt-repository universe
sudo apt update
#如果之前安装了python2,可以跳过这一步
apt install python2.7
2.1.2 查看是否配置了python替代方案
查看是否配置了python替代方案
update-alternatives --list python
将python2设置为1
update-alternatives --install /usr/bin/python python /usr/bin/python2 2
将python3设置为2
update-alternatives --install /usr/bin/python python /usr/bin/python3 1
查看python替代方案
update-alternatives --list python
如何切换版本
update-alternatives --config python
2.2 安装pip(在python2的前提下):
#升级pip版本
python -m pip install --upgrade pip
#降低pip版本,指定pip19.2
python -m pip install pip==19.2
#卸载pip
python -m pip uninstall pip
2.2.1 脚本安装,推荐安装方式
#下载get包
wget https://bootstrap.pypa.io/pip/2.7/get-pip.py -O get-pip.py
python get-pip.py
#检测版本
python -m pip --version
2.2.2 python安装,匹配py版本的pip
apt-get upgrade python-setuptools -y
apt-get install python-pip
2.2.3 更换国内源
#创建pip文件夹 并创建pip.conf文件
cd ~
mkdir .pip
touch pip.conf
sudo chmod 755 pip.conf
gedit pip.conf
#pip.conf文件内容为:
[global]
index-url=https://pypi.tuna.tsinghua.edu.cn/simple
timeout = 6000
[install]
trusted-host=pypi.tuna.tsinghua.edu.cn
disable-pip-version-check = true
#更新
python -m pip install --upgrade pip
2.3 使用virtualenv虚拟环境-推荐使用:
virtualenv部署时拥有自己的安装目录,不与其它任何环境共享一个库,能够管理Python的版本和库。
如同时开发多个应用时,这些应用需要共用一个Python,应用A在2.6版本,应用B需要2.7版本,这时候会出现版本不统一情况,利用virtualenv可以为每个应用做一个“隔离”的Python运行环境。
sudo pip install virtualenv
sudo pip install virtualenvwrapper
#设置环境变量
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
source /usr/local/bin/virtualenvwrapper.sh
#激活环境变量
source ~/.bashrc
#创建虚拟环境的根目录
$ mkdir $HOME/.virtualenvs
#创建虚拟环境
sudo virtualenv /opt/cuckoo
#指定虚拟环境的python版本
sudo virtualenv --python /usr/bin/python2 /opt/cuckoo
#默认情况下虚拟环境不会依赖系统环境的site-packages,如果想依赖系统环境的site-packages,可以使用–system-site-packages来设置。
#sudo virtualenv --system-site-packages /opt/cuckoo
#启动虚拟环境
source /opt/cuckoo/bin/activate
#ubuntu使用apt安装软件包时报错,内容如下:
#E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可用) E: 无法获取 dpkg 前端锁 (/var/lib/dpkg/lock-frontend),是否有其他进程正占用它?
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
sudo rm /var/lib/dpkg/lock-frontend
sudo apt-get update
#如无用,重启机器
#无法找到软件包
#这种情况一般换源解决-https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/(清华源)
#然后选择 对于版本的源 之后修改
在安装的部分用proxychains挂代理速度会快很多
2.4 安装数据库-任意数据库都可以,utf8编码,推荐默认的mongodb,使用其他需要配置更换
sudo apt-get install mongodb
sudo apt install libmysqld-dev -y
sudo apt install mysql-client -y
sudo apt install libmysqlclient-dev -y
sudo apt install build-essential -y
sudo apt install libmysqld-dev -y
2.5. 安装tcpdump-抓包
2.5.1 Cuckoo以根权限运行
#为避免不必要的麻烦建议使用
sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump
getcap /usr/sbin/tcpdump
2.5.1 Cuckoo不以根权限运行
apt-get install tcpdump apparmor-utils -y
#注意核对tcpdump位置
aa-disable /usr/sbin/tcpdump
#Tcpdump需要根权限,但如果您不希望Cuckoo以根权限运行,因此必须将特定的Linux功能设置为二进制文件,提前创建cuckoo用户
groupadd pcap
useradd cuckoo
usermod -a -G pcap cuckoo
chgrp pcap /usr/bin/tcpdump
setcap cap_net_raw,cap_net_admin=eip /usr/bin/tcpdump
getcap /usr/sbin/tcpdump
2.6 安装pydeep-文档分析
sudo wget http://sourceforge.net/projects/ssdeep/files/ssdeep-2.13/ssdeep-2.13.tar.gz/download -O ssdeep-2.13.tar.gz --no-check-certificate
tar -zxvf ssdeep-2.13.tar.gz
cd ssdeep-2.13/
sudo ./configure
sudo make
sudo make install
#查看是否安装成功
ssdeep -V
cd -
2.7 安装volatility-内存取证工具
#在指定文件夹下安装,这里我在opt目录安装的
cd /opt
sudo apt-get install git
#这里可能需要挂梯子:
sudo git clone https://github.com/volatilityfoundation/volatility.git
cd volatility
#将构建它类型
sudo python setup.py build
#安装
sudo python setup.py install
#查看帮助信息,确认是否安装成功
python vol.py -h
cd -
#如缺失distorm3,下载后重新构建:
python -m pip install distorm3 pycrypto
sudo python setup.py build
python setup.py install
#查看帮助信息,确认是否安装成功
python vol.py -h
cd -
#提取内存中保留的 cmd 命令使用情况(第二条命令是将镜像的注册表项导出进行查看,第一条通常执行时间较长)
python vol.py -f memory --profile=WinXPSP2x86 cmdscan
volatility_2.6_win64_standalone.exe -f memory.dmp --profile=Win7SP1x64 dumpregistry --dump-dir ./
#选择性的安装
#PIL:图片处理库
python -m pip install pil
#OpenPyxl:读写excel文件
python -m pip install openpyxl
#ujson:JSON解析
python -m pip install ujson
#yara-规则匹配
sudo aptitude install libtool flex yara -y
2.9 安装m2crypto-完整支持OpenSSL,用于加解密相关
一定要0.24.0版本,安装比这新的版本会接着报错,比这个版本低的暂没遇到问题
2.9.1 第一种方式:使用apt-get(以Python2版本进行测试的)
2.9.1.1 默认版本
sudo aptitude install python-m2crypto -y
2.9.1.1 固定版本
python -m pip install m2crypto==0.24.0
#如果报错,试试下面的命令,固定py版本安装
python2.7 -m pip install M2Crypto
2.9.1 第二种方式:从源码进行安装((兼容Python2,3))
sudo apt-get install build-essential python3-dev python-dev libssl-dev swig
python -m pip install https://gitlab.com/m2crypto/m2crypto/repository/python3/archive.tar.gz
2.9.1 第三种方式:pip安装(不兼容Python3)
python -m pip install M2Crypto
2.9.1.1 安装libssl:
#OpenSSL的最新稳定版本是1.1.1系列,ubuntu18.04内置了1.1.0g版本的openssl
#查看本机版本
openssl version
2.9.2.1.1 更新版本
#官网查看对应Ubuntu对应版本
http://security.ubuntu.com/ubuntu/pool/main/o/openssl/
#使用下面的apt命令更新Ubuntu存储库并安装软件包编译的软件包依赖项:
sudo apt update
sudo aptitude install build-essential checkinstall zlib1g-dev
#转到’/ usr / local / src’目录并使用wget下载OpenSSL-1.1.1b的源代码:
cd /usr/local/src/
sudo wget https://www.openssl.org/source/openssl-1.1.1b.tar.gz
#现在解压缩openssl-1.1.1b.tar.gz文件,然后转到’openssl-1.1.1b’目录:
sudo tar -xf openssl-1.1.1b.tar.gz
cd openssl-1.1.1b
#使用以下命令配置和编译OpenSSL:
sudo ./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib
sudo make
sudo make test
#注意:
#prefix和–openssldir =设置OpenSSL的输出路径。
#shared = force来创建共享库。
#zlib =使用zlib库启用压缩。
#编译过程完成后,使用以下命令安装OpenSSL:
sudo make install
#OpenSSL安装在’/usr/local/ssl’目录中。
#接下来,我们将为OpenSSL配置共享库。 新的OpenSSL二进制文件将从’/usr/local/ssl/lib’目录加载库文件。
#转到’/etc/ld.so.conf.d’目录并创建新配置文件’openssl-1.1.1b.conf’:
cd /etc/ld.so.conf.d/
sudo vim openss1-1.1.1b.conf
#粘贴openssl库路径目录:
/usr/local/ssl/lib
#现在使用以下命令重新加载动态链接:
sudo ldconfig -v
2.9.2 命令安装:
#默认最高版本
python -m pip install M2Crypto
3.0 安装guacd
#可选择安装项,位CUCKOO web界面中的远程控制功能提供RDP,VNC和SSH的转换层
sudo aptitude install libguac-client-rdp0 libguac-client-vnc0 libguac-client-ssh0 guacd
3. 安装cuckoo-沙盒
3.1 安装依赖
sudo aptitude install libtiff5-dev libjpeg8-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev python-tk
3. 2 安装dpkt-解析pcap包
python -m pip install --ignore-installed dpkt==1.8.7
sudo aptitude install python-pypcap
3.3 安装pyopenssl加密库
python -m pip install pyopenssl pycrypto
3. 3 安装cuckoo
3.3.1 下载setuptools-打包分发工具
python -m pip install -U pip setuptools
#查看版本,确认是否安装成功
python -m pip list | grep setuptools
3.3.2 安装cuckoo
python -m pip install -U cuckoo
3.3.3 根目录启动cuckoo-所有安装完成最后启动
#启动web
cuckoo web
#通过http://localhost:8000
cuckoo web runserver 0.0.0.0:8080
#也可以通过ip访问 http://host ip:8080
#如果需要设置后台可以使用nohup或者&
nohup cuckoo
nohup cuckoo web runserver 0.0.0.0:8080
#无法绑定结果服务器”错误意味着杜鹃无法 绑定用于获取分析日志的组件,发生这种情况是因为您的虚拟接口关闭或丢失。需要重新启动接口进行绑定
$ If the hostonly interface vboxnet0 does not exist already.
#新建网卡
VBoxManage hostonlyif create
Configure vboxnet0.
VBoxManage hostonlyif ipconfig vboxnet0 --ip 192.168.56.1 --netmask 255.255.255.0
3.3.3 设置cuckoo web界面登陆密码
cd ~/.cuckoo/conf
sudo gedit cuckoo.conf
#如不使用密码,为空
3.3.3 下载 Cuckoo Community
#其中包含了300多个恶意软件行为签名,可用于简化我们对结果的分析。
#需要梯子
cuckoo community
#下载好的 community 压缩包,也可以通过如下命令直接导入:
wget https://github.com/cuckoosandbox/community/archive/master.tar.gz
cuckoo community --file master.tar.gz
3.4 安装virtualbox
从 Oracle 仓库软件源中安装 VirtualBox:
#安装依赖
python -m pip install openpyxl ujson distorm3 pytz
3.4.1 使用以下命令导入Oracle公共密钥:
wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -
3.4.2 将VirtualBox APT仓库添加到您的系统:
echo “deb [arch=amd64] http://download.virtualbox.org/virtualbox/debian $(lsb_release -cs) contrib” |
sudo tee -a /etc/apt/sources.list.d/virtualbox.list
3.4.3 更新程序包列表并安装最新版本的VirtualBox:
sudo apt update
输入 sudo apt install virtualbox- 并点击 tab 键以查看可用于安装的各种 VirtualBox 版本,然后通过补全命令来选择其中一个版本。
sudo apt install virtualbox-7.0
#使用命令行删除:
#sudo apt remove virtualbox virtualbox-*
3.4.4 启动
virtualbox
3.4.5 报错:
1、QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to ‘/tmp/runtime-root’
export XDG_RUNTIME_DIR=/usr/lib/
export XDG_RUNTIME_DIR=/usr/lib/ >> /etc/profile
export RUNLEVEL=3 >> /etc/profile
source /etc/profile
2、其他问题建议直接重启试试
source /opt/cuckoo/bin/activate
sudo cuckoo -d
virtualbox
3.4.6 安装VirtualBox Extension Pack(实际不影响使用)
#VirtualBox Extension Pack为来宾计算机提供了多种有用的功能,例如虚拟USB 2.0和3.0设备,对RDP的支持,图像加密等等。
#查看virtualbox的版本号:
vboxmanage -V
#这里查询为6.1.40r154048
#然后去http://download.virtualbox.org/virtualbox/找到自己对应的版本,使用wget进行下载。
wget http://download.virtualbox.org/virtualbox/6.1.40/Oracle_VM_VirtualBox_Extension_Pack-6.1.40-154048.vbox-extpack
3.4.6.1 安装扩展包
sudo vboxmanage extpack install Oracle_VM_VirtualBox_Extension_Pack-6.1.40-154048.vbox-extpack
#查看扩展包是否安装成功:
vboxmanage list extpacks
#设置扩展包特性(为后面使用远程桌面做准备):
vboxmanage setproperty vrdeextpack “Oracle VM VirtualBox Extension Pack”
#导入自选扩展包:
#VBoxManage extpack install 包名
#如果报了一个错误为:QXcbConnection: Could not connect to display
#查看DISPLAY是否被定义
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加VX:vip204888 (备注网络安全获取)
还有兄弟不知道网络安全面试可以提前刷题吗?费时一周整理的160+网络安全面试题,金九银十,做网络安全面试里的显眼包!
王岚嵚工程师面试题(附答案),只能帮兄弟们到这儿了!如果你能答对70%,找一个安全工作,问题不大。
对于有1-3年工作经验,想要跳槽的朋友来说,也是很好的温习资料!
【完整版领取方式在文末!!】
93道网络安全面试题
内容实在太多,不一一截图了
黑客学习资源推荐
最后给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
😝朋友们如果有需要的话,可以联系领取~
1️⃣零基础入门
① 学习路线
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
② 路线对应学习视频
同时每个成长路线对应的板块都有配套的视频提供:
2️⃣视频配套工具&国内外网安书籍、文档
① 工具
② 视频
③ 书籍
资源较为敏感,未展示全面,需要的最下面获取
② 简历模板
因篇幅有限,资料较为敏感仅展示部分资料,添加上方即可获取👆
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
#pic_center)
② 路线对应学习视频
同时每个成长路线对应的板块都有配套的视频提供:
2️⃣视频配套工具&国内外网安书籍、文档
① 工具
② 视频
③ 书籍
资源较为敏感,未展示全面,需要的最下面获取
② 简历模板
因篇幅有限,资料较为敏感仅展示部分资料,添加上方即可获取👆
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-1ULkGvZF-1712480954748)]