pyrebox安装和使用

测试pyrebox能否完整支持volatility的功能

PyREBox是一个Python可脚本化逆向工程沙箱。它基于QEMU,其目标是通过从不同角度提供动态分析和调试功能,从而协助逆向工程。

PyREBox允许用python创建简单的脚本来自动化任何类型的分析,从而检查正在运行中的QEMU VM,修改其内存或寄存器,并指示其执行。QEMU (作为一个完整的系统仿真器工作时) 模拟完整的系统 (CPU,内存,设备……)。通过使用VMI技术,它并不需要对客户机操作系统进行任何的修改,因为它可以在运行时从其内存中检索信息。

1. Build PyREBox

给基于Debian的发行版安装依赖,Ubuntu是Debian的一个分支,所以可以在Ubuntu上使用:

apt-get install build-essential zlib1g-dev pkg-config libglib2.0-dev binutils-dev libboost-all-dev autoconf libtool libssl-dev libpixman-1-dev libpython-dev python-pip python-capstone virtualenv
  • 1

需要的python包有这些:

ipython>=5,<6 sphinx sphinx-autobuild prettytable pefile capstone distorm3 pycrypto pytz
  • 1

官方建议使用虚拟环境安装python依赖。如果本地已经安装了volatility,它会干扰PyreBox使用的volatility包。

创建一个虚拟环境:

virtualenv pyrebox_venv
  • 1

一旦创建好了虚拟环境后,激活环境来安装python的依赖,每次使用PyreBox前别忘了激活虚拟环境:

source pyrebox_venv/bin/activate
  • 1

为了安装python的依赖,可以使用pip:

pip install -r requirements.txt
  • 1

进入虚拟环境后用git clone下pyrebox:

git clone https://github.com/Cisco-Talos/pyrebox.git
  • 1

cd pyrebox,进行项目配置和build:

./build.sh
  • 1

当出现了Done, enjoy!的时候就是build完成

2. 为PyreBox创建虚拟镜像

目前,PyREBox支持Volatility支持的任何Windows映像(32位和64位)。

可以使用KVM创建自己的镜像文件。为了避免兼容性问题,最好使用pyrebox二进制文件而不是系统安装qemu二进制文件:

先执行:

sudo apt-get install qemu-utils
  • 1

需要创建一个qcow2格式的虚拟机文件,接着执行

qemu-img create -f qcow2 -o compat=0.10 images/xpsp3.qcow2 4G
  • 1

执行后,提示:

Formatting 'images/xpsp3.qcow2', fmt=qcow2 size=4294967296 compat=0.10 encryption=off cluster_size=65536 lazy_refcounts=off refcount_bits=16
  • 1

cd pyrebox,后执行:

./pyrebox-i386 -m 256 -monitor stdio -usb -drive file=images/xpsp3.qcow2,index=0,media=disk,format=qcow2,cache=unsafe -cdrom images/WinXP.iso -boot d -enable-kvm
  • 1

会报错:

Could not initialize pyrebox, conf file 'pyrebox.conf' missing!
  • 1

可以先执行以下./start_x86_64.sh,就会有了上面的配置文件,不会报错了

接着执行上面的命令后就会得到

(qemu) VNC server running on 127.0.0.1:5900

下载ubuntu版本的vnc viewer的deb安装包并安装:

sudo dpkg -i VNC-Viewer-6.17.1113-Linux-x64.deb
  • 1

就可以使用VNC Viewer新建连接,连上上面的地址,就可以按提示在虚拟机上安装XP系统

继续安装,然后使用网络启动(不要使用-net none)和usb支持(-usb),并插入usb(请参阅加载USB映像)。让系统安装所有驱动程序

./pyrebox-i386 -m 256 -monitor stdio -usb -drive file=images/xpsp3.qcow2,index=0,media=disk,format=qcow2,cache=unsafe -netdev user,id=network0 -device rtl8139,netdev=network0
  • 1

以后启动就可以直接使用./pyrebox-i386脚本启动虚拟机,不过要指定qcow2文件的位置

基本QEMU使用文档:

PyREBox基于QEMU,为了在PyREBox中启动VM,需要像启动QEMU VM一样运行它。官方提供了几个示例脚本:start_i386.sh,start_x86_64.sh,可以将它们用作示例。

目前支持的唯一QEMU监视器选项是stdio(-monitor stdio)

一些有用的QEMU参数如下:

  • 内存,以兆字节为单位:

    -m 256
    • 1
  • 在标准输入/输出上启动提示以与qemu监视器交互:

    -monitor stdio
    • 1
  • 启用USB支持:

    -usb
    • 1
  • 可以指定具有不安全缓存的主图像文件,不安全的缓存将使快照速度更快:

    -drive file=images/xpsp3.qcow,index=0,media=disk,format=qcow2,cache=unsafe
    • 1
  • 禁用网络接口

    -net none
    • 1
  • 在第一个快照启动vm

    -loadvm 1
    • 1
3. 基本的PyREBox用法

启动VM后,将有一个(qemu)提示符,可以在其中运行所有QEMU命令。

PyREBox将首先读取其配置文件(pyrebox.conf)。

[MODULES]scripts.script_example.py: Truescripts.volatility_example: False[VOL]profile: WinXPSP3x86
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

[MODULES]部分包含一个python模块列表(可以使用标准python表示法(使用点)指定包和子包)。可以根据需要启用或禁用脚本。这些脚本将自动加载。

[VOL]部分包含volatility配置。需要根据操作系统版本调整配置文件。

PyREBox命令允许加载/卸载脚本:

  • 导入模块并初始化它

    (qemu) import_module scripts.my_plugin
    • 1
  • 列出加载的模块

    (qemu) list_modules
    • 1
  • 通过模块句柄重新加载模块(可以通过列出已加载的模块来获取此句柄)

    (qemu) reload_module 1
    • 1
  • 通过模块句柄卸载模块(可以通过列出已加载的模块来获取此句柄)

    (qemu) unload_module 1
    • 1
  • 启动PyREBox shell

    (qemu) sh
    • 1
4. IPython Shell

启动shell之后,用list_commands可以列出PyreBox提供的一套可以观察和修改正在运行的虚拟机状态的命令

对于volatility可以用list_vol_commands来列出支持的所有的volatility命令,它也会显示自己安装在PyreBox中的volatility的插件

测试pyrebox能否完整支持volatility的功能

PyREBox是一个Python可脚本化逆向工程沙箱。它基于QEMU,其目标是通过从不同角度提供动态分析和调试功能,从而协助逆向工程。

PyREBox允许用python创建简单的脚本来自动化任何类型的分析,从而检查正在运行中的QEMU VM,修改其内存或寄存器,并指示其执行。QEMU (作为一个完整的系统仿真器工作时) 模拟完整的系统 (CPU,内存,设备……)。通过使用VMI技术,它并不需要对客户机操作系统进行任何的修改,因为它可以在运行时从其内存中检索信息。

1. Build PyREBox

给基于Debian的发行版安装依赖,Ubuntu是Debian的一个分支,所以可以在Ubuntu上使用:

apt-get install build-essential zlib1g-dev pkg-config libglib2.0-dev binutils-dev libboost-all-dev autoconf libtool libssl-dev libpixman-1-dev libpython-dev python-pip python-capstone virtualenv
  • 1

需要的python包有这些:

ipython>=5,<6 sphinx sphinx-autobuild prettytable pefile capstone distorm3 pycrypto pytz
  • 1

官方建议使用虚拟环境安装python依赖。如果本地已经安装了volatility,它会干扰PyreBox使用的volatility包。

创建一个虚拟环境:

virtualenv pyrebox_venv
  • 1

一旦创建好了虚拟环境后,激活环境来安装python的依赖,每次使用PyreBox前别忘了激活虚拟环境:

source pyrebox_venv/bin/activate
  • 1

为了安装python的依赖,可以使用pip:

pip install -r requirements.txt
  • 1

进入虚拟环境后用git clone下pyrebox:

git clone https://github.com/Cisco-Talos/pyrebox.git
  • 1

cd pyrebox,进行项目配置和build:

./build.sh
  • 1

当出现了Done, enjoy!的时候就是build完成

2. 为PyreBox创建虚拟镜像

目前,PyREBox支持Volatility支持的任何Windows映像(32位和64位)。

可以使用KVM创建自己的镜像文件。为了避免兼容性问题,最好使用pyrebox二进制文件而不是系统安装qemu二进制文件:

先执行:

sudo apt-get install qemu-utils
  • 1

需要创建一个qcow2格式的虚拟机文件,接着执行

qemu-img create -f qcow2 -o compat=0.10 images/xpsp3.qcow2 4G
  • 1

执行后,提示:

Formatting 'images/xpsp3.qcow2', fmt=qcow2 size=4294967296 compat=0.10 encryption=off cluster_size=65536 lazy_refcounts=off refcount_bits=16
  • 1

cd pyrebox,后执行:

./pyrebox-i386 -m 256 -monitor stdio -usb -drive file=images/xpsp3.qcow2,index=0,media=disk,format=qcow2,cache=unsafe -cdrom images/WinXP.iso -boot d -enable-kvm
  • 1

会报错:

Could not initialize pyrebox, conf file 'pyrebox.conf' missing!
  • 1

可以先执行以下./start_x86_64.sh,就会有了上面的配置文件,不会报错了

接着执行上面的命令后就会得到

(qemu) VNC server running on 127.0.0.1:5900

下载ubuntu版本的vnc viewer的deb安装包并安装:

sudo dpkg -i VNC-Viewer-6.17.1113-Linux-x64.deb
  • 1

就可以使用VNC Viewer新建连接,连上上面的地址,就可以按提示在虚拟机上安装XP系统

继续安装,然后使用网络启动(不要使用-net none)和usb支持(-usb),并插入usb(请参阅加载USB映像)。让系统安装所有驱动程序

./pyrebox-i386 -m 256 -monitor stdio -usb -drive file=images/xpsp3.qcow2,index=0,media=disk,format=qcow2,cache=unsafe -netdev user,id=network0 -device rtl8139,netdev=network0
  • 1

以后启动就可以直接使用./pyrebox-i386脚本启动虚拟机,不过要指定qcow2文件的位置

基本QEMU使用文档:

PyREBox基于QEMU,为了在PyREBox中启动VM,需要像启动QEMU VM一样运行它。官方提供了几个示例脚本:start_i386.sh,start_x86_64.sh,可以将它们用作示例。

目前支持的唯一QEMU监视器选项是stdio(-monitor stdio)

一些有用的QEMU参数如下:

  • 内存,以兆字节为单位:

    -m 256
    • 1
  • 在标准输入/输出上启动提示以与qemu监视器交互:

    -monitor stdio
    • 1
  • 启用USB支持:

    -usb
    • 1
  • 可以指定具有不安全缓存的主图像文件,不安全的缓存将使快照速度更快:

    -drive file=images/xpsp3.qcow,index=0,media=disk,format=qcow2,cache=unsafe
    • 1
  • 禁用网络接口

    -net none
    • 1
  • 在第一个快照启动vm

    -loadvm 1
    • 1
3. 基本的PyREBox用法

启动VM后,将有一个(qemu)提示符,可以在其中运行所有QEMU命令。

PyREBox将首先读取其配置文件(pyrebox.conf)。

[MODULES]scripts.script_example.py: Truescripts.volatility_example: False[VOL]profile: WinXPSP3x86
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

[MODULES]部分包含一个python模块列表(可以使用标准python表示法(使用点)指定包和子包)。可以根据需要启用或禁用脚本。这些脚本将自动加载。

[VOL]部分包含volatility配置。需要根据操作系统版本调整配置文件。

PyREBox命令允许加载/卸载脚本:

  • 导入模块并初始化它

    (qemu) import_module scripts.my_plugin
    • 1
  • 列出加载的模块

    (qemu) list_modules
    • 1
  • 通过模块句柄重新加载模块(可以通过列出已加载的模块来获取此句柄)

    (qemu) reload_module 1
    • 1
  • 通过模块句柄卸载模块(可以通过列出已加载的模块来获取此句柄)

    (qemu) unload_module 1
    • 1
  • 启动PyREBox shell

    (qemu) sh
    • 1
4. IPython Shell

启动shell之后,用list_commands可以列出PyreBox提供的一套可以观察和修改正在运行的虚拟机状态的命令

对于volatility可以用list_vol_commands来列出支持的所有的volatility命令,它也会显示自己安装在PyreBox中的volatility的插件

 

测试pyrebox能否完整支持volatility的功能

PyREBox是一个Python可脚本化逆向工程沙箱。它基于QEMU,其目标是通过从不同角度提供动态分析和调试功能,从而协助逆向工程。

PyREBox允许用python创建简单的脚本来自动化任何类型的分析,从而检查正在运行中的QEMU VM,修改其内存或寄存器,并指示其执行。QEMU (作为一个完整的系统仿真器工作时) 模拟完整的系统 (CPU,内存,设备……)。通过使用VMI技术,它并不需要对客户机操作系统进行任何的修改,因为它可以在运行时从其内存中检索信息。

1. Build PyREBox

给基于Debian的发行版安装依赖,Ubuntu是Debian的一个分支,所以可以在Ubuntu上使用:

apt-get install build-essential zlib1g-dev pkg-config libglib2.0-dev binutils-dev libboost-all-dev autoconf libtool libssl-dev libpixman-1-dev libpython-dev python-pip python-capstone virtualenv
  • 1

需要的python包有这些:

ipython>=5,<6 sphinx sphinx-autobuild prettytable pefile capstone distorm3 pycrypto pytz
  • 1

官方建议使用虚拟环境安装python依赖。如果本地已经安装了volatility,它会干扰PyreBox使用的volatility包。

创建一个虚拟环境:

virtualenv pyrebox_venv
  • 1

一旦创建好了虚拟环境后,激活环境来安装python的依赖,每次使用PyreBox前别忘了激活虚拟环境:

source pyrebox_venv/bin/activate
  • 1

为了安装python的依赖,可以使用pip:

pip install -r requirements.txt
  • 1

进入虚拟环境后用git clone下pyrebox:

git clone https://github.com/Cisco-Talos/pyrebox.git
  • 1

cd pyrebox,进行项目配置和build:

./build.sh
  • 1

当出现了Done, enjoy!的时候就是build完成

2. 为PyreBox创建虚拟镜像

目前,PyREBox支持Volatility支持的任何Windows映像(32位和64位)。

可以使用KVM创建自己的镜像文件。为了避免兼容性问题,最好使用pyrebox二进制文件而不是系统安装qemu二进制文件:

先执行:

sudo apt-get install qemu-utils
  • 1

需要创建一个qcow2格式的虚拟机文件,接着执行

qemu-img create -f qcow2 -o compat=0.10 images/xpsp3.qcow2 4G
  • 1

执行后,提示:

Formatting 'images/xpsp3.qcow2', fmt=qcow2 size=4294967296 compat=0.10 encryption=off cluster_size=65536 lazy_refcounts=off refcount_bits=16
  • 1

cd pyrebox,后执行:

./pyrebox-i386 -m 256 -monitor stdio -usb -drive file=images/xpsp3.qcow2,index=0,media=disk,format=qcow2,cache=unsafe -cdrom images/WinXP.iso -boot d -enable-kvm
  • 1

会报错:

Could not initialize pyrebox, conf file 'pyrebox.conf' missing!
  • 1

可以先执行以下./start_x86_64.sh,就会有了上面的配置文件,不会报错了

接着执行上面的命令后就会得到

(qemu) VNC server running on 127.0.0.1:5900

下载ubuntu版本的vnc viewer的deb安装包并安装:

sudo dpkg -i VNC-Viewer-6.17.1113-Linux-x64.deb
  • 1

就可以使用VNC Viewer新建连接,连上上面的地址,就可以按提示在虚拟机上安装XP系统

继续安装,然后使用网络启动(不要使用-net none)和usb支持(-usb),并插入usb(请参阅加载USB映像)。让系统安装所有驱动程序

./pyrebox-i386 -m 256 -monitor stdio -usb -drive file=images/xpsp3.qcow2,index=0,media=disk,format=qcow2,cache=unsafe -netdev user,id=network0 -device rtl8139,netdev=network0
  • 1

以后启动就可以直接使用./pyrebox-i386脚本启动虚拟机,不过要指定qcow2文件的位置

基本QEMU使用文档:

PyREBox基于QEMU,为了在PyREBox中启动VM,需要像启动QEMU VM一样运行它。官方提供了几个示例脚本:start_i386.sh,start_x86_64.sh,可以将它们用作示例。

目前支持的唯一QEMU监视器选项是stdio(-monitor stdio)

一些有用的QEMU参数如下:

  • 内存,以兆字节为单位:

    -m 256
    • 1
  • 在标准输入/输出上启动提示以与qemu监视器交互:

    -monitor stdio
    • 1
  • 启用USB支持:

    -usb
    • 1
  • 可以指定具有不安全缓存的主图像文件,不安全的缓存将使快照速度更快:

    -drive file=images/xpsp3.qcow,index=0,media=disk,format=qcow2,cache=unsafe
    • 1
  • 禁用网络接口

    -net none
    • 1
  • 在第一个快照启动vm

    -loadvm 1
    • 1
3. 基本的PyREBox用法

启动VM后,将有一个(qemu)提示符,可以在其中运行所有QEMU命令。

PyREBox将首先读取其配置文件(pyrebox.conf)。

[MODULES]scripts.script_example.py: Truescripts.volatility_example: False[VOL]profile: WinXPSP3x86
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

[MODULES]部分包含一个python模块列表(可以使用标准python表示法(使用点)指定包和子包)。可以根据需要启用或禁用脚本。这些脚本将自动加载。

[VOL]部分包含volatility配置。需要根据操作系统版本调整配置文件。

PyREBox命令允许加载/卸载脚本:

  • 导入模块并初始化它

    (qemu) import_module scripts.my_plugin
    • 1
  • 列出加载的模块

    (qemu) list_modules
    • 1
  • 通过模块句柄重新加载模块(可以通过列出已加载的模块来获取此句柄)

    (qemu) reload_module 1
    • 1
  • 通过模块句柄卸载模块(可以通过列出已加载的模块来获取此句柄)

    (qemu) unload_module 1
    • 1
  • 启动PyREBox shell

    (qemu) sh
    • 1
4. IPython Shell

启动shell之后,用list_commands可以列出PyreBox提供的一套可以观察和修改正在运行的虚拟机状态的命令

对于volatility可以用list_vol_commands来列出支持的所有的volatility命令,它也会显示自己安装在PyreBox中的volatility的插件

 

测试pyrebox能否完整支持volatility的功能

PyREBox是一个Python可脚本化逆向工程沙箱。它基于QEMU,其目标是通过从不同角度提供动态分析和调试功能,从而协助逆向工程。

PyREBox允许用python创建简单的脚本来自动化任何类型的分析,从而检查正在运行中的QEMU VM,修改其内存或寄存器,并指示其执行。QEMU (作为一个完整的系统仿真器工作时) 模拟完整的系统 (CPU,内存,设备……)。通过使用VMI技术,它并不需要对客户机操作系统进行任何的修改,因为它可以在运行时从其内存中检索信息。

1. Build PyREBox

给基于Debian的发行版安装依赖,Ubuntu是Debian的一个分支,所以可以在Ubuntu上使用:

apt-get install build-essential zlib1g-dev pkg-config libglib2.0-dev binutils-dev libboost-all-dev autoconf libtool libssl-dev libpixman-1-dev libpython-dev python-pip python-capstone virtualenv
  • 1

需要的python包有这些:

ipython>=5,<6 sphinx sphinx-autobuild prettytable pefile capstone distorm3 pycrypto pytz
  • 1

官方建议使用虚拟环境安装python依赖。如果本地已经安装了volatility,它会干扰PyreBox使用的volatility包。

创建一个虚拟环境:

virtualenv pyrebox_venv
  • 1

一旦创建好了虚拟环境后,激活环境来安装python的依赖,每次使用PyreBox前别忘了激活虚拟环境:

source pyrebox_venv/bin/activate
  • 1

为了安装python的依赖,可以使用pip:

pip install -r requirements.txt
  • 1

进入虚拟环境后用git clone下pyrebox:

git clone https://github.com/Cisco-Talos/pyrebox.git
  • 1

cd pyrebox,进行项目配置和build:

./build.sh
  • 1

当出现了Done, enjoy!的时候就是build完成

2. 为PyreBox创建虚拟镜像

目前,PyREBox支持Volatility支持的任何Windows映像(32位和64位)。

可以使用KVM创建自己的镜像文件。为了避免兼容性问题,最好使用pyrebox二进制文件而不是系统安装qemu二进制文件:

先执行:

sudo apt-get install qemu-utils
  • 1

需要创建一个qcow2格式的虚拟机文件,接着执行

qemu-img create -f qcow2 -o compat=0.10 images/xpsp3.qcow2 4G
  • 1

执行后,提示:

Formatting 'images/xpsp3.qcow2', fmt=qcow2 size=4294967296 compat=0.10 encryption=off cluster_size=65536 lazy_refcounts=off refcount_bits=16
  • 1

cd pyrebox,后执行:

./pyrebox-i386 -m 256 -monitor stdio -usb -drive file=images/xpsp3.qcow2,index=0,media=disk,format=qcow2,cache=unsafe -cdrom images/WinXP.iso -boot d -enable-kvm
  • 1

会报错:

Could not initialize pyrebox, conf file 'pyrebox.conf' missing!
  • 1

可以先执行以下./start_x86_64.sh,就会有了上面的配置文件,不会报错了

接着执行上面的命令后就会得到

(qemu) VNC server running on 127.0.0.1:5900

下载ubuntu版本的vnc viewer的deb安装包并安装:

sudo dpkg -i VNC-Viewer-6.17.1113-Linux-x64.deb
  • 1

就可以使用VNC Viewer新建连接,连上上面的地址,就可以按提示在虚拟机上安装XP系统

继续安装,然后使用网络启动(不要使用-net none)和usb支持(-usb),并插入usb(请参阅加载USB映像)。让系统安装所有驱动程序

./pyrebox-i386 -m 256 -monitor stdio -usb -drive file=images/xpsp3.qcow2,index=0,media=disk,format=qcow2,cache=unsafe -netdev user,id=network0 -device rtl8139,netdev=network0
  • 1

以后启动就可以直接使用./pyrebox-i386脚本启动虚拟机,不过要指定qcow2文件的位置

基本QEMU使用文档:

PyREBox基于QEMU,为了在PyREBox中启动VM,需要像启动QEMU VM一样运行它。官方提供了几个示例脚本:start_i386.sh,start_x86_64.sh,可以将它们用作示例。

目前支持的唯一QEMU监视器选项是stdio(-monitor stdio)

一些有用的QEMU参数如下:

  • 内存,以兆字节为单位:

    -m 256
    • 1
  • 在标准输入/输出上启动提示以与qemu监视器交互:

    -monitor stdio
    • 1
  • 启用USB支持:

    -usb
    • 1
  • 可以指定具有不安全缓存的主图像文件,不安全的缓存将使快照速度更快:

    -drive file=images/xpsp3.qcow,index=0,media=disk,format=qcow2,cache=unsafe
    • 1
  • 禁用网络接口

    -net none
    • 1
  • 在第一个快照启动vm

    -loadvm 1
    • 1
3. 基本的PyREBox用法

启动VM后,将有一个(qemu)提示符,可以在其中运行所有QEMU命令。

PyREBox将首先读取其配置文件(pyrebox.conf)。

[MODULES]scripts.script_example.py: Truescripts.volatility_example: False[VOL]profile: WinXPSP3x86
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

[MODULES]部分包含一个python模块列表(可以使用标准python表示法(使用点)指定包和子包)。可以根据需要启用或禁用脚本。这些脚本将自动加载。

[VOL]部分包含volatility配置。需要根据操作系统版本调整配置文件。

PyREBox命令允许加载/卸载脚本:

  • 导入模块并初始化它

    (qemu) import_module scripts.my_plugin
    • 1
  • 列出加载的模块

    (qemu) list_modules
    • 1
  • 通过模块句柄重新加载模块(可以通过列出已加载的模块来获取此句柄)

    (qemu) reload_module 1
    • 1
  • 通过模块句柄卸载模块(可以通过列出已加载的模块来获取此句柄)

    (qemu) unload_module 1
    • 1
  • 启动PyREBox shell

    (qemu) sh
    • 1
4. IPython Shell

启动shell之后,用list_commands可以列出PyreBox提供的一套可以观察和修改正在运行的虚拟机状态的命令

对于volatility可以用list_vol_commands来列出支持的所有的volatility命令,它也会显示自己安装在PyreBox中的volatility的插件

 

测试pyrebox能否完整支持volatility的功能

PyREBox是一个Python可脚本化逆向工程沙箱。它基于QEMU,其目标是通过从不同角度提供动态分析和调试功能,从而协助逆向工程。

PyREBox允许用python创建简单的脚本来自动化任何类型的分析,从而检查正在运行中的QEMU VM,修改其内存或寄存器,并指示其执行。QEMU (作为一个完整的系统仿真器工作时) 模拟完整的系统 (CPU,内存,设备……)。通过使用VMI技术,它并不需要对客户机操作系统进行任何的修改,因为它可以在运行时从其内存中检索信息。

1. Build PyREBox

给基于Debian的发行版安装依赖,Ubuntu是Debian的一个分支,所以可以在Ubuntu上使用:

apt-get install build-essential zlib1g-dev pkg-config libglib2.0-dev binutils-dev libboost-all-dev autoconf libtool libssl-dev libpixman-1-dev libpython-dev python-pip python-capstone virtualenv
  • 1

需要的python包有这些:

ipython>=5,<6 sphinx sphinx-autobuild prettytable pefile capstone distorm3 pycrypto pytz
  • 1

官方建议使用虚拟环境安装python依赖。如果本地已经安装了volatility,它会干扰PyreBox使用的volatility包。

创建一个虚拟环境:

virtualenv pyrebox_venv
  • 1

一旦创建好了虚拟环境后,激活环境来安装python的依赖,每次使用PyreBox前别忘了激活虚拟环境:

source pyrebox_venv/bin/activate
  • 1

为了安装python的依赖,可以使用pip:

pip install -r requirements.txt
  • 1

进入虚拟环境后用git clone下pyrebox:

git clone https://github.com/Cisco-Talos/pyrebox.git
  • 1

cd pyrebox,进行项目配置和build:

./build.sh
  • 1

当出现了Done, enjoy!的时候就是build完成

2. 为PyreBox创建虚拟镜像

目前,PyREBox支持Volatility支持的任何Windows映像(32位和64位)。

可以使用KVM创建自己的镜像文件。为了避免兼容性问题,最好使用pyrebox二进制文件而不是系统安装qemu二进制文件:

先执行:

sudo apt-get install qemu-utils
  • 1

需要创建一个qcow2格式的虚拟机文件,接着执行

qemu-img create -f qcow2 -o compat=0.10 images/xpsp3.qcow2 4G
  • 1

执行后,提示:

Formatting 'images/xpsp3.qcow2', fmt=qcow2 size=4294967296 compat=0.10 encryption=off cluster_size=65536 lazy_refcounts=off refcount_bits=16
  • 1

cd pyrebox,后执行:

./pyrebox-i386 -m 256 -monitor stdio -usb -drive file=images/xpsp3.qcow2,index=0,media=disk,format=qcow2,cache=unsafe -cdrom images/WinXP.iso -boot d -enable-kvm
  • 1

会报错:

Could not initialize pyrebox, conf file 'pyrebox.conf' missing!
  • 1

可以先执行以下./start_x86_64.sh,就会有了上面的配置文件,不会报错了

接着执行上面的命令后就会得到

(qemu) VNC server running on 127.0.0.1:5900

下载ubuntu版本的vnc viewer的deb安装包并安装:

sudo dpkg -i VNC-Viewer-6.17.1113-Linux-x64.deb
  • 1

就可以使用VNC Viewer新建连接,连上上面的地址,就可以按提示在虚拟机上安装XP系统

继续安装,然后使用网络启动(不要使用-net none)和usb支持(-usb),并插入usb(请参阅加载USB映像)。让系统安装所有驱动程序

./pyrebox-i386 -m 256 -monitor stdio -usb -drive file=images/xpsp3.qcow2,index=0,media=disk,format=qcow2,cache=unsafe -netdev user,id=network0 -device rtl8139,netdev=network0
  • 1

以后启动就可以直接使用./pyrebox-i386脚本启动虚拟机,不过要指定qcow2文件的位置

基本QEMU使用文档:

PyREBox基于QEMU,为了在PyREBox中启动VM,需要像启动QEMU VM一样运行它。官方提供了几个示例脚本:start_i386.sh,start_x86_64.sh,可以将它们用作示例。

目前支持的唯一QEMU监视器选项是stdio(-monitor stdio)

一些有用的QEMU参数如下:

  • 内存,以兆字节为单位:

    -m 256
    • 1
  • 在标准输入/输出上启动提示以与qemu监视器交互:

    -monitor stdio
    • 1
  • 启用USB支持:

    -usb
    • 1
  • 可以指定具有不安全缓存的主图像文件,不安全的缓存将使快照速度更快:

    -drive file=images/xpsp3.qcow,index=0,media=disk,format=qcow2,cache=unsafe
    • 1
  • 禁用网络接口

    -net none
    • 1
  • 在第一个快照启动vm

    -loadvm 1
    • 1
3. 基本的PyREBox用法

启动VM后,将有一个(qemu)提示符,可以在其中运行所有QEMU命令。

PyREBox将首先读取其配置文件(pyrebox.conf)。

[MODULES]scripts.script_example.py: Truescripts.volatility_example: False[VOL]profile: WinXPSP3x86
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

[MODULES]部分包含一个python模块列表(可以使用标准python表示法(使用点)指定包和子包)。可以根据需要启用或禁用脚本。这些脚本将自动加载。

[VOL]部分包含volatility配置。需要根据操作系统版本调整配置文件。

PyREBox命令允许加载/卸载脚本:

  • 导入模块并初始化它

    (qemu) import_module scripts.my_plugin
    • 1
  • 列出加载的模块

    (qemu) list_modules
    • 1
  • 通过模块句柄重新加载模块(可以通过列出已加载的模块来获取此句柄)

    (qemu) reload_module 1
    • 1
  • 通过模块句柄卸载模块(可以通过列出已加载的模块来获取此句柄)

    (qemu) unload_module 1
    • 1
  • 启动PyREBox shell

    (qemu) sh
    • 1
4. IPython Shell

启动shell之后,用list_commands可以列出PyreBox提供的一套可以观察和修改正在运行的虚拟机状态的命令

对于volatility可以用list_vol_commands来列出支持的所有的volatility命令,它也会显示自己安装在PyreBox中的volatility的插件

 

测试pyrebox能否完整支持volatility的功能

PyREBox是一个Python可脚本化逆向工程沙箱。它基于QEMU,其目标是通过从不同角度提供动态分析和调试功能,从而协助逆向工程。

PyREBox允许用python创建简单的脚本来自动化任何类型的分析,从而检查正在运行中的QEMU VM,修改其内存或寄存器,并指示其执行。QEMU (作为一个完整的系统仿真器工作时) 模拟完整的系统 (CPU,内存,设备……)。通过使用VMI技术,它并不需要对客户机操作系统进行任何的修改,因为它可以在运行时从其内存中检索信息。

1. Build PyREBox

给基于Debian的发行版安装依赖,Ubuntu是Debian的一个分支,所以可以在Ubuntu上使用:

apt-get install build-essential zlib1g-dev pkg-config libglib2.0-dev binutils-dev libboost-all-dev autoconf libtool libssl-dev libpixman-1-dev libpython-dev python-pip python-capstone virtualenv
  • 1

需要的python包有这些:

ipython>=5,<6 sphinx sphinx-autobuild prettytable pefile capstone distorm3 pycrypto pytz
  • 1

官方建议使用虚拟环境安装python依赖。如果本地已经安装了volatility,它会干扰PyreBox使用的volatility包。

创建一个虚拟环境:

virtualenv pyrebox_venv
  • 1

一旦创建好了虚拟环境后,激活环境来安装python的依赖,每次使用PyreBox前别忘了激活虚拟环境:

source pyrebox_venv/bin/activate
  • 1

为了安装python的依赖,可以使用pip:

pip install -r requirements.txt
  • 1

进入虚拟环境后用git clone下pyrebox:

git clone https://github.com/Cisco-Talos/pyrebox.git
  • 1

cd pyrebox,进行项目配置和build:

./build.sh
  • 1

当出现了Done, enjoy!的时候就是build完成

2. 为PyreBox创建虚拟镜像

目前,PyREBox支持Volatility支持的任何Windows映像(32位和64位)。

可以使用KVM创建自己的镜像文件。为了避免兼容性问题,最好使用pyrebox二进制文件而不是系统安装qemu二进制文件:

先执行:

sudo apt-get install qemu-utils
  • 1

需要创建一个qcow2格式的虚拟机文件,接着执行

qemu-img create -f qcow2 -o compat=0.10 images/xpsp3.qcow2 4G
  • 1

执行后,提示:

Formatting 'images/xpsp3.qcow2', fmt=qcow2 size=4294967296 compat=0.10 encryption=off cluster_size=65536 lazy_refcounts=off refcount_bits=16
  • 1

cd pyrebox,后执行:

./pyrebox-i386 -m 256 -monitor stdio -usb -drive file=images/xpsp3.qcow2,index=0,media=disk,format=qcow2,cache=unsafe -cdrom images/WinXP.iso -boot d -enable-kvm
  • 1

会报错:

Could not initialize pyrebox, conf file 'pyrebox.conf' missing!
  • 1

可以先执行以下./start_x86_64.sh,就会有了上面的配置文件,不会报错了

接着执行上面的命令后就会得到

(qemu) VNC server running on 127.0.0.1:5900

下载ubuntu版本的vnc viewer的deb安装包并安装:

sudo dpkg -i VNC-Viewer-6.17.1113-Linux-x64.deb
  • 1

就可以使用VNC Viewer新建连接,连上上面的地址,就可以按提示在虚拟机上安装XP系统

继续安装,然后使用网络启动(不要使用-net none)和usb支持(-usb),并插入usb(请参阅加载USB映像)。让系统安装所有驱动程序

./pyrebox-i386 -m 256 -monitor stdio -usb -drive file=images/xpsp3.qcow2,index=0,media=disk,format=qcow2,cache=unsafe -netdev user,id=network0 -device rtl8139,netdev=network0
  • 1

以后启动就可以直接使用./pyrebox-i386脚本启动虚拟机,不过要指定qcow2文件的位置

基本QEMU使用文档:

PyREBox基于QEMU,为了在PyREBox中启动VM,需要像启动QEMU VM一样运行它。官方提供了几个示例脚本:start_i386.sh,start_x86_64.sh,可以将它们用作示例。

目前支持的唯一QEMU监视器选项是stdio(-monitor stdio)

一些有用的QEMU参数如下:

  • 内存,以兆字节为单位:

    -m 256
    • 1
  • 在标准输入/输出上启动提示以与qemu监视器交互:

    -monitor stdio
    • 1
  • 启用USB支持:

    -usb
    • 1
  • 可以指定具有不安全缓存的主图像文件,不安全的缓存将使快照速度更快:

    -drive file=images/xpsp3.qcow,index=0,media=disk,format=qcow2,cache=unsafe
    • 1
  • 禁用网络接口

    -net none
    • 1
  • 在第一个快照启动vm

    -loadvm 1
    • 1
3. 基本的PyREBox用法

启动VM后,将有一个(qemu)提示符,可以在其中运行所有QEMU命令。

PyREBox将首先读取其配置文件(pyrebox.conf)。

[MODULES]scripts.script_example.py: Truescripts.volatility_example: False[VOL]profile: WinXPSP3x86
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

[MODULES]部分包含一个python模块列表(可以使用标准python表示法(使用点)指定包和子包)。可以根据需要启用或禁用脚本。这些脚本将自动加载。

[VOL]部分包含volatility配置。需要根据操作系统版本调整配置文件。

PyREBox命令允许加载/卸载脚本:

  • 导入模块并初始化它

    (qemu) import_module scripts.my_plugin
    • 1
  • 列出加载的模块

    (qemu) list_modules
    • 1
  • 通过模块句柄重新加载模块(可以通过列出已加载的模块来获取此句柄)

    (qemu) reload_module 1
    • 1
  • 通过模块句柄卸载模块(可以通过列出已加载的模块来获取此句柄)

    (qemu) unload_module 1
    • 1
  • 启动PyREBox shell

    (qemu) sh
    • 1
4. IPython Shell

启动shell之后,用list_commands可以列出PyreBox提供的一套可以观察和修改正在运行的虚拟机状态的命令

对于volatility可以用list_vol_commands来列出支持的所有的volatility命令,它也会显示自己安装在PyreBox中的volatility的插件

 

测试pyrebox能否完整支持volatility的功能

PyREBox是一个Python可脚本化逆向工程沙箱。它基于QEMU,其目标是通过从不同角度提供动态分析和调试功能,从而协助逆向工程。

PyREBox允许用python创建简单的脚本来自动化任何类型的分析,从而检查正在运行中的QEMU VM,修改其内存或寄存器,并指示其执行。QEMU (作为一个完整的系统仿真器工作时) 模拟完整的系统 (CPU,内存,设备……)。通过使用VMI技术,它并不需要对客户机操作系统进行任何的修改,因为它可以在运行时从其内存中检索信息。

1. Build PyREBox

给基于Debian的发行版安装依赖,Ubuntu是Debian的一个分支,所以可以在Ubuntu上使用:

apt-get install build-essential zlib1g-dev pkg-config libglib2.0-dev binutils-dev libboost-all-dev autoconf libtool libssl-dev libpixman-1-dev libpython-dev python-pip python-capstone virtualenv
  • 1

需要的python包有这些:

ipython>=5,<6 sphinx sphinx-autobuild prettytable pefile capstone distorm3 pycrypto pytz
  • 1

官方建议使用虚拟环境安装python依赖。如果本地已经安装了volatility,它会干扰PyreBox使用的volatility包。

创建一个虚拟环境:

virtualenv pyrebox_venv
  • 1

一旦创建好了虚拟环境后,激活环境来安装python的依赖,每次使用PyreBox前别忘了激活虚拟环境:

source pyrebox_venv/bin/activate
  • 1

为了安装python的依赖,可以使用pip:

pip install -r requirements.txt
  • 1

进入虚拟环境后用git clone下pyrebox:

git clone https://github.com/Cisco-Talos/pyrebox.git
  • 1

cd pyrebox,进行项目配置和build:

./build.sh
  • 1

当出现了Done, enjoy!的时候就是build完成

2. 为PyreBox创建虚拟镜像

目前,PyREBox支持Volatility支持的任何Windows映像(32位和64位)。

可以使用KVM创建自己的镜像文件。为了避免兼容性问题,最好使用pyrebox二进制文件而不是系统安装qemu二进制文件:

先执行:

sudo apt-get install qemu-utils
  • 1

需要创建一个qcow2格式的虚拟机文件,接着执行

qemu-img create -f qcow2 -o compat=0.10 images/xpsp3.qcow2 4G
  • 1

执行后,提示:

Formatting 'images/xpsp3.qcow2', fmt=qcow2 size=4294967296 compat=0.10 encryption=off cluster_size=65536 lazy_refcounts=off refcount_bits=16
  • 1

cd pyrebox,后执行:

./pyrebox-i386 -m 256 -monitor stdio -usb -drive file=images/xpsp3.qcow2,index=0,media=disk,format=qcow2,cache=unsafe -cdrom images/WinXP.iso -boot d -enable-kvm
  • 1

会报错:

Could not initialize pyrebox, conf file 'pyrebox.conf' missing!
  • 1

可以先执行以下./start_x86_64.sh,就会有了上面的配置文件,不会报错了

接着执行上面的命令后就会得到

(qemu) VNC server running on 127.0.0.1:5900

下载ubuntu版本的vnc viewer的deb安装包并安装:

sudo dpkg -i VNC-Viewer-6.17.1113-Linux-x64.deb
  • 1

就可以使用VNC Viewer新建连接,连上上面的地址,就可以按提示在虚拟机上安装XP系统

继续安装,然后使用网络启动(不要使用-net none)和usb支持(-usb),并插入usb(请参阅加载USB映像)。让系统安装所有驱动程序

./pyrebox-i386 -m 256 -monitor stdio -usb -drive file=images/xpsp3.qcow2,index=0,media=disk,format=qcow2,cache=unsafe -netdev user,id=network0 -device rtl8139,netdev=network0
  • 1

以后启动就可以直接使用./pyrebox-i386脚本启动虚拟机,不过要指定qcow2文件的位置

基本QEMU使用文档:

PyREBox基于QEMU,为了在PyREBox中启动VM,需要像启动QEMU VM一样运行它。官方提供了几个示例脚本:start_i386.sh,start_x86_64.sh,可以将它们用作示例。

目前支持的唯一QEMU监视器选项是stdio(-monitor stdio)

一些有用的QEMU参数如下:

  • 内存,以兆字节为单位:

    -m 256
    • 1
  • 在标准输入/输出上启动提示以与qemu监视器交互:

    -monitor stdio
    • 1
  • 启用USB支持:

    -usb
    • 1
  • 可以指定具有不安全缓存的主图像文件,不安全的缓存将使快照速度更快:

    -drive file=images/xpsp3.qcow,index=0,media=disk,format=qcow2,cache=unsafe
    • 1
  • 禁用网络接口

    -net none
    • 1
  • 在第一个快照启动vm

    -loadvm 1
    • 1
3. 基本的PyREBox用法

启动VM后,将有一个(qemu)提示符,可以在其中运行所有QEMU命令。

PyREBox将首先读取其配置文件(pyrebox.conf)。

[MODULES]scripts.script_example.py: Truescripts.volatility_example: False[VOL]profile: WinXPSP3x86
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

[MODULES]部分包含一个python模块列表(可以使用标准python表示法(使用点)指定包和子包)。可以根据需要启用或禁用脚本。这些脚本将自动加载。

[VOL]部分包含volatility配置。需要根据操作系统版本调整配置文件。

PyREBox命令允许加载/卸载脚本:

  • 导入模块并初始化它

    (qemu) import_module scripts.my_plugin
    • 1
  • 列出加载的模块

    (qemu) list_modules
    • 1
  • 通过模块句柄重新加载模块(可以通过列出已加载的模块来获取此句柄)

    (qemu) reload_module 1
    • 1
  • 通过模块句柄卸载模块(可以通过列出已加载的模块来获取此句柄)

    (qemu) unload_module 1
    • 1
  • 启动PyREBox shell

    (qemu) sh
    • 1
4. IPython Shell

启动shell之后,用list_commands可以列出PyreBox提供的一套可以观察和修改正在运行的虚拟机状态的命令

对于volatility可以用list_vol_commands来列出支持的所有的volatility命令,它也会显示自己安装在PyreBox中的volatility的插件

 

测试pyrebox能否完整支持volatility的功能

PyREBox是一个Python可脚本化逆向工程沙箱。它基于QEMU,其目标是通过从不同角度提供动态分析和调试功能,从而协助逆向工程。

PyREBox允许用python创建简单的脚本来自动化任何类型的分析,从而检查正在运行中的QEMU VM,修改其内存或寄存器,并指示其执行。QEMU (作为一个完整的系统仿真器工作时) 模拟完整的系统 (CPU,内存,设备……)。通过使用VMI技术,它并不需要对客户机操作系统进行任何的修改,因为它可以在运行时从其内存中检索信息。

1. Build PyREBox

给基于Debian的发行版安装依赖,Ubuntu是Debian的一个分支,所以可以在Ubuntu上使用:

apt-get install build-essential zlib1g-dev pkg-config libglib2.0-dev binutils-dev libboost-all-dev autoconf libtool libssl-dev libpixman-1-dev libpython-dev python-pip python-capstone virtualenv
  • 1

需要的python包有这些:

ipython>=5,<6 sphinx sphinx-autobuild prettytable pefile capstone distorm3 pycrypto pytz
  • 1

官方建议使用虚拟环境安装python依赖。如果本地已经安装了volatility,它会干扰PyreBox使用的volatility包。

创建一个虚拟环境:

virtualenv pyrebox_venv
  • 1

一旦创建好了虚拟环境后,激活环境来安装python的依赖,每次使用PyreBox前别忘了激活虚拟环境:

source pyrebox_venv/bin/activate
  • 1

为了安装python的依赖,可以使用pip:

pip install -r requirements.txt
  • 1

进入虚拟环境后用git clone下pyrebox:

git clone https://github.com/Cisco-Talos/pyrebox.git
  • 1

cd pyrebox,进行项目配置和build:

./build.sh
  • 1

当出现了Done, enjoy!的时候就是build完成

2. 为PyreBox创建虚拟镜像

目前,PyREBox支持Volatility支持的任何Windows映像(32位和64位)。

可以使用KVM创建自己的镜像文件。为了避免兼容性问题,最好使用pyrebox二进制文件而不是系统安装qemu二进制文件:

先执行:

sudo apt-get install qemu-utils
  • 1

需要创建一个qcow2格式的虚拟机文件,接着执行

qemu-img create -f qcow2 -o compat=0.10 images/xpsp3.qcow2 4G
  • 1

执行后,提示:

Formatting 'images/xpsp3.qcow2', fmt=qcow2 size=4294967296 compat=0.10 encryption=off cluster_size=65536 lazy_refcounts=off refcount_bits=16
  • 1

cd pyrebox,后执行:

./pyrebox-i386 -m 256 -monitor stdio -usb -drive file=images/xpsp3.qcow2,index=0,media=disk,format=qcow2,cache=unsafe -cdrom images/WinXP.iso -boot d -enable-kvm
  • 1

会报错:

Could not initialize pyrebox, conf file 'pyrebox.conf' missing!
  • 1

可以先执行以下./start_x86_64.sh,就会有了上面的配置文件,不会报错了

接着执行上面的命令后就会得到

(qemu) VNC server running on 127.0.0.1:5900

下载ubuntu版本的vnc viewer的deb安装包并安装:

sudo dpkg -i VNC-Viewer-6.17.1113-Linux-x64.deb
  • 1

就可以使用VNC Viewer新建连接,连上上面的地址,就可以按提示在虚拟机上安装XP系统

继续安装,然后使用网络启动(不要使用-net none)和usb支持(-usb),并插入usb(请参阅加载USB映像)。让系统安装所有驱动程序

./pyrebox-i386 -m 256 -monitor stdio -usb -drive file=images/xpsp3.qcow2,index=0,media=disk,format=qcow2,cache=unsafe -netdev user,id=network0 -device rtl8139,netdev=network0
  • 1

以后启动就可以直接使用./pyrebox-i386脚本启动虚拟机,不过要指定qcow2文件的位置

基本QEMU使用文档:

PyREBox基于QEMU,为了在PyREBox中启动VM,需要像启动QEMU VM一样运行它。官方提供了几个示例脚本:start_i386.sh,start_x86_64.sh,可以将它们用作示例。

目前支持的唯一QEMU监视器选项是stdio(-monitor stdio)

一些有用的QEMU参数如下:

  • 内存,以兆字节为单位:

    -m 256
    • 1
  • 在标准输入/输出上启动提示以与qemu监视器交互:

    -monitor stdio
    • 1
  • 启用USB支持:

    -usb
    • 1
  • 可以指定具有不安全缓存的主图像文件,不安全的缓存将使快照速度更快:

    -drive file=images/xpsp3.qcow,index=0,media=disk,format=qcow2,cache=unsafe
    • 1
  • 禁用网络接口

    -net none
    • 1
  • 在第一个快照启动vm

    -loadvm 1
    • 1
3. 基本的PyREBox用法

启动VM后,将有一个(qemu)提示符,可以在其中运行所有QEMU命令。

PyREBox将首先读取其配置文件(pyrebox.conf)。

[MODULES]scripts.script_example.py: Truescripts.volatility_example: False[VOL]profile: WinXPSP3x86
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

[MODULES]部分包含一个python模块列表(可以使用标准python表示法(使用点)指定包和子包)。可以根据需要启用或禁用脚本。这些脚本将自动加载。

[VOL]部分包含volatility配置。需要根据操作系统版本调整配置文件。

PyREBox命令允许加载/卸载脚本:

  • 导入模块并初始化它

    (qemu) import_module scripts.my_plugin
    • 1
  • 列出加载的模块

    (qemu) list_modules
    • 1
  • 通过模块句柄重新加载模块(可以通过列出已加载的模块来获取此句柄)

    (qemu) reload_module 1
    • 1
  • 通过模块句柄卸载模块(可以通过列出已加载的模块来获取此句柄)

    (qemu) unload_module 1
    • 1
  • 启动PyREBox shell

    (qemu) sh
    • 1
4. IPython Shell

启动shell之后,用list_commands可以列出PyreBox提供的一套可以观察和修改正在运行的虚拟机状态的命令

对于volatility可以用list_vol_commands来列出支持的所有的volatility命令,它也会显示自己安装在PyreBox中的volatility的插件

 

测试pyrebox能否完整支持volatility的功能

PyREBox是一个Python可脚本化逆向工程沙箱。它基于QEMU,其目标是通过从不同角度提供动态分析和调试功能,从而协助逆向工程。

PyREBox允许用python创建简单的脚本来自动化任何类型的分析,从而检查正在运行中的QEMU VM,修改其内存或寄存器,并指示其执行。QEMU (作为一个完整的系统仿真器工作时) 模拟完整的系统 (CPU,内存,设备……)。通过使用VMI技术,它并不需要对客户机操作系统进行任何的修改,因为它可以在运行时从其内存中检索信息。

1. Build PyREBox

给基于Debian的发行版安装依赖,Ubuntu是Debian的一个分支,所以可以在Ubuntu上使用:

apt-get install build-essential zlib1g-dev pkg-config libglib2.0-dev binutils-dev libboost-all-dev autoconf libtool libssl-dev libpixman-1-dev libpython-dev python-pip python-capstone virtualenv
  • 1

需要的python包有这些:

ipython>=5,<6 sphinx sphinx-autobuild prettytable pefile capstone distorm3 pycrypto pytz
  • 1

官方建议使用虚拟环境安装python依赖。如果本地已经安装了volatility,它会干扰PyreBox使用的volatility包。

创建一个虚拟环境:

virtualenv pyrebox_venv
  • 1

一旦创建好了虚拟环境后,激活环境来安装python的依赖,每次使用PyreBox前别忘了激活虚拟环境:

source pyrebox_venv/bin/activate
  • 1

为了安装python的依赖,可以使用pip:

pip install -r requirements.txt
  • 1

进入虚拟环境后用git clone下pyrebox:

git clone https://github.com/Cisco-Talos/pyrebox.git
  • 1

cd pyrebox,进行项目配置和build:

./build.sh
  • 1

当出现了Done, enjoy!的时候就是build完成

2. 为PyreBox创建虚拟镜像

目前,PyREBox支持Volatility支持的任何Windows映像(32位和64位)。

可以使用KVM创建自己的镜像文件。为了避免兼容性问题,最好使用pyrebox二进制文件而不是系统安装qemu二进制文件:

先执行:

sudo apt-get install qemu-utils
  • 1

需要创建一个qcow2格式的虚拟机文件,接着执行

qemu-img create -f qcow2 -o compat=0.10 images/xpsp3.qcow2 4G
  • 1

执行后,提示:

Formatting 'images/xpsp3.qcow2', fmt=qcow2 size=4294967296 compat=0.10 encryption=off cluster_size=65536 lazy_refcounts=off refcount_bits=16
  • 1

cd pyrebox,后执行:

./pyrebox-i386 -m 256 -monitor stdio -usb -drive file=images/xpsp3.qcow2,index=0,media=disk,format=qcow2,cache=unsafe -cdrom images/WinXP.iso -boot d -enable-kvm
  • 1

会报错:

Could not initialize pyrebox, conf file 'pyrebox.conf' missing!
  • 1

可以先执行以下./start_x86_64.sh,就会有了上面的配置文件,不会报错了

接着执行上面的命令后就会得到

(qemu) VNC server running on 127.0.0.1:5900

下载ubuntu版本的vnc viewer的deb安装包并安装:

sudo dpkg -i VNC-Viewer-6.17.1113-Linux-x64.deb
  • 1

就可以使用VNC Viewer新建连接,连上上面的地址,就可以按提示在虚拟机上安装XP系统

继续安装,然后使用网络启动(不要使用-net none)和usb支持(-usb),并插入usb(请参阅加载USB映像)。让系统安装所有驱动程序

./pyrebox-i386 -m 256 -monitor stdio -usb -drive file=images/xpsp3.qcow2,index=0,media=disk,format=qcow2,cache=unsafe -netdev user,id=network0 -device rtl8139,netdev=network0
  • 1

以后启动就可以直接使用./pyrebox-i386脚本启动虚拟机,不过要指定qcow2文件的位置

基本QEMU使用文档:

PyREBox基于QEMU,为了在PyREBox中启动VM,需要像启动QEMU VM一样运行它。官方提供了几个示例脚本:start_i386.sh,start_x86_64.sh,可以将它们用作示例。

目前支持的唯一QEMU监视器选项是stdio(-monitor stdio)

一些有用的QEMU参数如下:

  • 内存,以兆字节为单位:

    -m 256
    • 1
  • 在标准输入/输出上启动提示以与qemu监视器交互:

    -monitor stdio
    • 1
  • 启用USB支持:

    -usb
    • 1
  • 可以指定具有不安全缓存的主图像文件,不安全的缓存将使快照速度更快:

    -drive file=images/xpsp3.qcow,index=0,media=disk,format=qcow2,cache=unsafe
    • 1
  • 禁用网络接口

    -net none
    • 1
  • 在第一个快照启动vm

    -loadvm 1
    • 1
3. 基本的PyREBox用法

启动VM后,将有一个(qemu)提示符,可以在其中运行所有QEMU命令。

PyREBox将首先读取其配置文件(pyrebox.conf)。

[MODULES]scripts.script_example.py: Truescripts.volatility_example: False[VOL]profile: WinXPSP3x86
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

[MODULES]部分包含一个python模块列表(可以使用标准python表示法(使用点)指定包和子包)。可以根据需要启用或禁用脚本。这些脚本将自动加载。

[VOL]部分包含volatility配置。需要根据操作系统版本调整配置文件。

PyREBox命令允许加载/卸载脚本:

  • 导入模块并初始化它

    (qemu) import_module scripts.my_plugin
    • 1
  • 列出加载的模块

    (qemu) list_modules
    • 1
  • 通过模块句柄重新加载模块(可以通过列出已加载的模块来获取此句柄)

    (qemu) reload_module 1
    • 1
  • 通过模块句柄卸载模块(可以通过列出已加载的模块来获取此句柄)

    (qemu) unload_module 1
    • 1
  • 启动PyREBox shell

    (qemu) sh
    • 1
4. IPython Shell

启动shell之后,用list_commands可以列出PyreBox提供的一套可以观察和修改正在运行的虚拟机状态的命令

对于volatility可以用list_vol_commands来列出支持的所有的volatility命令,它也会显示自己安装在PyreBox中的volatility的插件

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
校园失物招领系统管理系统按照操作主体分为管理员和用户。管理员的功能包括字典管理、论坛管理、公告信息管理、失物招领管理、失物认领管理、寻物启示管理、寻物认领管理、用户管理、管理员管理。用户的功能等。该系统采用了Mysql数据库,Java语言,Spring Boot框架等技术进行编程实现。 校园失物招领系统管理系统可以提高校园失物招领系统信息管理问题的解决效率,优化校园失物招领系统信息处理流程,保证校园失物招领系统信息数据的安全,它是一个非常可靠,非常安全的应用程序。 ,管理员权限操作的功能包括管理公告,管理校园失物招领系统信息,包括失物招领管理,培训管理,寻物启事管理,薪资管理等,可以管理公告。 失物招领管理界面,管理员在失物招领管理界面中可以对界面中显示,可以对失物招领信息的失物招领状态进行查看,可以添加新的失物招领信息等。寻物启事管理界面,管理员在寻物启事管理界面中查看寻物启事种类信息,寻物启事描述信息,新增寻物启事信息等。公告管理界面,管理员在公告管理界面中新增公告,可以删除公告。公告类型管理界面,管理员在公告类型管理界面查看公告的工作状态,可以对公告的数据进行导出,可以添加新公告的信息,可以编辑公告信息,删除公告信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值