Jump to content
  • Entries

    16114
  • Comments

    7952
  • Views

    86393870

Contributors to this blog

  • HireHackking 16114

About this blog

Hacking techniques include penetration testing, network security, reverse cracking, malware analysis, vulnerability exploitation, encryption cracking, social engineering, etc., used to identify and fix security flaws in systems.

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.png 7.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.png 11.png

0x04 開源代碼完整的實現代碼已上傳至github,地址如下:

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

代碼使用HTTP協議和T3協議探測版本信息

0x05 小結本文介紹了WebLogic版本探測的兩種方法,比較優缺點,選取有效的方法並通過Python實現自動化,記錄開發細節,開源代碼,作為一個很好的學習示例。