CVE-2020-14750 漏洞复现和Linux打补丁详解
使用的工具整理:jdk1.79,weblogic安装包(中文版),两个补丁包
链接:https://pan.baidu.com/s/1ehrO4fjv7beth2fp06XXPA?pwd=z8ju
提取码:z8ju
漏洞环境搭建参考如下博客:
[(64条消息) 详细教程]jdk官方下载,Linux安装jdk1.7,图文解说,一看就会_gosin1994的博客-CSDN博客_linux 1.7 官网下载
(64条消息) Linux安装与卸载JDK_时光记录的博客-CSDN博客_linux 卸载jdk
(64条消息) 【超详细】手把手linux安装部署weblogic-附详细截图_程序猿沙弥的博客-CSDN博客_linux安装weblogic
(64条消息) linux安装weblogic10.3.6_cz596738622的博客-CSDN博客_linux安装weblogic10.3.6
搭靶场环境我自己遇到的一些问题
1、 # vim /etc/profile 配置环境变量的时候,我添加的是如下信息,版本看你自己的jdk。
export JAVA_HOME=/usr/java/jdk1.7.0_79
export JRE_HOME=/usr/java/jdk1.7.0_79/jre
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
export ORACLE_HOME=/weblogic/wls1212/ofmhome
2、安装weblogic时,我的安装包因为是中文的,会有输入Next没反应的情况,直接打字“下一步”,输进去然后回车即可。
3、如果遇到步骤让输入jdk路径,又不能使用默认路径,把“/usr/java/jdk1.7.0_79”粘进去也可以。
4、输入weblogic管理员密码时,要求8位及以上,而且必须两种组合。
以下是打补丁步骤
1、停止weblogic
说明:我的weblogic安装目录:
/u01/weblogic/user_projects/domains/base_domain/bin/
进入weblogic所在目录:
cd /u01/weblogic/user_projects/domains/base_domain/bin/
./stopWebLogic.sh
(这一步需要输入weblogic用户密码)
补充,查找weblogic相关目录可以使用目录:s -ef|grep weblogic
2、备份weblogic整个目录
真实环境打补丁需要有备份,靶场练习自便
创建一个目录作为备份目录:mkdir /opt/backup_weblogic/
zip -r /opt/backup_weblogic/weblogic_backup_20221123.zip /u01/weblogic
3、将补丁上传到weblogic服务器的cache_dir目录下
用winscp/mobaxtrem软件上传补丁到该目录,如果该目录不存在,则创建一个
(网上的路径:/home/weblogic/Oracle/Middleware/utils/bsu/cache_dir)
(我的路径:/u01/weblogic/utils/bsu/cache_dir)
创建目录:mkdir /u01/weblogic/utils/bsu/cache_dir
4、先安装NA7A补丁,在安装KYRS。若直接安装KYRS,会提示缺失依赖。
该问题参考博客:
(65条消息) Weblogic远程代码执行漏洞(CVE-2020-14750)修复步骤–weblogic10.3.6版本_北洋的青春的博客-CSDN博客_cve-2020-14750
说明:chown weblogic.weblogic p32097188_10360201020_Generic.zip 该命令不是必须的,能把文件传到目标目录下解压就行。
windows传文件到Linux系统上,建议使用ssh工具,比如Moboxterm
5、安装NA7A补丁
复制文件到目标目录下:
cp p31641257_1036_Generic.zip /u01/weblogic/utils/bsu/cache_dir
进入文件夹:
cd /u01/weblogic/utils/bsu/cache_dir
解压第一个补丁文件:
unzip p31641257_1036_Generic.zip
返回上一目录,也可以用绝对路径返回目录
cd …
cd /u01/weblogic/utils/bsu
修改/bsu.sh脚本启动内存内容
vi /bsu.sh
找到如下内容,修改为(最好往大了改,不然会内存溢出,建议虚拟机分配空间4G左右):
MEM_ARGS=“-Xms2048m -Xmx3072m”
保存退出,这里官网给的建议是MEM_ARGS=“-Xms1024m -Xmx4096m”,给的大点能运行更快些,但是容易内存溢出。
执行安装补丁脚本(预计半小时)
./bsu.sh -install -patch_download_dir=/u01/weblogic/utils/bsu/cache_dir -patchlist=NA7A -prod_dir=/u01/weblogic/wlserver_10.3/
遇到的问题(恶心到吐血):
第一个问题:无法识别的补丁程序,大概率是补丁文件路径问题,我是因为下载的补丁压缩包,解压以后补丁文件都在一个文件夹,如下
我解压以后cache_dir 目录下实际上是没有补丁的,只有一个文件夹,所以出现无法识别的 问题。
解决办法:将所有需要的文件进行打包,别放在文件夹内,解压后这些文件存放在cache_dir 目录下,更简单一点,直接把解压后的文件上传到cache_dir目录下。
第二个问题:内存问题,会出现两种可能的报错
解决办法:
增加给虚拟机分配的空间,我一开始就是只给虚拟机分了1个G,使用free命令或vmstat -s命令发现内存完全不够用,加到了4个G内存才OK。
第一个补丁分配的区间是2048-3072(小一点都报上面第二个错给我恶心死,尽量设置大一点吧)
第二个补丁我分配的空间是3072-3584(试了好多次范围,勉强成功了)
6、删除NA7A补丁文件夹解压内容
注意路径,一定要在如上路径下在执行删除命令(当然得根据你路径来),否则后果自负
cd /u01/weblogic/utils/bsu/cache_dir
rm -rf *
7、安装KYRS 补丁
在文件所在目录下,复制文件到目标目录下(如果能用mobaxtrem这样的工具上传会方便很多)
cp p32097188_10360201020_Generic.zip /u01/weblogic/utils/bsu/cache_dir
cd /u01/weblogic/utils/bsu/cache_dir
解压第二个补丁文件
unzip p32097188_10360201020_Generic.zip
返回到指定目录下:
cd /u01/weblogic/utils/bsu
执行安装补丁脚本(预计半小时)
./bsu.sh -install -patch_download_dir=/u01/weblogic/utils/bsu/cache_dir -patchlist=KYRS -prod_dir=/u01/weblogic/wlserver_10.3/
8、验证补丁是否打上
./bsu.sh -prod_dir=/u01/weblogic/wlserver_10.3/ -status=applied -verbose -view
9、重启weblogic
#进入进入weblogic所在目录
cd /u01/weblogic/user_projects/domains/base_domain/bin/
#启动weblogic
./startWebLogic.sh
输入账号密码
10、补丁修复证明
打开网站后台界面:
http://127.0.0.1:7001/console/login/LoginForm.jsp
未打补丁时输入payload可以直接进入控制台:
http://127.0.0.1:7001/console/css/%252e%252e%252fconsole.portal
打上补丁后,输入payload则会报错:
http://127.0.0.1:7001//console/css/%252e%252e%252fconsole.portal
11、其他应急响应方法
应急响应时,在不影响业务的情况下,我们可以重命名console的访问路径,如果请求路径够复杂也可以有效对抗外网入侵,如果可以禁用console也可以解决问题。
步骤如下:
登录后台,点击锁定并编辑,选择域。
选择高级,修改console的路径名,然后保存编辑,在刚才的锁定并编辑处激活更改
重启weblogic,可以看到配置已经生效,console路径已经无法登录控制台
真实的控制台路径如下
参考文献:
靶场环境搭建:
(64条消息) Linux安装与卸载JDK_时光记录的博客-CSDN博客_linux 卸载jdk
[(64条消息) 详细教程]jdk官方下载,Linux安装jdk1.7,图文解说,一看就会_gosin1994的博客-CSDN博客_linux 1.7 官网下载
(64条消息) 【超详细】手把手linux安装部署weblogic-附详细截图_程序猿沙弥的博客-CSDN博客_linux安装weblogic
(64条消息) linux安装weblogic10.3.6_cz596738622的博客-CSDN博客_linux安装weblogic10.3.6
打补丁参考:
(65条消息) weblogic打补丁详细步骤(linux)_imogo的博客-CSDN博客_weblogic打补丁
(65条消息) Weblogic远程代码执行漏洞(CVE-2020-14750)修复步骤–weblogic10.3.6版本_北洋的青春的博客-CSDN博客_cve-2020-14750
补丁执行遇到的问题:
(65条消息) java.lang.OutOfMemoryError: Java heap space错误及处理办法(收集整理、转)_jxzxm1_2的博客-CSDN博客
版权归原作者 我爱喝牛奶! 所有, 如有侵权,请联系我们删除。