DouglasFreshHabian/D00rb3ll
GitHub: DouglasFreshHabian/D00rb3ll
针对视频门铃的 IoT 安全实战教程资源库,涵盖从硬件接口调试、固件提取到自动化分析与漏洞挖掘的完整复现流程。
Stars: 13 | Forks: 1
# 🚪🔔 D00rb3ll
# 关于
### 这个仓库包含了配合我 YouTube 系列“IoT 黑客攻击:视频门铃”的相关文件。随着系列视频的推进,我会不断更新这个仓库。
## 为什么做这个项目? 🗯
这个项目的目标是提供一个透明的视角,来审视一款广泛使用的消费设备的固件。作为我正在进行逆向工程努力的一部分,我会继续向这个仓库添加见解、静态和动态分析结果以及修改内容。
无论你是一名 Linux 爱好者、安全研究人员、逆向工程师还是黑客,这个项目都旨在提供有用的资源,帮助揭示固件的运行方式,并可能识别出漏洞、安全缺陷或其他感兴趣的内容。
## 📷 [黑客攻击 IoT 视频门铃 - 内部有什么?](https://youtu.be/dVZNmC5-uO4?si=WXdHWTCoSJMnTiCV)
### 
## 第一个视频已发布,标题为 [“黑客攻击 IoT 视频门铃 - 内部有什么?”](https://youtu.be/dVZNmC5-uO4?si=WXdHWTCoSJMnTiCV)
## 工具: 🛠
### 软件: 💾
1. flashrom: 用于与 SPI 芯片交互。
2. strings: 用于从二进制文件中收集信息。
3. binwalk: 用于解包和提取固件中的文件。
### 硬件: 💻
1. [USB 转 TTL 适配器](https://amzn.to/4h6SqPY)
2. [PCBite 探针](https://amzn.to/4f4CbRr)
3. 运行 Linux 的计算机 (kali Linux, Ubuntu)
## 方法论: 🔍🌍
仅从一个日志文件中,我们就了解了大量关于此固件的信息。其中最重要的一点是,它使用的是基于 ***OpenWRT*** 的 Linux 操作系统。
该操作系统的名称是 ***Tina Linux***。如果你还没有这样做,请去我的 YouTube 频道,点击那个点赞按钮,订阅并查看下一个视频...
```
$ sed -n '36,47p' Bootlogs.txt
BusyBox v1.27.2 () built-in shell (ash)
_____ _ __ _
|_ _||_| ___ _ _ | | |_| ___ _ _ _ _
| | _ | || | | |__ | || || | ||_'_|
| | | || | || _ | |_____||_||_|_||___||_,_|
|_| |_||_|_||_|_| Tina is Based on OpenWrt!
----------------------------------------------
Tina Linux (Neptune, 5C1C9C53)
----------------------------------------------
```
## [黑客攻击 IoT 视频门铃:提取与分析固件](https://youtu.be/fGCQTk4-eE4?si=HizJNpvhUviEKrlf)
### 
这里的固件是使用 CH341A SPI 编程器和 `flashrom` 实用工具提取的。生成的固件镜像 doorbell.bin 以原始形式共享,使任何人都能够深入研究静态分析、仿真或任何其他形式的研究。
## 工具: 🛠
### 软件: 💾
1. flashrom: 用于与 SPI 芯片交互。
2. strings: 用于从二进制文件中收集信息。
3. binwalk: 用于解包和提取固件中的文件。
### 硬件: 💻
1. [ch341a_spi bios/eeprom spi 闪存芯片编程器](https://amzn.to/3BKu12p)
2. 运行 Linux 的计算机 (kali Linux, Ubuntu)
## 方法论: 🔍🌍
探测闪存芯片:
```
flashrom --programmer ch341a_spi
```
## 好的,让我们开始动手: ✋🤚
读取并转储固件:
## 在开始分析之前,最好先获取镜像的哈希值:
## 固件的基本分析: 💻🕵️
在进行进一步分析之前,收集基本的字符串并识别固件中潜在嵌入的信息:
```
file doorbell.bin # Determine the file type
binwalk doorbell.bin # Ran with no options, binwalk will scan the image and print the results to the screen
strings -n 10 doorbell.bin # Strings will print any sequences of "human-readable" characters, that are atleast 10 characters long (-n 10)
hexdump -C doorbell.bin | head # Looking for signatures in the header
```
## 解包固件: 🔐🌐
为了解包固件并提取嵌入的文件或隐藏元素,我使用了 binwalk:
```
binwalk doorbell.bin # Ran with no options, binwalk will scan the image and print the results to the screen
binwalk -E doorbell.bin # Calculates file entropy which tells us whether the firmware is encrypted or not
binwalk -eM doorbell.bin # Extract known file types (-e), and recursively scan extracted files (-M)
```
## 固件文件系统的基本分析: 🗃🕵️
## 密码: 🗝 root 用户的密码是 tina。
我想可以肯定地说 ***tina*** 来自 ***Tina Linux***,这意味着设备正在使用默认密码。我通过对同一制造商的另一款门铃执行相同的步骤验证了这一点。
密码实际上是一样的,***tina***。
## [黑客攻击 IoT 门铃:自动化分析](https://www.youtube.com/watch?v=GhEeZATJi2Y)
### 
## 🔍 自动化固件分析概述
在本视频中,我们深入探讨如何使用一套强大的工具来自动化固件分析过程,以节省时间、减少手动工作并发现 IoT 固件中的潜在漏洞。以一款低成本的视频门铃为目标,我们遵循 **OWASP 固件安全测试方法论**,从手动分析过渡到自动化分析技术。
## 🧰 视频中介绍的工具
Tool | Purpose | Link
---------------- | -------------------------------------------------------------------------- | -----
[linPEAS](https://github.com/peass-ng/PEASS-ng/tree/master/linPEAS) | 检测 SSH 密钥、密码和配置错误 | https://github.com/peass-ng/PEASS-ng/tree/master/linPEAS
[firmwalker](https://github.com/scriptingxss/firmwalker) | 扫描提取的固件文件系统以查找机密、密钥、配置、硬编码凭据 | https://github.com/scriptingxss/firmwalker
[checksec.sh](https://github.com/petervas/checksec.sh) | 评估二进制安全性(NX, PIE, RELRO, stack canaries 等) | https://github.com/slimm609/checksec.sh
[ClamAV](https://clamav.net) | 扫描提取文件中的已知恶意软件、病毒和威胁 | https://www.clamav.net
[ChatGPT](https://chat.openai.com) | 协助分析 shell 脚本并解释逻辑 | https://chat.openai.com
## 📄 额外资源
OWASP 固件安全测试方法论:贯穿本系列始终。可通过 Doug 的 [Fresh PDF Library GitHub 仓库](https://github.com/DouglasFreshHabian/FreshPDFLibrary) 获取。
这一集标志着从 **手动分析** 到 **可扩展、可重复的自动化** 的关键转变,使得发现嵌入式设备中的安全缺陷变得更加容易。
## 贡献与合作: 🤝
#### 这是一个开放的项目,我欢迎社区的贡献和反馈。如果你有关于固件的见解、改进或额外的发现,请随时提交 issue 或 pull request。
## 持续的逆向工程努力:🥈🏆🥉
## 这是我们的固件测试清单: 📋
- [x] 信息收集与侦察
- [x] 获取固件
- [x] 分析固件
- [x] 提取文件系统
- [x] 分析文件系统
- [ ] 固件仿真
- [ ] 动态分析
- [ ] 运行时分析
- [ ] 二进制利用
#### 随着我继续对固件进行逆向工程,我将在此记录我的发现和方法。
## ☕ 支持这个项目
如果 **D00rb3ll™** 以任何方式帮助了你,请考虑支持持续开发:
