performing-mobile-device-forensics-with-cellebrite

使用 Cellebrite UFED 和开源工具获取和分析移动设备数据,提取通信记录、位置数据和应用程序制品。

9 stars

Best use case

performing-mobile-device-forensics-with-cellebrite is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

使用 Cellebrite UFED 和开源工具获取和分析移动设备数据,提取通信记录、位置数据和应用程序制品。

Teams using performing-mobile-device-forensics-with-cellebrite should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/performing-mobile-device-forensics-with-cellebrite/SKILL.md --create-dirs "https://raw.githubusercontent.com/killvxk/cybersecurity-skills-zh/main/skills/performing-mobile-device-forensics-with-cellebrite/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/performing-mobile-device-forensics-with-cellebrite/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How performing-mobile-device-forensics-with-cellebrite Compares

Feature / Agentperforming-mobile-device-forensics-with-cellebriteStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

使用 Cellebrite UFED 和开源工具获取和分析移动设备数据,提取通信记录、位置数据和应用程序制品。

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# 使用 Cellebrite 执行移动设备取证

## 适用场景
- 在调查期间从智能手机或平板电脑中提取证据时
- 需要从移动设备中恢复已删除的消息、通话记录和位置数据时
- 在涉及即时通讯应用通信的调查中
- 分析移动应用数据以寻找犯罪活动证据时
- 涉及员工移动设备滥用的企业调查中

## 前置条件
- Cellebrite UFED Touch/4PC 或 UFED Physical Analyzer(需授权)
- 替代开源工具:ALEAPP、iLEAPP、MEAT、libimobiledevice
- 目标设备适用的线缆和转接头
- 法拉第袋(Faraday bag)用于隔离设备网络信号
- 法律授权(搜查令、当事人同意或企业政策)
- 了解 iOS 和 Android 文件系统结构

## 工作流程

### 步骤 1:准备设备并隔离

```bash
# 关键:立即将设备置于飞行模式或法拉第袋中
# 防止远程擦除命令和额外数据变更

# 获取前记录设备状态
# 记录:品牌、型号、IMEI、序列号、操作系统版本、屏幕锁定状态
# 从各角度拍摄设备照片

# 对于 Android - 如可访问则启用 USB 调试
# 设置 > 开发者选项 > USB 调试 > 启用

# 对于 iOS - 信任取证工作站
# 设备提示时点击"信任此电脑"

# 若设备已锁定,记录锁定类型(PIN、图案、生物识别)
# Cellebrite UFED 可根据设备型号绕过某些锁定类型

# 安装开源工具作为替代方案
pip install aleapp    # Android 日志事件和 Protobuf 解析器(Android Logs Events And Protobuf Parser)
pip install ileapp    # iOS 日志事件和属性解析器(iOS Logs Events And Properties Parser)
sudo apt-get install libimobiledevice-utils  # Linux 上的 iOS 获取工具
```

### 步骤 2:执行设备获取

```bash
# === Cellebrite UFED 获取 ===
# 1. 启动 UFED 4PC 或连接 UFED Touch
# 2. 选择设备 > 自动识别设备型号
# 3. 选择提取类型:
#    - 逻辑提取(Logical):应用数据、联系人、消息、通话记录(最快,数据最少)
#    - 文件系统提取(File System):完整文件系统访问,包含数据库
#    - 物理提取(Physical):包含已删除和未分配数据的逐位镜像(最完整)
#    - 高级模式(Checkm8/GrayKey):针对已锁定 iOS 设备(特定型号)
# 4. 选择输出格式和目标位置
# 5. 开始提取

# === 使用 libimobiledevice 进行开源 iOS 获取 ===
# 列出已连接的 iOS 设备
idevice_id -l

# 获取设备信息
ideviceinfo -u <UDID>

# 创建 iOS 备份(逻辑获取)
idevicebackup2 backup --full /cases/case-2024-001/mobile/ios_backup/

# 加密备份(包含更多数据,如密码)
idevicebackup2 backup --full --password /cases/case-2024-001/mobile/ios_backup/

# === 使用 ADB 进行 Android 获取 ===
# 列出已连接设备
adb devices

# 完整备份(需要解锁屏幕)
adb backup -apk -shared -all -f /cases/case-2024-001/mobile/android_backup.ab

# 提取特定应用数据
adb shell pm list packages | grep -i "whatsapp\|telegram\|signal"
adb pull /data/data/com.whatsapp/ /cases/case-2024-001/mobile/whatsapp/

# 对于已 root 的 Android 设备 - 完整文件系统
adb shell "su -c 'dd if=/dev/block/mmcblk0 bs=4096'" | \
   dd of=/cases/case-2024-001/mobile/android_physical.dd

# 对获取结果进行哈希验证
sha256sum /cases/case-2024-001/mobile/*.dd > /cases/case-2024-001/mobile/acquisition_hashes.txt
```

### 步骤 3:使用 ALEAPP(Android)或 iLEAPP(iOS)分析

```bash
# === 使用 ALEAPP 分析 Android ===
# ALEAPP 处理 Android 文件系统提取结果
python3 -m aleapp \
   -t fs \
   -i /cases/case-2024-001/mobile/android_extraction/ \
   -o /cases/case-2024-001/analysis/aleapp_report/

# ALEAPP 提取并报告的内容:
# - 通话记录、短信/彩信消息
# - Chrome 浏览历史和搜索记录
# - WiFi 连接历史
# - 已安装应用程序
# - Google 账户活动
# - 位置数据(Google 地图、照片)
# - WhatsApp、Telegram、Signal 消息
# - 应用使用统计
# - 设备设置和账户

# === 使用 iLEAPP 分析 iOS ===
python3 -m ileapp \
   -t tar \
   -i /cases/case-2024-001/mobile/ios_backup.tar \
   -o /cases/case-2024-001/analysis/ileapp_report/

# iLEAPP 提取并报告的内容:
# - iMessage 和短信消息
# - Safari 浏览历史
# - WiFi 和蓝牙连接
# - 健康数据和位置历史
# - 应用使用情况(KnowledgeC)
# - 含 EXIF/GPS 数据的照片
# - 备忘录、日历、提醒事项
# - 钥匙串数据(如可解密)
# - 屏幕时间数据
```

### 步骤 4:提取通信和即时消息数据

```bash
# 从 Android 提取 WhatsApp 消息
python3 << 'PYEOF'
import sqlite3
import os

# WhatsApp 数据库位置
db_path = "/cases/case-2024-001/mobile/android_extraction/data/data/com.whatsapp/databases/msgstore.db"

if os.path.exists(db_path):
    conn = sqlite3.connect(db_path)
    cursor = conn.cursor()

    # 提取消息
    cursor.execute("""
        SELECT
            key_remote_jid AS contact,
            CASE WHEN key_from_me = 1 THEN 'SENT' ELSE 'RECEIVED' END AS direction,
            data AS message_text,
            datetime(timestamp/1000, 'unixepoch') AS msg_time,
            media_mime_type,
            media_size
        FROM messages
        WHERE data IS NOT NULL
        ORDER BY timestamp DESC
        LIMIT 1000
    """)

    with open('/cases/case-2024-001/analysis/whatsapp_messages.csv', 'w') as f:
        f.write("contact,direction,message,timestamp,media_type,media_size\n")
        for row in cursor.fetchall():
            f.write(','.join(str(x) for x in row) + '\n')

    conn.close()
    print("WhatsApp messages extracted successfully")
PYEOF

# 从 iOS sms.db 提取 iMessage/SMS
python3 << 'PYEOF'
import sqlite3

db_path = "/cases/case-2024-001/mobile/ios_extraction/HomeDomain/Library/SMS/sms.db"

conn = sqlite3.connect(db_path)
cursor = conn.cursor()

cursor.execute("""
    SELECT
        h.id AS phone_number,
        CASE WHEN m.is_from_me = 1 THEN 'SENT' ELSE 'RECEIVED' END AS direction,
        m.text,
        datetime(m.date/1000000000 + 978307200, 'unixepoch') AS msg_time,
        m.service
    FROM message m
    JOIN handle h ON m.handle_id = h.ROWID
    ORDER BY m.date DESC
""")

with open('/cases/case-2024-001/analysis/imessage_sms.csv', 'w') as f:
    f.write("phone,direction,text,timestamp,service\n")
    for row in cursor.fetchall():
        f.write(','.join(str(x) for x in row) + '\n')

conn.close()
PYEOF
```

### 步骤 5:提取位置数据并生成报告

```bash
# 从照片提取 GPS 数据
pip install pillow
python3 << 'PYEOF'
from PIL import Image
from PIL.ExifTags import TAGS, GPSTAGS
import os, json

def get_gps(exif_data):
    gps_info = {}
    for key, val in exif_data.items():
        decoded = GPSTAGS.get(key, key)
        gps_info[decoded] = val

    if 'GPSLatitude' in gps_info and 'GPSLongitude' in gps_info:
        lat = gps_info['GPSLatitude']
        lon = gps_info['GPSLongitude']
        lat_val = lat[0] + lat[1]/60 + lat[2]/3600
        lon_val = lon[0] + lon[1]/60 + lon[2]/3600
        if gps_info.get('GPSLatitudeRef') == 'S': lat_val = -lat_val
        if gps_info.get('GPSLongitudeRef') == 'W': lon_val = -lon_val
        return lat_val, lon_val
    return None

locations = []
photo_dir = "/cases/case-2024-001/mobile/ios_extraction/CameraRollDomain/Media/DCIM/"
for root, dirs, files in os.walk(photo_dir):
    for fname in files:
        if fname.lower().endswith(('.jpg', '.jpeg', '.heic')):
            try:
                img = Image.open(os.path.join(root, fname))
                exif = img._getexif()
                if exif and 34853 in exif:
                    coords = get_gps(exif[34853])
                    if coords:
                        locations.append({'file': fname, 'lat': coords[0], 'lon': coords[1]})
            except Exception:
                pass

with open('/cases/case-2024-001/analysis/photo_locations.json', 'w') as f:
    json.dump(locations, f, indent=2)
print(f"找到 {len(locations)} 张带地理标记的照片")
PYEOF

# 从 Android 提取位置历史(Google 位置历史)
# 文件:/data/data/com.google.android.gms/databases/lbs.db
# 或导出的 Google Takeout 位置数据
```

## 关键概念

| 概念 | 描述 |
|------|------|
| 逻辑提取(Logical extraction) | 通过设备 API 提取可访问的用户数据(联系人、消息、照片) |
| 文件系统提取(File system extraction) | 完整访问设备文件系统,包括应用数据库 |
| 物理提取(Physical extraction) | 包含已删除和未分配数据的设备存储逐位复制 |
| UFED | 通用取证提取设备(Universal Forensic Extraction Device)—— Cellebrite 的旗舰获取平台 |
| ADB | Android 调试桥(Android Debug Bridge),用于与 Android 设备通信 |
| KnowledgeC | iOS 数据库,记录详细的应用程序和设备使用模式 |
| SQLite 数据库 | 移动应用数据的主要存储格式(消息、联系人、历史记录) |
| Checkm8 | 基于硬件的 iOS 漏洞利用,可对 A5-A11 设备执行提取 |

## 工具与系统

| 工具 | 用途 |
|------|------|
| Cellebrite UFED | 商业移动设备获取和分析平台 |
| Cellebrite Physical Analyzer | 移动设备提取结果深度分析 |
| ALEAPP | 开源 Android 制品解析器和报告生成器 |
| iLEAPP | 开源 iOS 制品解析器和报告生成器 |
| libimobiledevice | 开源 iOS 通信库 |
| Magnet AXIOM | 商业移动端和计算机取证平台 |
| MEAT | 移动证据获取工具包(Mobile Evidence Acquisition Toolkit) |
| ADB | Android 调试桥,用于设备交互和数据提取 |

## 常见场景

**场景 1:刑事通信调查**
使用 UFED 物理提取获取设备,解密即时通讯数据库,提取 WhatsApp/Telegram/Signal 对话,从 WAL 文件中恢复已删除消息,建立通信时间线,导出供法律诉讼使用。

**场景 2:员工通过私人手机窃取数据**
在员工同意下执行逻辑提取,分析企业邮件和云存储应用数据,检查机密文件截图,审查文件传输应用活动,查看浏览器历史中的云上传记录。

**场景 3:失踪人员位置追踪**
提取 Google 位置历史中的位置数据,解析照片中的 GPS 数据,分析 WiFi 连接历史以确定最后已知位置,检查健身应用数据获取移动轨迹,查看即时通讯应用中的最后通信记录。

**场景 4:儿童剥削调查**
物理提取保留所有数据,包括已删除内容;对所有图像与 NCMEC/ICSE 数据库进行哈希比对;提取通信记录;从未分配空间恢复已删除媒体;严格记录证据保管链以备起诉。

## 输出格式

```
移动取证摘要:
  设备:          Samsung Galaxy S23 Ultra(SM-S918B)
  操作系统:      Android 14,One UI 6.0
  IMEI:          353456789012345
  提取方式:      物理提取(通过 Cellebrite UFED)
  耗时:          45 分钟

  已提取数据:
    联系人:        1,234 条
    通话记录:      5,678 条
    短信/彩信:     3,456 条
    WhatsApp 消息: 12,345 条(234 条已删除已恢复)
    Telegram 消息: 2,345 条
    照片/视频:     4,567 个(345 个含地理标记)
    浏览历史:      2,345 条 URL
    WiFi 网络:     67 个已保存连接
    已安装应用:    145 个

  关键发现:
    - 已恢复与嫌疑人的已删除 WhatsApp 对话
    - 23 张在案发现场拍摄的含地理标记照片
    - 与调查对象相关的浏览器搜索记录
    - 事件期间使用了 Signal 应用(已加密,部分恢复)

  报告:
    ALEAPP 报告:  /analysis/aleapp_report/index.html
    消息导出:     /analysis/whatsapp_messages.csv
    位置数据:     /analysis/photo_locations.json
```

Related Skills

testing-mobile-api-authentication

9
from killvxk/cybersecurity-skills-zh

测试移动应用 API 的认证与授权机制,识别认证失效、不安全的令牌管理、会话固定、 权限提升和 IDOR 漏洞。适用于对移动应用后端进行 API 安全评估、测试 JWT 实现、 评估 OAuth 流程或评估会话管理的场景。适合涉及移动 API 认证测试、令牌安全评估、 OAuth 移动端流程测试或 API 授权绕过的相关请求。

performing-yara-rule-development-for-detection

9
from killvxk/cybersecurity-skills-zh

通过识别可执行文件中的唯一字节模式、字符串和行为指标,开发精准的 YARA 恶意软件检测规则,同时将误报率降至最低。

performing-wireless-security-assessment-with-kismet

9
from killvxk/cybersecurity-skills-zh

使用 Kismet 通过被动射频监控进行无线网络安全评估,检测流氓接入点(Rogue AP)、隐藏 SSID、弱加密和未授权客户端。

performing-wireless-network-penetration-test

9
from killvxk/cybersecurity-skills-zh

执行无线网络渗透测试,通过捕获握手包、破解 WPA2/WPA3 密钥、检测流氓接入点以及使用 Aircrack-ng 和相关工具测试无线网络分段,评估 WiFi 安全性。

performing-windows-artifact-analysis-with-eric-zimmerman-tools

9
from killvxk/cybersecurity-skills-zh

使用 Eric Zimmerman 的开源 EZ Tools 套件(包括 KAPE、MFTECmd、PECmd、LECmd、JLECmd 和 Timeline Explorer)执行全面的 Windows 取证制品分析,解析注册表 hive、预取文件、事件日志和文件系统元数据。

performing-wifi-password-cracking-with-aircrack

9
from killvxk/cybersecurity-skills-zh

在授权无线安全评估中捕获 WPA/WPA2 握手包,并使用 aircrack-ng、hashcat 和字典攻击进行离线密码破解, 以评估密码短语强度和无线网络安全状况。

performing-web-cache-poisoning-attack

9
from killvxk/cybersecurity-skills-zh

在授权安全测试期间,通过未纳入缓存键的头部和参数毒化缓存响应,利用 Web 缓存机制向其他用户投递恶意内容。

performing-web-cache-deception-attack

9
from killvxk/cybersecurity-skills-zh

通过利用 CDN 缓存层与源服务器之间的路径规范化差异,执行 Web 缓存欺骗攻击,从而缓存并获取敏感的已认证内容。

performing-web-application-vulnerability-triage

9
from killvxk/cybersecurity-skills-zh

使用 OWASP 风险评级方法论对 DAST/SAST 扫描器的 Web 应用程序漏洞发现进行分类,区分真阳性和假阳性,并确定修复优先级。

performing-web-application-scanning-with-nikto

9
from killvxk/cybersecurity-skills-zh

Nikto 是一款开源 Web 服务器和 Web 应用程序扫描器,可针对超过 7,000 个潜在危险文件/程序进行测试,检查超过 1,250 个服务器的过期版本,并识别超过 270 个服务器的版本特定问题。

performing-web-application-penetration-test

9
from killvxk/cybersecurity-skills-zh

遵循 OWASP Web 安全测试指南(WSTG)方法论,对 Web 应用程序执行系统化安全测试,识别认证、授权、 输入验证、会话管理和业务逻辑中的漏洞。测试人员以 Burp Suite 作为主要拦截代理,结合手动测试技术 发现自动化扫描器遗漏的缺陷。适用于 Web 应用渗透测试、OWASP 测试、应用安全评估或 Web 漏洞测试等请求场景。

performing-web-application-firewall-bypass

9
from killvxk/cybersecurity-skills-zh

使用编码技术、HTTP 方法操控、参数污染和载荷混淆绕过 Web 应用防火墙保护,将 SQL 注入、XSS 及其他攻击载荷穿透 WAF 检测规则。