【技术分享】利用DVRF学习固件分析系列(一)

阅读量248503

|

发布时间 : 2016-09-18 15:12:47

http://p7.qhimg.com/t012d3c41fdec021e9f.jpg

作者:赏金流浪客 

稿费:500RMB(不服你也来投稿啊!)

投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿


前言


随着各种硬件设备漏洞越来越被人们关注,以及被恶意攻击者大量利用。作为一个安全研究员,学习分析固件漏洞,及时预警修补漏洞变得越来越重要。这个系列文章将通过利用DVRF来一步一步的深入固件分析,笔者也是一位初学者,记录在学习的过程中遇到的一些问题,希望与大家一起进步。

DVRF是一个非常好的项目,这个项目的目的是来帮助人们学习X86_64之外其他架构环境,同时还帮助人们探索路由器固件里面的奥秘。


前期环境准备


由于此步骤非常简单,相信有点基础的同学都能够搞定,因此我就不细说这个过程,只要你按照我给的环境配置和命令就不会出问题,如有问题,请在文章评论中留言或者给我发邮件。

1.虚拟机配置

windows 8.1

VMware 12.1.0 build-3272444(其他版本也可以)

内存 2G

硬盘 30G

2.系统配置

做为墙内用户首先修改软件源,科大源,详细步骤

安装qemu

 sudo apt-get install qemu-user-static

安装Binwalk  

 mkdir binwalk
       cd binwalk
       wget https://github.com/devttys0/binwalk/archive/master.zip
       unzip master.zip
       cd binwalk-master
       sudo python setup.py install
       sudo add-apt-repository ppa:openjdk-r/ppa
       sudo apt-get update
       sudo apt-get install openjdk-7-jdk
       sudo ./deps.sh[object Object]

安装vmware-tools

如图中步骤解压vmware-tools到home目录

http://p2.qhimg.com/t01360ad16002c64236.png

 cd ~/vmware-tools-distrib/
       sudo ./vmware-install.pl

然后一直yes或者enter,最后重启系统。

安装DVRF

下载DVRF https://github.com/praetorian-inc/DVRF

       http://p4.qhimg.com/t01b040e1be74ebd5cf.png

 

拷贝下载好的压缩包到虚拟机home目录下

 cd ~
       unzip DVRF-master.zip

http://p2.qhimg.com/t01d85eaa2e47bd3f10.png

安装buildroot(2016.05版本)

   cd ~
       mkdir buildroot
       cd buildroot
       wget https://buildroot.org/downloads/buildroot-2016.05.tar.gz
       tar zxf buildroot-2016.05.tar.gz
       cd buildroot-2016.05
       sudo apt-get install ncurses-dev
       make menuconfig

http://p3.qhimg.com/t0189e72c67ea53a243.png

http://p5.qhimg.com/t018a3767d4cddeaf63.png

http://p4.qhimg.com/t015cb9bfc56777573a.png

打开gdb远程调试功能       

http://p7.qhimg.com/t014cf659d6d9351e84.png

修改gdb版本为7.10.x,并保存配置。       

http://p4.qhimg.com/t01925ef37d19016f2f.png

make,等候下载,大约半小时。


牛刀小试


1.binwalk使用

分析出固件镜像为linux 的小端系统,文件系统是squashfs文件系统   

http://p9.qhimg.com/t010c77f8b86992c95f.png

解压提取固件文件系统

   binwalk -Me DVRF_v03.bin

http://p9.qhimg.com/t014f8ad177315b92d2.png

http://p1.qhimg.com/t019960a6d349b5c50e.png

通过file命令查看文件信息,发现文件格式为mips32小端文件。

http://p9.qhimg.com/t01b0300d841d573406.png

2.qemu模拟运行mips程序

复制相应的qemu模拟程序到指定目录 

http://p0.qhimg.com/t0110b5153b32bcdc66.png

使用qemu运行mips程序

  sudo chroot ../qemu-mipsel-static ./pwnable/Intro/stack_bof_01 test123

http://p1.qhimg.com/t012ffb99058de9ff8a.png

3.使用qemu和gdb调试mips程序

运行程序并打开1122端口用于gdb调试

  sudo chroot . ./qemu-mipsel-static -g 1122 ./pwnable/Intro/stack_bof_01 test123

http://p9.qhimg.com/t01f934bccc6d1b7e2a.png

新窗口中使用buildroot中的mipsel-linux-gdb连接1122开始调试

cd ~
    cd buildroot/buildroot-2016.05/output/host/usr/bin/
    ./mipsel-linux-gdb

http://p7.qhimg.com/t01d7584f8c103dcb44.png

当窗口2中gdb使用c命令让程序继续运行的时候,窗口1中程序继续执行。

总结


本文简单讲解了DVRF的测试环境安装与使用,分别包括DVRF、binwalk、qemu、buildroot、gdb等相关工具。这个系列第二篇将讲述mips 程序的相关知识,有点基础的同学都知道mips程序在固件中被广泛运用。

本文由赏金流浪客原创发布

转载,请参考转载声明,注明出处: https://www.anquanke.com/post/id/84580

安全客 - 有思想的安全新媒体

分享到:微信
+12赞
收藏
赏金流浪客
分享到:微信

发表评论

内容需知
  • 投稿须知
  • 转载须知
  • 官网QQ群8:819797106
  • 官网QQ群3:830462644(已满)
  • 官网QQ群2:814450983(已满)
  • 官网QQ群1:702511263(已满)
合作单位
  • 安全客
  • 安全客
Copyright © 北京奇虎科技有限公司 360网络攻防实验室 安全客 All Rights Reserved 京ICP备08010314号-66