原文地址:https://nixintel.info/osint-tools/carbon-14-verifying-the-age-of-a-website/
文章原名:Carbon-14: Verifying The Age of A Website
作者: Nixintel
Carbon14(碳十四)是一款用于网站调查和核查的有力Python工具。它让调查员可以确定网页的创建时间以及该页面在首次上传后是否进行了修改。Carbon14会检查网页中图像所包含的数据,以判断它们何时上传与发布。这将有助于确定网页首次创建的可能时间段,或确定网站自创建之后调整或更改的频率。这对于需要进行大量验证工作的OSINT调查员极为有用。
Carbon14将检查图片发布时生成的Last-Modified
HTTP参数。这意味着它能确定网页内容的首次创建时间。注意,它检测的是图片发布在网站上的时间,而不是图片实际拍摄的日期,这种检测并不依赖于EXIF数据。
开始使用
Carbon14可以运行在Windows,Mac与Linux操作系统上,并需要Python 2.7运行环境。如果你没有在Windows系统上安装Python2.7,可以参考相关指南。在Mac OS与Linux系统上,Python2.7已被预装。
使用命令行从Github下载或克隆Carbon14库
1 | $ git clone https://github.com/Lazza/Carbon14 |
如果你不习惯使用命令行进行Github库的克隆,参考相关指南将存储库作为ZIP文件下载并手动解压。
一旦下载完成,将工作目录切换到新创建的Carbon14目录
1 | $ cd Carbon14 |
现在安装额外的软件运行依赖。你可能需要在管理员(root)权限下安装一些软件插件,在这种情况下,在命令前添加sudo
(Mac与Linux)。
1 | $ python2.7 -m pip install -r requirements.txt |
当依赖安装完成时,你可以通过以下命令来调出Carbon14的帮助菜单(这个菜单很短)。
1 | $ python2.7 carbon14.py -h |
在这里指定了 Python 2.7,因为我系统上的默认 Python 版本高于 2.7,并且无法正确运行 Carbon14。
使用如下命令检查网页的年龄:
1 | $ python2.7 carbon14.py https://examplewebsite.com |
可以选择将你的姓名添加到 Carbon14 使用 -a
生成的简短报告的标题中,如下所示:
1 | $ python2.7 -a NixIntel carbon14.py https://examplewebsite.com |
示例-检查页面的变更
我将以我最近写的文章作为示例,看看Carbon14能做些什么。发布日期显示它在2019年10月5日被发布,但据我所知,在最终版本发布之前,我曾上传了一些草稿并编辑了许多照片。Carbon14能检测到这些变化并指出我何时进行了这些操作吗?
检测博客文章的命令如下所示:
1 | $ python2.7 carbon14.py https://nixintel.info/osint/digital-shadows-seeking-sector035-quiztime-26th-september-2019/ |
结果如下图所示。Carbon14 抓取了我插入在文章中的所有图片的URL与最初上传时的时间和日期。你能通过查看图片的发布日期来发现我何时进行了编辑吗?
根据这些信息,可以确定我是在伦敦时间2019年 10月5日大约19:34到21:32之间撰写这篇文章的。Carbon14按时间顺序显示结果,这意味着可以计算出我何时对文章进行了编辑并添加了新的图片。
虽然博客显示的发布时间为10月5日,但Carbon14发现了我在2019年10月6日09:51对文章进行了编辑,添加了更多的图片。直接查看网页并不会发现这种情况,但我的所作所为通过图像发布的时间戳暴漏了。这种技术适用于各种网页,显然你可以使用它来确定作者何时添加或替换文章图片,以及该文章最有可能的首次发布时间。网站图书馆通常也不会检测这类更改,因此这种方法将有效且精确的了解在过去的一段时间内网站所发生的变化。
Carbon14与推特
Carbon14对推特有用吗?推特并不允许已发布的内容被修改,所以Carbon14并不能显示任何更改发生的时间。然而,基于其检测网页的方式,它仍能返回一些有用的图片信息。就在我写这篇文章的时候,我注意到Marko Bereth有一篇新的 Quiztime帖子,所以我打算测试一下。
他发布在推特上的原始图片URL为:
https://twitter.com/mahrko/status/1185220029224280065/photo/1
使用Carbon14对其进行检测:
1 | $ python2.7 carbon14.py https://twitter.com/mahrko/status/1185220029224280065/photo/1 |
它返回了几个有趣的结果:
这一结果不仅显示了在推文中图像的URL,还显示了图像的增强更高分辨率版本的URL(由large后缀表示)。
它还返回了Marco个人资料图片的三个URL,最大尺寸为400×400像素。
我们可以发现,Marco在2019年9月22日14:12:33 UTC发布了他最新的个人资料图片。显示,通过这种方式获取推特个人资料图片的发布时间将有助于了解该账户是否处于活跃状态或账户创建后有无进行个人资料图片的更改。
我也注意到,Carbon14可以自动地从Instagram获取高分辨率图像并精确的展示图像的发布时间。比如巴西足球传奇人物 Ronaldo的最新发布:
使用Carbon14检查帖子的URL将返回一个简短结果:
这将告诉我们图片被发布Instagram在上的精确时间(13年10月19日16:24:39 UTC),这可比Instagram显示在页面上的5天前不知道高到哪里去了。它还提供了比浏览器中显示的图像更高分辨率版本的URL (从技术上讲,它是相同的图像,只是呈现方式不同)。你也可以通过开发者控制台进行完整图像URL的挖掘来获取这些信息,但Carbon14更加的方便。
Happy Carbon dating!
考古快乐!
译者注:
该篇为《How To Find Timestamps For Verification》所提到的进行图片时间戳提取的文章。