目录
  1. 1. arm pwn 环境搭建
    1. 1.1. qemu 简介
arm pwn 环境搭建

arm pwn 环境搭建

qemu 简介

qemu是一款可执行硬件虚拟化的虚拟机,与他类似的还有Bochs、PearPC,但qemu具有高速(配合KVM)、跨平台的特性
qemu主要有两种运行模式:qemu-user 和 qemu-system
安装 qemu-user

1
$sudo apt-get install qemu qemu-user qemu-user-static

此时可以运行静态链接的arm程序,而要运行动态链接的程序,需要安装对应架构的动态链接库:

1
$ apt search "libc6-" | grep "arm"

安装 qemu-system

1
$ sudo apt-get install qemu qemu-user-static qemu-system uml-utilities bridge-utils

Ubuntu 16.04(deepin)
安装 gdb、gdb-multiarch

1
$ sudo apt-get install gdb gdb-multiarch

安装 gdb plugin(peda、pwndbg、gef)

peda_arm:https://github.com/alset0326/peda-arm
pwndbg:https://github.com/pwndbg/pwndbg
gef:https://github.com/hugsy/gef

配置qemu-system网络
qemu-system模式配置网络常见的方法是tap桥接
安装网络配置的依赖文件:
$ sudo apt install uml-utilities bridge-utils

修改Ubuntu主机网络接口配置文件:
$sudo vim /etc/network/interfaces

1
2
3
4
5
6
7
8
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
auto ens33
iface ens33 inet dhcp
iface br0 inet dhcp
bridge_ports ens33
bridge_maxwait 0

创建并编写qemu网络接口启动脚本:

1
$ sudo vim /etc/qemu-ifup

将原来的内容注释,换成下面的内容:

1
2
3
4
5
6
echo "Executing /etc/qemu-ifup"
echo "Bringing up $1 for bridge mode"
sudo /sbin/ifconfig $1 0.0.0.0 promisc up
echo "Adding $1 to br0"
sudo /sbin/brctl addif br0 $1
sleep 2

保存文件后使用如下命令修改qemu-ifup的权限:
$ sudo chmod a+x /etc/qemu-ifup

重启网络使配置生效:
$ sudo /etc/init.d/networking restart

启动桥接网络:
$ sudo ifdown ens33 && sudo ifup br0
运行之后,桥br0代替ens33接管了ubuntu虚拟机的网口:

下载qemu的镜像和磁盘:
https://people.debian.org/~aurel32/qemu/armhf/

启动 qemu
./start.sh

1
2
3
4
5
6
7
8
9
10
#!/bin/sh
sudo qemu-system-arm \
-M vexpress-a9 \
-kernel vmlinuz-3.2.0-4-vexpress \
-initrd initrd.img-3.2.0-4-vexpress \
-drive if=sd,file=debian_wheezy_armhf_standard.qcow2 \
-append "root=/dev/mmcblk0p2 console=ttyAMA0" \
-net nic,macaddr=52:54:00:12:34:56 \
-net tap \
-nographic

也可以使用docker运行一个qemu arm容器,比较方便
https://island123.github.io/2020/01/15/Docker%E8%BF%90%E8%A1%8Cqemu%20arm%E5%AE%B9%E5%99%A8%20/#%E4%BD%BF%E7%94%A8Docker%E8%BF%90%E8%A1%8Cqemu-arm%E5%AE%B9%E5%99%A8

https://github.com/fireundubh/IDA7-Rizzo ida7.0,把rizzo.py放到ida插件文件夹里

参考文章:http://myhackerworld.top/2018/09/27/arm-pwn/

文章作者: nocbtm
文章链接: https://nocbtm.github.io/2020/01/21/arm-pwn环境搭建/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 nocbtm's Blog
打赏
  • 微信
  • 支付宝