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

admin 2023年7月24日16:47:38评论31 views字数 2024阅读6分44秒阅读模式

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

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

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

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

本文将要介绍以下内容:

实现思路

实现细节

开源代码

【技术原创】渗透基础——WebLogic版本探测        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设置,如下图

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

通过配置文件设置,默认路径:Oracle_Homeuser_projectsdomainsbase_domainconfigconfig.xml,内容如下:

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

(3)关闭WebLogic Admin Console的情况

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

2.通过T3协议

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

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

返回结果示例:

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

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

这里需要注意以下问题:

(1)需要区别早期版本

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

目前常用版本的返回结果示例:HELO:12.2.1.3.0.falsenAS:2048nHL:19nMS:10000000nPN:DOMAINnn

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

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

(3)T3协议可被关闭

关闭方法有以下两种:

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

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

Connection Filter Rules设置为:

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

如下图

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

通过配置文件设置,默认路径:Oracle_Homeuser_projectsdomainsbase_domainconfigconfig.xml,内容如下:

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

【技术原创】渗透基础——WebLogic版本探测        0x03 实现细节

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

1.通过HTTP协议

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

需要注意以下问题:

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

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

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

(2)需要区别早期版本

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

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

WebLogic Server Version: 14.1.1.0.0

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

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

(3)关闭WebLogic Admin Console的识别

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

完整示例代码如下:

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

2.通过T3协议

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

需要注意以下问题:

(1)需要区别早期版本

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

目前常用版本的返回结果示例:HELO:12.2.1.3.0.falsenAS:2048nHL:19nMS:10000000nPN:DOMAINnn

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

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

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

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

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

(3)T3协议可被关闭

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

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

完整示例代码如下:

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

【技术原创】渗透基础——WebLogic版本探测        0x04 开源代码

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

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

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

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

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

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

原文始发于微信公众号(嘶吼专业版):【技术原创】渗透基础——WebLogic版本探测

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年7月24日16:47:38
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【技术原创】渗透基础——WebLogic版本探测http://cn-sec.com/archives/1902522.html

发表评论

匿名网友 填写信息