Goby下载

Goby是一个不需要安装的一款攻击面测绘工具,它能够针对一个目标企业梳理最全的攻击面信息,同时能进行高效、实战化漏洞扫描.

并快速地从一个验证入口点,切换到横向,实现快速安全应急,以及用新一代网络安全技术建立一个完整的资产数据库,并能够输出更具生命力的工具,能够对标黑客的实际能力,帮助企业来有效地理解和应对网络攻击

官网:https://gobysec.net/ https://gobies.org/

Goby主要特性:

  • 实战性:Goby并不关注漏洞库的数量有多么多,而是关注真正用于实际攻击的漏洞数量,以及漏洞的利用深度(最小精准集合体,打造权威性);

  • 体系性:打通渗透前,渗透中,以及渗透后的完整流程完整DOM事件收集,自动化触发。

  • 高效性:利用积累的规则库,全自动的实现IT资产攻击面的梳理;效率提升数倍,发包更少速度更快、更精准;

  • 平台性:发动广泛的安全人员的力量,完善上面提到的所有资源库;包括基于社区的数据共享,插件发布,漏洞共享等;

  • 艺术性:安全工具原本就比较偏门,我们更多的关注功能而非美观度,所有大部分的安全工具都是其貌不扬;我们希望使用Goby能给大家带来感官上的享受。

Goby安装

进入官网就可以看到下载按钮,需要什么系统版本就下什么版本即可,这里以win为例

下载到安装包并解压,打开Goby.exe即可

Goby快速使用

1.打开Goby到首页,左下角可以切换语言

2.点击扫描,新建扫描任务。(不仅可以扫ip,还可以扫域名)

3.点击开始,任务便开始扫描。

4.还可以点击左下角的设置,设置相应的内容。

能开启很多功能,比如网站截图、结合fofa的apikey

5.扫描完毕后,可以查看资产。

6.查看报告,点击右上角可以下载报告。

扫描完成后,生成分析报告,并支持 PDF、Excel 导出,方便本地分析及呈报传阅。

简单的Goby 的 PoC 制作

实际上主要用到的功能在这里:

上图就能看到自定义PoC的界面样子了,具体填写的信息和填写标准参考上述的《Goby漏洞编写指南》,里边有命名规则等详细解释和参考

然后就是Requests的Response处理,Goby提供了“测试”功能可直接通过图形化界面自定义自己的Requests。

这里以CVE-2015-1427为例,再完整的RCE中一共需要发送两次Requests。
然后Goby的PoC编辑界面提供了可选的单个或多个Requests,也提供了AND和OR可选的发包逻辑,方便发送多个Requests的自定义
之后的“响应测试”可对Response进行判断可选有返回状态码,Header和Body,大家按照自己需求点一点即可。
CVE-2015-1427需要两个Requests,再来一个即可,这里需要一个RCE返回结果的判断,对于轮子达人来说点一点就好制作很方便。
到这里两次Requests好了,最终的RCE判断也好了剩下就是测试PoC可用性了,上图所示右上角提供了“单ip扫描”直接测试。
在资产扫描完成的界面,输入query点击放大镜可以进行资产匹配,用来确定自己写的query可以正确匹配。

但是仅有一个存在漏洞和不存在漏洞的结果提示,这个查询界面并没有显示Response,所有如果怀疑自己的PoC有问题还需要自己抓包去看

而且多次Requests时仅显示第一个Requests(所以建议该功能有待完善),我再测试PoC时无奈一直在Wireshark抓包看的,比较麻烦。

再去扫描中测试一番,这里每次对PoC进行修改之后都需要重启Goby(点左下角的重启也行)。

不太简单的PoC中的Exp

你以为PoC做好了?没有,一半了,如开头图中所示需要三个带Exp的漏洞,所有自己的PoC必须要Exp功能,然后Exp功能还没有图形化点一点的界面

而《Goby漏洞编写指南》中对Exp的制作也只有个例子,没看到详细解释(可能我没看全),但是有一个TP的demo,通过这个demo我们也能照猫画虎做Exp了。

制作Exp需要开启图形中的验证接口,你会好奇上图所示的“验证”为什么我没有,需要去手动编辑Exp模块了。

编辑器中可以看到你的PoC的json文件,默认的HasExp值为false,开启改true即可,ExpParams则是前端需要传递给 Exp 的参数,如要执行的命令。

以CVE-2015-1427为例需要自定义命令,一个输入参数,需要将ExpParams改为:

  • 1- 2- 3- 4- 5- 6- 7 不解释上述json了直接感受一下效果:

现在为止GUI中已经开启Exp了,但实际还没有“验证”功能,需要再回到“编辑器”中编写“验证功能”,找到json中的ExploitSteps默认值为null,继续以CVE-2015-1427为例需要两次Requests修改为:

  • 1- 2- 3- 4- 5- 6- 7- 8- 9- 10- 11- 12- 13- 14- 15- 16- 17- 18- 19- 20- 21- 22- 23- 24- 25- 26- 27- 28- 29- 30- 31- 32- 33- 34- 35- 36- 37- 38- 39- 40- 41- 42- 43- 44- 45- 46- 47- 48- 49- 50- 51- 52- 53- 54- 55- 56- 57- 58- 59- 60- 61- 62- 63- 64- 65- 66- 67- 68- 69- 70- 71- 72- 73- 74 可以看到上述json中 Requests 和PoC中的ScanSteps的Requests 是一致的,就不难理解是同样的发包,只不过一个在ScanSteps一个是ExploitSteps,现在应该也就大概理解这个json的大致功能了,上边看着乱简化一下:
  • 1- 2- 3- 4- 5- 6- 7- 8- 9- 10- 11- 12- 13 到这里应该都指知道Requests用来发包,ResponseTest用来判断是否满足判断SetVariable则会在“验证”功能中回显Body。 我在看官方提供的Exp demo中发现TP的RCE去掉了ResponseTest,我也跟着试,结果只发送第一个Requests不发第二个,后续找@go0p发现是去掉了ResponseTest的锅。 最后控制一下RCE的回显,TP的demo中SetVariable写的是:
  • 1- 2- 3 这里的效果就是显示整个Body。

看起来比较凌乱,不过SetVariable中也有过滤可用,例如regex去正则。

  • 1- 2- 3

到这里一个带Exp的PoC就制作好了,如果你觉得PoC逻辑编写没为题但又怎么都不成功就只能反复测试反复抓包了,找你的wireshark好帮手,慢慢测慢慢排,最终完整的PoC一定出的来。

本文由 mdnice 多平台发布