测试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需要的python包有这些: ipython>=5,<6 sphinx sphinx-autobuild prettytable pefile capstone distorm3 pycrypto pytz官方建议使用虚拟环境安装python依赖。如果本地已经安装了volatility,它会干扰PyreBox使用的volatility包。 创建一个虚拟环境: virtualenv pyrebox_venv一旦创建好了虚拟环境后,激活环境来安装python的依赖,每次使用PyreBox前别忘了激活虚拟环境: source pyrebox_venv/bin/activate为了安装python的依赖,可以使用pip: pip install -r requirements.txt进入虚拟环境后用git clone下pyrebox: git clone https://github.com/Cisco-Talos/pyrebox.gitcd pyrebox,进行项目配置和build: ./build.sh当出现了Done, enjoy!的时候就是build完成 2. 为PyreBox创建虚拟镜像目前,PyREBox支持Volatility支持的任何Windows映像(32位和64位)。 可以使用KVM创建自己的镜像文件。为了避免兼容性问题,最好使用pyrebox二进制文件而不是系统安装qemu二进制文件: 先执行: sudo apt-get install qemu-utils需要创建一个qcow2格式的虚拟机文件,接着执行 qemu-img create -f qcow2 -o compat=0.10 images/xpsp3.qcow2 4G执行后,提示: Formatting 'images/xpsp3.qcow2', fmt=qcow2 size=4294967296 compat=0.10 encryption=off cluster_size=65536 lazy_refcounts=off refcount_bits=16cd 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会报错: Could not initialize pyrebox, conf file 'pyrebox.conf' missing!可以先执行以下./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就可以使用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以后启动就可以直接使用./pyrebox-i386脚本启动虚拟机,不过要指定qcow2文件的位置 基本QEMU使用文档: PyREBox基于QEMU,为了在PyREBox中启动VM,需要像启动QEMU VM一样运行它。官方提供了几个示例脚本:start_i386.sh,start_x86_64.sh,可以将它们用作示例。 目前支持的唯一QEMU监视器选项是stdio(-monitor stdio) 一些有用的QEMU参数如下: 3. 基本的PyREBox用法启动VM后,将有一个(qemu)提示符,可以在其中运行所有QEMU命令。 PyREBox将首先读取其配置文件(pyrebox.conf)。 [MODULES]scripts.script_example.py: Truescripts.volatility_example: False[VOL]profile: WinXPSP3x86[MODULES]部分包含一个python模块列表(可以使用标准python表示法(使用点)指定包和子包)。可以根据需要启用或禁用脚本。这些脚本将自动加载。 [VOL]部分包含volatility配置。需要根据操作系统版本调整配置文件。 PyREBox命令允许加载/卸载脚本: 4. IPython Shell启动shell之后,用list_commands可以列出PyreBox提供的一套可以观察和修改正在运行的虚拟机状态的命令 对于volatility可以用list_vol_commands来列出支持的所有的volatility命令,它也会显示自己安装在PyreBox中的volatility的插件
|