白帽笔记:我的“一日一洞”高效漏洞挖掘之旅

物联网

  作者:Shubham Shah,澳大利亚安全研究人员,专注于程序开发、渗透测试和黑客技术。2016年初被安全媒体评为10大著名“漏洞赏金猎人”之一。本文原名《高效漏洞挖掘:120天120个漏洞》

  2016年初,我就给自己设定了一个目标:在这一年中,平均每天挖掘出一个漏洞。这个决定完全是一种自我挑战。我想回到过去 在 Atlassian 公司时候的 状态,当时,我曾经在一个月内每天都发现了一个漏洞,这些漏洞涉及Atlassian公司所有外部程序。

  1 挖洞计划介绍&动机

  1月初,我就积极准备进行我的高效漏洞挖掘计划,刚开始,我曾在一天之内发现了多个漏洞,然而,随着时间的推进,我觉得在一天之内找到多个漏洞是件非常耗费脑细胞的事,而且在挖洞过程中,我经常感到身心疲惫。

  最终,经过120天之后,我结束了这种“日均一洞”的计划。但是,我对自己在漏洞挖掘方面多少有了些体会:

  (1)寻找一些新的意想不到的技术方式去拿下目标

  (2)把关注重点放在那些自己感兴趣的漏洞上面

  (3)通过漏洞奖励平台结交从事安全研究的朋友或同龄群体

  2 我发现的漏洞

  以下就是我在120天之内挖掘的121个漏洞列表一览:(全部漏洞请参看博客 Table1 )

物联网

  3 分析

  以下统计表是对我发现的121个漏洞的大致分类,另外,还有一些杂项漏洞没有包含在内

物联网

  出于漏洞奖励平台的工作机制,很多提交漏洞可能还处于缓解开发或保密阶段。待所有漏洞被修复公开之后,我会继续更新这些信息。

  4 方法论

  围绕信息系统实体进行漏洞挖掘

  “资产”实体可以定义为信息系统的所有组成项,包括:应用程序、目录、文件、文件夹、可执行程序或服务器。当然,也包含大多数云平台服务,如VoIP、文件共享、网络会议等。

  对“资产”实体的信息收集,是一个非常有趣的过程。例如,当我正对一家公司使用的软件开发组件进行信息收集时,碰巧,该公司的某位开发人员在1 小时之前就不小心把这些组件都上传到网上了,哎呀,对我来说,这是多么美妙的事情啊!

  编写自己的漏洞挖掘工具

  为了保持每天挖掘一个漏洞的节奏,我需要更好的信息系统识别工具,毕竟,想要在一些漏洞奖励项目中发现漏洞已经变得越来越难了,想要获得高额奖励更是难上加难。

  为此,我和朋友 Nathan Wakelam 就信息系统的识别方法进行了一些讨论。最终,我们一起编写了三个相关工具:

  Altdns : 通过域名前缀序列变化和排列发现子域名的工具

  Assetnote : 通过监视跟踪被动API数据发现子域名

  Bugbounty Dash : 显示漏洞奖励项目当前的状态信息

  目前,Altdns已经获得了同行的一些认可。

  与 值得信任的安全研究人员一起工作

  我觉得有效的漏洞挖掘还需要一些外部氛围,如果条件允许,可以与那些 值得信任的安全研究人员或漏洞挖掘者一起工作。 毕竟,拥有一个同路的伙伴会让你觉得有动力。我非常有幸加入了一群出色的漏洞挖掘者当中,他们有我的同事和好朋友。当我处于挖洞瓶颈期的时候,我身边参与漏洞项目的朋友会和我分享他们的新方法和新思路,这能让我继续充满信心。当其它人发现了一些我所不能发现的漏洞,我都把这当成是一种激发自己学习的动力。还有就是,不要把共同参与漏洞奖励项目的同事和朋友当做竞争对手,否则,你永远都得不到进步。

  提高漏洞发现视角

  有时候,应该学着把漏洞发现视角提高到更高、更广的水平。我知道有一些研究人员就是这样做的,如 @phwd ,他甚至通过参加FACEBOOK的产品发布会,[email protected]洞奖励项目中的成功,是我所不能及的,这也决非偶然。

  找到在漏洞挖掘之外可以释放压力的方法或爱好