【技术原创】渗透基础——WebLogic版本探测
2023-7-24 12:0:0 Author: www.4hou.com(查看原文) 阅读量:25 收藏

导语:本文将要介绍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 原创稿件,授权嘶吼独家发布,如若转载,请注明原文地址

  • 分享至

取消 嘶吼

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

扫码支持

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


文章来源: https://www.4hou.com/posts/zlRY
如有侵权请联系:admin#unsafe.sh