参考了了 https://www.giantbranch.cn/2017/12/29/MIPS%20PWN%20%E5%AE%9E%E4%BE%8B%20%E2%80%94%E2%80%94%20UCTF%202016%20ADD/
基础知识:
环境搭建,mips指令,mips shellcode的编写
遇到的坑:mips编译,大小端;shellcode通过相对跳转跳过破坏的栈数据
思路:栈溢出,又没有nx,直接执行shellcode,通过伪随机数漏洞可以泄露栈地址。
问题:qemu的nat模式可以连接互联网,但是bridge模式,guest还是无法联网,但是不影响本题目。如果有大佬知道怎么解决,请留言告诉我一下~我的环境是Ubuntu 16.04的VMware虚拟机。
两种方案:1、nat模式下联网安装软件,bridge模式下guest与host可以互通,ssh连接。
2、只使用nat模式,同时使用-redir tcp:11022::22 进行端口映射,这样就可以通过ssh -p 11022 root@127.0.0.1 来连接guest虚拟机了。
为什么非要ssh连接guest呢,因为guest原有的终端太差,总是显示乱码。
题目: https://dn.jarvisoj.com/challengefiles/add.1f54e2c8b9396f83a4be2632bcb3a5f5
这是2016全国大学生信息安全竞赛的一个题,是MIPSEL(小端的)
qemu虚拟机可以在这里下
https://people.debian.org/~aurel32/qemu/mipsel/
可以连接互联网
qemu-system-mips64el -M malta -kernel vmlinux-3.2.0-4-5kc-malta -hda debian_wheezy_mipsel_standard.qcow2 -append "root=/dev/sda1" -netdev user,id=net0 -device e1000,netdev=net0,id=net0,mac=52:54:00:c9:18:27 -redir tcp:11022::22 -redir tcp:11000::11000 -nographic
这样就可以与guest虚拟机ssh连接了,而且guest虚拟机可以连接互联网
,可以内网连接
sudo qemu-system-mips64el -M malta -kernel vmlinux-3.2.0-4-5kc-malta -hda debian_wheezy_mipsel_standard.qcow2 -append "root=/dev/sda1" -net nic,macaddr=00:16:3e:00:00:01 -net tap -nographic
host的/etc/network/interfaces
/etc/qemu-ifup 末尾添加
环境:root root登录
源的问题
cp -r /etc/apt/sources.list /etc/apt/sources.list.bak;
echo "deb http://archive.debian.org/debian/ wheezy main contrib non-free" > /etc/apt/sources.list;
cat /etc/apt/sources.list;
apt-get update;
apt-get update
apt-get install build-essential gdb socat tmux python-pip git
git clone https://github.com/zTrix/zio.git
python setup.py install
guest里面配置ip
ifconfig eth0 172.16.250.140 netmask 255.255.255.0
guset里面配置ssh,添加
开启Python server
l@ubuntu:~/test/mips_env/add$ python -m SimpleHTTPServer 8080
Serving HTTP on 0.0.0.0 port 8080 ...
qemu虚拟机内下载下来
wget http://172.16.250.128:8080/add
l@ubuntu:~/test/mips_env/add$ checksec add
[*] Checking for new versions of pwntools
To disable this functionality, set the contents of /home/l/.pwntools-cache/update to 'never'.
[*] A newer version of pwntools is available on pypi (3.13.0 --> 4.1.0).
Update with: $ pip install -U pwntools
[*] '/home/l/test/mips_env/add/add'
Arch: mips-32-little
RELRO: No RELRO
Stack: No canary found
NX: NX disabled
PIE: No PIE (0x400000)
RWX: Has RWX segments
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
最后于 2020-5-21 08:22
被nicaicaiwo编辑
,原因: