
<div align="center">
一款专业的安卓Chrome浏览器数字取证工具 | 基于CVE-2024-0044漏洞实现非Root设备数据提取
Version
Author
Platform
</div>
本项目是一个专为数字取证调查设计的专业工具,利用 CVE-2024-0044 (Run-as) 漏洞,绕过安卓12/13设备的权限限制,实现对Google Chrome浏览器数据的深度提取与分析。该工具无需Root权限,即可完整解析Chrome的SQLite数据库,生成详细的取证报告,帮助安全专家快速定位关键证据和可疑行为。
result_chrome_forensic.xlsx) 中,包含多个数据表,便于查阅和分析。hack、tor、bank),自动对URL进行匹配,并在报告中生成“警报”页,高亮潜在的可疑活动。pandas、colorama 和 openpyxl (通常由pandas调用) 等库。使用以下命令一键安装:pip install -r requirements.txt如果项目未提供 _requirements.txt__,请手动安装核心依赖:_pip install pandas colorama openpyxlresult_chrome_forensic.xlsx 文件。打开此文件即可查看所有解析后的数据。以下是如何快速开始取证的示例:
# 这仅仅是示意工具的内部工作流程,用户通常只需运行主脚本
# 1. 自动扫描当前目录下的所有Chrome数据库文件
found_dbs = find_database_files()
print(f"找到数据库: {found_dbs}")
# 2. 解析History数据库
history_df = parse_history(found_dbs.get('History'))
# 3. 根据关键词标记可疑记录
suspicious_df = flag_suspicious_urls(history_df, SUSPICIOUS_KEYWORDS)
# 4. 将所有数据写入Excel报告
with pd.ExcelWriter('result_chrome_forensic.xlsx') as writer:
history_df.to_excel(writer, sheet_name='Browsing History', index=False)
suspicious_df.to_excel(writer, sheet_name='ALERTS - Suspicious', index=False)
# ... 写入其他数据表核心脚本 chrome_forensic.py 提供了以下主要函数:
find_database_files(): 自动递归查找 History, Cookies, Web Data, Login Data 等目标数据库。print_status(): 美化控制台输出,显示不同级别的日志信息。(parse_*): 一系列内部函数(如解析History、Cookies)用于处理SQLite数据并将其转换为Pandas DataFrame,便于后续分析和导出。此函数是取证的第一步,它通过递归遍历目录,智能定位Chrome的各类SQLite数据库文件,为后续的数据解析奠定基础。
# === CORE: 数据库自动发现器 ===
def find_database_files():
"""
自动在当目录及所有子目录中搜索Chrome的数据库文件。
例如:在模拟的安卓数据分区内查找 data/data/com.android.chrome/...
"""
found_files = {}
print_status("正在扫描目录,查找Chrome数据库...", "INFO")
for root, dirs, files in os.walk("."):
for key, target_name in TARGET_DB_NAMES.items():
if target_name in files:
# 构建文件的完整路径
full_path = os.path.join(root, target_name)
# 简单策略:优先选择包含'Default'路径的配置文件,否则使用第一个找到的
if key not in found_files or 'Default' in root:
found_files[key] = full_path
print_status(f"找到 {key} 数据库: {full_path}", "SUCCESS")
return found_files此函数体现了工具的智能分析能力。它通过预定义的关键词库对提取出的URL进行匹配,自动筛选出高风险记录,极大提升了调查员的审查效率。
# === CORE: 可疑URL标记器 ===
# 全局定义的关键词库
SUSPICIOUS_KEYWORDS = [
'hack', 'admin', 'login', 'password', 'tor', 'onion',
'shell', 'root', 'porn', 'bokep', 'bank', 'transfer',
'weapon', 'senjata', 'narkoba', 'drug', 'wa.me', 't.me'
]
def flag_suspicious_urls(history_df):
"""
基于预定义的关键词列表,自动标记历史记录中的可疑URL。
Args:
history_df (pd.DataFrame): 包含 'url' 列的浏览历史DataFrame。
Returns:
pd.DataFrame: 仅包含被标记为可疑的URL的记录。
"""
if history_df is None or history_df.empty:
return pd.DataFrame()
suspicious_records = []
for index, row in history_df.iterrows():
url = row.get('url', '')
# 检查URL中是否包含任何可疑关键词
if any(keyword in url.lower() for keyword in SUSPICIOUS_KEYWORDS):
suspicious_records.append(row)
return pd.DataFrame(suspicious_records)该函数通过使用 colorama 库,为不同级别的日志信息(信息、成功、警告、错误)提供彩色输出,使得取证过程的可读性大大增强,方便用户实时监控工具状态。
# === CORE: 彩色控制台输出 ===
from colorama import init, Fore, Style
init(autoreset=True)
def print_status(msg, status='INFO'):
"""
根据状态类型,打印带有颜色前缀的状态消息。
Args:
msg (str): 要打印的消息内容。
status (str): 消息类型 ('INFO', 'SUCCESS', 'WARN', 'ERROR')。
"""
if status == 'INFO':
print(f"{Fore.CYAN}[*] {msg}")
elif status == 'SUCCESS':
print(f"{Fore.GREEN}[+] {msg}")
elif status == 'WARN':
print(f"{Fore.YELLOW}[!] {msg}")
elif status == 'ERROR':
print(f"{Fore.RED}[-] {msg}")
```FINISHED6HFtX5dABrKlqXeO5PUv/0kuC9tuyONaib4sAXa62IUgNqEgqzCq+2sIyyTFI4kJ
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。