【技术原创】渗透基础——WebLogic版本探测 - 嘶吼 RoarTalk – 网络安全行业综合服务平台,4hou.com

【技术原创】渗透基础——WebLogic版本探测

3gstudent 技术 2023-07-24 12:00:00
49559
收藏

导语:本文将要介绍WebLogic版本探测的两种方法,通过Python实现自动化,记录开发细节,开源代码。

0x00 前言

本文将要介绍WebLogic版本探测的两种方法,通过Python实现自动化,记录开发细节,开源代码。

0x01 简介

本文将要介绍以下内容:

实现思路

实现细节

开源代码

0x02 实现思路

探测WebLogic版本的方法有以下两种:

1.通过Web页面WebLogic Admin Console

默认配置下的URL:http://

在返回结果中能够获得WebLogic的版本

这里需要注意以下问题:

(1)需要区别早期版本

早期版本的返回结果示例:

目前常用版本的返回结果示例:

WebLogic Server Version: 14.1.1.0.0

(2)WebLogic Admin Console对应的路径和端口可被修改

WebLogic Admin Console可被关闭,也可修改URL,修改方法有以下两种:

通过浏览器访问WebLogic Admin Console,在Configuration->General->Advanced设置,如下图

下载.png通过配置文件设置,默认路径:Oracle_Home\user_projects\domains\base_domain\config\config.xml,内容如下:

微信截图_20230303173426.png

(3)关闭WebLogic Admin Console的情况

如果关闭了WebLogic Admin Console,访问URL:http://

2.通过T3协议

可以使用nmap的脚本weblogic-t3-info.nse,命令示例:

1.png

返回结果示例:

2.png

在原理上是通过建立socket连接,在返回结果中获得WebLogic的版本

这里需要注意以下问题:

(1)需要区别早期版本

早期版本的返回结果示例:t3 10.3.6.0\nAS:2048\nHL:19\n\n

目前常用版本的返回结果示例:HELO:12.2.1.3.0.false\nAS:2048\nHL:19\nMS:10000000\nPN:DOMAIN\n\n

(2)存在需要多次发送的情况

存在特殊情况,返回内容为HELO,此时需要重新发送直到返回完整的版本信息

(3)T3协议可被关闭

关闭方法有以下两种:

通过浏览器访问WebLogic Admin Console,在Security->Filter设置,配置如下:

Connection Filter设置为weblogic.security.net.ConnectionFilterImpl

Connection Filter Rules设置为:

3.png如下图

下载 (1).png通通过配置文件设置,默认路径:Oracle_Home\user_projects\domains\base_domain\config\config.xml,内容如下:

4.png

0x03 实现细节

综合以上探测方法,为了适应多种环境,在程序实现上选取了通过HTTP协议和T3协议两种方法实现

1.通过HTTP协议

选择默认配置下的URL:http://

需要注意以下问题:

(1)第一次访问时存在一次跳转

首次启动WebLogic时,在访问默认配置下的URL:http://

在返回内容中以字符串Deploying application作为判断依据

(2)需要区别早期版本

早期版本的返回结果示例:

目前常用版本的返回结果示例:

WebLogic Server Version: 14.1.1.0.0

在脚本实现上优先判断常用版本,使用正则匹配,如果失败,再从固定格式

5.png

(3)关闭WebLogic Admin Console的识别

如果关闭了WebLogic Admin Console,访问URL:http://

完整示例代码如下:

6.png7.png

2.通过T3协议

发送的socket数据内容为:t3 12.1.2\nAS:2048\nHL:19\n\n

需要注意以下问题:

(1)需要区别早期版本

早期版本的返回结果示例:t3 10.3.6.0\nAS:2048\nHL:19\n\n

目前常用版本的返回结果示例:HELO:12.2.1.3.0.false\nAS:2048\nHL:19\nMS:10000000\nPN:DOMAIN\n\n

为了提高准确性,这里使用正则提取版本信息,示例代码:

8.png

(2)存在需要多次发送的情况

存在特殊情况,返回内容为HELO,此时需要重新发送直到返回正确的版本信息

在重新发送的过程中,应关闭整个socket连接,重新初始化发送数据

(3)T3协议可被关闭

如果关闭了T3协议,返回内容示例:

9.png完整示例代码如下:

10.png11.png

0x04 开源代码

完整的实现代码已上传至github,地址如下:

https://github.com/3gstudent/Homework-of-Python/blob/master/WebLogic_GetVersion.py

代码使用HTTP协议和T3协议探测版本信息

0x05 小结

本文介绍了WebLogic版本探测的两种方法,比较优缺点,选取有效的方法并通过Python实现自动化,记录开发细节,开源代码,作为一个很好的学习示例。


本文为 3gstudent 原创稿件,授权嘶吼独家发布,如若转载,请注明原文地址
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论

 
本站4hou.com,所使用的字体和图片文字等素材部分来源于原作者或互联网共享平台。如使用任何字体和图片文字有侵犯其版权所有方的,嘶吼将配合联系原作者核实,并做出删除处理。
©2022 北京嘶吼文化传媒有限公司 京ICP备16063439号-1 本站由 提供云计算服务