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

相关文章

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

Linux搭建ftp服务器的步骤

《Linux搭建ftp服务器的步骤》本文给大家分享Linux搭建ftp服务器的步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录ftp搭建1:下载vsftpd工具2:下载客户端工具3:进入配置文件目录vsftpd.conf配置文件4:

一文带你迅速搞懂路由器/交换机/光猫三者概念区别

《一文带你迅速搞懂路由器/交换机/光猫三者概念区别》讨论网络设备时,常提及路由器、交换机及光猫等词汇,日常生活、工作中,这些设备至关重要,居家上网、企业内部沟通乃至互联网冲浪皆无法脱离其影响力,本文将... 当谈论网络设备时,我们常常会听到路由器、交换机和光猫这几个名词。它们是构建现代网络基础设施的关键组成

99%的人都选错了! 路由器WiFi双频合一还是分开好的专业解析与适用场景探讨

《99%的人都选错了!路由器WiFi双频合一还是分开好的专业解析与适用场景探讨》关于双频路由器的“双频合一”与“分开使用”两种模式,用户往往存在诸多疑问,本文将从多个维度深入探讨这两种模式的优缺点,... 在如今“没有WiFi就等于与世隔绝”的时代,越来越多家庭、办公室都开始配置双频无线路由器。但你有没有注

Java 与 LibreOffice 集成开发指南(环境搭建及代码示例)

《Java与LibreOffice集成开发指南(环境搭建及代码示例)》本文介绍Java与LibreOffice的集成方法,涵盖环境配置、API调用、文档转换、UNO桥接及REST接口等技术,提供... 目录1. 引言2. 环境搭建2.1 安装 LibreOffice2.2 配置 Java 开发环境2.3 配

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

python运用requests模拟浏览器发送请求过程

《python运用requests模拟浏览器发送请求过程》模拟浏览器请求可选用requests处理静态内容,selenium应对动态页面,playwright支持高级自动化,设置代理和超时参数,根据需... 目录使用requests库模拟浏览器请求使用selenium自动化浏览器操作使用playwright

Python极速搭建局域网文件共享服务器完整指南

《Python极速搭建局域网文件共享服务器完整指南》在办公室或家庭局域网中快速共享文件时,许多人会选择第三方工具或云存储服务,但这些方案往往存在隐私泄露风险或需要复杂配置,下面我们就来看看如何使用Py... 目录一、android基础版:HTTP文件共享的魔法命令1. 一行代码启动HTTP服务器2. 关键参

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本