首页
社区
课程
招聘
[原创]第一个mips pwn搭建环境,逆向,调试,最终exp的过程
发表于: 2020-5-20 21:43 16191

[原创]第一个mips pwn搭建环境,逆向,调试,最终exp的过程

2020-5-20 21:43
16191

参考了了 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编辑 ,原因:
上传的附件:
收藏
免费 1
支持
分享
最新回复 (3)
雪    币: 977
活跃值: (435)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
2
感谢分享
2020-5-23 20:44
0
雪    币: 202
活跃值: (206)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
感谢分享
2020-6-28 12:31
0
雪    币: 20
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4

为啥直接ssh链接不行?

2021-7-3 17:41
0
游客
登录 | 注册 方可回帖
返回
//