路由仿真环境-FirmAE安装指南2024(IOT入门)

借助前人的知识:

  1. FirmAE固件模拟及IOT漏洞复现分析入门 | CN-SEC 中文网
  2. FirmAE安装指北-CSDN博客
  3. FirmAE 工具安装(解决克隆失败 网络问题解决)_firmae安装出错-CSDN博客
  4. 命令注入漏洞CVE-2022-26258复现(学习记录)-智能设备-看雪-安全社区|安全招聘|kanxue.com

0.安装的失败历程(可跳过)

a.在Ubuntu 23.04中安装FirmAE(失败)

肝死我了!本来用用Ubuntu 23.04,解决了一大堆报错!
但是发现根本无法把D-Link DIR-820L(D-Link的一款企业级无线路由器)跑起来!

brinmon@brinmon-virtual-machine:~/桌面$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 23.04
Release:	23.04
Codename:	lunar

一直卡在这里:

brinmon@brinmon-virtual-machine:~/IOT/Tools/FirmAE$ sudo ./run.sh -r D-link ~/Pwn_CVE/CVE-2022-26258/DIR820LA1_FW105B03.bin 
[sudo] brinmon 的密码: 
[*] /home/brinmon/Pwn_CVE/CVE-2022-26258/DIR820LA1_FW105B03.bin emulation start!!!
[*] extract done!!!
[*] get architecture done!!!
mke2fs 1.47.0 (5-Feb-2023)
e2fsck 1.47.0 (5-Feb-2023)
[*] infer network start!!!

还出了一个bug无法进行联网,我只能说我不理解,菜鸟一枚QAQ

b.在Ubuntu 18.04中安装FirmAE(失败)

看教程他们用的都是Ubuntu 18.04,那我也去试试

china@ubuntu:~/IOT_Tool/FirmAE$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 18.04.6 LTS
Release:	18.04
Codename:	bionic

第一次尝试以失败告终,肝到我凌晨4点!QAQ
发现有很多报错一一解决后依旧卡住和Ubuntu 23.04一样

  1. E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。 - 凌晨5点随波逐流 - 博客园 (cnblogs.com)
  2. psycopg2 - psycopg: Python.h: No such file or directory - Stack Overflow
    解决方案:发现是python环境没有安装完整QAQ:
china@ubuntu:~/IOT_Tool/FirmAE$ python
Python 2.7.17 (default, Mar  8 2023, 18:40:28) 
[GCC 7.5.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 
china@ubuntu:~/IOT_Tool/FirmAE$ python3
Python 3.6.9 (default, Mar 10 2023, 16:46:00) 
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 
china@ubuntu:~/IOT_Tool/FirmAE$ pip -V
pip 21.3.1 from /usr/local/lib/python3.6/dist-packages/pip (python 3.6)

1.Ubuntu 18.04安装的成功历程

软件要求:

  1. Ubuntu 18.04
  2. Windows主机存在魔法代理,教程请移步:

a.开始配置环境linux环境

Linux前置环境

  1. 换源Ubuntu 18.04:
china@ubuntu:~$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
china@ubuntu:~$ sudo gedit /etc/apt/sources.list
  1. 安装python:
china@ubuntu:~/IOT_Tool/FirmAE$ python
Python 2.7.17 (default, Mar  8 2023, 18:40:28) 
[GCC 7.5.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 
china@ubuntu:~/IOT_Tool/FirmAE$ python3
Python 3.6.9 (default, Mar 10 2023, 16:46:00) 
[GCC 8.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 
china@ubuntu:~/IOT_Tool/FirmAE$ pip -V
pip 21.3.1 from /usr/local/lib/python3.6/dist-packages/pip (python 3.6)
  1. 安装git,更换为魔法代理,请移步教程:
china@ubuntu:~/IOT_Tool$ sudo apt-get install git
china@ubuntu:~/IOT_Tool$ git config --global https.proxy https://192.168.43.238:7890
china@ubuntu:~/IOT_Tool$ git config --global http.proxy http://192.168.43.238:7890

开始正式安装FirmAE

开启代理后速度嗖嗖的快!

china@ubuntu:~/IOT_Tool$ git clone --recursive https://github.com/pr0v3rbs/FirmAE
正克隆到 'FirmAE'...
remote: Enumerating objects: 443, done.
remote: Counting objects: 100% (207/207), done.
remote: Compressing objects: 100% (76/76), done.
remote: Total 443 (delta 152), reused 145 (delta 131), pack-reused 236
接收对象中: 100% (443/443), 1.50 MiB | 3.81 MiB/s, 完成.
处理 delta 中: 100% (233/233), 完成.
子模组 'analyses/routersploit'(https://github.com/threat9/routersploit)已对路径 'analyses/routersploit' 注册
正克隆到 '/home/china/IOT_Tool/FirmAE/analyses/routersploit'...
remote: Enumerating objects: 8706, done.        
remote: Counting objects: 100% (158/158), done.        
remote: Compressing objects: 100% (93/93), done.        
remote: Total 8706 (delta 87), reused 115 (delta 65), pack-reused 8548        
接收对象中: 100% (8706/8706), 1.85 MiB | 2.99 MiB/s, 完成.
处理 delta 中: 100% (6275/6275), 完成.
子模组路径 'analyses/routersploit':检出 '4eefc7e709000a4a111aa997ba2253776fffd0c9'

由于之前配置失败的缘故痛定思痛,既然教程都是2022年的,那么我直接用git切换到过去的版本再来配置这个项目:Commits · pr0v3rbs/FirmAE (github.com)

发现这次提交是他们写教程时最新的提交!直接用git切换一下!

china@ubuntu:~/IOT_Tool$ cd ./FirmAE/
china@ubuntu:~/IOT_Tool/FirmAE$ git checkout 28f7eb4db39359d36009654c8368375c5d3bd401
注意:正在检出 '28f7eb4db39359d36009654c8368375c5d3bd401'。

您正处于分离头指针状态。您可以查看、做试验性的修改及提交,并且您可以通过另外
的检出分支操作丢弃在这个状态下所做的任何提交。

如果您想要通过创建分支来保留在此状态下所做的提交,您可以通过在检出命令添加
参数 -b 来实现(现在或稍后)。例如:

  git checkout -b <新分支名>

HEAD 目前位于 28f7eb4 Fix #47

下载完成之后开始运行安装脚本:
download.sh脚本主要是下载一写github上的一些文件,脚本下载的不好可以手动下载后放到/home/china/IOT_Tool/FirmAE/binaries目录下就好了!

china@ubuntu:~/IOT_Tool/FirmAE$ ./download.sh 
Downloading binaries...
Downloading kernel 2.6 (MIPS)...
--2024-05-25 13:33:38--  https://github.com/pr0v3rbs/FirmAE_kernel-v2.6/releases/download/v1.0/vmlinux.mipsel.2
正在解析主机 github.com (github.com)... 20.205.243.166
正在连接 github.com (github.com)|20.205.243.166|:443... 已连接。

运行完上面的后就可以运行install.sh脚本了!,之前配置失败是因为没有配置好python环境这次提前配置了,所以就没啥问题了!

china@ubuntu:~/IOT_Tool/FirmAE$ ./install.sh 
[sudo] china 的密码: 
命中:1 http://mirrors.aliyun.com/ubuntu bionic InRelease
命中:2 http://mirrors.aliyun.com/ubuntu bionic-security InRelease   
...

成功!到这里也就成功了!

注:我是用的Ubuntu基本啥也没装,这个框架会有概率扰乱原有环境!
这个框架还会给你安装openjdk和谷歌浏览器!

b.开始尝试运行一个固件

  1. 先安装一个binwalk,最好使用FrmAE框架自带的binwalk版本工具进行安装
china@ubuntu:~/IOT_Tool/FirmAE$ cd ./binwalk-2.3.3/
china@ubuntu:~/IOT_Tool/FirmAE/binwalk-2.3.3$ sudo python3 setup.py install
  1. 下载实验用的目标固件:D-Link路由器固件
#解压出固件是.bin,然后进入~/IOT_Tool/FirmAE/目录开始运行了
china@ubuntu:~/IOT_Tool/FirmAE$ ./init.sh 
+ sudo service postgresql restart
+ echo 'Waiting for DB to start...'
Waiting for DB to start...
+ sleep 5
china@ubuntu:~/IOT_Tool/FirmAE$ sudo ./run.sh -r D-link ~/CVE/CVE-2022-26258/DIR820LA1_FW105B03.bin 
[*] /home/china/CVE/CVE-2022-26258/DIR820LA1_FW105B03.bin emulation start!!!
[*] extract done!!!
[*] get architecture done!!!
mke2fs 1.44.1 (24-Mar-2018)
e2fsck 1.44.1 (24-Mar-2018)
[*] infer network start!!!

[IID] 1
[MODE] run
[+] Network reachable on 192.168.0.1!
[+] Web service on 192.168.0.1
Creating TAP device tap1_0...
Set 'tap1_0' persistent and owned by uid 0
Bringing up TAP device...
Starting emulation of firmware... 192.168.0.1 true true 63.309391429 65.425134506
  1. 然后就可以开始快乐的模拟了,终于成功了!

    再去看看结果:

2.Ubuntu 23.04安装的成功历程

软件要求:

  1. Ubuntu 23.04
  2. Windows主机存在魔法代理,教程请移步:
  3. Ubuntu也存在魔法代理,教程请移步:

a.开始配置Linux的前置环境

这是一个我经常用的环境,用来打Pwn

  1. 配置Clash魔法在Ubuntu上
  2. 配置Git代理,使用主机上了Clash代理,加速下载
brinmon@brinmon-virtual-machine:~/IOT/Tools$ git config --global https.proxy https://192.168.43.238:7890
brinmon@brinmon-virtual-machine:~/IOT/Tools$ git config --global http.proxy http://192.168.43.238:7890

开始正式安装FirmAE

下载项目:

brinmon@brinmon-virtual-machine:~/IOT/Tools$ git clone --recursive https://github.com/pr0v3rbs/FirmAE
正克隆到 'FirmAE'...
remote: Enumerating objects: 443, done.
remote: Counting objects: 100% (207/207), done.
remote: Compressing objects: 100% (76/76), done.
remote: Total 443 (delta 152), reused 145 (delta 131), pack-reused 236
接收对象中: 100% (443/443), 1.50 MiB | 694.00 KiB/s, 完成.
处理 delta 中: 100% (233/233), 完成.
子模组 'analyses/routersploit'(https://github.com/threat9/routersploit)未对路径 'analyses/routersploit' 注册
正克隆到 '/home/brinmon/IOT/Tools/FirmAE/analyses/routersploit'...
remote: Enumerating objects: 8706, done.        
remote: Counting objects: 100% (158/158), done.        
remote: Compressing objects: 100% (93/93), done.        
remote: Total 8706 (delta 87), reused 117 (delta 65), pack-reused 8548        
接收对象中: 100% (8706/8706), 1.85 MiB | 559.00 KiB/s, 完成.
处理 delta 中: 100% (6275/6275), 完成.
子模组路径 'analyses/routersploit':检出 '4eefc7e709000a4a111aa997ba2253776fffd0c9'

和之前一样的步骤download.sh :

brinmon@brinmon-virtual-machine:~/IOT/Tools$ cd ./FirmAE/
brinmon@brinmon-virtual-machine:~/IOT/Tools/FirmAE$ ./download.sh 


和之前一样的步骤install.sh :

brinmon@brinmon-virtual-machine:~/IOT/Tools/FirmAE$ ./install.sh 


成功安装!!!
他居然还会自动安装谷歌浏览器!

b.开始运行一个固件

  1. 先安装一个binwalk,最好使用FrmAE框架自带的binwalk版本工具进行安装
cd ./binwalk-2.3.4/
sudo python3 setup.py install
  1. 下载实验用的目标固件:D-Link路由器固件
    这里运行了好久才出来的我还以为出问题了QAQ
brinmon@brinmon-virtual-machine:~/IOT/Tools/FirmAE$ sudo ./run.sh -r D-link ~/Pwn_CVE/CVE-2022-26258/DIR820LA1_FW105B03.bin 
[sudo] brinmon 的密码: 
[*] /home/brinmon/Pwn_CVE/CVE-2022-26258/DIR820LA1_FW105B03.bin emulation start!!!
[*] extract done!!!
[*] get architecture done!!!
mke2fs 1.47.0 (5-Feb-2023)
e2fsck 1.47.0 (5-Feb-2023)
[*] infer network start!!!

[IID] 1
[MODE] run
[+] Network reachable on 192.168.0.1!
[+] Web service on 192.168.0.1
Creating TAP device tap1_0...
Set 'tap1_0' persistent and owned by uid 0
Bringing up TAP device...
Starting emulation of firmware... 192.168.0.1 true true 59.115957501 70.018481312

成功进入路由:

还有一个问题,无法联网,运行这个固件到一半突然没网了,虚拟机的世界可真悬:

3.解决安装问题的最终大法就是查看报错日志QAQ

a.如何查看DFirmAE框架的报错日志:

来源:./run.sh 卡在“推断网络启动!!” ·问题 #66 ·pr0v3rbs/FirmAE — ./run.sh stuck on “infer network start!!!” · Issue #66 · pr0v3rbs/FirmAE (github.com)

china@ubuntu:~/IOT_Tool/FirmAE$ cat ./scratch/1/makeNetwork.log
qemu-system-mips: terminating on signal 2 from pid 74021 (timeout)
[*] test emulator

[*] Waiting web service... from 192.168.0.1
qemu-system-mips: terminating on signal 15 from pid 78791 (/bin/bash)

b.如何查看如何查看qemu报错日志:

如何查看qemu日志:固件登录 - inferNetwork ·问题 #23 ·菲尔玛台/菲尔玛台 — Firmware login - inferNetwork · Issue #23 · firmadyne/firmadyne (github.com)
我也不会自行百度:查看virsh管理qemu虚拟机日志信息和libvirtd日志信息_qemu-ga.log文件是什么-CSDN博客

在使用virsh管理qemu的虚拟机时候,也是有日志的输出的.
具体的log在目录`/var/log/livirt/qemu/` 下面,具体的log文件名与虚拟机名字关联.
  • 16
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值