PowerMeta 通过使用特制的 Google 和 Bing 搜索,搜索特定域名在各个网站上公开可用的文件,然后允许从目标域名下载这些文件。检索文件后,可以使用 PowerMeta 分析与文件相关的元数据。元数据中常见的一些有趣内容包括用户名、域名、软件标题和计算机名称。
对于许多组织来说,在其外部网站上发布公开可用的文件是很常见的。很多时候,这些文件包含可能对攻击者有用的敏感信息,例如用户名、域名、软件标题或计算机名称。PowerMeta 使用类似 "site:targetdomain.com filetype:pdf" 的搜索字符串,在 Bing 和 Google 上搜索特定域名的文件。默认情况下,它搜索 "pdf、docx、xlsx、doc、xls、pptx 和 ppt"。
PowerMeta 使用 Phil Harvey 的 Exiftool 从文件中提取元数据信息。如果您希望直接从他的网站下载二进制文件,而不是使用本仓库中的文件,可以在此处找到:http://www.sno.phy.queensu.ca/~phil/exiftool/。只需确保运行 PowerMeta.ps1 时 exiftool 可执行文件位于同一目录中。默认情况下,它仅提取 'Author' 和 'Creator' 字段,因为这些字段通常包含用户名。但可以通过传递 -ExtractAllToCsv 标志为 PowerMeta 提取所有文件的元数据。
PowerShell 3.0 或更高版本
Google 的反机器人保护现在非常激进,几乎不可能直接抓取结果,因此使用 PowerMeta.ps1 可能会得到不稳定的结果。要解决此问题,最简单的办法是使用 Google 的 API。我在这里添加了一个名为 "PowerMeta-API.ps1" 的新脚本,正是为此目的。
以下是分步说明:
步骤 1: 创建 Google Cloud 项目
步骤 2: 启用自定义搜索 API
步骤 3: 创建 API 密钥
步骤 4: 创建自定义搜索引擎
使用以下命令运行:
.\PowerMeta-API.ps1 -TargetDomain "targetdomain.com" -ApiKey "<API key>" -SearchEngineId "<search engine ID>" -ExtractAllToCsv allmetadata.csv
C:\> powershell.exe -exec bypass
PS C:\> Import-Module PowerMeta.ps1
此命令将在 Google 和 Bing 上搜索 'targetdomain.com' 域名中以 pdf、docx、xlsx、doc、xls、pptx 或 ppt 为扩展名的文件。生成列表后,将提示用户是否要从目标域名下载文件。下载文件后,会再次提示是否从这些文件中提取元数据。
PS C:\> Invoke-PowerMeta -TargetDomain targetdomain.com
此命令将在 Google 和 Bing 上搜索 'targetdomain.com' 域名中以 pdf 或 xml 为扩展名的文件。然后会自动从目标域名下载它们并提取元数据。
PS C:\> Invoke-PowerMeta -TargetDomain targetdomain.com -FileTypes "pdf, xml" -Download -Extract
此命令将在 Google 和 Bing 上搜索 'targetdomain.com' 域名中以 pdf、docx、xlsx、doc、xls、pptx 或 ppt 为扩展名的文件,并将找到的文件链接写入名为 "target-domain-links.txt" 的文件中。
PS C:\> Invoke-PowerMeta -TargetDomain targetdomain.com -TargetFileList target-domain-links.txt
此命令将在 Google 和 Bing 上搜索 'targetdomain.com' 域名中以 pdf、docx、xlsx、doc、xls、pptx 或 ppt 为扩展名的文件,但仅搜索前两页。所有元数据 (不仅仅是默认字段) 将保存到名为 all-target-metadata.csv 的 CSV 文件中。
PS C:\> Invoke-PowerMeta -TargetDomain targetdomain.com -MaxSearchPages 2 -ExtractAllToCsv all-target-metadata.csv
此命令将简单地从文件夹 "\2017-03-031-144953" 中的所有文件中提取所有元数据,并保存到名为 all-target-metadata.csv 的 CSV 文件中。
PS C:\> ExtractMetadata -OutputDir .\2017-03-031-144953\ -ExtractAllToCsv all-target-metadata.csv
TargetDomain - 要搜索文件的目标域名。
FileTypes - 要搜索的文件扩展名列表,以逗号分隔。默认情况下 PowerMeta 搜索 "pdf, docx, xlsx, doc, xls, pptx, ppt"。
OutputList - 用于输出通过网络搜索发现的链接列表的文件。
OutputDir - 用于存储所有下载文件的目录。
TargetFileList - 要下载的文件链接列表。
Download - 传递此标志以自动下载找到的文件,而不是以交互方式提示。
Extract - 传递此标志以自动从找到的文件中提取元数据,而不是以交互方式提示。
ExtractAllToCsv - 所有元数据 (不仅仅是默认字段) 将从文件中提取到由此标志指定的 CSV 中。
UserAgent - 更改 PowerMeta 使用的默认 User Agent。
MaxSearchPages - 每个搜索引擎上搜索的最大页数。