인터페이스는 현지화되어 있으며, Skill 소개와 설명 문서는 선택한 언어로 AI가 자동 번역합니다. 코드·명령어·경로·전문 용어는 원문을 유지하며 원작자 문서가 우선합니다.
Skills 둘러보기
생산성 및 협업 · SKILL.md

performing-mobile-device-forensics-with-cellebrite

performing-mobile-device-forensics-with-cellebrite

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

Independent GitHub snapshot · Automated classification · Original documentation governs

Skill 문서

GitHub

name: performing-mobile-device-forensics-with-cellebrite description: 使用 Cellebrite UFED 和开源工具获取和分析移动设备数据,提取通信记录、位置数据和应用程序制品。 domain: cybersecurity subdomain: digital-forensics tags: [forensics, mobile-forensics, cellebrite, smartphone-analysis, ios-forensics, android-forensics] version: "1.0" author: mahipal license: Apache-2.0

使用 Cellebrite 执行移动设备取证

适用场景

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

前置条件

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

工作流程

步骤 1:准备设备并隔离

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

# 获取前记录设备状态
# 记录:品牌、型号、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:执行设备获取

# === 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)分析

# === 使用 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:提取通信和即时消息数据

# 从 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:提取位置数据并生成报告

# 从照片提取 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 的旗舰获取平台
ADBAndroid 调试桥(Android Debug Bridge),用于与 Android 设备通信
KnowledgeCiOS 数据库,记录详细的应用程序和设备使用模式
SQLite 数据库移动应用数据的主要存储格式(消息、联系人、历史记录)
Checkm8基于硬件的 iOS 漏洞利用,可对 A5-A11 设备执行提取

工具与系统

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

常见场景

场景 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
저장한 Skills