GHunt高级功能探索:Drive文件与地理位置情报

GHunt高级功能探索:Drive文件与地理位置情报

【免费下载链接】GHunt 🕵️‍♂️ Offensive Google framework. 【免费下载链接】GHunt 项目地址: 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接口进行数据获取,整个提取流程如下:

mermaid

核心元数据字段解析

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可以重建文件的目录结构:

mermaid

时间线分析

通过分析多个文件的时间戳元数据,可以构建活动时间线:

时间点文件操作涉及用户操作类型
2024-01-15 10:30project.docxuser@example.com创建
2024-01-16 14:22project.docxadmin@example.com修改
2024-01-17 09:15budget.xlsxuser@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元数据提取技术可以:

  1. 确定文件真实性:通过MD5校验和验证文件完整性
  2. 追踪用户活动:通过时间戳和修改记录重建用户操作时间线
  3. 识别协作模式:通过权限分析揭示团队协作关系
  4. 发现异常访问:通过权限变更记录检测未授权访问
安全评估应用

在安全评估中,这项技术可以帮助:

  1. 配置审计:检查文件共享设置是否符合安全策略
  2. 权限审查:验证敏感文件的访问控制是否适当
  3. 数据分类:基于元数据对文件进行敏感度分类

技术优势与局限

优势
  • 全面性:覆盖Google Drive所有重要元数据字段
  • 精确性:直接来自Google官方API的原始数据
  • 可扩展性:模块化设计支持自定义元数据提取
  • 效率优化:字段选择减少不必要的数据传输
局限
  • API限制:受Google API速率限制和配额约束
  • 权限依赖:需要适当的访问权限才能获取完整元数据
  • 数据延迟:某些元数据可能存在同步延迟

通过GHunt的Google Drive文件元数据提取技术,安全研究人员可以获得深度的文件情报,为数字调查和安全评估提供强有力的技术支持。这种技术的正确应用需要结合对Google生态系统和数字取证原则的深入理解。

文件权限与共享关系分析

在GHunt的Drive模块中,文件权限与共享关系分析是OSINT调查中的关键环节。通过深入解析Google Drive文件的权限结构,我们可以揭示文件的访问控制机制、共享范围以及潜在的安全风险。

权限模型架构

GHunt通过Drive API v2internal接口获取文件的完整权限信息,其权限模型采用基于角色的访问控制(RBAC)机制:

mermaid

权限角色类型分析

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从权限信息中提取用户身份数据,建立用户-权限映射关系:

mermaid

能力权限矩阵分析

除了基本的角色权限,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分析文件的父级文件夹关系,识别权限继承链:

mermaid

实际调查案例分析

在实际OSINT调查中,权限分析可以揭示重要信息:

  1. 敏感文件暴露:检测到anyoneWithLink权限可能表明文件被意外公开共享
  2. 内部人员识别:通过writer和commenter角色识别组织内部人员
  3. 行为模式分析:最后修改者信息结合时间戳分析用户活动模式
  4. 第三方应用访问:通过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的全球定位数据库中。

mermaid

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的处理流程包含以下几个关键步骤:

  1. 数据验证:检查输入的BSSID格式有效性
  2. API调用:向Google Geolocation服务发送认证请求
  3. 响应解析:提取经纬度坐标和精度信息
  4. 反向地理编码:使用Nominatim服务将坐标转换为可读地址
  5. 结果输出:格式化显示定位信息
# 响应数据结构示例
{
    "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接入点的信号强度和位置数据,实现精准定位。

mermaid

实战操作指南

基本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,其核心实现包含以下组件:

组件功能描述关键技术
GeolocationHttpAPI客户端封装异步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网络情报收集在多个安全场景中具有重要价值:

  1. 数字取证调查:通过设备连接的WiFi历史记录追踪物理位置
  2. 网络渗透测试:识别目标区域的无线网络基础设施
  3. 物理安全评估:分析敏感区域的无线信号覆盖范围
  4. 事件响应:在安全事件中追踪攻击者的物理位置

精度与限制

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. 【免费下载链接】GHunt 项目地址: https://gitcode.com/gh_mirrors/gh/GHunt

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值