DVRF_Intro_stack_bof_01

固件分析与栈溢出利用初探
本文详细记录了一次固件分析的过程,包括环境配置、固件提取、文件系统识别、程序黑盒测试、栈溢出漏洞分析及利用。作者通过binwalk工具提取了Squashfs文件系统,并利用qemu-mipsel-static在Chroot环境中运行程序进行测试。在分析过程中,发现了程序存在栈溢出,通过反汇编和调试确定了payload的构造方法。然而,在尝试利用时遇到了困难,未能成功获取shell。文章最后提到了寻找gadget和确定libc.so基址的问题。


这篇笔记是第一次固件分析的记录。

1. 环境

QEMU环境请参考另一篇博客:https://blog.youkuaiyun.com/Ga4ra/article/details/123959989

下载DVRF:ttps://github.com/praetorian-inc/DVRF。可以从gitee上搜一下,有很多镜像。

2. 提取固件

目录:

starr@starr-VirtualBox:~/Documents/iot/DVRF-master$ tree
.
├── Firmware
│   ├── DVRF_v03.bin
│   └── FW_LICENSE_E1550_v1.0.03.002.html
├── gdb
│   ├── gdb binaries
│   │   └── mips-i
│   │       ├── Big Endian
│   │       │   ├── gdb
│   │       │   └── gdbserver
│   │       └── Little Endian
│   │           ├── gdb
│   │           └── gdbserver
│   └── gdb_static_mipsle-be.tar
├── Pwnable Source
│   ├── Intro
│   │   ├── heap_overflow_01.c
│   │   ├── stack_bof_01.c
│   │   └── uaf_01.c
│   └── ShellCode_Required
│       ├── socket_bof.c
│       ├── socket_cmd.c
│       └── stack_bof_02.c
├── README.md
└── Source Code
    ├── clean.sh
    ├── DVRF_v03_source.tar.001
    ├── DVRF_v03_source.tar.002
    ├── DVRF_v03_source.tar.003
    ├── DVRF_v03_source.tar.004
    ├── DVRF_v03_source.tar.005
    ├── DVRF_v03_source.tar.006
    ├── DVRF_v03_source.tar.007
    ├── DVRF_v03_source.tar.008
    ├── DVRF_v03_source.tar.009
    ├── DVRF_v03_source.tar.010
    ├── DVRF_v03_source.tar.011
    ├── DVRF_v03_source.tar.012
    └── merge_and_extract.sh

10 directories, 28 files

扫描一下固件:

$ binwalk DVRF_v03.bin

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             BIN-Header, board ID: 1550, hardware version: 4702, firmware version: 1.0.0, build date: 2012-02-08
32            0x20            TRX firmware header, little endian, image size: 7753728 bytes, CRC32: 0x436822F6, flags: 0x0, version: 1, header size: 28 bytes, loader offset: 0x1C, linux kernel offset: 0x192708, rootfs offset: 0x0
60            0x3C            gzip compressed data, maximum compression, has original file name: "piggy", from Unix, last modified: 2016-03-09 08:08:31
1648424       0x192728        Squashfs filesystem, little endian, non-standard signature, version 3.0, size: 6099215 bytes, 447 inodes, blocksize: 65536 bytes, created: 2016-03-10 04:34:22

文件系统是squashfs,开始提取:

$ binwalk -Me DVRF_v03.bin 
...
$ ll -h
total 9.6M
drwxrwxr-x  3 starr starr 4.0K 45 14:41 ./
drwxrwxr-x  3 starr starr 4.0K 45 14:41 ../
-rw-rw-r--  1 starr starr 5.9M 45 14:41 192728.squashfs
-rw-rw-r--  1 starr starr 3.7M 45 14:41 piggy
drwxr-xr-x 14 starr starr 4.0K 310  2016 squashfs-root/
$ ll -h squashfs-root/
total 56K
drwxr-xr-x 14 starr starr 4.0K 310  2016 ./
drwxrwxr-x  3 starr starr 4.0K 45 14:41 ../
drwxr-xr-x  2 starr starr 4.0K 310  2016 bin/
drwxr-xr-x  2 starr starr 4.0K 310  2016 dev/
drwxr-xr-x  3 starr starr 4.0K 45 14:41 etc/
drwxr-xr-x  3 starr starr 4.0K 310  2016 lib/
lrwxrwxrwx  1 starr starr    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值