谈谈国内开源的 PoC 框架及 Pocsuite
/ / 点击 / 阅读耗时 17 分钟先说明下,本文仅代表我自己的观点,从自己多年搞安全自动化、安全研究角度聊聊,先做声明,再写文章,怕自己控制不住自己情绪,哈哈。
在知乎上看到有人提问说对于我们开源 Pocsuite 怎么看(关于知道创宇的 Pocsuite 开源你怎么看? - 知道创宇),我做了回答,想想,写一篇文章,顺便谈谈我对 Pocsuite 开放的想法。
先来说说国内的几款框架
就我目前知道的国内的几个可以提交 PoC 的平台有 Beebeeto、Tangscan、Bugscan 以及我们自己的 Sebug。时间的先后顺序就不提了,因为搞不准哪个平台早就内部在测试,我在这里要是说谁先出的,到时说不定就说错了,所以这个先后顺序就不说了。
分别来看看
首先是 Beebeeto,Beebeeto 诞生于我们公司的实习生宿舍,记得去年的时候,我有段时间临时住在公司实习生宿舍,然后那时候蘑菇想到 Beebeeto 的点子,几个人还一起讨论各种策略,想各种名字,最终名字也是由蘑菇想出来,然后开发平台,最终推出 Beebeeto。
Beebeeto 平台本身就不多做讨论,来看看 Beebeeto 的框架,分别有 Beebeeto-framework 和 Beehive,跟 Pocsuite 一样,前者是基础的 PoC 编写 SDK,而后者是一个调用利用框架,两者都是开源的。Beebeeto 的两个框架的结合起来与 Pocsuite 类似,同时基本 SDK 也分为 verify 和 attack 模式。
Beebeeto 的框架本身我就不做评价了,经常有人问我,Sebug 跟 Beebeeto 有啥区别,存不存在竞争关系啥的,其实 Beebeeto 本身专注于 PoC,而对于 Sebug,PoC 只是一部分,而且蘑菇本身是我们团队的,所以我就不多做评价。
然后还有 Tangscan,Tangscan 目前框架的目的主要是方便大家基于框架编写 PoC 然后提交到 Tangscan 平台,也是开源的,模式大同小异,目前开源部分只看到基本的 SDK,没有看到调用部分,大概的看了 Tangscan,也是有 verfiy 和 Attack 模式,多多少少都类似。
然后就是 bugscan,目前是四叶草团队运营,就我下载的 SDK 来看,里面有个基本类文件是common.pyc,是编译过后的文件,所以也就算不上开源,bugscan 有个挺好的点,就是他们的框架追求使用 Python 自带库,这样就不用安装额外的库了,同时也方便跨平台,这种产品的追求,必须赞一下。
其实,漏洞盒子也推出了一个网藤扫描器好像,但是没有开放相关的框架,所以这里就不多说了。
最后再来说说我们的 Pocsuite 然后谈谈我对 Pocsuite 的想法,因为现在整个漏洞社区都是我在负责,其中也包括 Pocsuite 的发展之类的。
先介绍下 Pocsuite 把,在这之前先夸夸我们负责 Pocsuite 开发的几位同学,还有历史上团队里给 Pocsuite 做过贡献的所有同学,以及几位圈内朋友对 Pocsuite 的建议等,特别是有一位朋友,还不让我透露名字,也不让写入感谢列表。
然后用一句话来介绍下 Pocsuite,Pocsuite 是 知道创宇安全研究团队打造的一款基于漏洞与 PoC 的远程漏洞验证框架。
在8月22日的 KCon 黑客大会当天公布了我们的漏洞社区计划,同时也宣布开放了我们的 PoC 标准,开源了 Pocsuite。其实 Pocsuite 的开源,我代表了我们一种态度,把一些我们内部的东西开放共享给大家。
说实在,搞安全的团队,应该多多少少有这样一个框架或者至少有一个写 PoC 的基础类,为什么?因为当 PoC 写多了,你总能总结出一些相通的东西,然后整理成一个基础类或者框架的东西。 知道创宇安全研究团队成立于公司创立之初,也就是2007年,基本也是在没多久应该就有了 Pocsuite,只是当初可能不叫这个名字,也只是一个基础类而已。这么多年来,我们一直在打磨这款框架,大家可以看到我们我们团队在每次漏洞的应急中都很及时,除了有 ZoomEye 的能力之外,当然也少不了 Pocsuite 的功劳。 PoC 的编写在我们安全研究团队是每个人必备的技能之一。
现在类似的框架肯定不止我们一个,比如上面说的 Tangscan、Beebeeto、bugscan 等等,这些平台我不多做评价,不过大家应该都有一套自己的框架,而跟这三者有什么区别呢?可能有的同学会问,别人都搞了,你们再搞有啥意义?其实我们不在乎别人是出于什么目的开发了这样一款框架,我们的目的很简单,我可以很明白的告诉大家,我们当然希望大家都基于这个框架写 PoC,这样的话,当然是有利于我们(其实同样利于别人,因为我们最终把 PoC 开放了),我们从来不否认说开放这样一个框架是有利于我们,本身开放博得好的名声,这也算一种好处,或者其他的;但是同样的,越多的 PoC 基于这个框架编写,越利于 PoC 的传播,以及大家拿到 PoC 后的阅读和学习成本会越来越低。用我自己之前说过的话来总结,希望这框架既然开放了,就真正的是大家所想用的,希望能站在大家的角度,站在白帽子的角度,真的做好这款框架,让它真正的好用,为大家所用,而不仅仅是站在我们的角度。至于别人搞了,为什么我们还搞?我想不存在这样的问题,因为我们这框架早就有了,只是现在开放、开源出来了而已,我们希望把我们团队的东西、能力更多的开放给大家,仅此而已。而且,抛开这个问题不说,我想多几个框架也好,这样能不断互相促进嘛。
这框架由两部分组成,第一部分,也是其他比如 Tangscan、Beebeeto、bugscan 都有的,即 PoC 编写的 SDK,第二部分也就是自动化的调用测试,让大家都有测试漏洞的能力。关于说有同学提到,只有基于 Pocsuite 写的 PoC 越多,才能发挥威力,我想不是问题,先不说现在社区在发展,很多同学提交了基于 Pocsuite 的 PoC,本身我们内部一直以来都是基于 Pocsuite 进行 PoC 开发,这些 PoC 目前大家已经能在 Sebug 上看到部分,其他的我们也有考虑慢慢的开放出去。
另外,说真的,我们是真心的希望把我们自己的能力开放给大家,考虑部分安全人员可能没有编码能力,我们开发了支持 JSON 文件的 PoC 的形式,不用编写代码,写一个 JSON 文件,设置一些项的值就可以是一个 PoC,这应该是我们创新的,以上几个平台都没有的。目的就是为了方便大家编写 PoC,因为说实在的,这样一个功能的支持对于我们团队来说没有意义,因为大家都会编码写 PoC,但我们还是开发出这样一个功能,理由很简单,Pocsuite 不止是我们的框架,也是一个开源项目,就像我上面说的,希望这个框架是真正大家所想用的,大家在写 PoC 的时候自然而然能基于这个框架编写,所以我们不会只站在我们角度去开发 Pocsuite,我们最终的目的是让这个框架好用、易用、易懂。
其实,昨天有看到有同学给我截图某个甲方安全团队的某位同学在朋友圈发言说我们的框架跟他们有 80% 相似的,说被模仿也是一种认可,这个我不做评价,只想说几点事实:你们都没开源,我们去哪里抄你们?我们这个框架很早就有了,那时候你们都还没开始搞这方面的事呢。然后,不知道这位同学是不是新来的,不知道他知不知道我们团队曾经把我们的整套 PoC 包含 Pocsuite 同步过给他们,然后不要拿了不认账,后来的翻脸就不多说,反正事实是怎样就怎样,昨天看到朋友截图我也只是回了句,呵呵。
其实我就顺便吐槽下,实际上,要去讨论谁先谁后有啥意义,借用 COS 的话,什么谁先谁后,胜者为王,努力做好自己,打造每一个细节的最佳用户体验,用心做好产品是关键!而我们也将用心打造好 Pocsuite。
最后,欢迎更多的人加入这个框架的开发,欢迎有能力的同学参与进 Pocsuite 发展路线的讨论以及进行代码的贡献,大家如果有什么意见,随时可以通过 Sebug 群等渠道反馈给我!
另外,以上有什么讲的不对的地方,欢迎大家反馈给我!
然后附上 Pocsuite 项目地址:knownsec/Pocsuite · GitHub
另外,欢迎大家加入 Sebug.net,欢迎加入 QQ 群 283800159。
题图来自网上,高达,在我看来,合理的使用这些框架,就如同驾驶着高达。