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

相关文章

ESP32 esp-idf esp-adf环境安装及.a库创建与编译

简介 ESP32 功能丰富的 Wi-Fi & 蓝牙 MCU, 适用于多样的物联网应用。使用freertos操作系统。 ESP-IDF 官方物联网开发框架。 ESP-ADF 官方音频开发框架。 文档参照 https://espressif-docs.readthedocs-hosted.com/projects/esp-adf/zh-cn/latest/get-started/index

一份LLM资源清单围观技术大佬的日常;手把手教你在美国搭建「百万卡」AI数据中心;为啥大模型做不好简单的数学计算? | ShowMeAI日报

👀日报&周刊合集 | 🎡ShowMeAI官网 | 🧡 点赞关注评论拜托啦! 1. 为啥大模型做不好简单的数学计算?从大模型高考数学成绩不及格说起 司南评测体系 OpenCompass 选取 7 个大模型 (6 个开源模型+ GPT-4o),组织参与了 2024 年高考「新课标I卷」的语文、数学、英语考试,然后由经验丰富的判卷老师评判得分。 结果如上图所

UnrealScriptIDE调试环境部署

先安装vs2010   再安装VSIsoShell.exe, 下载地址 https://pan.baidu.com/s/10kPNUuDGTbWXbz7Nos-1WA       fd3t   最后安装unside,下载地址 https://archive.codeplex.com/?p=uside  安装中间有一步选择Binary文件夹要选对路径。   安装好以后,启动 UDKDe

API-环境对象

学习目标: 掌握环境对象 学习内容: 环境对象作用 环境对象: 指的是函数内部特殊的变量this,它代表着当前函数运行时所处的环境。 作用: 弄清楚this的指向,可以让我们代码更简洁。 函数的调用方式不同,this指代的对象也不同。【谁调用,this就是谁】是判断this指向的粗略规则。直接调用函数,其实相当于是window.函数,所以this指代window。

【网络安全的神秘世界】搭建dvwa靶场

🌝博客主页:泥菩萨 💖专栏:Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 下载DVWA https://github.com/digininja/DVWA/blob/master/README.zh.md 安装DVWA 安装phpstudy https://editor.csdn.net/md/?articleId=1399043

基于 Java 实现的智能客服聊天工具模拟场景

服务端代码 import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;public class Serv

Pycharm配置conda环境(解决新版本无法识别可执行文件问题)

引言: 很多小伙伴在下载最新版本的pycharm或者更新到最新版本后为项目配置conda环境的时候,发现文件夹目录中无法显示可执行文件(一般为python.exe),以下就是本人遇到该问题后试验和解决该问题的一些方法和思路。 一般遇到该问题的人群有两种,一种是刚入门对pycharm进行conda环境配置的小白(例如我),不熟悉相关环境配置的操作和过程,还有一种是入坑pycharm有段时间的老手

青龙面板部署通用教程,含服务器、路由器、X86等部署方法

1. 拉取镜像/更新镜像 docker pull whyour/qinglong:latest 2. 删除镜像 docker rmi whyour/qinglong:latest 3. 启动容器 普通服务器 docker run -dit \-v $PWD/ql/config:/ql/config \-v $PWD/ql/log:/ql/log \-v $PWD/ql/db:

Redis-在springboot环境下执行lua脚本

文章目录 1、什么lua2、创建SpringBoot工程3、引入相关依赖4、创建LUA脚本5、创建配置类6、创建启动类7、创建测试类 1、什么lua “Lua”的英文全称是“Lightweight Userdata Abstraction Layer”,意思是“轻量级用户数据抽象层”。 2、创建SpringBoot工程 3、引入相关依赖 <?xml version

cocospod 搭建环境和使用

iOS 最新版 CocoaPods 的安装流程 1.移除现有Ruby默认源 $gem sources --remove https://rubygems.org/ 2.使用新的源 $gem sources -a https://ruby.taobao.org/ 3.验证新源是否替换成功 $gem sources -l 4.安装CocoaPods (1)  $sudo gem