我最近做了很多公开资源情报计划(OSINT)的事情,所以为了庆祝2019年,我决定在这个指南中总结一下我学到的很多获取开源情报的技巧。当然,本文不是一个完美的指南(没有哪一个指南是完美的),但我希望它能帮助初学者学习OSINT以及帮助经验丰富的OSINT黑客发现更多新的技巧。
方法论
你在任何地方找到的经典OSINT方法都是差不多的:
· 定义需求:你在寻找什么?
· 检索数据
· 分析收集的信息
· 透视和报告:通过分析收集的数据来定义新的需求,或者结束调查并编写报告。
这种方法非常直观,并没有多大帮助,但我认为经常按照这种方法并花时间进行多次循环的交互仍然很重要。在调查过程中,我们常常迷失在收集的数据量中,很难了解调查应采取的方向。此时,我认为我们应该停留一下,回到步骤3和4:分析和总结,你有什么发现,列出什么可以帮助你找到并定义那些仍需要解答的新(或更精确的)问题。
我给出的其他建议是:
· 永不放弃:很多时候你会感觉到你已经尝试了所有你所能想到的获取信息的方法,但依然无果。不要放弃。休息一下(休息一小时或一天去做其他事情),然后再次分析你的数据并尝试以不同的视角看待它们。你是否可以使用新的信息呢?如果你一开始就搞错了问题又该怎么办?贾斯汀塞茨最近发表了一篇关于“不放弃”的博客文章,并给出了几个通过坚持不懈而得到回报的例子。
· 保持证据:信息很快就会在网上消失。想象一下,你犯了一个OPSEC错误,比如在推特上点个赞,或者你调查的人开始变得可疑,甚至所有的社交媒体账户和网站在一天之内消失。因此,要学· 会保留证据:比如屏幕截图,归档,网络档案(稍后提供更多信息)或其他适合你的信息。
· 时间线要好:在电子取证方面,时间线和转发同时发生的事件是关键。它在OSINT中绝对不是那么重要,但仍然是组织数据的一个非常有趣的工具。网站是什么时候创建的?创建FB帐户的时间是什么时候?最后一篇博文是什么时候完成的?把这一切都放在一张表格里,这个做法经常能让我对我所寻找的东西有一个很好的了解。
然后还有另外两种我觉得有用的方法。第一个是流程图,用于描述获取更多基于数据类型(如电子邮件)的搜索信息的工作流程。最好用的应该是由Michael Bazzell在 IntelTechniques.com上提供的例子。例如,在研究电子邮件地址信息时,Michael Bazzell的工作流程如下:
电子邮件开源情报工作流 By Michael Bazzell
经过一段时间后,我认为开始动手开发自己的调查工作流程是一个好主意,并随着时间的推移用你发现的新技巧慢慢改进它。
我推荐的最后一种关于长期调查的方法是竞争假设的分析。这种方法是由中央情报局在70年代开发的,旨在帮助分析师消除分析中的偏见,并仔细评估不同的假设。请记住,这是一个繁重而耗时的工具,但是如果你陷入了一个长达一年的调查,那么有个过程能帮助你仔细评估你的假设是不错的。
准备你的系统
在进入调查之前,你应该考虑几个有关于操作方面的安全问题,这可以避免你正在研究的人有所警觉。访问一个不起眼的个人网站可能会将你的IP地址和你的位置提供给你的目标,使用你的个人社交媒体帐户可能会导致你发生错误地点赞行为。等等。
我在进行调查时会遵循以下规则:
· 为浏览器的所有网络连接使用商业VPN或Tor。大多数商业VPN会提供不同国家的服务器,Tor允许你选择退出的节点国家,因此我会尝试选择一个与目标国家是盟友的国家(联盟国对联盟国组织的调查等)。
· 从与你无关的廉价的VPS上执行所有扫描和爬行任务。
· 使用专用于调查的社交媒体帐户并使用假冒的名称创建账户。
完成所有这些事情后,你现在可以根据需要在深夜发起调查,因为人们很可能无法确定谁在寻找它们。
工具
在信息安全领域,对于工具总是一个稀奇的问题,没有什么比在安全从业人员在简历中列出无穷无尽的工具列表而不是他们拥有的技能更加困扰我了。所以,我想说清楚一点:工具并不重要,这是你用重要工具做的事情。如果你不知道自己在做什么,工具将无法帮助你,他们只会为你提供一长串你无法理解或评估的数据。对于测试工具,你需要阅读这些工具的代码,或者创建自己的工具,但请确保你了解这些工具都做了些什么。
很显然,这世上没有完美的工具包。最好的工具包就是你所知道的,喜欢和掌握的工具包。但是,让我告诉你我所使用的工具是什么以及你可能感兴趣的其他工具。
Chrome和插件
我使用Chrome作为我的调查浏览器,主要是因为Hunchly仅适用于Chrome(后文有详情)。我添加了一些有用的插件:
· archive.is Button 允许将网页快速保存在archive.is中(稍后会详细介绍)
· Wayback Machine可以在archive.org Wayback机器中搜索存档页面
· OpenSource Intelligence可以快速访问许多OSINT工具
· EXIF Viewer允许快速查看图像中的EXIF数据
· FireShot快速截屏
Hunchly
我是最近开始使用Hunchly 的,它是一个很棒的工具。Hunchly是一个Chrome扩展程序,可以保存,标记和搜索你在调查期间所找到的所有网络数据。基本上,你只需要在开始调查时点击扩展程序中的“捕获”,Hunchly就会将你访问的所有网页保存在数据库中,从而允许你向其添加注释和标记。
这款工具每年需要花费130美元,考虑到它有很大的帮助,所以,这点钱并不是很多。
Hunchly仪表板的屏幕截图
Maltego
Maltego是一个威胁情报工具,而不是OSINT工具,并且有很多局限性,但图表通常是表示和分析调查数据的最佳方式,而Maltego在这方面做的不错。基本上,Maltego提供GUI来表示图表,并且可以在图形中查找新数据(例如,从被动DNS数据库链接到IP地址的域)。它有点贵(第一年为99美元/年,然后是每年续订499美元),如果你还在进行威胁情报或大量基础设施分析,这点钱可能是值得的。你也可以使用Maltego Community Edition来限制转换的利用率和图表的大小,但对于小型的调查项目来说,它应该足够了。
Maltego工具的屏幕截图(来源:Paterva)
Harpoon
我开发了一个名为Harpoon的命令行工具(有关详细信息,请参阅此处的博客文章)。它最初是一个威胁情报工具,但我为OSINT添加了许多命令。它在Linux上使用python3(但MacOS和Windows也应该可以工作)运行并且是开源的。
例如,你可以使用Harpoon在关键服务器上搜索PGP密钥:
$ harpoon pgp search [email protected] [+] 0xDCB55433A1EA7CAB 2016-05-30 Tek__ [email protected]
这有个很长的插件列表,你随时可以提建议或开发更多插件或为新的有趣功能创建issue。
Python
通常,确立项目后,你最终会得到很多特定的数据收集和可视化任务,这些任务无法使用任何工具轻松完成。在这种情况下,你必须编写自己的代码。我选择使用python,任何现代编程语言都可以搞定你的需求,但我喜欢python的灵活性和大量可用的库。
Justin Seitz(Hunchly的作者)可以作为使用python和OSINT方面的一个参考,你一定要看看他的博客Automating OSINT和他的书Black Hat Python
你可能还喜欢下面这些工具
当然,OSINT还有许多其他工具,但我发现它们在我的日常工作中不是那么的有用。以下是你可能想要检查的一些工具,它们很有趣并且也很好用,但是不符合我的使用习惯:
· SpiderFoot是一种通过许多不同模块收集信息的侦察工具。它有一个很不错的Web界面,并可以生成显示不同类型数据之间链接的图表。我不喜欢它的原因是因为大多数人都认为这是一款能够为你找到一切的神奇工具,但我认为没有哪一个工具可以取代你知道你在寻找什么并自己分析结果。是的,你必须自己进行研究并逐一查看结果,SpiderFoot对此没有多大帮助。
SpiderFoot工具的截图(来源:spiderfoot.net)
· recon-ng是一个很好的CLI工具,可以用于查询不同的平台,社交媒体或威胁情报平台。它与Harpoon事实上非常接近。我不怎么使用它,因为我已经选择使用能够满足我的需要的Harpoon,我不太喜欢它提供的shell界面。
· Buscador是一个嵌入了许多不同OSINT工具的Linux虚拟机。我一般喜欢拥有自己的自定义系统,但这是一种尝试新工具的好方法,而无需逐个安装它们。
让我们进入正题!
现在让我们进入正题:到底什么才能帮助你进行OSINT调查?
技术基础设施
对技术基础设施的分析处于威胁情报和开源智能之间的十字路口,但在某些情况下,它绝对是调查的重要部分。
下面是你应该寻找的一些信息:
· IP和域:有许多不同的工具,但我发现Passive Total(现在称为RiskIQ)是最好的信息来源之一。通过访问Web界面和通过API查询每天可以免费查询15次。我主要依赖这个平台,但Robtex,HackerTarget和Security Trails也是不错的选择。
· 证书: Censys是一个很棒的工具,但是鲜为人知且不那么花哨。crt.sh也是一个非常好的证书透明度数据库。
· 扫描:知道在IP上运行什么类型的服务通常来说很有用,你可以使用nmap自行扫描,但你也可以依靠平台为你定期扫描所有IPv4地址。有两个主要的平台分别是Censys和Shodan,他们会关注不同的方面(Shodan主要扫描物联网,Censys主要扫描nmore TLS),因此了解和使用它们都是很有必要的。BinaryEdge是一个比较新的替代方案,但它正在迅速发展。最近,来自中国的一个名为Fofa的平台也不错。另一个信息来源是Rapid7开放数据,但你必须下载扫描文件并自行研究。最后,我发现有关IP地址的历史信息是了解平台发展的金矿,Censys只通过付费计划(学术研究人员免费提供)提供这些数据,但是Shodan直接通过IP提供免费查询,这很棒!检查命令harpoon shodan ip -H IP执行后给出的内容(你必须支付Shodan的费用)。
· 威胁信息:即使在OSINT中不是必需的,但检查域,IP或URL的恶意活动总是一个很有趣的事情。在这一方面,我主要依靠Passive Total OSINT项目以及AlienVault OTX
· 子域名:有许多不同的方法可以查找域名的子域名列表,从Google搜索(site:DOMAIN)到在证书中的备用域中搜索。PassiveTotal和BinaryEdge直接实现了此功能,因此你可以查询它们以获得第一个列表。
· Google分析和社交媒体:最后一个非常有趣的信息是检查是否在多个网站中使用了相同的Google Analytics / Adsense ID。这项技术于2015年被发现,并由Bellingcat在此进行了详细描述。为了寻找这些连接,我主要使用Passive Total,SpyOnWeb和NerdyData(publicwww是另一种非自由的选择)。
搜索引擎
根据上下文,你可能希望在调查期间使用其他搜索引擎。我主要依靠Google和Bing(欧洲或北美),百度(亚洲)和Yandex(俄罗斯和东欧)。
当然,第一个调查工具是搜索操作符。针对谷歌搜索操作符的完整列表可以在这里找到,最有趣一些查询技巧如下:
· 你可以使用以下布尔逻辑运算符来进行组合查询:AND,OR,+和–
· filetype: 允许搜索特定的文件扩展名
· site: 将在特定网站上进行过滤
· intitle:和inurl:可以过滤标题或网址
· link::查找具有指向特定网址链接的网页(2017年已弃用,但仍有部分搜索引擎有效)
下面是一些例子:
· NAME + CV + filetype:pdf 可以帮你找个人简历
· DOMAIN – site:DOMAIN 可以帮助你找到网站的子域名
· SENTENCE – site:ORIGINDOMAIN 可以帮助你找到剽窃或复制文章的网站
附加参考文章:
· 谷歌黑客数据库
图片
对于图片,你需要了解两件事:如何在图片上查找任何其他信息以及如何查找类似图片。
要查找其他信息,第一步是查看exif数据。Exif数据是在创建图像时嵌入图像的数据,它通常包含创建日期,使用的相机,有时也会有GPS数据等有趣的信息。检查这些信息,我喜欢使用命令行工具ExifTool,但Exif Viewer插件(对于Chrome和Firefox)也非常方便。此外,你可以使用这个牛逼的网站Photo Forensic,它有许多有趣的功能。(其他替代的方案有exif.regex.info和Foto Forensics)。
要查找类似图像,你可以使用Google图片搜索,Bing图片搜索,Yandex图片搜索或TinyEye。TinyEye有一个有用的API(关于如何使用它请参见此处),Bing有一个非常有用的功能,可以让你搜索图像的特定部分。为了获得更好的结果,删除图像的背景会很有帮助,remove.bg是一个很有趣的工具。
例如,没有简单的方法来分析图像的内容并找到图片拍摄的位置。你必须在图像中查找特定条目,以便你猜测它可能在哪个国家拍摄的,然后进行在线研究并与Satelite图像进行比较。我建议阅读关于Bellingcat的一些好的调查,以便了解更多关于它的信息,比如这个或者这个。
附加参考文章:
· 元数据:Bellingcat的MetaUseful和 MetaCreepy
· First Draft新闻的视觉验证指南
社交网络
对于社交网络,有许多工具可用,但它们强烈依赖于平台。以下是一些有趣的工具和技巧的简短摘录:
· Twitter: 推特的API能为你提供用于发布推文的确切创建时间和工具。x0rz开发的 tweets_analyzer 工具是分析一个推特帐户活动的好方法。有一些方法可以从电子邮件地址中找到Twitter ID,但这种方式有点棘手。
· Facebook: 在Facebook上进行调查的最佳资源是Michael Bazzell的网站,尤其是他的自定义FB工具页面
· LinkedIn:我在LinkedIn找到的最有用的技巧是如何根据电子邮件地址查找LinkedIn个人资料。
缓存平台
有几个缓存网站的平台,这些网站在调查过程中可能是一个很好的信息来源,比如在目标网站关闭的情况可以分析网站的历史演变。这些平台要么自动缓存网站,要么根据需要来缓存网站。
· 搜索引擎:大多数搜索引擎在抓取网站时都会缓存网站内容。这是非常有用的,许多网站都是这样的,但请记住,你无法控制它最后被缓存的时间(通常至少在一周前),很可能很快被删除,所以如果你发现有什么有趣的东西的话,那就想想快速保存页面的缓存。我在调查中使用了以下搜索引擎缓存:Google,Yandex和Bing
· 互联网档案:互联网档案馆是一个伟大的项目,旨在节省一切在互联网上公布的内容,其中包括自动抓取网页并保存,慢慢就演变成了一个庞大的数据库。他们提供了一个名为Internet Archive Wayback Machine的门户网站,这是一个分析网站演变的神奇网站。要知道的一件重要的事情是,Internet Archive正在按需删除内容(例如,他们为Stalkerware公司Flexispy做了这样的事情),因此你必须在其他地方保存需要的存档的内容。
· 其他手动缓存平台:我非常喜欢archive.today,它允许保存网页快照并查找其他人完成的快照。我在调查中主要依赖这个网站。perma.cc很好用,但每个月只提供10个免费帐户链接,该平台主要用于图书馆和大学。他们的代码是开源的,所以如果我必须托管我自己的缓存平台,我肯定会考虑使用这个软件。
有时,手动查询所有这些平台来检查网页是否被缓存是很烦人的。我在Harpoon中实现了通过一个简单的命令来做到这一点:
$ harpoon cache https://citizenlab.ca/2016/11/parliament-keyboy/ Google: FOUND https://webcache.googleusercontent.com/search?q=cache%3Ahttps%3A%2F%2Fcitizenlab.ca%2F2016%2F11%2Fparliament-keyboy%2F&num=1&strip=0&vwsrc=1 Yandex: NOT FOUND Archive.is: TIME OUT Archive.org: FOUND -2018-12-02 14:07:26: http://web.archive.org/web/20181202140726/https://citizenlab.ca/2016/11/parliament-keyboy/ Bing: NOT FOUND
另外,是否记得,我们在前面提及的Hunchly会自动保存你在启用录制时访问的任何页面到本地存档。
捕获证据
接下来我们说说:捕获证据。捕获证据是任何调查项目的关键部分,特别是如果调查项目可能会持续很长时间。你肯定会在找到的数据中迷失很多次,因为网页会发生变化,Twitter帐户会消失等等。
要记住的事情:
· 你不能依赖Internet Archive,可以使用其他缓存平台,如果可能,还可以使用本地副本。
· 保存图像,文档等
· 记得截图
· 保存有关社交媒体帐户的数据,可以随时删除它们。(对于Twitter帐户,Harpoon有个命令可以将推文和用户信息保存在JSON文件中)
附加参考文章:
· 如何使用 Bellingcat的Aric Toler 存档开源材料
网址缩短
URl缩短器在使用时可以提供非常有趣的信息,这里是关于如何查找不同提供者的统计信息的摘要:
· bit.ly:在网址末尾添加一个+,如https://bitly.com/aa+
· goo.gl 🙁很快就会弃用),添加一个+会将你重定向到https://goo.gl/#analytics/goo.gl/[ID HERE]/all_time
· ow.ly是hootsuite的url缩短器,但是你看不到统计数据
· tinyurl.com不显示统计数据,但你可以看到网址http://preview.tinyurl.com/[id]
· tiny.cc,你可以通过添加~查看统计,像https://tiny.cc/06gkny~
· bit.do,你可以在最后添加一个 – 字符,像这样http://bit.do/dSytb-(统计数据可能是私有的)
· adf.ly 会在重定向到链接时显示广告来赚钱。他们使用了许多其他的子域名j.gs或者q.gs,并且不显示公共统计信息
· tickurl.com:添加+字符可以看到访问统计数据https://tickurl.com/i9zkh+
一些网址缩短器使用增量ID,在这种情况下,可以枚举它们以便找到在同一时间创建的类似网址。查看这份不错的报告,看看这种想法的一个案例。
公司信息搜索
有几个数据库可用于搜索公司的信息。主要是Open Corporates和OCCRP泄密以及共记录数据库。对于公司信息搜索,你将不得不依赖于每个国家的数据库,在法国,societe.com是一个很好的数据库,在美国,你应该使用EDGAR以及在英国可以使用Company House (这里有更多信息)。
资源
以下是一些有趣的资源,可以了解有关OSINT的更多信息
Github存储库Awesome OSINT 资源