安卓取证ADB MCP服务器
一个全面的模型上下文协议(MCP)服务器,用于使用Android调试桥(ADB)进行Android设备取证数据采集。该工具是为获得适当同意和授权的法医调查人员设计的。
⚠️ 法律声明
此工具用于 仅授权法医调查用户必须具备:
- 访问设备的合法授权
- 设备所有者的书面同意
- 遵守当地法律法规
- 适当的监管链文件
未经授权访问设备是非法和不道德的。
特性
核心能力
- 设备管理:通过ADB连接和管理Android设备
- 安全命令执行:为安全起见,将shell命令列入白名单
- 完整设备备份:创建完整的设备备份(.ab格式)
- 备份提取:将Android备份(.ab)转换为TAR格式(adb备份提取的Python端口)
- 数据采集:拉取特定文件和目录
- 法医文物收藏:自动收集常见法医文物
- 元数据和保管链:自动生成取证元数据
MCP工具可用
- check_ad_状态:验证ADB的安装和可用性
- adb设备:列出所有已连接的Android设备
- adb_connect_device:连接到特定设备
- adb_shell_命令:执行白名单shell命令
- get_device_info:获取全面的设备信息
- list_installed_packages:列出所有已安装的应用程序
- adb_backup_device:创建完整设备备份
- adb_pull_data:从设备中提取文件/文件夹
- 提取备份:将.ab备份提取为TAR格式
- 收藏、研究、艺术:自动工件收集
先决条件
所需软件
- Python 3.13+:MCP服务器需要
- Android平台工具:安装ADB
- 下载:https://developer.android.com/tools/releases/platform-tools - 添加到系统PATH
- UV包装管理器:已在您的环境中配置
Android设备要求
- USB调试已启用(设置→ 开发人员选项→ USB调试)
- 数据采集过程中设备解锁
- USB电缆连接或网络ADB连接
安装
- 安装依赖项:
uv sync- 验证ADB安装:
adb version- 测试服务器:
uv run mcp dev main.py用法
运行服务器
开发模式(配备MCP检查员)
uv run mcp dev main.py生产模式(克劳德桌面集成)
uv run mcp install main.py --name "Android Forensics"Claude桌面配置
添加 claude_desktop_config.json:
{
"mcpServers": {
"android-forensics": {
"command": "uv",
"args": [
"--directory",
"u:\\adb-connect",
"run",
"main.py"
],
"env": {
"PYTHONUNBUFFERED": "1"
}
}
}
}示例工作流
1.基本设备连接
1. Check ADB status: check_adb_status()
2. List devices: adb_devices()
3. Connect to device: adb_connect_device(device_id="DEVICE_SERIAL")
4. Get device info: get_device_info(device_id="DEVICE_SERIAL")2.完整设备备份
1. Create backup:
adb_backup_device(
output_file="evidence_backup.ab",
device_id="DEVICE_SERIAL",
include_apk=True,
include_shared=True,
all_apps=True
)
2. Extract backup:
extract_backup_to_tar(
backup_file="evidence_backup.ab",
output_tar="evidence_backup.tar",
password="optional_password"
)3.收集法医文物
collect_forensic_artifacts(
output_dir="./forensic_evidence",
device_id="DEVICE_SERIAL"
)4.执行Shell命令
adb_shell_command(
command="pm list packages",
device_id="DEVICE_SERIAL"
)安全功能
命令白名单
只允许使用以下shell命令:
- 文件操作:
ls,cat,pwd,find,du,df - 系统信息:
getprop,dumpsys,uname,date,uptime - 包管理:
pm,am - 流程管理:
ps,top - 网络:
netstat,ip,ifconfig - 日志:
logcat - 设置:
settings,content - 屏幕:
screencap,wm
验证
- 命令在执行前经过验证
- 壳牌运营商(
;,&&,||,|)已检查 - 超时限制防止挂起进程
- 所有操作的错误处理
备份提取详细信息
这 extract_backup_to_tar 该工具是Python实现的 adb备份提取 项目。
支持的功能
- ✅ 未加密的备份
- ✅ 加密备份(带密码)
- ✅ 压缩备份(zlib)
- ✅ AES-256解密
- ✅ PBKDF2密钥推导
备份文件格式
Android备份(.ab)具有以下结构:
ANDROID BACKUP\n
version\n
compressed (0 or 1)\n
encryption (none or AES-256)\n
[encryption metadata if encrypted]
[compressed/encrypted data]法医最佳实践
监管链
所有操作都会生成元数据,包括:
- 时间戳(ISO 8601格式)
- 设备序列号
- 已执行操作
- 调查员信息
- 文件哈希(如适用)
证据收集
- 记录一切:使用
get_device_info()第一 - 创建完整备份:使用
adb_backup_device()完全收购 - 哈希证据:计算所有收集文件的SHA-256哈希值
- 维护日志:保留所有命令输出和错误
- 撰写保护证据:立即将备份存储为只读
推荐工作流程
1. Connect device and verify connection
2. Document device information
3. Take screenshots of device state
4. Create full backup
5. Extract backup to TAR
6. Collect specific artifacts
7. Generate forensic report
8. Calculate and document all hashes
9. Store evidence securely故障排除
未找到ADB
# Windows: Add to PATH or use full path
$env:PATH += ";C:\path\to\platform-tools"
# Verify
adb version未检测到设备
- 在设备上启用USB调试
- 在设备上接受RSA指纹
- 尝试不同的USB电缆/端口
- 检查
adb devices输出
备份失败
- 确保设备已解锁
- 在设备屏幕上确认备份
- 检查可用存储空间
- 某些应用程序可能会阻止备份
权限不足
- 许多取证工件需要root访问权限
- 使用
adb root如果设备已获得root权限 - 考虑使用TWRP恢复进行完全访问
建筑
项目结构
adb-connect/
├── main.py # MCP server implementation
├── pyproject.toml # Dependencies and configuration
├── README.md # This file
└── .python-version # Python version specification关键组件
- MCP服务器:基于FastMCP的服务器,带有工具注册功能
- ADB包装器:使用子进程安全执行命令
- 备份提取器:基于密码学的.ab到.tar转换器
- 法医收藏家:自动工件采集
- 元数据生成器:监管链文件
依赖项
- mcp\[cli\] >=1.19.0:模型上下文协议SDK
- 密码学 >=43.0.0:备份解密(AES-256、PBKDF2)
- 皮丹提克 >=2.0.0:数据验证和序列化
贡献
这是一种取证工具——贡献应优先考虑:
- 安保和安全
- 法律遵循
- 证据完整性
- 文档的质量
参考文献
许可证
MIT许可证-有关详细信息,请参阅许可证文件。
免责声明
该工具仅用于合法的法医调查。作者和贡献者不对任何滥用或非法活动负责。在访问任何设备之前,始终确保您有适当的授权。
______________________________________________________________________
供法医调查部门使用:该工具旨在支持您的授权调查,同时充分尊重法律要求和监管链程序。
