0# 什么是Weblogic?
WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。
根据我的个人经验,国内金融产业(银行)、政府等单位都比较喜欢Weblogic,应用还是相对比较广泛的
1# 关于Weblogic搭建
在平常的信息安全相关工作、学习过程中,Weblogic的相关漏洞经常会碰到。而Weblogic环境搭建过程很繁琐,并且平常想要进行代码调试、漏洞复现的时候,经常会有搭建各种Weblogic版本和各种JDK版本的排列组合的需求,导致安全研究人员苦不堪言。
我早些年也被这个问题搞得焦头烂额,当时我一气之下封装了好几个docker才解决问题,但花了不少精力和世界,有没有一个更优雅的方法解决这个问题呢?
最近刚好有两个Weblogic漏洞比较感兴趣,想上手分析一下。正好又看到了奇安信A-Team的Weblogic快速构建项目,这里就上手来试一下,并随手记录一下整个搭建过程。
2# 准备工作
2.1# 准备工具
- VMware虚拟机(其他虚拟机也行)
- CentOS 7镜像(这个快速构建项目只能用CentOS,刚开始我用Ubuntu跑不起来,算是踩坑了)
- WeblogicEnvironment(奇安信A-Team的Weblogic快速构建项目)
- 对应版本的JDK安装包(看你需求)
- 对应版本的Weblogic安装包(看你需求)
2.2# 资源下载方式
CentOS镜像下载地址: http://mirrors.aliyun.com/centos/7.9.2009/isos/x86_64/
下载 CentOS-7-x86_64-DVD-2009.iso
即可,也可以用 CentOS-7-x86_64-DVD-2009.torrent
种子进行下载
WeblogicEnvironment: https://github.com/QAX-A-Team/WeblogicEnvironment
直接下载代码即可
JDK安装包下载地址: https://www.oracle.com/java/technologies/downloads/archive/
选择要安装的版本,比如我想要安装JDK7,直接点击对应链接:
选择 Linux x64
并下载即可
Weblogic安装包下载地址: https://www.oracle.com/middleware/technologies/weblogic-server-downloads.html
选择要安装的版本,比如我想要安装 Oracle WebLogic Server 10.3.6
,选择 Generic Installer
并下载即可
3# 开始搭建Weblogic漏洞复现环境
准备工作都完成了,那就开始搭建吧~
3.1# 安装CentOS到虚拟机
这一步不需要我教你了吧,有问题百度
如果需要把CentOS系统语言改为中文,可以参考这篇文章: https://www.cnblogs.com/-zzf/p/16137234.html
换源的话,如果觉得原始源太慢可以选择换源
安装VM-Tools,在命令行输入以下命令:
sudo yum install -y open-vm-tools
sudo yum install -y open-vm-tools-desktop
3.2# CentOS安装Docker
最好是切换到 root
账户(我怕权限问题)
su root
在终端执行以下命令:
yum install -y docker
显示Docker安装完毕,验证一下是否安装正常即可:
docker --version
或者是这样:
yum list installed | grep docker
如果想每次在服务器启动后都自动启动 Docker 的话,可以使用以下命令开启:
systemctl enable docker
3.2# 配置WeblogicEnvironment
将刚才准备的WeblogicEnvironment压缩包复制到CentOS并解压:
根据项目描述,打开解压后的文件夹,创建两个新文件夹,名字分别是 jdks
和 weblogics
然后将准备好的JDK安装包和Weblogic安装包分别放到 jdks
和 weblogics
这两个文件夹里面
3.3# 运行WeblogicEnvironment
这个项目提供了一键构建Docker镜像的sh脚本,但我们需要修改一下
项目文档中也给出了示例:
以Weblogic12.1.3配JDK 7u21为例,构建镜像命令如下:
docker build --build-arg JDK_PKG=jdk-7u21-linux-x64.tar.gz --build-arg WEBLOGIC_JAR=fmw_12.1.3.0.0_wls.jar -t weblogic12013jdk7u21 .
镜像构建完成后,执行以下命令运行:
docker run -d -p 7001:7001 -p 8453:8453 -p 5556:5556 --name weblogic12013jdk7u21 weblogic12013jdk7u21
同样这两行代码也包含在项目的sh脚本中了,我们修改一下sh脚本文件保存即可:
接下来给文件夹赋予执行权限:
cd /home/demo/WeblogicEnvironment-master //根据项目的位置自行切换
chmod -R 777 ../WeblogicEnvironment-master
然后看一下执行权限给了没:
cd /home/demo/WeblogicEnvironment-master //根据项目的位置自行切换
ls -l
接下来执行脚本即可:
./run_weblogic1036jdk7u21.sh //刚才修改的sh脚本名字
3.4# 解决报错问题
这个时候会报错:Error: Failed to download metadata for repo 'appstream': Cannot prepare internal mirrorlist: No URLs in mirrorlist
首先,进入到 yum
的 repos
目录
cd /etc/yum.repos.d/
其次,修改相关文件内容:
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
然后,安装 wget
:
yum install wget --y //如果已经安装了wget就不需要这一步
接着,更新 yum
源为阿里源:
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
最后,生成缓存更新(第一次更新,速度稍微有点慢,耐心等待两分钟左右):
yum clean all
yum makecache
验证安装 vim
看有无报错:
yum install -y vim
最重要的一步,修改项目的 Dockerfile
文件!
修改开头内容为:
FROM centos
FROM centos:centos7
注释掉以下内容为:
# 解决libnsl包丢失的问题
#RUN yum -y install libnsl
3.5# 成功搭建Weblogic漏洞复现环境
再次运行sh脚本即可成功将Docker环境跑起来:
访问 虚拟机IP:7001/console/login/LoginForm.jsp
能登录到 Weblogic Server
管理控制台,用户名密码如下:
默认用户名:weblogic
默认密码:qaxateam01
4# 总结
搭建一路上还是遇到了不少坑,也卡了挺久的,有时候确实让人很烦躁
但技术的学习就是这样,很多时候都是在发现问题、解决问题,只有认真、耐心的去面对并解决问题,才能有相应的成长和收获!
同时也希望这篇文章能给各位师傅带来帮助~