首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >MIPS-漏洞研究常用工具及调试方法

MIPS-漏洞研究常用工具及调试方法

作者头像
偏有宸机
发布于 2021-04-01 07:05:14
发布于 2021-04-01 07:05:14
1.2K00
代码可运行
举报
文章被收录于专栏:宸机笔记宸机笔记
运行总次数:0
代码可运行

Binwalk

正常apt安装的binwalk一般都是不完整的,需要我们先卸载后在github中下载安装,之后才可以正常提取路由器的固件,否则将出现下图错误

安装binwalk

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git clone https://github.com/devttys0/binwalk.git  
sudo apt-get install python-lzma  
sudo apt-get install libqt4-opengl python-opengl python-qt4 python-qt4-gl python-numpy python-scipy python-pip  
sudo  python setup.py install

安装sasquath

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt-get install mtd-utils gzip bzip2 tar arj lhasa p7zip p7zip-full cabextract cramfsprogs cramfsswap squashfs-tools 
git clone https://github.com/devttys0/sasquatch  
sudo ./build.sh

其中可能会出现sasquatch脚本的lzma编译错误

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
In file included from xz_wrapper.c:31:0:
xz_wrapper.h:50:2: error: unknown type name ‘lzma_vli’
  lzma_vli id;
  ^
xz_wrapper.h:56:2: error: unknown type name ‘lzma_filter’
  lzma_filter filter[3];
  ^
xz_wrapper.h:64:2: error: unknown type name ‘lzma_options_lzma’
  lzma_options_lzma opt;
  ^
xz_wrapper.c:35:11: error:LZMA_FILTER_X86’ undeclared here (not in a functio
n)
  { "x86", LZMA_FILTER_X86, 0 },
           ^
xz_wrapper.c:36:15: error:LZMA_FILTER_POWERPC’ undeclared here (not in a fun
ction)
  { "powerpc", LZMA_FILTER_POWERPC, 0 },
               ^
xz_wrapper.c:37:12: error:LZMA_FILTER_IA64’ undeclared here (not in a functi
on)
  { "ia64", LZMA_FILTER_IA64, 0 },
            ^
xz_wrapper.c:38:11: error:LZMA_FILTER_ARM’ undeclared here (not in a functio
n)
  { "arm", LZMA_FILTER_ARM, 0 },

解决方法:

修改./sasquatch/squashfs4.3/squashfs-toolslzma.h文件的命名

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd LZMA/lzmadaptive/C/7zip/Compress/LZMA/
mv LZMA.h LZMA2.h
cd LZMA/lzmalt/
mv LZMA.h LZMA3.h

之后将其文件中include后的文件名修改

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
LZMA vim lzmadaptive/C/7zip/Compress/LZMA/LZMADecoder.h
➜  LZMA vim lzmadaptive/C/7zip/Compress/LZMA/LZMAEncoder.h
➜  LZMA vim lzmalt/LZMADecoder.h

至此完成,进行编译安装

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo make clean
sudo make
sudo make install

调试

qemu-system GDB调试

下载各架构版本的gdbserver https://github.com/e3pem/embedded-toolkit

之后拷贝到qemu虚拟机

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
./gdbserver-mips32 0.0.0.0:1234 level1

之后在本机的gdb中进行连接调试

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gdb-multiarch level1
pwndbg> set architecture mips
pwndbg> set endian big	
pwndbg> target remote  ip:1234

qemu-user GDB调试

正常情况下单个mips的程序运行要有足够的lib库依赖,把qemu-mips-static放到完整的路由文件系统squashfs-root的根目录中运行程序就可以了,即:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cp $(which qemu-mipsel-static) ./
sudo chroot ./ ./qemu-mipsel-static -g 1234 ./bin/level1

之后正常使用GDB或者IDA连接即可

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
gdb-multiarch level1
> set architecture mips
> target remote :1234

可能出现的问题 :

./stack_bof_01: Invalid ELF image for this architecture

字节序问题,切换qemu-static的大小端版本,如小端qemu-mipsel-static\大端qemu-mips-static

/lib/ld-uClibc.so.0: No such file or directory

由于程序可能需要某个目录下的依赖所导致

需要将qemu-mipsel-static文件放到squashfs-root根目录下,之后chroot ./。(这个有时候要加./有时候直接.就可以)

IDA-plugins MIPSROP

安装

由于mips的特殊性:

  1. 在ROP过程中非常容易搞出来类似在x86上的jmp esp的指令
  2. mips本身不支持NX

导致shellcode in stack几乎成了mips栈溢出的通用利用方式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
git clone https://github.com/fuzzywalls/ida/tree/master/plugins
python ./install.py /path/to/your/ida/install/directory

常用方法

mipsrop.stackfinder()

寻找栈数据可控的 rop,建立和 a0、a1 寄存器的关系

mipsrop.summary()

列出所有的可用 rop

mipsrop.system()

寻找命令执行的的rop

mipsrop.find(xxx)

查找 find 函数参数的 rop,类似正则匹配

反编译工具

Ghidra

反编译MIPS伪代码,感觉不如下面的JEB好用

ghidra_9.1.2_PUBLIC_20200212 链接:https://pan.baidu.com/s/1m1UjI1qDSif_nxiCoHCXOw 提取码:m6j0

JEB-MIPS

JEB 永远的神

JEB_Decompiler_3.19.1_Professional 链接:https://pan.baidu.com/s/1eNZiRcCfjofH-TxieFLNzw 提取码:r7e7 这个注册的时候需要注意: 先运行jeb_pro,之后复制密钥输入到jebKeygen工具中生成密钥后再返回jeb输入

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-03-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
MIPS漏洞调试环境安装-栈溢出
主要是IDA,IDA的安装就不用多说了。这里说明的是辅助插件MIPSROP这些插件的安装,书里面给的插件的链接已经无法支持IDA 6.7以后的版本,主要是由于版本以后的API有更新,具体原因IDA的官方博客也给出了说明,查看了issue以后,发现有大佬已经写了能够支持IDA7.0的插件,安装的命令照着readme做即可顺利的装上。
随心助手
2019/10/15
1.9K0
路由器漏洞 EXP 开发实践
本文主要以 CVE-2013-0230 漏洞为例,讲解路由器上缓冲区漏洞的 exp 编写。
信安之路
2018/08/08
1.4K0
路由器漏洞 EXP 开发实践
D-Link系列路由器漏洞挖掘入门
前几天去上海参加了geekpwn,看着大神们一个个破解成功各种硬件,我只能在下面喊 6666,特别羡慕那些大神们。所以回来就决定好好研究一下路由器,争取跟上大神们的步伐。看网上公开的D-Link系列的漏洞也不少,那就从D-Link路由器漏洞开始学习。
Seebug漏洞平台
2018/03/13
1.5K0
D-Link系列路由器漏洞挖掘入门
MIPS-DVRF_stack_bof_1
首先将qemu-mipsel-static复制到squashfs的根目录,让我们可以正常运行程序
偏有宸机
2021/04/02
8540
MIPS-DVRF_stack_bof_1
IoT漏洞研究(一)固件基础
随着5G时代的到来,物联网扮演的角色也越来越重要,同时也伴随更多的安全风险。IOT安全涉及内容广泛,本系列文章将从技术层面谈一谈笔者对IOT漏洞研究的理解。笔者将从固件、web、硬件、IOT协议、移动应用五个维度分别探讨,由于水平能力有限,不当或遗漏之处欢迎大家指正补充。 IoT固件基础 之所以将固件作为第一个探讨的主题,因为比较基础,IOT漏洞研究一般无法绕过。以下将介绍固件解密(若加密)、解包打包、模拟和从固件整体上作安全评估四部分。 1.1 固件解密 有些IOT设备会对固件加密甚至签名来提高研究门槛和
FB客服
2023/04/26
3.1K0
IoT漏洞研究(一)固件基础
Vivotek 摄像头远程栈溢出漏洞分析及利用
作者:fenix@知道创宇404实验室 前 言 近日,Vivotek 旗下多款摄像头被曝出远程未授权栈溢出漏洞,攻击者发送特定数据可导致摄像头进程崩溃。 漏洞作者@bashis 放出了可造成摄像头 Crash 的 PoC :https://www.seebug.org/vuldb/ssvid-96866 该漏洞在 Vivotek 的摄像头中广泛存在,按照官方的安全公告,会影响以下版本 CC8160 CC8370-HV CC8371-HV CD8371-HNTV CD8371-HNVF2 FD81
Seebug漏洞平台
2018/03/30
1.5K0
Vivotek 摄像头远程栈溢出漏洞分析及利用
DLink RCE漏洞CVE-2019-17621分析
上一篇文章分了一下ARM系统的路由器漏洞,本次打算尝试一下MIPS系统,于是选了最近DLink路由器的漏洞CVE-2019-17621作为目标。同样一路走来各种踩坑不断,“纸上得来终觉浅,绝知此事要躬行”,对整个过程做一下梳理。
FB客服
2020/03/24
2.2K0
DLink RCE漏洞CVE-2019-17621分析
一次qemu动态调试路由程序的记录
下载固件ftp://54.187.190.227/PRODUCTS/DIR-605L/REVA/DIR-605L_FIRMWARE_1.13.ZIP,
用户1423082
2024/12/31
1630
一次qemu动态调试路由程序的记录
Netgear R6400 upnp栈溢出漏洞分析
Netgear R6400 多个固件版本中的upnpd存在栈溢出漏洞(CVE-2020-9373),通过向其udp 1900端口发送构造的ssdp数据包,可能导致DOS或RCE。下文的测试均使用V1.0.1.52_1.0.36这本版本的固件包。
FB客服
2020/03/17
2.6K0
BinWalk安装和命令参数详解
本周一 安恒萌新粉丝群:928102972分享的工具为 binwalk。 Binwalk是一款快速、易用,用于分析,逆向工程和提取固件映像的工具。简单易用,完全自动化脚本,并通过自定义签名,提取规则和插件模块,还重要一点的是可以轻松地扩展。 在CTF的MISC类题型和IOT安全的固件解包分析中广泛应用,可以大大提高效率。该工具对linux支持较好,对于windows功能支持较差,有条件的童鞋可以在linux上使用练习该神器。
安恒网络空间安全讲武堂
2019/09/29
30.8K0
Netgear Nighthawk R8300 upnpd PreAuth RCE 分析与复现
R8300 是 Netgear 旗下的一款三频无线路由,主要在北美发售,官方售价 $229.99。
Seebug漏洞平台
2020/08/26
2K1
Netgear Nighthawk R8300 upnpd PreAuth RCE 分析与复现
掌握GDB调试工具,轻松排除bug
目前release的最新版本为8.0,GDB可以运行在Linux 和Windows 操作系统上。
嵌入式Linux内核
2023/06/28
1K0
掌握GDB调试工具,轻松排除bug
Vivotek 摄像头远程栈溢出漏洞分析及利用
近日,Vivotek 旗下多款摄像头被曝出远程未授权栈溢出漏洞,攻击者发送特定数据可导致摄像头进程崩溃。
Seebug漏洞平台
2018/03/15
1.5K0
Vivotek 摄像头远程栈溢出漏洞分析及利用
Buildroot 用户手册 (中文)
Buildroot是一个工具,它使用交叉编译简化了为嵌入式系统构建完整Linux系统的过程,并实现了自动化。
全栈程序员站长
2022/11/01
10.6K0
【Android 系统开发】CyanogenMod 13.0 源码下载 编译 ROM 制作 ( 手机平台 : 小米4 | 编译平台 : Ubuntu 14.04 LTS 虚拟机)
转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/51592930
韩曙亮
2023/03/27
3.9K0
【Android 系统开发】CyanogenMod 13.0  源码下载 编译 ROM 制作  ( 手机平台 : 小米4 | 编译平台 : Ubuntu 14.04 LTS 虚拟机)
红队常用命令
如下编码网站: https://ares-x.com/tools/runtime-exec/ https://r0yanx.com/tools/java_exec_encode/ https://www.bugku.net/runtime-exec-payloads/
reyeye
2023/10/13
3.6K0
相关推荐
MIPS漏洞调试环境安装-栈溢出
更多 >
LV.1
这个人很懒,什么都没有留下~
交个朋友
加入行业数字化趋势交流群
解读转型政策方向 参考企业落地案例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档