钟擎烽
- 关注

1. 概述
1.1 什么是 EMBA?
EMBA(Embedded Malware Binary Analysis)是一个 自动化固件安全分析工具,专门用于分析 嵌入式 Linux 设备的固件。它可以扫描固件中的二进制文件,检测常见的安全漏洞,如:
命令注入(Command Injection)
缓冲区溢出(Buffer Overflow)
硬编码凭据(Hardcoded Credentials)
未受保护的 SQLite 数据库(Unprotected Databases)
开发者信息泄露(Developer Information Leakage)
缺少堆栈保护机制(Missing Stack Canaries)
其他二进制安全问题
EMBA 适用于 渗透测试人员、逆向工程师和 IoT 设备安全研究人员。
2. EMBA 工具安装
2.1 Kali Linux 是否预装 EMBA?
Kali Linux 并不默认安装 EMBA,需要手动从 GitHub 下载并安装相关依赖。
2.2 EMBA 安装步骤
(1)克隆 EMBA 源码
# 进入存放工具的目录,例如 /opt
cd /opt
# 克隆 EMBA 源码
sudo git clone https://github.com/e-m-b-a/emba.git
# 进入 EMBA 目录
cd emba
(2)安装依赖
# 更新系统软件包
sudo apt update
# 安装 EMBA 依赖项
sudo apt install -y binwalk qemu-user python3 python3-pip lzop
# 安装 Python 依赖
pip3 install -r requirements.txt
(3)验证 EMBA 安装是否成功
./emba.sh -h
如果成功运行,会显示 EMBA 的帮助信息。
3. 使用 EMBA 进行固件分析
3.1 准备固件文件
要分析的固件文件通常是.bin
、.img
或.zip
格式。你需要从 设备官网、备份文件或提取的设备存储中获取固件。
3.2 执行固件分析
./emba.sh -i /path/to/firmware.bin
示例:
./emba.sh -i ~/firmware/smart_device.bin
3.3 解析扫描结果
EMBA 会自动扫描固件,并生成详细的安全报告,包括:
漏洞列表(如命令注入、SQL 注入等)
代码分析(C 语言函数调用、危险 API 使用情况等)
设备配置(是否启用了 ASLR、Stack Canaries 等安全机制)
二进制分析(符号表、字符串、函数调用图等)
报告默认保存在logs/
目录下,例如:
ls logs/
你可以用浏览器打开 HTML 格式的报告。
4. EMBA 在漏洞分析中的应用
4.1 EMBA 识别的漏洞示例
在实际的固件分析中,EMBA 可以检测到 多个关键安全漏洞,例如:
命令注入漏洞(Critical):固件直接使用
system()
处理用户输入,可能导致远程代码执行。内存破坏漏洞(High):发现
strcpy()
、sprintf()
等不安全的 C 语言函数。硬编码凭据(High):固件中存在硬编码的 SQLite 数据库凭据。
未受保护的 SQLite 数据库(High):数据库文件没有加密,可能被攻击者读取和修改。
开发者信息泄露(Medium):发现编译路径泄露开发者用户名。
4.2 如何根据 EMBA 报告修复漏洞?
漏洞类型 | 修复建议 |
---|---|
命令注入漏洞 | 使用参数化命令或execve() 代替system() |
内存破坏漏洞 | 用strncpy() 代替strcpy() ,开启 Stack Canaries |
硬编码凭据 | 使用安全存储方案,例如 环境变量或加密存储 |
未受保护的数据库 | 启用 数据库访问控制,使用 SQLite 加密扩展 |
开发者信息泄露 | 在 编译前清除调试信息,避免路径泄露 |
5. 其他常见 EMBA 命令
5.1 显示帮助信息
./emba.sh -h
5.2 执行快速扫描(Fast Scan)
./emba.sh -i /path/to/firmware.bin -fs
5.3 进行深度分析(Full Analysis)
./emba.sh -i /path/to/firmware.bin -fa
5.4 只扫描二进制文件(Binary Only)
./emba.sh -i /path/to/firmware.bin -bo
6. 结论
EMBA 是一个强大的 嵌入式固件安全分析工具,适用于 IoT 设备安全研究、逆向工程和固件渗透测试。通过 EMBA,可以快速发现固件中的漏洞,并提供详细的修复建议。
建议所有开发人员、渗透测试人员和安全研究人员使用 EMBA 进行固件安全分析,以提升设备安全性。
免责声明 (Disclaimer)
本报告仅用于学习和研究目的,所有信息均来源于公开资料或实验环境。报告中涉及的工具、方法及技术仅供安全测试和学术探讨,严禁用于任何未经授权的渗透测试、黑客攻击或其他违法行为。
作者不对因使用本报告内容造成的任何直接或间接损失负责。请在合法合规的前提下使用相关信息,并遵守适用的法律法规。
如果本报告涉及任何敏感信息或可能违反相关规定,请联系作者以进行修正或删除。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)