GHunt高级功能探索:Drive文件与地理位置情报
【免费下载链接】GHunt 🕵️♂️ Offensive Google framework. 项目地址: https://gitcode.com/gh_mirrors/gh/GHunt
本文深入探讨了GHunt框架在Google Drive文件元数据提取和WiFi BSSID地理位置定位方面的高级功能。文章详细解析了GHunt如何通过Google Drive API v2internal接口提取超过60个关键元数据字段,包括文件基础信息、时间戳、所有权信息、权限控制和技术元数据等。同时,文章也介绍了GHunt利用Google Geolocation API实现精准的WiFi BSSID地理位置定位技术,通过分析WiFi接入点的MAC地址来确定设备的物理位置,为数字取证和OSINT调查提供重要的空间维度数据。
Google Drive文件元数据提取技术
Google Drive作为Google生态系统的核心存储服务,存储着大量用户的文档、图片、视频等文件。GHunt框架通过其强大的Drive模块,能够深入挖掘Google Drive文件的丰富元数据信息,为安全研究人员和调查人员提供宝贵的数字取证数据。
元数据提取技术架构
GHunt的Drive模块采用分层架构设计,通过Google Drive API v2internal接口进行数据获取,整个提取流程如下:
核心元数据字段解析
GHunt通过精心设计的request_fields列表,向Google Drive API请求超过60个关键元数据字段,这些字段涵盖了文件的各个方面:
| 元数据类别 | 关键字段 | 描述 |
|---|---|---|
| 基础信息 | title, mimeType, fileSize | 文件名、类型、大小等基本信息 |
| 时间戳 | createdDate, modifiedDate | 创建和修改时间记录 |
| 所有权信息 | owners, lastModifyingUser | 文件所有者和最后修改者 |
| 权限控制 | permissions, capabilities | 访问权限和能力设置 |
| 技术元数据 | md5Checksum, imageMediaMetadata | 文件校验和多媒体元数据 |
| 共享设置 | shared, linkShareMetadata | 共享状态和链接分享配置 |
高级元数据挖掘技术
1. 用户权限关系图谱
GHunt能够构建完整的用户权限关系图,通过分析permissions字段识别不同角色的用户:
# 用户角色分类示例
owners = [user for user in users if user.role == "owner"]
writers = [user for user in users if user.role == "writer"]
readers = [user for user in users if user.role == "reader"]
commenters = [user for user in users if user.role == "commenter"]
这种分析可以揭示文件的协作模式和访问控制策略,对于调查数据泄露或未授权访问至关重要。
2. 多媒体文件深度分析
对于图片和视频文件,GHunt提取丰富的多媒体元数据:
# 图片元数据提取
if file.image_media_metadata.height and file.image_media_metadata.width:
print(f"图片尺寸: {file.image_media_metadata.width}x{file.image_media_metadata.height}")
if file.image_media_metadata.rotation:
print(f"旋转角度: {file.image_media_metadata.rotation}")
# 视频元数据提取
if file.video_media_metadata.duration_millis:
duration = timedelta(milliseconds=file.video_media_metadata.duration_millis)
print(f"视频时长: {humanize.precisedelta(duration)}")
3. 来源应用追踪
通过sourceAppId字段,GHunt可以追踪文件的创建来源应用:
if file.source_app_id:
brand_found, brand = await cac.get_brand(as_client, file.source_app_id)
if brand_found:
print(f"创建应用: {brand.display_name}")
print(f"应用主页: {brand.home_page_url}")
这项技术可以识别文件是通过哪个应用程序创建的,为调查提供重要线索。
元数据关联分析技术
GHunt不仅提取单个文件的元数据,还能进行跨文件关联分析:
文件层级关系分析
通过parents字段,GHunt可以重建文件的目录结构:
时间线分析
通过分析多个文件的时间戳元数据,可以构建活动时间线:
| 时间点 | 文件操作 | 涉及用户 | 操作类型 |
|---|---|---|---|
| 2024-01-15 10:30 | project.docx | user@example.com | 创建 |
| 2024-01-16 14:22 | project.docx | admin@example.com | 修改 |
| 2024-01-17 09:15 | budget.xlsx | user@example.com | 创建 |
技术实现细节
API请求优化
GHunt使用字段选择技术优化API请求,只获取必要的元数据字段:
request_fields = [
'title', 'mimeType', 'createdDate', 'modifiedDate',
'owners', 'lastModifyingUser', 'permissions', 'capabilities',
'md5Checksum', 'imageMediaMetadata', 'videoMediaMetadata',
# ... 超过60个精选字段
]
params = {
"fields": ','.join(request_fields),
"supportsAllDrives": True
}
这种方法显著减少了网络传输数据量,提高了查询效率。
错误处理与恢复
GHunt实现了完善的错误处理机制:
try:
file_found, file = await drive.get_file(as_client, file_id)
if not file_found:
print("[-] 文件未找到")
return
except Exception as e:
print(f"[-] API请求失败: {str(e)}")
return
实际应用场景
数字取证调查
在数字取证场景中,GHunt的Drive元数据提取技术可以:
- 确定文件真实性:通过MD5校验和验证文件完整性
- 追踪用户活动:通过时间戳和修改记录重建用户操作时间线
- 识别协作模式:通过权限分析揭示团队协作关系
- 发现异常访问:通过权限变更记录检测未授权访问
安全评估应用
在安全评估中,这项技术可以帮助:
- 配置审计:检查文件共享设置是否符合安全策略
- 权限审查:验证敏感文件的访问控制是否适当
- 数据分类:基于元数据对文件进行敏感度分类
技术优势与局限
优势
- 全面性:覆盖Google Drive所有重要元数据字段
- 精确性:直接来自Google官方API的原始数据
- 可扩展性:模块化设计支持自定义元数据提取
- 效率优化:字段选择减少不必要的数据传输
局限
- API限制:受Google API速率限制和配额约束
- 权限依赖:需要适当的访问权限才能获取完整元数据
- 数据延迟:某些元数据可能存在同步延迟
通过GHunt的Google Drive文件元数据提取技术,安全研究人员可以获得深度的文件情报,为数字调查和安全评估提供强有力的技术支持。这种技术的正确应用需要结合对Google生态系统和数字取证原则的深入理解。
文件权限与共享关系分析
在GHunt的Drive模块中,文件权限与共享关系分析是OSINT调查中的关键环节。通过深入解析Google Drive文件的权限结构,我们可以揭示文件的访问控制机制、共享范围以及潜在的安全风险。
权限模型架构
GHunt通过Drive API v2internal接口获取文件的完整权限信息,其权限模型采用基于角色的访问控制(RBAC)机制:
权限角色类型分析
GHunt识别并分类以下主要权限角色:
| 角色类型 | 权限级别 | 典型能力 | 安全影响 |
|---|---|---|---|
| owner | 所有者 | 完全控制,包括删除和权限管理 | 高风险:可完全控制文件 |
| writer | 编辑者 | 修改内容,添加评论,可能共享 | 中高风险:可修改内容 |
| commenter | 评论者 | 仅查看和添加评论 | 低风险:只读访问 |
| reader | 阅读者 | 仅查看内容 | 低风险:只读访问 |
| none | 无权限 | 无访问权限 | 无风险:无法访问 |
共享链接权限检测
GHunt特别关注通过链接共享的权限配置,这是常见的信息泄露源头:
# 检测链接共享权限的代码逻辑
for perm in file.permissions:
if perm.id == "anyoneWithLink":
giving_roles = [perm.role.upper()] + \
[x.upper() for x in perm.additional_roles if x != perm.role]
print(f"\n[+] 检测到链接共享!授予角色: {humanize_list(giving_roles)}")
用户信息提取与关联
GHunt从权限信息中提取用户身份数据,建立用户-权限映射关系:
能力权限矩阵分析
除了基本的角色权限,GHunt还分析细粒度的能力权限:
# 能力权限检测示例
capabilities = sorted([k for k,v in inspect.getmembers(file.capabilities)
if v and not k.startswith("_")])
if capabilities != drive_knownledge.default_file_capabilities:
print(f"[+] 检测到特殊权限能力!")
for cap in capabilities:
print(f"- {inflection.humanize(cap)}")
权限继承与父级关系
GHunt分析文件的父级文件夹关系,识别权限继承链:
实际调查案例分析
在实际OSINT调查中,权限分析可以揭示重要信息:
- 敏感文件暴露:检测到
anyoneWithLink权限可能表明文件被意外公开共享 - 内部人员识别:通过writer和commenter角色识别组织内部人员
- 行为模式分析:最后修改者信息结合时间戳分析用户活动模式
- 第三方应用访问:通过authorizedAppIds检测第三方应用的访问权限
权限数据导出格式
GHunt支持将权限分析结果导出为结构化JSON格式:
{
"file": {
"id": "1N__vVu4c9fCt4EHxfthUNzVOs_tp8l6tHcMBnpOZv_M",
"title": "机密文档.docx",
"permissions": [
{
"role": "owner",
"emailAddress": "admin@example.com",
"userId": "1234567890"
},
{
"role": "writer",
"emailAddress": "user@example.com",
"userId": "0987654321"
}
]
},
"users": [
{
"email_address": "admin@example.com",
"gaia_id": "1234567890",
"name": "管理员",
"role": "owner",
"is_last_modifying_user": true
}
]
}
通过GHunt的深度权限分析功能,调查人员可以全面了解Google Drive文件的访问控制状况,识别潜在的安全风险,并为后续的情报收集提供关键线索。
BSSID地理位置定位原理
BSSID(基本服务集标识符)地理位置定位是一种基于Wi-Fi接入点MAC地址的精确定位技术,GHunt框架通过Google Geolocation API实现了这一高级功能。该技术利用全球范围内的Wi-Fi热点数据库,通过分析设备能够检测到的无线网络信号来确定设备的地理位置。
技术原理概述
BSSID定位的核心原理是基于Wi-Fi接入点的物理位置数据库。每个无线接入点都有一个唯一的MAC地址(BSSID),当这些接入点被Google街景车、Android设备或其他数据收集方式记录时,其地理位置信息会被存储到Google的全球定位数据库中。
API请求机制
GHunt通过Google Geolocation v1 API发送定位请求,请求载荷包含Wi-Fi接入点信息:
payload = {
"considerIp": False,
"wifiAccessPoints": [
{
"macAddress": "00:25:9c:cf:1c:ad" # 参考接入点
},
{
"macAddress": bssid # 目标BSSID
},
]
}
定位精度分析
BSSID定位的精度取决于多个因素:
| 因素 | 影响程度 | 说明 |
|---|---|---|
| 数据库覆盖率 | 高 | 目标BSSID是否在Google数据库中 |
| 信号强度 | 中 | 原始采集时的信号质量 |
| 接入点密度 | 高 | 区域内Wi-Fi热点的数量 |
| 环境干扰 | 中 | 建筑物、地形等物理障碍 |
典型的定位精度范围在20-100米之间,在城市环境中通常能达到较高的准确度。
数据处理流程
GHunt的处理流程包含以下几个关键步骤:
- 数据验证:检查输入的BSSID格式有效性
- API调用:向Google Geolocation服务发送认证请求
- 响应解析:提取经纬度坐标和精度信息
- 反向地理编码:使用Nominatim服务将坐标转换为可读地址
- 结果输出:格式化显示定位信息
# 响应数据结构示例
{
"accuracy": 35, # 精度(米)
"latitude": 48.8566, # 纬度
"longitude": 2.3522, # 经度
"address": { # 详细地址信息
"road": "Champs-Élysées",
"city": "Paris",
"country": "France"
}
}
技术限制与考虑
虽然BSSID定位技术强大,但也存在一些限制:
- 数据库依赖性:完全依赖Google的Wi-Fi位置数据库
- 隐私考虑:涉及无线网络信息的收集和使用
- 环境因素:在偏远地区或Wi-Fi覆盖稀疏区域效果较差
- 动态变化:接入点位置可能随时间变化而需要数据库更新
实际应用场景
BSSID地理位置定位在以下场景中具有重要价值:
- 数字取证调查:关联网络活动与物理位置
- 安全评估:识别未授权的网络接入点
- 网络映射:构建区域的无线网络拓扑
- 位置验证:确认设备或用户的真实地理位置
通过GHunt的geolocate模块,安全研究人员和调查人员能够快速有效地利用这一技术,将抽象的MAC地址信息转换为具体的地理位置情报,为OSINT操作提供重要的空间维度数据。
WiFi网络情报收集实战
在现代数字取证和开源情报(OSINT)调查中,WiFi网络信息往往能提供关键的地理位置线索。GHunt框架通过其强大的geolocate模块,为安全研究人员和调查人员提供了精准的WiFi BSSID地理位置定位能力。
BSSID定位技术原理
BSSID(Basic Service Set Identifier)是WiFi接入点的唯一标识符,通常以MAC地址形式呈现。GHunt利用Google的地理定位API,通过分析已知WiFi接入点的信号强度和位置数据,实现精准定位。
实战操作指南
基本BSSID定位
使用GHunt进行WiFi网络定位非常简单,只需提供目标BSSID地址:
ghunt geolocate 00:25:9c:cf:1c:ad
该命令将返回包含以下信息的详细报告:
- 定位精度:以米为单位的估计误差范围
- 经纬度坐标:精确的地理位置坐标
- 详细地址:反向地理编码得到的物理地址
- Google Maps链接:直接查看位置的快捷方式
高级批量定位
对于需要处理多个BSSID的场景,GHunt支持JSON格式的批量输入:
{
"considerIp": false,
"wifiAccessPoints": [
{"macAddress": "00:25:9c:cf:1c:ad"},
{"macAddress": "a0:b1:c2:d3:e4:f5"},
{"macAddress": "11:22:33:44:55:66"}
]
}
保存为wifi_networks.json后执行:
ghunt geolocate --input-file wifi_networks.json
JSON输出格式
GHunt支持将定位结果导出为结构化的JSON格式:
ghunt geolocate 00:25:9c:cf:1c:ad --json location_data.json
生成的JSON文件包含完整的定位信息:
{
"accuracy": 45,
"latitude": 48.8566,
"longitude": 2.3522,
"address": {
"city": "Paris",
"country": "France",
"country_code": "fr",
"postcode": "75000",
"road": "Champs-Élysées"
},
"pretty_address": "Champs-Élysées, Paris, France"
}
技术实现细节
GHunt的WiFi定位功能基于Google Geolocation API v1,其核心实现包含以下组件:
| 组件 | 功能描述 | 关键技术 |
|---|---|---|
| GeolocationHttp | API客户端封装 | 异步HTTP请求处理 |
| GeolocationResponse | 响应数据解析 | 数据模型映射 |
| Nominatim集成 | 反向地理编码 | 地址信息转换 |
# GHunt地理位置API调用示例
async def geolocate_bssid(bssid: str):
geo_api = GeolocationHttp(ghunt_creds)
found, resp = await geo_api.geolocate(as_client, bssid=bssid)
if found:
return {
"accuracy": resp.accuracy,
"latitude": resp.location.latitude,
"longitude": resp.location.longitude
}
应用场景分析
WiFi网络情报收集在多个安全场景中具有重要价值:
- 数字取证调查:通过设备连接的WiFi历史记录追踪物理位置
- 网络渗透测试:识别目标区域的无线网络基础设施
- 物理安全评估:分析敏感区域的无线信号覆盖范围
- 事件响应:在安全事件中追踪攻击者的物理位置
精度与限制
GHunt的WiFi定位精度受多种因素影响:
| 因素 | 影响程度 | 说明 |
|---|---|---|
| WiFi数据库覆盖 | 高 | Google数据库中的接入点数量 |
| 信号强度数据 | 中 | 历史信号测量数据的完整性 |
| 城市vs农村 | 高 | 城市地区精度通常更高 |
| 接入点密度 | 中 | 密集区域的定位更准确 |
典型的定位精度范围在20-100米之间,在城市环境中往往能达到更高的精度水平。
最佳实践建议
为了获得最佳的WiFi定位效果,建议遵循以下最佳实践:
- 多BSSID输入:同时提供多个相邻接入点的BSSID以提高精度
- 验证数据源:确保BSSID格式正确且来自可靠来源
- 结合其他数据:将WiFi定位结果与IP地理定位、手机基站数据等结合使用
- 考虑隐私法规:在调查中遵守相关的数据保护和隐私法律法规
通过GHunt的WiFi网络情报收集功能,安全专业人员能够快速、准确地获取目标设备的物理位置信息,为数字调查和网络安全评估提供强有力的技术支持。
总结
GHunt框架通过其强大的Drive模块和geolocate模块,为安全研究人员和调查人员提供了深入的Google Drive文件元数据提取和精准的WiFi BSSID地理位置定位能力。在Drive文件分析方面,GHunt能够提取丰富的元数据信息,包括文件基础信息、时间戳、所有权信息、权限控制和技术元数据等,并通过用户权限关系图谱、多媒体文件深度分析和来源应用追踪等技术进行深度挖掘。在地理位置定位方面,GHunt利用Google Geolocation API和全球Wi-Fi热点数据库,通过BSSID/MAC地址实现精确的地理定位,典型精度范围在20-100米之间。这些高级功能为数字取证调查、安全评估和OSINT操作提供了强有力的技术支持,帮助研究人员获取深度的文件情报和重要的地理位置线索。
【免费下载链接】GHunt 🕵️♂️ Offensive Google framework. 项目地址: https://gitcode.com/gh_mirrors/gh/GHunt
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



