SandBox - CAPEv2 踩坑记
2023-4-17 11:26:23 Author: 网络安全交流圈(查看原文) 阅读量:233 收藏

SandBox - CAPEv2

装系统时,用户直接注册为cape !!!!! 省心 

所有<username>均替换为cape用户 

服务环境Ubuntu 22.04,所有linux系统一定要update!!!

这款沙箱目前主windows环境,其它环境需自行摸索(可参考CUCKoo)。就像作者说的一样:

For advanced users only, can be buggy, linux analysis is work in progress for fun 难顶 

(本次网络配置为实际网络,需注意安全。)

[toc]

  • 前置环境

  • 配置代理

    • 系统代理

    • 应用代理

    • 记得取消代理配置

  • 安装

    • KVM

    • CAPE

    • cuckoo

  • 客户端配置(分析端)

    • 系统安装(WIN7)

    • 系统安装(U18.04)

  • Cuckoo 配置

    • cuckoo.conf

    • kvm.conf

    • auxiliary.conf

    • routing.conf

    • web.conf

    • report

  • 附加软件

  • 安装过程问题及解决(Issues)

    • libvirt(可忽略)

    • choco 离线安装教程

    • Win7环境Chrome字体显示不清晰

    • python3.8.6安装缺少补丁

    • Linux客户端

    • 中文名称乱码

前置环境

apt update
apt-get upgrade
apt install git
apt install privoxy 

git clone https://github.com/kevoreilly/CAPEv2  //CAPE
 - installer/cape2.sh
 - installer/kvm-qemu.sh
 - installer/suricata_from_source.sh

# git clone https://github.com/doomedraven/Tools //KVM
# - Virtualization/kvm-qemu.sh

配置代理

主要用于解决git等站点通信情况,若无此需求可以忽略此步骤

系统代理

  • privoxy.conf
/etc/privoxy/config

1、代理服务器
# forward-socks5t / localhost:1080 .
==>
forward-socks5 / 192.168.1.2:1080

2、本地监听
listen-address 127.0.0.1:8118

  • 环境配置
cat /etc/profile.d/proxy.sh 
# Proxy
export all_proxy="http://localhost:8118"
export http_proxy="http://localhost:8118"
export https_proxy="http://localhost:8118"
  • 环境加载
source /etc/profile   //当前用户
chmod +x /etc/profile.d/proxy.sh  //重启后所有用户自动加载
reboot //因为个人喜欢直接root操作,所以需要重启,以便普通用户cape环境生效。
  • 启动服务
systemctl start privoxy
systemctl enable privoxy

应用代理

  • git
配置socks
git config --global http.proxy 'socks5://192.168.1.2:1080'
git config --global https.proxy 'socks5://192.168.1.2:1080'

记得取消代理配置

完成安装--cuckoo操作后,一定要取消代理

mv /etc/profile.d/proxy.sh /opt
systemctl stop privoxy
systemctl enable privoxy

git config --global --unset http.proxy
git config --global --unset https.proxy

reboot

安装

本文使用KVM作为分析客户机启动环境,除此之外也支持vmware、Vbox、Xen、Azure以及真实机等

KVM

sudo ./kvm-qemu.sh all <username> // 源码编译kvm
reboot

sudo ./kvm-qemu.sh virtmanager <username>   //安装virtmanager
reboot

CAPE

sudo ./cape2.sh base cape
reboot

执行脚本后,会安装下列4个服务(大致功能,未探索具体):

  • cape.service  cape分析
  • cape-web.service  web服务
  • cape-processor.service  分析处理+报告
  • cape-rooter.service 路由

这4个功能除cape服务会在conf配置完成后正常运行,其它3个均正常启动状态。

cuckoo

# 依赖安装,创建新环境避免依赖冲突造成无法安装
(若不使用这个方法,会造
成各种问题,很伤--
  在运行沙箱前,需配置客户端)

sudo poetry install
poetry env list
sudo -u cape poetry run python cuckoo.py //运行沙箱

或者使用virtualenv
apt install python3-virtualenv
virtualenv -p python3 venv

source venv/bin/activate
pip install -r requirements.txt
python cuckoo.py  
# 运行沙箱

客户端配置(分析端)

系统安装(WIN7)

建议安装时使用英文系统

qemu-img create -f qcow2 -o size=120G /opt/Analysis/win7.qcow2
通过命令创建的文件可以避免给出的容量超出实际容量问题

依赖安装

WIN10无需安装NET和Powershell,Win7建议下载离线包安装

  • python3
  • .NET 4.5.2
  • Powershell 5.1
  • choco

环境配置

见官方手册

  • 网络配置
    https://capev2.readthedocs.io/en/latest/installation/guest/network.html
  • 网络配置2
    https://capev2.readthedocs.io/en/latest/installation/guest/additional_configuration.html

Agent配置

CAPE/agent/agent.py上传客户端,并修改后缀为pyw(隐藏窗口)

配置计划任务,当用户登陆时以最高权限运行。

创建快照

virsh snapshot-create "<Name of VM>"   //自动生成快照名称

virsh snapshot-create-as --domain "<Name of VM>" --name "<Name of snapshot>"   //自定义快照名称

其它(可不做)

x

系统安装(U18.04)

建议安装时使用英文系统

qemu-img create -f qcow2 -o size=120G /opt/Analysis/u1804.qcow2
通过命令创建的文件可以避免给出的容量超出实际容量问题

更新系统及依赖安装

apt update
apt upgrade
apt install -y curl wget git

环境配置

参考手册依次安装即可,未出现失败

https://capev2.readthedocs.io/en/latest/installation/guest/linux.html

创建快照

virsh snapshot-create "<Name of VM>"   //自动生成快照名称

virsh snapshot-create-as --domain "<Name of VM>" --name "<Name of snapshot>"   //自定义快照名称

Cuckoo 配置

CAPEv2/custom/conf/此处为客户定制化配置目录,其加载优先级高于CAPEv2/conf/

cuckoo.conf

    machinery = kvm  //客户机虚拟环境,根据情况填写
    rooter = /tmp/cuckoo-rooter
    ip = 192.168.202.1  //virbr0地址 
    port = 2042
    resolve_dns = on

kvm.conf

本环境为kvm,若是cuckoo.conf配置的vbox则此处应编辑的文件为

machines = cuckoo1  //配置Guest标签,用于后期选择分析环境用。
interface = virbr0  //指定当前客户端网卡

[cuckoo1]  // 沙箱的具体配置信息
label = win7  // 客户端domain名称
platform = windows  // 操作系统类型 windows/darwin/linux
ip = 192.168.202.211  //客户机地址
snapshot = init-win7-run  //快照名称,用于自动分析还原
arch = x64 //系统架构

auxiliary.conf

[sniffer]
    enabled = yes
    tcpdump = /usr/bin/tcpdump  // 指定tcpdump路径,并给与cape用户可执行权限,不然无法监听网络流量
    interface = virbr0 //监听网卡,用于收集网络流量情况

[gateways]
    RTR1 = 192.168.202.1  //各网卡网关情况,可自由增减
    RTR2 = 192.168.136.2
    #RTR3 = 10.0.2.15
    #INETSIM = 192.168.100.130  //用于模拟dns网络,可自行配置并指定。

routing.conf

route = internet
internet = ens33 //服务器外网卡

[inetsim]
    enabled = no  //这里没有启用, yes启用 - no关闭
    server = 192.168.100.130
    dnsport = 53
    interface = virbr0

至此,基础环境已安装完毕,下面.conf文件根据需求配置即可。

web.conf

[web_reporting]
enabled = yes

[linux]
enabled = yes 如若不配置,无法使用linux分析环境
[malscore]
enabled = yes 开启软件恶意值评分

若是部署供他人使用,也可在此文件中启用并配置用户权限

report

默认为json报告模式

[reporthtmlsummary]
enabled = yes    html格式报告
screenshots = yes 将截图插入报告

[reportpdf]
enabled = yes  pdf模式报告,需开启前置html报告

附加软件

注意:需要禁止联网操作,如:更新

  • Office 2010 SP2(14.0.725 或 > 14.0.6)
  • docker 容器模拟同网段存活机
version: '3'
services: 
  mysql: 
    image: mysql:5.6
    restart: always
     #volumes: 
      #- $PWD/conf:/etc/mysql/conf.d
      #- $PWD/data:/var/lib/mysql
      #- $PWD/logs:/logs
    environment: 
      - [email protected]
    networks: 
      vv: 
        ipv4_address: 192.168.202.3
  redis: 
    image: redis
    restart: always
    command: redis-server --port 6379 --requirepass [email protected]
    networks: 
      vv: 
        ipv4_address: 192.168.202.100
  gobangd: 
    image: svbai/gobangd
    restart: always
    networks: 
      vv: 
        ipv4_address: 192.168.202.208
  ubuntu: 
    image: ubuntu:18.04
    restart: always
    stdin_open: true
    tty: true
    expose: 
      - 4444
      - 22
    networks: 
      vv: 
        ipv4_address: 192.168.202.223
  samba: 
    image: dperson/samba
    restart: always
    networks: 
      vv: 
        ipv4_address: 192.168.202.241
networks: 
  vv: 
    external: true

安装过程问题及解决(Issues)

libvirt(可忽略)

这里主要是刚开始安装时,未更新系统,导致的。后来重装系统并更新后就没有这个问题。

问题1:缺少缺少libvirt
apt install python3-libvirt
sudo ./kvm.sh libvirt cape 

问题2:/var/run/libvirt/virtqemud-sock 没有文件
kvm环境编译问题,需要重新编译

choco 离线安装教程

1) 确认powershell 策略

1、获取Powershell当前策略
Get-ExecutionPolicy  //获取当前策略
Restricted   // 表明系统当前执行策略为 Restricted 模式
// - 允许单独的命令,但不会运行脚本。
// - 阻止所有脚本文件的运行,包括格式设置文件和配置文件 (.ps1xml)、模块脚本文件 (.psm1) 和 Windows PowerShell 配置文件 (.ps1)。

2、修改策略为 RemoteSigned
Set-ExecutionPolicy -Scope CurrentUser //进入修改交互界面
RemoteSigned  //输入要修改的策略

//  - 脚本可以运行。
//  - 要求从 Internet 下载的脚本和配置文件(包括电子邮件和即时消息程序)具有受信任的发布者的数字签名。
//  - 不要求你在本地计算机上编写的脚本(不是从 Internet 下载的)具有数字签名。
//  - 如果脚本已被取消阻止(比如通过使用 Unblock-File cmdlet),则运行从 Internet 下载但未签名的脚本。
//  - 存在运行来自 Internet 之外的源的未签名脚本和已签名但却是恶意的脚本的风险。

3、出现执行策略更改的内容,输入 Y ,更改执行策略。

4、Get-ExecutionPolicy   //确认是否更改

2) 参考官网离线安装手册:下载最新版nupkg和安装脚本

https://docs.chocolatey.org/en-us/choco/setup#completely-offline-install

3)修改脚本关键代码(共两处)

  • 第一处(46替换绝对路径)
46 $localChocolateyPackageFilePath = Join-Path $env:TEMP 'chocolatey.nupkg'
===>

46 $localChocolateyPackageFilePath = 'C:\User\Administrator\Download\chocolatey.nupkg'

  • 第二处(注释276、277、278)
273 # Idempotence - do not install Chocolatey if it is already installed
274 if (!(Test-Path $ChocoInstallPath)) {
275   # download the package to the local path
276   #if (!(Test-Path $localChocolateyPackageFilePath)) {
277    # Download-Package $searchUrl $localChocolateyPackageFilePath
278   #}
279
280   # Install Chocolatey
281   Install-ChocolateyFromPackage $localChocolateyPackageFilePath
282 }

4)powershell(管理员)运行脚本即可

离线安装参考

  • 官方文档
    https://docs.chocolatey.org/en-us/choco/setup#completely-offline-install
  • CSDN
    https://blog.csdn.net/omaidb/article/details/126669503

Win7环境Chrome字体显示不清晰

官方下载KB2670838补丁安装即可

python3.8.6安装缺少补丁

见百度云盘:https://pan.baidu.com/s/1FqusHUYmHsUnBp-cx21qpQ?pwd=wagb

Linux客户端

一定要更新系统软件后在开始配置,不然会出现下面的错误

E: Problem executing scripts APT::Update::Post-Invoke-Success 'if /usr/bin/test -w /var/cache/app-info -a -e /usr/bin/appstreamcli; then appstreamcli refresh > /dev/null; fi'
E: Sub-process returned an error code

中文名称乱码

这里在分析报告 - 进程模块中依旧会出现????,影响不大[狗头]

  • lib/cuckoo/common/utils.py共5处修改

  • analyzer/windows/lib/core/config.py 1处修改

  • 参考文档
    https://github.com/kevoreilly/CAPEv2/issues/1243

文章来源: http://mp.weixin.qq.com/s?__biz=MzI1MDk3NDc5Mg==&mid=2247484656&idx=1&sn=53e1c74850221cd12285b7803d1653c4&chksm=e9fb43d7de8ccac13aeab9841bf199acc2f5dd4e12093f41219a89ad3c3ea14512673b76fe61#rd
如有侵权请联系:admin#unsafe.sh