抓取goby的poc

前言

goby内置了很多poc,如果有红队的试用版,可以尝试抓取一波,补充自己的弹药库。

攻击机器:192.168.100.123

靶机地址:192.168.100.216

一、抓取fastjson反序列化poc失败

fastjson介绍

fastjion的作用是在java对象和json格式之间相互转换(序列化和反序列化)

因为是无回显型漏洞所以也比较好奇goby是怎么判定漏洞的

漏洞成因

json发往服务器的数据用户可控,可被更改

未对json数据做过滤,导致服务器调用恶意函数执行远程rmi服务器发出的命令

截图

尝试抓取poc过程

先查看poc列表,包含了fastjson漏洞,我本身也比较好奇fastjson漏洞是怎么探测到的

截图

于是搭建了fastjson1.2.47的docker环境

但是死活扫不出来

截图

发现tag是1.2.45,这个环境应该有问题,不是1.2.47的

截图

再次搭建1.2.24的环境,还是没有扫出来

截图

多次尝试后依然没有扫出来,尝试将扫描器放在虚拟机中桥接出来扫,识别到端口和spring服务,但是没有扫出漏洞:

截图

二、抓取shiro1.2.4反序列化poc失败

shiro反序列化漏洞从2016年后被爆出至今仍然层出不穷漏,这里准备再次尝试抓一下shiro的poc

漏洞成因

这个漏洞成因很简单

  1. 加密cookie的密钥被硬编码,轻易可以获取
  2. 反序列化未做过滤处理

payload生成过程:

命令 => 序列化 => AES加密 => base64编码 => RememberMe Cookie值

尝试扫描并抓取poc

同样是扫除服务但是没扫出来漏洞

截图

直接指定poc扫描也扫不出来此洞

截图

扫不出来就说明goby的poc不太行

那也没必要抓包分析poc了

三、尝试简单漏洞类型thinkphp成功

搭建完thinkphp环境后,可以扫描出漏洞了,因为此漏洞的验证方式比较简单

截图

截图

尝试抓包:

goby不支持http代理,没法用bp做代理抓包

截图

只能使用wireshark或者其他更底层的抓包工具抓包

开始监听并修改wireshark匹配规则为:

1
ip.addr == 192.168.100.216 and http

同时goby重新扫描

截图

成功抓取thinkphp的poc和部分其他的poc

手动重放此请求可以看到页面下方的thinkphp 2.1,猜测是根据正则或者页面相似度判断页面是否存在漏洞

截图

再次尝试抓取exp包,漏洞利用原理是调用system函数执行post中内容:

截图

手动复现:

截图

小结

关闭火绒,可能会拦截攻击,导致利用失败

gopy无法检测无回显漏洞(也可能是命中率很低)