抓取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
漏洞成因
这个漏洞成因很简单
- 加密cookie的密钥被硬编码,轻易可以获取
- 反序列化未做过滤处理
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无法检测无回显漏洞(也可能是命中率很低)