weblogic CVE-2017-10271修復教程
1.簡介
CVE-2017-10271是weblogic wls-wsat組件的一個xml反序列化漏洞,可造成遠程命令執行。更詳細分析可見參考鏈接,本文強調在進行參考鏈接修復中的一些細節。
2.影響版本
OracleWebLogic Server10.3.6.0.0
OracleWebLogic Server12.1.3.0.0
OracleWebLogic Server12.2.1.1.0
OracleWebLogic Server12.2.1.2.0
打了B25A及其之前版本的補丁都沒用,需要打2017年10月的補丁(FMJJ)
3.處理辦法
3.1臨時處理辦法
刪除wls-wsat組件,然後重啟weblogic(weblogic安裝路徑和domain名等根據自己實際情況修改)
rm -f /home/WebLogic/Oracle/Middleware/wlserver_10.3/server/lib/wls-wsat.war rm -f /home/WebLogic/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/tmp/.internal/wls-wsat.war rm -rf /home/WebLogic/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/wls-wsat cd /home/WebLogic/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/bin ./stopWebLogic.sh ./startWebLogic.sh &
說明:
1.一定要把前兩個文件刪掉再重啟,只刪其中一個或者刪了一個重啟後再刪另外一個都是不能修復。原理上是在啟動時1會復制到2,然後2會被緩存到內存(不是3)。如果只刪除2那再啟動時又復制回來顯然沒效果;如果只刪除1那重啟時2並不會被清除,所以還是沒效果;如果重啟完再刪除由於已緩存到內存所以也沒效果。緩存到內存只是我的猜測,因為實踐測試就是啟了再刪漏洞還是未修復而在磁盤上又找不到vm-wsat組件在哪。
2.第三個文件不懂是什麽只是各說明都要要刪然後確實也是vm-wsat所以這裏也刪了,實踐來看不刪也修復了的。
3.刪了這幾個文件(夾)後需要重啟才能生效。只刪不重啟效果和1中所說的重啟了再刪結果一樣的,內存中還有緩存漏洞還是沒修復。
4.vm-wsat只在控制臺所以,對控制臺server進行重啟即可。
5.直接的驗證方法是訪問,http://192.168.220.128:9000/wls-wsat//CoordinatorPortType11(ip和端口改成自己的),如是404則說明已成功刪除。如果類似下面結果則未成功刪除
3.2打補丁
到官網下載p26519424_1036_Generic.zip(FMJJ)打上即可
cd /home/WebLogic/Oracle/Middleware/utils/bsu #進入bsu目錄 mkdir -p cache_dir/backup #創建backup目錄用於備份 mv cache_dir/* cache_dir/backup #確保cache_dir下原來沒有補丁 unzip p26519424_1036_Generic.zip -d /home/WebLogic/Oracle/Middleware/utils/bsu/cache_dir #將補丁解壓到cache_dir mv cache_dir/patch-catalog_25504.xml cache_dir/patch-catalog.xml #重命名patch-catalog ./bsu.sh -install -patchlist=FMJJ -patch_download_dir=./cache_dir/ -prod_dir=../../wlserver_10.3/ #打FMJJ補丁
如果之前打了B25A等補丁直接打會報沖突Patch FMJJ is mutually exclusive and cannot coexist with patch(es): B25A,先將B25A等沖突的補丁卸載即可(weblogic新補丁包含之前補丁的更改可放心卸載)。
./bsu.sh -remove -patchlist=B25A -prod_dir=../../wlserver_10.3/
說明:
1關於打補丁時要不要停weblogic,按習慣是都先停了再打,但是按實際試驗看不停就打除了打時服務可能會卡一點外功能也都正常。從原理上看,安裝補丁的過程是歸檔有問題的文件然後使用新文件替代;卸載補丁的過程是移除該補丁相關的文件然後從歸檔文件中還原原先的文件,從這角度上看不會造成功能缺失。由於前述的緩存到內存所以功能未重啟前功能也正常。
2打了補丁之後一樣要重啟weblogic才能生效,這是驗證過的。
4.POC
嚴謹的安全工作者,講究“no exp say jb”,在github上可以找到兩個,一個python版本一個java版本,這都沒試過但意思感覺和手頭上的差不多應該沒什麽問題
https://github.com/search?utf8=%E2%9C%93&q=CVE-2017-10271&type=
參考:
http://www.cnvd.org.cn/webinfo/show/4331
http://blog.nsfocus.net/weblogic-solution/
http://blog.nsfocus.net/weblogic-xmldecoder-rce/
weblogic CVE-2017-10271修復教程