元数据检索和分析工具-FOCA

念旧   ·   发表于 2022-10-16 20:44:24   ·   安全工具

0. 注意事项

本工具以及文章中的内容仅供与学习或合法渗透测试,使用时请遵守中华人民共和国网络安全法:http://www.gov.cn/xinwen/2016-11/07/content_5129723.htm
如果您在使用的过程中存在任何非法行为, 或造成了任何后果, 您需自行承担相应责任, 我们将不承担任何法律及连带责任。

1. 前言

  • 大家好,我是zkaq-念旧,今天来给大家介绍一下“元数据”以及元数据检索和分析工具“FOCA”
  • 本文章使用到的软件安装包放在了文章末尾;同时你也可以在查看文章的过程中,到官网进行下载
  • 对于渗透测试来说,能否获取目标的敏感信息非常关键,因为这可以增加攻击成功的几率
  • 敏感信息有很多,例如员工姓名、电话号码、电子邮件地址和客户端软件版本等信息
  • 而这类信息来源之一是文档元数据

2. 元数据介绍

2.1 什么是元数据?

  • 元数据就是“数据的数据
    • 元数据主要用来描述一些数据的属性,用来指示一些数据,例如文件存储位置、地理坐标、历史数据等
  • 某些应用程序(例如Msoffice办公软件),会在保存到磁盘的文件中,存储任意信息(在你不知道的情况下)
    • 例如地理坐标、应用程序版本、操作系统信息和用户名等

2.2 如何查看元数据?

  • 元数据在很多种文档中都有存储
    • 例如.doc、.xls、.ppt等后缀的文件
    • 通常我们是看不见元数据的,现在教大家怎么查看以上文件中的元数据
  1. 我们在电脑上面新建一个Word文档,打开文档并随便写入一点内容,然后关闭

  2. 修改Word文档的后缀名,将.docx修改为.zip

  3. 什么?你问我为什么改成.zip后缀,难道要解压?

    • 没错,我们使用压缩软件解压这个Word文档(这里用的是某60)
    • 可能很多人不知道,Word文档其实是可以解压的


  1. 解压成功,而且没有报错,我们打开文件夹,这就是Word文档的结构

    • Word文档是使用xml来存储数据的
  2. 可以看到一大堆的文件和内容,我们的主要关注点是在/word/和/docProps/当中

2.3 /word/目录(内容区)

  • 该目录主要存储的是Word文档的相关样式,还有用户输入的内容等
  1. 这个文件记载了Word文档的一些字体信息,例如“等线中文”之类的

  2. 我们再看看下一个文件,可以看到,我们之前输入的内容都存储在这里面

    • 你在Word文档中输入的内容越多,这个文件的大小也会随之增加
  3. 这个文件记载了Word文档的样式

2.4 /docProps/目录(元数据区)

  • 该目录记载了Word文档的相关属性,例如软件版本、用户名等
  1. app.xml记载了你所使用的软件信息,例如:

    • 你使用的软件是Microsoft Office Word
    • 使用的软件版本是16.0000

  2. 根据版本对照表,我使用的是Office 2016,所以显示的是16,没毛病

    • 什么?你问我用的是正版还是破解版?(咳咳,你应该懂的)
    • 另外,我这里登录的用户是ThinkPad
  3. core.xml记载了元数据的主要内容

    • 上面我提到了,我登录的用户是ThinkPad,元数据给我记录了
      • \指的是创建这个文档的用户
      • \上一次编辑这个文档的用户
      • 由于创建和编辑都是我,所有只有一个用户名ThinkPad
    • 还有我编辑Word文档的时间,也给我记录了
    • 我这里显示的数据比较少,假如我把定位开了,还有可能把我的地理位置给记录进去
  4. 试想一下

    • 某人编辑了一个Word文档,将自己的地理位置等敏感信息记录到了元数据当中
    • 由于元数据通常情况下也看不见,某人就毫无防备地将这个Word文档发布到了网上
    • 某攻击者下载了这个Word文档,并提取了其中的元数据
    • 那么攻击者就掌握了这个人的地理位置等敏感信息
  • 是不是很可怕?
    • 我:等下,你们翻我的文章干啥?
    • 某些同学:看你有没有上传文档之类的
    • 我:我真的栓q

2.5 其它类型的文档

  • 上面提到,除了.doc的其它文件也存在元数据
  1. 我们新建Excel表格和PPT,修改后缀为.zip,然后依次解压,也成功了,没有报错

  2. 每个不同后缀名的文件,解压后的文件可能都不太一样,但是结构大致都相同

  • 更多类型的文档可以自行探索,这里就不再一个个介绍

2.6 网络上的文档

  • 我们可以利用Google语法,对某个企业或攻击目标的文档进行搜索,并提取其中的元数据
  1. 我这里使用了Bing搜索,搜索语法和Google差不多

  2. 像前面教的一样,修改后缀名,解压

  3. 可以看到,文件数量和大小 比我之前新建的Word文档多了很多

    • 使用的是Office 2016
    • 创建文档的用户是dell,最后一次编辑的用户是qian xu
      • 看到dell可以想到什么?—-这个老师用的可能是戴尔的电脑
    • 还有时间:最后一次打印的时间2018年5月、创建时间2022年4月、最后一次编辑的时间2022年4月

  4. 可能有同学会问:打印在2018年,可是创建时间是2022年?穿越了?

    • 这个我也不太清楚,有可能创建确实是在2022年,但是打印时 使用的计算机时间不对
    • 为此我做了个实验,我将自己的计算机时间调到了1992年
    • 然后打开之前的Word文档,编辑后保存,再次解压
    • 可以看到,创建时间2022年,但是我在1992年就已经编辑了这个文件(我也穿越了!)


  5. 什么?你问我元数据里面的时间为什么不准?不是1992年吗,怎么变成1991年了

    • 我们使用的是北京时间
    • 文档使用的可能是其它的时间,例如m国时间,有时间差

3. 批量提取元数据的方法

3.1 批量提取元数据的方法

  • 如果像上面教的,一个个文档改后缀名,一个个解压,一个个查看,那就太麻烦了,有没有简便点的方法?
  1. 编写脚本提取元数据

    • 目前很多语音都有提取元数据的功能,例如Python、Java、Golang等
    • 但是考虑到大多数人可能不会语言,所以这里不进行讲解
  2. 使用工具进行提取

3.2 FOCA介绍

  • FOCA(Fingerprinting Organizations with Collected Archives)

    • 是一款在文档中查找元数据和隐藏信息的工具;
    • 这些文件可能在网络上,尚未下载到本地,可以通过FOCA进行自动化下载和分析;
    • 它能够分析各种文档,最常见的是 Microsoft Office、Open Office 或 PDF 文件,但它也可以分析 Adobe InDesign 或 SVG 文件等;
    • 在安装了FOCA运行后,通过Google、Bing 和 DuckDuckGo 等搜索引擎,可寻找各种文件类型,包括DOC,PDF,XLS,PPT模板,甚至Adobe文件;
    • 还可以添加本地文件,从图形文件中提取EXIF信息,甚至在下载文件之前,就可以通过对URL发现的信息进行完整的分析;
    • 从文件中提取数据后,FOCA通过对URL发现的信息进行完整分析,匹配信息以识别哪些文档是由同一团队创建的,以及可以从中推断出有哪些服务器和客户端。
  • 另外,FOCA还是一款开源软件,可以在Github上面找到它

3.3 FOCA下载和安装

  1. 我们直接在Github下载FOCA的压缩包:https://github.com/ElevenPaths/FOCA/releases

  2. 下载完成之后,解压,FOCA不需要安装,解压之后就可以使用,看到那个.exe文件了吗,双击它

  3. 双击之后,FOCA会进行加载,然后报了一个错误,这个错误的意思是:FOCA需要SQL Server数据库,你需要配置数据库连接


3.4 SQL Server数据库下载和安装

  • FOCA需要SQL Server数据库才能进行使用
  1. 在官网下载SQL Server:https://www.microsoft.com/en-IN/sql-server/sql-server-downloads

    • 要下载的版本是Express,我们点击下面的“Download now”即可下载安装包
  2. 然后我们双击安装包,进行安装

  3. 我在安装的过程中,出现了个问题,安装程序一直卡在这个界面

  4. 然后我就上网搜索相关的问题,一直没有找到合适的解决方法,直到…

  5. 然后就按照提示进行安装,大部分选项默认即可,安装路径有需要的话可以更改




  6. 这里检查防火墙不通过,我们将防火墙关闭,然后点击“重新运行”(有杀毒的可以把杀毒退掉)


  7. 红框内的选项可以不要,把√去掉即可,其它默认

  8. 这里我们选择“默认实例”

  9. 这里我添加了SQL Server的身份验证

    • 一个是使用Windows系统账号密码进行登录
    • 一个是使用SQL Server账号密码进行登录
    • 混合模式支持以上2种登录方式
  1. 安装进度有点慢,需要耐心等待

  2. 安装完成之后,我们打开菜单里的“SQL Server 2019 配置管理器”

    • 可以看到,SQL Server服务“正在运行”


  1. 我们打开FOCA,尝试连接SQL Server数据库

    • 注意:SQL Server必须开启远程连接功能,我这里安装之后默认是开启的,可以尝试连接一下,如果不行的话百度“SQL Server开启远程连接”,根据教程进行开启
    • Server name服务器名称,我这里填的是计算机名,计算机名大家应该知道怎么看…吧(不会百度)
      • 填IP地址不知道行不行,同学们可以尝试一下
    • 我这里选择了SQL Server的身份验证,用户名默认是sa,密码是安装时你自己设置的(参考上面的第9步)
  2. 连接成功,显示了FOCA的界面,至此,准备工作就完成了

    • 什么?你说准备工作好长,劝退了
    • 我也花了好长时间,主要是这SQL Server是真麻烦,安装又慢(微软给我爬)

3.5 安装SQL Server时踩的坑

  • 是哪个小傻子安装SQL Server装了大半天?噢,是我自己,md…越想越气
  1. 服务器配置,这里我踩了坑,一直安装不成功,如图

    • 数据库引擎一直安装失败失败再失败,上网查了好久(下面的图片是我从网上找来的,我不想再装一次了)
    • 找到一篇文章说缺少.net,一查计算机我确实缺少.net,然后开启了.net,还是安装失败=-=


  2. 最后发现,貌似是权限问题

    • 这里安装使用了默认的用户,可能权限不够,所以没有安装成功
    • 我们点击浏览,尝试更换用户
  3. 高级 -> 立即查找 -> 我这里直接选了SYSTEM,最高权限 -> 确定 -> 再次安装,成功

    • 我忘记是在哪篇文章里看到的了,找不到了(失落)



  4. 终于把SQL Server安装好了,微软我r…咳咳,文明文明

4. 使用FOCA提取元数据

4.1 FOCA

  1. 我们先点击Cancel关闭这个窗口,暂时不需要

  2. 这个就是FOCA的真正面貌了

4.2 提取本地文件的元数据

  1. 我们右键中间的空白区域,有3个选项是亮着的

    • 添加文件
    • 添加文件夹
    • 从一个文件中批量读取URL
      • FOCA可以分析URL,并在网上搜索这个URL的相关资产,然后进行元数据提取
  2. 添加文件,我们把刚刚新建的Word文档导入进来,可以看到上方有英文的标题,分别是:

    • 文件序号
    • 文件类型
    • 文件URL(网址或本地路径)
    • 是否已经下载(没有为红色的叉×,有则为绿色的圆点·)
    • 下载时间
    • 文件大小
    • 是否已经进行元数据提取(红色的叉×/绿色的圆点·)
    • 是否已经进行元数据分析(红色的叉×/绿色的圆点·)
    • 修改时间
  3. 我们右键这条记录,然后选择“Extract Metadata”进行元数据提取

  4. 提取元数据之后,我们可以看到左边的内容展开了,条目内容分别是:

    • 文件(目前只有“新建Word文档”一个,所以显示数量为1)
    • metadata summary是元数据的统计列表
    • Users发现的用户名
    • Folders发现的文件夹
    • Printers打印机
    • Sofaware软件
    • Emails电子邮件地址
    • Operating Systems操作系统
    • Passwords密码
    • Servers服务
    • malware summary是恶意软件的统计列表

  1. 我们点击Users和Software条目,可以看到一个用户名“ThinkPad”和软件“Microsoft Office”
    • 正是我们在前面解压之后看到的内容,FOCA成功地将其中的数据给提取了出来

4.3 搜索网络文件

  • 前面我们提到,FOCA还可以自动下载和分析目标的元数据
    • 当然,不是全自动的(不然还要你来干嘛,诶诶诶轻点!啪!)
  1. 我们点击“New project”新建一个项目

  1. 我这里选择微软的microsoft.com域名作为攻击目标(咳咳,不是针对啊)

    • 原本在网上随便挑选了一个幸运儿作为攻击目标,想想还是算了(原谅我)
    • 然后点击Create进行创建
    • Import可以导入现有的项目

  2. 可以看到,上面出现了很多内容,可以定义搜索文档的规则

    • 我这里选择使用Bing,搜索Office基本的3个文档类型
  3. 你也可以点击Custom search自定义搜索规则,语法就是Google语法、Bing语法之类的

  4. 点击最右边的“Search All”,就可以搜索你选择的类型

    • 搜索完成之后,下方会有一条记录,我这里显示搜索结果为0
  5. 怎么搜索结果会是0呢?我们手动在Bing上搜索看看效果

    • 我们手动可以搜索出很多文档,但是FOCA一条记录都没有搜索到
    • 这时有人会说了,这FOCA是假的吧
  6. 我们使用Google搜索看一看

    • 然后你会发现,FOCA搜索卡住了
    • 为什么呢?因为访问Google需要科学上网,也就是翻qiang
    • 如图,我们使用Google搜索失败了,下面的DuckDuckGo也是国外搜索引擎,也需要翻qiang
  7. 会不会是因为没有翻墙,所以Bing才没有搜索出结果呢

    • 我们点击左下角的“Setting”,可以看到一些功能的设置,你可以开启或关闭这些功能
    • 我们点击“debug”选项将其开启

  8. 开启debug选项之后,你会看到旁边多了很多记录

    • 仔细一看,发现FOCA使用的Bing接口是www.bing.com
    • www.bing.com也是境外网站,我们在国内访问会自动跳转到cn.bing.com
  9. 这里我选择科学上网,只为了给大家做个实验(找个科学方法费了我半天)

    • 如何科学上网这里就不讲解了,容易被jc叔叔请过去
    • 我在此承诺,科学上网只为了学习,绝对绝对没有做奇奇怪怪的事情
  10. 科学上网之后,我们将Google和Bing勾选,再次点击“Search All”

    • 可以看到,搜索出了很多的内容(科学上网就是妙啊)
    • 如果你觉得数量已经够了,可以点击最右边的“Stop”终止运行,FOCA就会停止搜索数据了

4.4 下载网络文件

  1. 如图,Download一栏是红色的叉×,表示文件没有下载

    • FOCA只是从网络上搜索到了这个文档,但是还没有下载到本地
    • 我们可以右键,然后选择“Download All”下载全部,FOCA就会自动将列表中的所有文档下载到本地
    • 如果你只想下载其中的某些文档
      • 可以按住键盘的“Ctrl”键,然后鼠标左键点击你想要的记录,就可以同时选中多条记录
      • 然后点击“Download”下载,就会将你选中的记录下载到本地


  2. 如果你下载到一半,突然不想要那么多,可以右键

    • “Stop Download” 停止下载 你当前选中的这条记录
    • “Stop All Downloads” 停止下载当前列表中的所有记录
  3. 成功下载的文档会显示绿色的圆点·

    • 左边显示的是“已下载的文件数/搜索到的文件数”
    • 已经下载的文件,会保存在你新建项目时,选择的项目目录当中

4.5 提取并分析网络文件的元数据

  1. 下载所需要的文档之后,可以右键然后点击“Extract All Metadata”

    • 然后FOCA就会分析这些文档中的元数据
    • 分析成功的文档,会显示绿色的圆点·
    • 看分析结果,9个用户名,257个文件夹/文件路径,7个软件,4个操作系统

  2. 这些用户名可能是跟微软有关的人,可能是账号名称,也可能是真人名称

    • 如果是账号名称,可以在登录窗口尝试登录等操作
    • 如果是真人名称,可以尝试社工等操作
  3. 再看看Folders,可以看到很多URL和本地路径

    • URl,可能是目标网站调用的外部资源,或者是和微软有合作等关系的
    • 本地路径,可能是这个文档存放在目标服务器中的绝对路径
  4. 软件和系统

    • 可以看到有Office办公软件,还有PS,这些软件都是有漏洞的,可以针对性进行攻击(例如Word文档钓鱼等)
    • 系统…居然还有这么老的系统吗

4.6 恶意软件分析

  1. 我们还可以右键,点击“Analyze All Malware”分析所有恶意软件

    • FOCA会对这些文档进行分析,查找这里面是否有恶意的文档,例如存在宏病毒的Word文档
    • 分析完成之后,点击左边的“Malware Summary(DIARIO)”就可以查看分析结果

  2. 可以看到,FOCA将这些文档分为了两大类

    • 一个是恶意软件,表明这个文档存在宏,可能是宏病毒之类的
    • 没有宏,表示这个文档没有定义宏
    • 什么?你问我宏是什么?这里就不细讲了,可以自行百度
  3. 我们可以右键,在浏览器中打开这个URL,然后下载这个文件

    • 下载之后不要打开啊,万一真的是病毒,你电脑就直接无了

  4. 某60一下,没有发现

  5. 云沙箱一下,存在宏,但是是安全的(保险起见还是不要点开)

  6. 换一个云沙箱,好家伙,怕怕

4.7 FOCA导出数据

  1. 右键,点击“Export data to file”,然后选择一个文件,就可以将这些数据导出

  2. 大部分的数据都支持导出,导出方式都一样,右键然后选择导出即可

5. FOCA其它功能

5.1 过滤器

  • FOCA有2个过滤器,点击下方的“Setting”之后就可以看到

  1. 日志过滤器

    • FOCA运行时产生的日志,你可以根据需求勾选
      • debug(Debug日志)
      • error(错误日志)
      • low(低级日志)
      • medium(中级日志)
      • high(高级日志)
    • 其中低中高级,是日志的重要性,越严重的越高级,就和漏洞的低中高危差不多
  2. 模块过滤器

    • FOCA运行时使用的模块和功能
      • AutoSave(自动保存)
      • Crawling(爬虫)
      • DNSSearch(DNS搜索)
      • ……
    • 功能比较多,可以自行探索,这里就不详细讲解
  • 时间、功能模块、日志级别(类型)、详细信息

5.2 插件

  • FOCA是可以添加插件的
    • FOCA自带了一些插件,默认没有添加,可以根据需要自行添加
    • 你也可以自己写一个插件出来(当然,我不会,别看我)
  1. 我们打开FOCA所在的目录,可以看到一些文件夹,这些就是FOCA自带的插件

  2. 点击菜单栏里的“Plugins” -> “Load/Unload plugins”就可以查看插件面板了

  3. 点击“Load new plugin”,找到插件的路径并添加


  4. 然后再次点击“Plugins”,你会发现多出了一个菜单,点击之后就会出现插件的页面

  5. 更多的插件和功能可以自行测试

5.3 子域名暴破

  • 没错,你没有听错,FOCA还可以用来暴破子域名
  1. 新建一个项目,还是使用microsoft.com作为攻击目标

  2. 点击旁边的“Domains” -> “Add hostname”,将microsoft.com添加进去


  3. 选择“Network”,将“Dictionary Search”勾选,然后点击“Browse”选择一个字典文件

  4. 右键域名,选择“Search for subdomains in dnsdumpster.com”,FOCA就会开始搜索子域名了

  5. 一堆子域名,你可以挑选其中有用的域名

  6. 不过FOCA的子域名暴破有个问题,就是…程序容易卡死

    • 经常暴破到一半,FOCA就卡死自动退出了,感觉不是很好用
    • (不是很好用那你说来干嘛?)
    • 哎呀,我就介绍介绍,总有一天能…哎哎哎!轻点

6. 结语

  • 好了,本次的FOCA教学就到这里了,其中有2个麻烦的点
    • SQL Server安装
    • 科学上网
  • 鼓励大家研究FOCA的更多用法(然后来教教我,我也不大会)

6.1 FOCA的书籍

  • FOCA是有出版书籍的,但是我在某宝和某东上没有找到,不知道是不是太冷门了
  • 感兴趣的小伙伴可以去找一找(找到以后分我一份,诶嘿)

7. 本文章使用到的内容

用户名金币积分时间理由
xiaoc 8.00 0 2022-11-01 10:10:05 大佬很强~
Track-劲夫 200.00 0 2022-10-21 11:11:51 一个受益终生的帖子~~

打赏我,让我更有动力~

附件列表

FOCA和SQL-Server.zip   文件大小:6.521M (下载次数:0)

0 条回复   |  直到 2022-10-16 | 1201 次浏览
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.