goby编写自定义poc
前言
goby是一款攻击面分析工具,同时拥有资产扫描、资产识别和漏洞扫描能力,安装简单,直接解压即可使用,界面也非常友好,内置了大量由官方和其他网络安全从业者提供的poc。
帮助goby提交poc积攒到一定数量可以获取功能更强大的hvv红队专版,本文以CVE-2021-21975 VMware vRealize Operations Manager SSRF为例记录一下goby-poc的编写过程。
准备工作
1.去poc群获取最新版本goby
2.在已有poc列表中确认自己要写的poc和别人没有重复
编写流程
poc
打开最新版goby,点击Vulnerability页面中的PoC Management
点击右上角的+POC新增POC
本界面主要要填写漏洞的基本信息以及检测条件。
基本信息包括漏洞名称、威胁等级、漏洞类型、描述、影响、作者、产品地址等,一般我们写漏洞预警或者提交其他漏洞的时候都对这些很熟悉了,就不在赘述了,根据官方文档中的规范来填写即可。
比较需要注意的一点是检测条件,它代表着goby识别到某种资产,才会使用此poc进行验证,所以要根据右边问号的提示尽量的精确识别出资产,才能保证poc在使用的时候确实被触发。
填写完之后点击test选项卡,填写漏洞探测相关的参数,如果有多个请求可以点击加号新增,可以根据实际情况选择and和or条件
在每一个请求中,Request中需要填写请求类型、url路径、header、以及Post Data。
根据漏洞本身探测的报文,按照下图格式填写就行
如VMware vRealize Operations Manager SSRF的探测
需要往/casa/nodes/thumbprints路径post一条json数据,json数据中使用其本机443端口的ui页面作为探测目标,即填写[“127.0.0.1:443/ui”]
Response中需要填写判断漏洞存在的条件,如http响应状态、http头、Body中包含的关键文本等都可以作为判断依据。
在本例中需要同时满足http响应状态为200,且响应body中包含vRealize Operations Manager关键字,则如下填写
随后就可以保存并使用右上角的单ip探测功能尝试自己的poc是否有效(目前不支持https,如果遇到https的情况,可以将其先保存,然后在PoC Management界面导入此poc,然后直接扫描存在此漏洞的站点对poc进行测试)
此时poc的部分完成了,可以在PoC Management
中import进来,然后测试一下是否可以检测出漏洞
exp
goby还有Verify功能,我们需要增加exp部分才可以在扫描到漏洞之后直接用goby验证,但是这部分没法在gui编写,所以需要了解以下格式。
1 |
|
在本例ssrf中,我们需要修改post数据中的ip:port/url部分,所以做如下更改
1 |
|
我们可以将Editor选项卡中对应的项替换修改,也可以打开goby解压目录的golib\exploits\user寻找刚才保存的文件进行修改,保存之后就可以使用了
使用对方本地测试
使用dnslog测试
参考资料
goby官方的poc教程
https://github.com/gobysec/Goby/wiki/Vulnerability-writing-guide
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!