DIR-823路由器固件模拟环境搭建

2023-10-18 11:10

本文主要是介绍DIR-823路由器固件模拟环境搭建,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

0X01 想说的话😴

最近的工作内容是复现各种路由器的Nday漏洞,对于我这种在固件安全方面一无所知的小白来说,特别的迷茫,于是在网上搜集各种资料来看,搭建固件漏洞复现的环境。遇到各种坑,各种不懂的错误。终于把路由器固件模拟环境搭建出来了。
对路由器漏洞挖掘一无所知的同学可以先去看看《揭秘家用路由器0day漏洞挖掘技术》这本书,看完之后,虽然会有一些不太懂,但总体上会对路由器有所了解。

0x02 环境搭建🏄

系统:Ubuntu 16.04
这里我搭建的环境实在ubuntu16.04上,有的博客说要搭建在ubuntu14.04上才行,不过我在14.04上搭建也会出现各种问题。
请诸位看我最终安装完的目录

固件分析工具包

自动化分析固件文件的一系列脚本

git clone --recursive https://github.com/attify/firmware-analysis-toolkit.git


进入到firmware-analysis-toolkit里面,打开setup.sh 咱们来看一下里面的内容,line 4 是下载一些依赖包和qemu, line 6-12是下载binwalk,边我注释了,我在执行setup.sh 脚本的时候,这边一直卡着,下载不了。然后line 15-18 是下载firmadyne。 后面的就自动执行。

执行 ./setup.sh
下一步就是安装binwalk

安装binwalk

Binwalk是一款十分强大的固件分析工具,常用于固件分析及提取文件系统。

cd firmware-analysis-toolkits
sudo git clone https://github.com/devttys0/binwalk.git
cd binwalk 
sudo ./deps.sh
sudo python3 ./setup install
sudo -H pip3 install git+https://github.com/ahupp/python-magic
sudo -H pip install git+https://github.com/sviehb/jefferson

上面的弄完之后嘞,验证一下binwalk 是否能用 , 这里要注意的是,binwalk 版本现在都是2.0以上的,我之前方便看到别人的博客都是用apt-get install binwalk,没想到是1.0的,然后解包解不开。

下一步安装qemu

【qemu】

qemu和vmware一样,一种虚拟机软件,只不过qemu能够虚拟的平台更加丰富一些。能够虚拟很多嵌入式平台的设备。

sudo apt-get install qemu 
#user mode,包含qemu-mips-static,qemu-mipsel-static,qemu-arm-static等
sudo apt-get install qemu-user-static
#system mode,包含qemu-system-mips,qemu-system-mipsel,qemu-system-arm等
sudo apt-get install qemu-system

qemu 的简单使用,这里让大家看看qemu是干嘛的。
1.首先用binwalk 解包 binwalk -Me XXX.bin,然后大家会看到Squashfs 这样的文件系统。

并且还会看到文件夹里面多了一个.extracted的东西。并且进去里面还有一个squashfs-root文件夹,里面就是标准的linux结构。


2. 使用file /bin/busybox,查看文件类型,发现是mips 的。然后cp qemu-mipsel-static ./ 把qemu 的一个模块复制过来。可以看一下上面的图,需要根据文件的类型,使用相应的qemu 模块运行。不然会报Invalid ELF image for this architecture这个错误。

3. 运行sudo chroot . ./qemu-mipsel-static /bin/busybox。前面的是. ./ 有空格的,记住不是…/
显示这样就说明qemu 正常使用了。

firmadyne在执行setup.sh的时候就安装好了,这里我没有出什么问题

0x03 运行固件包

首先运行固件包的前提需要firmware-analysis-toolkit里面的fat.py。

修改配置文件fat.config

fat.py 运行的时候需要获取sudo 密码,和firmadyne的路径,这里需要根据自己需要修改。
感兴趣可以看一下fat.py里面的代码。

运行固件 😃

这里使用固件 HG832固件包,注意固件包运行的是bin.不是binwalk 解开的固件文件夹。
运行固件包如下:

./fat.py /home/XXX/Desktop/DIR823GA1_FW102B03.bin

下图所示,里面有一个IP对吧。去浏览器运行吧,少年,你成功了😱。
噢,对了,你在复现一些漏洞的时候,这里也可以看到固件包会有什么反应😃。

浏览器运行192.168.0.1 😃

0X04 写在最后 😏

这些工具在EMbedded_2020 和 AttifyOS v3.0 这两种虚拟机里面都有,并且这两种虚拟机是专门做IOT渗透的虚拟机。但是EMbedded 系统的qemu 有点问题,也不知道是怎么回事,于是自己搭了一套。

这篇关于DIR-823路由器固件模拟环境搭建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/232168

相关文章

升级至三频BE12000! 华硕ROG魔盒Pro路由器首发拆解评测

《升级至三频BE12000!华硕ROG魔盒Pro路由器首发拆解评测》华硕前两天推出新一代电竞无线路由器——ROG魔盒Pro(StrixGR7Pro),该产品在无线规格、硬件配置及功能设计上实现全... 作为路由器行业的T1梯队厂商,华硕近期发布了新旗舰华硕ROG魔盒Pro,除了保留DIY属性以外,高达120

三频BE12000国补到手2549元! ROG 魔盒Pro WIFI7电竞AI路由器上架

《三频BE12000国补到手2549元!ROG魔盒ProWIFI7电竞AI路由器上架》近日,华硕带来了ROG魔盒ProWIFI7电竞AI路由器(ROGSTRIXGR7Pro),目前新... 华硕推出了ROG 魔盒Pro WIFI7电竞AI路由器(ROG STRIX GR7 Phttp://www.cppcn

Windows环境下解决Matplotlib中文字体显示问题的详细教程

《Windows环境下解决Matplotlib中文字体显示问题的详细教程》本文详细介绍了在Windows下解决Matplotlib中文显示问题的方法,包括安装字体、更新缓存、配置文件设置及编码調整,并... 目录引言问题分析解决方案详解1. 检查系统已安装字体2. 手动添加中文字体(以SimHei为例)步骤

Java JDK1.8 安装和环境配置教程详解

《JavaJDK1.8安装和环境配置教程详解》文章简要介绍了JDK1.8的安装流程,包括官网下载对应系统版本、安装时选择非系统盘路径、配置JAVA_HOME、CLASSPATH和Path环境变量,... 目录1.下载JDK2.安装JDK3.配置环境变量4.检验JDK官网下载地址:Java Downloads

SQLite3 在嵌入式C环境中存储音频/视频文件的最优方案

《SQLite3在嵌入式C环境中存储音频/视频文件的最优方案》本文探讨了SQLite3在嵌入式C环境中存储音视频文件的优化方案,推荐采用文件路径存储结合元数据管理,兼顾效率与资源限制,小文件可使用B... 目录SQLite3 在嵌入式C环境中存储音频/视频文件的专业方案一、存储策略选择1. 直接存储 vs

如何使用Haporxy搭建Web群集

《如何使用Haporxy搭建Web群集》Haproxy是目前比较流行的一种群集调度工具,同类群集调度工具有很多如LVS和Nginx,本案例介绍使用Haproxy及Nginx搭建一套Web群集,感兴趣的... 目录一、案例分析1.案例概述2.案例前置知识点2.1 HTTP请求2.2 负载均衡常用调度算法 2.

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

python常见环境管理工具超全解析

《python常见环境管理工具超全解析》在Python开发中,管理多个项目及其依赖项通常是一个挑战,下面:本文主要介绍python常见环境管理工具的相关资料,文中通过代码介绍的非常详细,需要的朋友... 目录1. conda2. pip3. uvuv 工具自动创建和管理环境的特点4. setup.py5.

mtu设置多少网速最快? 路由器MTU设置最佳网速的技巧

《mtu设置多少网速最快?路由器MTU设置最佳网速的技巧》mtu设置多少网速最快?想要通过设置路由器mtu获得最佳网速,该怎么设置呢?下面我们就来看看路由器MTU设置最佳网速的技巧... 答:1500 MTU值指的是在网络传输中数据包的最大值,合理的设置MTU 值可以让网络更快!mtu设置可以优化不同的网

Python中help()和dir()函数的使用

《Python中help()和dir()函数的使用》我们经常需要查看某个对象(如模块、类、函数等)的属性和方法,Python提供了两个内置函数help()和dir(),它们可以帮助我们快速了解代... 目录1. 引言2. help() 函数2.1 作用2.2 使用方法2.3 示例(1) 查看内置函数的帮助(