freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

EMBA 安装与使用
钟擎烽 2025-03-27 23:29:14 4250

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)

本报告仅用于学习和研究目的,所有信息均来源于公开资料或实验环境。报告中涉及的工具、方法及技术仅供安全测试和学术探讨,严禁用于任何未经授权的渗透测试、黑客攻击或其他违法行为。

作者不对因使用本报告内容造成的任何直接或间接损失负责。请在合法合规的前提下使用相关信息,并遵守适用的法律法规。

如果本报告涉及任何敏感信息或可能违反相关规定,请联系作者以进行修正或删除。

# IoT安全 # 二进制分析工具
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 钟擎烽 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
钟擎烽 LV.4
这家伙太懒了,还未填写个人描述!
  • 10 文章数
  • 1 关注者
PyTorch 2.6.0 安装指南
2025-03-19
Win10 + RTX 2070 Super + CUDA 12.8 安装全攻略(含旧版本清理)
2025-03-18
绕过关键字过滤并利用 Netcat 反弹 Shell 的完整流程
2025-03-07
文章目录