大家好,我是ABC_123。过去几年,在内网中多次遇到weblogic 8.x,与10.x及后续版本相比,早期版本的weblogic后台获取shell的过程会比较复杂。首先,webshell的编写需要兼容JDK 1.4,这就排除了大多数现代的webshell。另外,IE浏览器也需要进行一系列配置,否则许多weblogic后台功能无法正常使用。今天ABC_123重新搭建了环境进行测试,并将复现过程记录下来,与大家分享,以备后续参考。
注:以下文章中对于IE6.0的配置,同样适用于内网环境中所见的很多老旧系统。
首先需要设置一下IE浏览器,建议选择IE6.0,安全级别调整为低,并将ActiveX控件和插件设置下的各种单选项都设置为“启用”,最后点击“重置”按钮。
在“受信任的站点”下,填写weblogic的url地址,添加至“可信站点”。
输入账号密码weblogic:weblogic123进行登录。
登录后,weblogic后台的左侧一列会显示错误,并且提示“您的Java版本已过期”。
点击“稍后”按钮之后,会出现如下提示:
打开“控制面板”的Java功能选项,点开java控制面板。
在“安全”选项卡下,点击“编辑站点列表”,在“例外站点”列表下,添加weblogic的url http://192.168.237.235:5150/,然后一路点击“确认”按钮。
然后刷新当期页面,重新点击一下左侧报错的页面,会弹出一个“安全警告”,点击“运行”。
随后,weblogic的后台页面终于可以正常显示了。
Weblogic8.x后台所用的war包是有校验的,不符合要求的会直接报错,随便将webshell文件打一个压缩包,改扩展名为.war是不可行的。如下图所示,weblogic8.x是在jdk1.4下运行的,现在所用的大多数jsp文件都会直接提示错误,因为其代码所使用的一些类和方法并不支持jdk1.4。
如下所示,提示缺少WEB-INF/web.xml文件。经过一系列测试,发现web.xml文件也需要专门制作,随便写一些内容是不行的。
经过测试,如下的写法是简单的而且可以通用于weblogic8.x、weblogic9.x版本。
最终制作好的war包内容如下,在war包文件中,我加入了一大堆的jsp shell,便于我们挨个测试哪些webshell可以兼容weblogic8.x。
登录后台之后,点击“部署”选项下的“Web应用程序模块”,点击“部署新的Web应用程序模块”。
继续点击“上传文件”。
点击“浏览”,选择制作好的包含jsp版webshell的war包,点击“上传”。
然后继续选择war包文件,点击“目标模块”。
继续点击“部署”按钮。
如下所示,提示“成功”,说明war包部署成功。
继续点击“测试”标签页,提供了webshell的访问地址。
在上述URL地址上,拼接JSP版webshell的文件名,即可获取webshell。经过一系列措施,发现如下几个webshell是可用的,冰蝎、哥斯拉、蚁剑、菜刀等等通通不兼容。
如下图所示,此webshell是2004年老外写的,适用于jdk1.3,已经是20年前的了。
Part3 总结
1. 后续会继续分享weblogic中间件的其它利用技巧,敬请期待。
公众号专注于网络安全技术分享,包括APT事件分析、红队攻防、蓝队分析、渗透测试、代码审计等,每周一篇,99%原创,敬请关注。
Contact me: 0day123abc#gmail.com
(replace # with @)