-
0. 注意事项
-
1. 前言
-
2. 元数据介绍
-
2.1 什么是元数据?
-
2.2 如何查看元数据?
-
2.3 /word/目录(内容区)
-
2.4 /docProps/目录(元数据区)
-
2.5 其它类型的文档
-
2.6 网络上的文档
-
-
3. 批量提取元数据的方法
-
3.1 批量提取元数据的方法
-
3.2 FOCA介绍
-
3.3 FOCA下载和安装
-
3.4 SQL Server数据库下载和安装
-
3.5 安装SQL Server时踩的坑
-
-
4. 使用FOCA提取元数据
-
4.1 FOCA
-
4.2 提取本地文件的元数据
-
4.3 搜索网络文件
-
4.4 下载网络文件
-
4.5 提取并分析网络文件的元数据
-
4.6 恶意软件分析
-
4.7 FOCA导出数据
-
-
5. FOCA其它功能
-
5.1 过滤器
-
5.2 插件
-
5.3 子域名暴破
-
-
6. 结语
-
6.1 FOCA的书籍
-
-
7. 本文章使用到的内容
0. 注意事项
本工具以及文章中的内容仅供与学习或合法渗透测试,使用时请遵守中华人民共和国网络安全法:http://www.gov.cn/xinwen/2016-11/07/content_5129723.htm
如果您在使用的过程中存在任何非法行为, 或造成了任何后果, 您需自行承担相应责任, 我们将不承担任何法律及连带责任。
1. 前言
-
大家好,我是zkaq-念旧,今天来给大家介绍一下“元数据”以及元数据检索和分析工具“FOCA”
-
本文章使用到的软件安装包放在了文章末尾;同时你也可以在查看文章的过程中,到官网进行下载
-
对于渗透测试来说,能否获取目标的敏感信息非常关键,因为这可以增加攻击成功的几率
-
敏感信息有很多,例如员工姓名、电话号码、电子邮件地址和客户端软件版本等信息
-
而这类信息来源之一是文档元数据
2. 元数据介绍
2.1 什么是元数据?
-
元数据就是“数据的数据”
-
元数据主要用来描述一些数据的属性,用来指示一些数据,例如文件存储位置、地理坐标、历史数据等
-
-
某些应用程序(例如Msoffice办公软件),会在保存到磁盘的文件中,存储任意信息(在你不知道的情况下)
-
例如地理坐标、应用程序版本、操作系统信息和用户名等
-
2.2 如何查看元数据?
-
元数据在很多种文档中都有存储
-
例如.doc、.xls、.ppt等后缀的文件
-
通常我们是看不见元数据的,现在教大家怎么查看以上文件中的元数据
-
-
我们在电脑上面新建一个Word文档,打开文档并随便写入一点内容,然后关闭
-
修改Word文档的后缀名,将.docx修改为.zip
-
什么?你问我为什么改成.zip后缀,难道要解压?
-
没错,我们使用压缩软件解压这个Word文档(这里用的是某60)
-
可能很多人不知道,Word文档其实是可以解压的
-
-
解压成功,而且没有报错,我们打开文件夹,这就是Word文档的结构
-
Word文档是使用xml来存储数据的
-
-
可以看到一大堆的文件和内容,我们的主要关注点是在/word/和/docProps/当中
2.3 /word/目录(内容区)
-
该目录主要存储的是Word文档的相关样式,还有用户输入的内容等
-
这个文件记载了Word文档的一些字体信息,例如“等线中文”之类的
-
我们再看看下一个文件,可以看到,我们之前输入的内容都存储在这里面
-
你在Word文档中输入的内容越多,这个文件的大小也会随之增加
-
-
这个文件记载了Word文档的样式
2.4 /docProps/目录(元数据区)
-
该目录记载了Word文档的相关属性,例如软件版本、用户名等
-
app.xml记载了你所使用的软件信息,例如:
-
你使用的软件是Microsoft Office Word
-
使用的软件版本是16.0000
-
-
根据版本对照表,我使用的是Office 2016,所以显示的是16,没毛病
-
什么?你问我用的是正版还是破解版?(咳咳,你应该懂的)
-
另外,我这里登录的用户是ThinkPad
-
-
core.xml记载了元数据的主要内容
-
\指的是创建这个文档的用户
-
\上一次编辑这个文档的用户
-
由于创建和编辑都是我,所有只有一个用户名ThinkPad
-
上面我提到了,我登录的用户是ThinkPad,元数据给我记录了
-
还有我编辑Word文档的时间,也给我记录了
-
我这里显示的数据比较少,假如我把定位开了,还有可能把我的地理位置给记录进去
-
-
试想一下
-
某人编辑了一个Word文档,将自己的地理位置等敏感信息记录到了元数据当中
-
由于元数据通常情况下也看不见,某人就毫无防备地将这个Word文档发布到了网上
-
某攻击者下载了这个Word文档,并提取了其中的元数据
-
那么攻击者就掌握了这个人的地理位置等敏感信息
-
-
是不是很可怕?
-
我:等下,你们翻我的文章干啥?
-
某些同学:看你有没有上传文档之类的
-
我:我真的栓q
-
2.5 其它类型的文档
-
上面提到,除了.doc的其它文件也存在元数据
-
我们新建Excel表格和PPT,修改后缀为.zip,然后依次解压,也成功了,没有报错
-
每个不同后缀名的文件,解压后的文件可能都不太一样,但是结构大致都相同
-
更多类型的文档可以自行探索,这里就不再一个个介绍
2.6 网络上的文档
-
我们可以利用Google语法,对某个企业或攻击目标的文档进行搜索,并提取其中的元数据
-
我这里使用了Bing搜索,搜索语法和Google差不多
-
像前面教的一样,修改后缀名,解压
-
可以看到,文件数量和大小 比我之前新建的Word文档多了很多
-
看到dell可以想到什么?—-这个老师用的可能是戴尔的电脑
-
使用的是Office 2016
-
创建文档的用户是dell,最后一次编辑的用户是qian xu
-
还有时间:最后一次打印的时间2018年5月、创建时间2022年4月、最后一次编辑的时间2022年4月
-
-
可能有同学会问:打印在2018年,可是创建时间是2022年?穿越了?
-
这个我也不太清楚,有可能创建确实是在2022年,但是打印时 使用的计算机时间不对
-
为此我做了个实验,我将自己的计算机时间调到了1992年
-
然后打开之前的Word文档,编辑后保存,再次解压
-
可以看到,创建时间2022年,但是我在1992年就已经编辑了这个文件(我也穿越了!)
-
-
什么?你问我元数据里面的时间为什么不准?不是1992年吗,怎么变成1991年了
-
我们使用的是北京时间
-
文档使用的可能是其它的时间,例如m国时间,有时间差
-
3. 批量提取元数据的方法
3.1 批量提取元数据的方法
-
如果像上面教的,一个个文档改后缀名,一个个解压,一个个查看,那就太麻烦了,有没有简便点的方法?
-
编写脚本提取元数据
-
目前很多语音都有提取元数据的功能,例如Python、Java、Golang等
-
但是考虑到大多数人可能不会语言,所以这里不进行讲解
-
-
使用工具进行提取
-
一个名为FOCA的工具 在检索和解析文档元数据方面做得非常出色
-
注意了啊,敲黑板,是FOCA,不是FOFA,虽然相差一个字母,但是差别还是挺大的
-
FOFA是网络空间搜索引擎,主页https://fofa.info
-
FOCA是元数据检索和解析工具,主页https://www.elevenpaths.com/labstools/foca/index.html
-
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上面找到它
-
https://github.com/ElevenPaths/FOCA
-
我们可以看到,FOCA是使用C#语言开发的
-
而且人如其名,FOCA的Logo是一只海豹(这海豹看起来有点…)
-
3.3 FOCA下载和安装
-
我们直接在Github下载FOCA的压缩包:https://github.com/ElevenPaths/FOCA/releases
-
下载完成之后,解压,FOCA不需要安装,解压之后就可以使用,看到那个.exe文件了吗,双击它
-
双击之后,FOCA会进行加载,然后报了一个错误,这个错误的意思是:FOCA需要SQL Server数据库,你需要配置数据库连接
3.4 SQL Server数据库下载和安装
-
FOCA需要SQL Server数据库才能进行使用
-
在官网下载SQL Server:https://www.microsoft.com/en-IN/sql-server/sql-server-downloads
-
要下载的版本是Express,我们点击下面的“Download now”即可下载安装包
-
-
然后我们双击安装包,进行安装
-
我在安装的过程中,出现了个问题,安装程序一直卡在这个界面
-
然后我就上网搜索相关的问题,一直没有找到合适的解决方法,直到…
-
我换了个网络,然后就好了(垃圾校园网)
-
当然,你们可能会遇到其它问题,可以参考:https://blog.csdn.net/m0_61126377/article/details/124247101
-
其它问题自行百度
-
-
然后就按照提示进行安装,大部分选项默认即可,安装路径有需要的话可以更改
-
这里检查防火墙不通过,我们将防火墙关闭,然后点击“重新运行”(有杀毒的可以把杀毒退掉)
-
红框内的选项可以不要,把√去掉即可,其它默认
-
这里我们选择“默认实例”
-
这里我添加了SQL Server的身份验证
-
一个是使用Windows系统账号密码进行登录
-
一个是使用SQL Server账号密码进行登录
-
混合模式支持以上2种登录方式
-
-
安装进度有点慢,需要耐心等待
-
安装完成之后,我们打开菜单里的“SQL Server 2019 配置管理器”
-
可以看到,SQL Server服务“正在运行”
-
-
我们打开FOCA,尝试连接SQL Server数据库
-
填IP地址不知道行不行,同学们可以尝试一下
-
注意:SQL Server必须开启远程连接功能,我这里安装之后默认是开启的,可以尝试连接一下,如果不行的话百度“SQL Server开启远程连接”,根据教程进行开启
-
Server name服务器名称,我这里填的是计算机名,计算机名大家应该知道怎么看…吧(不会百度)
-
我这里选择了SQL Server的身份验证,用户名默认是sa,密码是安装时你自己设置的(参考上面的第9步)
-
-
连接成功,显示了FOCA的界面,至此,准备工作就完成了
-
什么?你说准备工作好长,劝退了
-
我也花了好长时间,主要是这SQL Server是真麻烦,安装又慢(微软给我爬)
-
3.5 安装SQL Server时踩的坑
-
是哪个小傻子安装SQL Server装了大半天?噢,是我自己,md…越想越气
-
服务器配置,这里我踩了坑,一直安装不成功,如图
-
数据库引擎一直安装失败失败再失败,上网查了好久(下面的图片是我从网上找来的,我不想再装一次了)
-
找到一篇文章说缺少.net,一查计算机我确实缺少.net,然后开启了.net,还是安装失败=-=
-
-
最后发现,貌似是权限问题
-
这里安装使用了默认的用户,可能权限不够,所以没有安装成功
-
我们点击浏览,尝试更换用户
-
-
高级 -> 立即查找 -> 我这里直接选了SYSTEM,最高权限 -> 确定 -> 再次安装,成功
-
我忘记是在哪篇文章里看到的了,找不到了(失落)
-
-
终于把SQL Server安装好了,微软我r…咳咳,文明文明
4. 使用FOCA提取元数据
4.1 FOCA
-
我们先点击Cancel关闭这个窗口,暂时不需要
-
这个就是FOCA的真正面貌了
4.2 提取本地文件的元数据
-
我们右键中间的空白区域,有3个选项是亮着的
-
FOCA可以分析URL,并在网上搜索这个URL的相关资产,然后进行元数据提取
-
添加文件
-
添加文件夹
-
从一个文件中批量读取URL
-
-
添加文件,我们把刚刚新建的Word文档导入进来,可以看到上方有英文的标题,分别是:
-
文件序号
-
文件类型
-
文件URL(网址或本地路径)
-
是否已经下载(没有为红色的叉×,有则为绿色的圆点·)
-
下载时间
-
文件大小
-
是否已经进行元数据提取(红色的叉×/绿色的圆点·)
-
是否已经进行元数据分析(红色的叉×/绿色的圆点·)
-
修改时间
-
-
我们右键这条记录,然后选择“Extract Metadata”进行元数据提取
-
提取元数据之后,我们可以看到左边的内容展开了,条目内容分别是:
-
文件(目前只有“新建Word文档”一个,所以显示数量为1)
-
metadata summary是元数据的统计列表
-
Users发现的用户名
-
Folders发现的文件夹
-
Printers打印机
-
Sofaware软件
-
Emails电子邮件地址
-
Operating Systems操作系统
-
Passwords密码
-
Servers服务
-
malware summary是恶意软件的统计列表
-
-
我们点击Users和Software条目,可以看到一个用户名“ThinkPad”和软件“Microsoft Office”
-
正是我们在前面解压之后看到的内容,FOCA成功地将其中的数据给提取了出来
-
4.3 搜索网络文件
-
前面我们提到,FOCA还可以自动下载和分析目标的元数据
-
当然,不是全自动的(不然还要你来干嘛,诶诶诶轻点!啪!)
-
-
我们点击“New project”新建一个项目
-
我这里选择微软的microsoft.com域名作为攻击目标(咳咳,不是针对啊)
-
原本在网上随便挑选了一个幸运儿作为攻击目标,想想还是算了(原谅我)
-
然后点击Create进行创建
-
Import可以导入现有的项目
-
-
可以看到,上面出现了很多内容,可以定义搜索文档的规则
-
我这里选择使用Bing,搜索Office基本的3个文档类型
-
-
你也可以点击Custom search自定义搜索规则,语法就是Google语法、Bing语法之类的
-
点击最右边的“Search All”,就可以搜索你选择的类型
-
搜索完成之后,下方会有一条记录,我这里显示搜索结果为0
-
-
怎么搜索结果会是0呢?我们手动在Bing上搜索看看效果
-
我们手动可以搜索出很多文档,但是FOCA一条记录都没有搜索到
-
这时有人会说了,这FOCA是假的吧
-
-
我们使用Google搜索看一看
-
然后你会发现,FOCA搜索卡住了
-
为什么呢?因为访问Google需要科学上网,也就是翻qiang
-
如图,我们使用Google搜索失败了,下面的DuckDuckGo也是国外搜索引擎,也需要翻qiang
-
-
会不会是因为没有翻墙,所以Bing才没有搜索出结果呢
-
我们点击左下角的“Setting”,可以看到一些功能的设置,你可以开启或关闭这些功能
-
我们点击“debug”选项将其开启
-
-
开启debug选项之后,你会看到旁边多了很多记录
-
仔细一看,发现FOCA使用的Bing接口是www.bing.com
-
www.bing.com也是境外网站,我们在国内访问会自动跳转到cn.bing.com
-
-
这里我选择科学上网,只为了给大家做个实验(找个科学方法费了我半天)
-
如何科学上网这里就不讲解了,容易被jc叔叔请过去
-
我在此承诺,科学上网只为了学习,绝对绝对没有做奇奇怪怪的事情
-
-
科学上网之后,我们将Google和Bing勾选,再次点击“Search All”
-
可以看到,搜索出了很多的内容(科学上网就是妙啊)
-
如果你觉得数量已经够了,可以点击最右边的“Stop”终止运行,FOCA就会停止搜索数据了
-
4.4 下载网络文件
-
如图,Download一栏是红色的叉×,表示文件没有下载
-
可以按住键盘的“Ctrl”键,然后鼠标左键点击你想要的记录,就可以同时选中多条记录
-
然后点击“Download”下载,就会将你选中的记录下载到本地
-
FOCA只是从网络上搜索到了这个文档,但是还没有下载到本地
-
我们可以右键,然后选择“Download All”下载全部,FOCA就会自动将列表中的所有文档下载到本地
-
如果你只想下载其中的某些文档
-
-
如果你下载到一半,突然不想要那么多,可以右键
-
“Stop Download” 停止下载 你当前选中的这条记录
-
“Stop All Downloads” 停止下载当前列表中的所有记录
-
-
成功下载的文档会显示绿色的圆点·
-
左边显示的是“已下载的文件数/搜索到的文件数”
-
已经下载的文件,会保存在你新建项目时,选择的项目目录当中
-
4.5 提取并分析网络文件的元数据
-
下载所需要的文档之后,可以右键然后点击“Extract All Metadata”
-
然后FOCA就会分析这些文档中的元数据
-
分析成功的文档,会显示绿色的圆点·
-
看分析结果,9个用户名,257个文件夹/文件路径,7个软件,4个操作系统
-
-
这些用户名可能是跟微软有关的人,可能是账号名称,也可能是真人名称
-
如果是账号名称,可以在登录窗口尝试登录等操作
-
如果是真人名称,可以尝试社工等操作
-
-
再看看Folders,可以看到很多URL和本地路径
-
URl,可能是目标网站调用的外部资源,或者是和微软有合作等关系的
-
本地路径,可能是这个文档存放在目标服务器中的绝对路径
-
-
软件和系统
-
可以看到有Office办公软件,还有PS,这些软件都是有漏洞的,可以针对性进行攻击(例如Word文档钓鱼等)
-
系统…居然还有这么老的系统吗
-
4.6 恶意软件分析
-
我们还可以右键,点击“Analyze All Malware”分析所有恶意软件
-
FOCA会对这些文档进行分析,查找这里面是否有恶意的文档,例如存在宏病毒的Word文档
-
分析完成之后,点击左边的“Malware Summary(DIARIO)”就可以查看分析结果
-
-
可以看到,FOCA将这些文档分为了两大类
-
一个是恶意软件,表明这个文档存在宏,可能是宏病毒之类的
-
没有宏,表示这个文档没有定义宏
-
什么?你问我宏是什么?这里就不细讲了,可以自行百度
-
-
我们可以右键,在浏览器中打开这个URL,然后下载这个文件
-
下载之后不要打开啊,万一真的是病毒,你电脑就直接无了
-
-
某60一下,没有发现
-
云沙箱一下,存在宏,但是是安全的(保险起见还是不要点开)
-
换一个云沙箱,好家伙,怕怕
4.7 FOCA导出数据
-
右键,点击“Export data to file”,然后选择一个文件,就可以将这些数据导出
-
大部分的数据都支持导出,导出方式都一样,右键然后选择导出即可
5. FOCA其它功能
5.1 过滤器
-
FOCA有2个过滤器,点击下方的“Setting”之后就可以看到
-
日志过滤器
-
debug(Debug日志)
-
error(错误日志)
-
low(低级日志)
-
medium(中级日志)
-
high(高级日志)
-
FOCA运行时产生的日志,你可以根据需求勾选
-
其中低中高级,是日志的重要性,越严重的越高级,就和漏洞的低中高危差不多
-
-
模块过滤器
-
AutoSave(自动保存)
-
Crawling(爬虫)
-
DNSSearch(DNS搜索)
-
……
-
FOCA运行时使用的模块和功能
-
功能比较多,可以自行探索,这里就不详细讲解
-
-
时间、功能模块、日志级别(类型)、详细信息
5.2 插件
-
FOCA是可以添加插件的
-
FOCA自带了一些插件,默认没有添加,可以根据需要自行添加
-
你也可以自己写一个插件出来(当然,我不会,别看我)
-
-
我们打开FOCA所在的目录,可以看到一些文件夹,这些就是FOCA自带的插件
-
点击菜单栏里的“Plugins” -> “Load/Unload plugins”就可以查看插件面板了
-
点击“Load new plugin”,找到插件的路径并添加
-
然后再次点击“Plugins”,你会发现多出了一个菜单,点击之后就会出现插件的页面
-
更多的插件和功能可以自行测试
5.3 子域名暴破
-
没错,你没有听错,FOCA还可以用来暴破子域名
-
新建一个项目,还是使用microsoft.com作为攻击目标
-
点击旁边的“Domains” -> “Add hostname”,将microsoft.com添加进去
-
选择“Network”,将“Dictionary Search”勾选,然后点击“Browse”选择一个字典文件
-
右键域名,选择“Search for subdomains in dnsdumpster.com”,FOCA就会开始搜索子域名了
-
一堆子域名,你可以挑选其中有用的域名
-
不过FOCA的子域名暴破有个问题,就是…程序容易卡死
-
经常暴破到一半,FOCA就卡死自动退出了,感觉不是很好用
-
(不是很好用那你说来干嘛?)
-
哎呀,我就介绍介绍,总有一天能…哎哎哎!轻点
-
6. 结语
-
好了,本次的FOCA教学就到这里了,其中有2个麻烦的点
-
SQL Server安装
-
科学上网
-
-
鼓励大家研究FOCA的更多用法(然后来教教我,我也不大会)
6.1 FOCA的书籍
-
FOCA是有出版书籍的,但是我在某宝和某东上没有找到,不知道是不是太冷门了
-
感兴趣的小伙伴可以去找一找(找到以后分我一份,诶嘿)
7. 本文章使用到的内容
-
百度百科-元数据:https://baike.baidu.com/item/%E5%85%83%E6%95%B0%E6%8D%AE/1946090
-
FOCA:https://github.com/ElevenPaths/FOCA
-
FOCA使用-1:https://empresas.blogthinkbig.com/como-analizar-documentos-con-foca/
-
FOCA使用-2:https://blog.csdn.net/fydata/article/details/122323236
-
微步云沙箱:https://s.threatbook.com/
-
大圣云沙箱:https://sandbox.vulbox.com/
-
申明:本账号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法。
-
免费领取安全学习资料包!
-
渗透工具技术文档、书籍
面试题
帮助你在面试中脱颖而出
视频
基础到进阶
环境搭建、HTML,PHP,MySQL基础学习,信息收集,SQL注入,XSS,CSRF,暴力破解等等
应急响应笔记
学习路线