Memcached 未授权访问漏洞及加固

memcached是一套分布式的高速缓存系统。它以Key-Value(键值对)形式将数据存储在内存中,这些数据通常是应用读取频繁的。正因为内存中数据的读取远远大于硬盘,因此可以用来加速应用的访问。

漏洞成因:

由于memcached安全设计缺陷,客户端连接memcached服务器后 无需认证就 可读取、修改服务器缓存内容。 漏洞影响:

除memcached中数据可被直接读取泄漏和恶意修改外,由于memcached中的数据像正常网站用户访问提交变量一样会被后端代码处理,当处理代码存在缺陷时会再次导致不同类型的安全问题。

不同的是,在处理 前端用户直接输入的数据时一般会接受更多的安全校验,而从memcached中读取的数据则更容易被开发者认为是可信的,或者是已经通过安全校验的,因此更容易导致安全问题。

由此可见,导致的二次安全漏洞类型一般 由memcached数据使用的位置(XSS通常称之为sink)的不同而不同, 如:

(1)缓存数据未经过滤直接输出可导致XSS;

(2) 缓存数据 未经过滤代入拼接的SQL注入查询语句可导致SQL注入;

(3) 缓存数据 存储敏感信息(如:用户名、密码),可以通过读取操作直接泄漏;

(4) 缓存数据 未经过滤直接通过system()、eval()等函数处理可导致命令执行;

(5) 缓存数据 未经过滤直接在header()函数中输出,可导致CRLF漏洞(HTTP响应拆分)。

… …

漏洞利用:

漏洞的利用根据所造成二次漏洞的不同,可在缓存变量中构造相应的payload。

针对memcached未授权访问漏洞缓存数据的抓取,可使用 go-derper工具。

注: memcached服务器基本操作及go-derper工具使用方法参见链接。

漏洞攻击DEMO:

http://niiconsulting.com/checkmate/2013/05/memcache-exploit/

漏洞检测:

1、登录机器执行netstat -an | more命令查看端口监听情况。回显0.0.0.0:11211表示在所有网卡进行监听,存在 memcached 未授权访问漏洞。

2、telnet  <target>  11211, 或 nc -vv  <target>  11211,提示连接成功表示漏洞存在。

TELNET:
 
        ------------------------------------------------------------
 
        local% telnet x.x.x.x 11211
 
        Trying x.x.x.x...
 
        Connectedto x.x.x.x.
 
        Escapecharacteris ‘^]‘.
 
        
 
        NC:
 
        ------------------------------------------------------------
 
        local% nc -vv x.x.x.x 11211
 
        found 0 associations
 
        found 1 connections:
 
            1: flags=82<CONNECTED,PREFERRED>
 
        outifen7
 
        src x.x.x.x port 55001
 
        dst x.x.x.x port 11211
 
        rankinfonot available
 
        TCPauxinfoavailable
 
        
 
        Connectionto x.x.x.x port 11211 [tcp/*] succeeded!
 
        statsitems
 
        memcachedagentv0.4
 
        matrix 1 -> x.x.x.x:12000, poolsize 1
 
        matrix 2 -> x.x.x.x:12001, poolsize 1
 
        END
3、使用端口扫描工具nmap进行远程扫描:nmap -sV -p 11211 –script memcached-info <target>。

11211/tcpopen  memcached
 
        | memcached-info:
 
        |  ProcessID          18568
 
        |  Uptime              6950 seconds
 
        |  Servertime          SatDec 31 14:16:10 2011
 
        |  Architecture        64 bit
 
        |  UsedCPU (user)      0.172010
 
        |  UsedCPU (system)    0.200012
 
        |  Currentconnections  10
 
        |  Totalconnections    78
 
        |  Maximumconnections  1024
 
        |  TCPPort            11211
 
        |  UDPPort            11211
 
        |_  Authentication      no
漏洞修复:

1、配置memcached监听本地回环地址127.0.0.1。

[[email protected] ~]# vim /etc/sysconfig/memcached
        OPTIONS="-l 127.0.0.1"  #设置本地为监听
 
        [[email protected] ~]# /etc/init.d/memcached restart #重启服务 (可能会提示11211端口被占用,这时候需要kill对应11211占用的Pid)
2、当memcached 配置为监听内网IP或公网IP时, 使用主机防火墙(iptalbes、 firewalld等)和 网络防火墙对memcached服务端口 进行过滤。

时间: 2024-08-02 06:59:54

Memcached 未授权访问漏洞及加固的相关文章

Redis 未授权访问漏洞(附Python脚本)

0x01 环境搭建 #下载并安装 cd /tmp wget http://download.redis.io/releases/redis-2.8.17.tar.gz tar xzf redis-2.8.17.tar.gz cd redis-2.8.17 make #启动redis服务 cd src ./redis-server 启动redis服务进程后,就可以使用测试客户端程序redis-cli和redis服务交互了. 比如: [email protected]:/tmp/redis-2.8.

zookeeper的未授权访问漏洞问题

zookeeper的基本情况 zookeeper是分布式协同管理工具,常用来管理系统配置信息,提供分布式协同服务.zookeeper官网下载软件包,bin目录下有客户端脚本和服务端脚本.另外还有个工具对理解和使用zookeeper服务非常有用,即zk-ui,该工具是zk服务端的可视化工具,可在web界面对服务端进行操作. zookeeper以树状结构保存数据,我们完全可以对比linux文件系统理解zookeeper的文件系统.不同点在于linux下的每个目录名对应一个znode. znode是z

Redis未授权访问漏洞的利用及防护

Redis未授权访问漏洞的利用及防护 什么是Redis未授权访问漏洞? Redis在默认情况下,会绑定在0.0.0.0:6379.如果没有采取相关的安全策略,比如添加防火墙规则.避免其他非信任来源IP访问等,这样会使Redis服务完全暴露在公网上.如果在没有设置密码认证(一般为空)的情况下,会导致任意用户在访问目标服务器时,可以在未授权的情况下访问Redis以及读取Redis的数据.攻击者在未授权访问Redis的情况下,利用Redis自身的提供的config命令,可以进行文件的读写等操作.攻击者

Rsync未授权访问漏洞的利用和防御

首先Rsync未授权访问利用 该漏洞最大的隐患在于写权限的开启,一旦开启了写权限,用户就可以,用户就可以利用该权限写马或者写一句话,从而拿到shell. 我们具体来看配置文件的网相关选项(/etc/rsync.conf) 这一项read only表示只读,如果这一项为no,我们就具有写权限了. 如果这边有个PHP的站,如果写个一句话,后果大家都懂得. 当然,有些时候也可以读取到一些信息,这样可以造成敏感信息泄露. Rsync未授权访问漏洞的修复(或者说防御.缓解措施) 配置文件解析: 配置文件位

docker搭建redis未授权访问漏洞环境

这是redis未授权访问漏洞环境,可以使用该环境练习重置/etc/passwd文件从而重置root密码 环境我已经搭好放在了docker hub 可以使用命令docker search ju5ton1y来搜索该镜像 构建好容器之后需进入容器对ssh服务重启 /etc/init.d/ssh restart Dockerfile如下: #Redis is not authorized to access # Base image to use, this nust be set as the fir

修补--Redis未授权访问漏洞

--------------------------------阿里云解决方案----------------------------------- 一.漏洞描述 Redis因配置不当可以导致未授权访问,被攻击者恶意利用.当前流行的针对Redis未授权访问的一种新型攻击方式,在特定条件下,如果Redis以root身份运行,黑客可以给root账户写入SSH公钥文件,直接通过SSH登录受害服务器,可导致服务器权限被获取和数据删除.泄露或加密勒索事件发生,严重危害业务正常服务. 二.Redis安全漏洞

Redis未授权访问漏洞

一.漏洞描述和危害 Redis因配置不当可以未授权访问,被攻击者恶意利用.攻击者无需认证访问到内部数据,可能导致敏感信息泄露,黑客也可以恶意执行flushall来清空所有数据. 攻击者可通过EVAL执行lua代码,或通过数据备份功能往磁盘写入后门文件,如果Redis以root身份运行,黑客可以给root账户写入SSH公钥文件,直接通过SSH登录受害服务器. 二.已确认被成功利用的软件及系统   对公网开放,且未启用认证的redis服务器. 三.建议修复方案 1.指定redis服务使用的网卡 (需

Redis未授权访问漏洞分析

catalog 1. Redis简介 2. 漏洞概述 3. 漏洞利用方式 4. 修复方式 1. Redis简介 Relevant Link: http://www.cnblogs.com/LittleHann/p/3901588.html 2. 漏洞概述 Redis 默认情况下,会绑定在 0.0.0.0:6379,这样将会将 Redis 服务暴露到公网上,如果在没有开启认证的情况下,可以导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis 的数据.攻击者在未授权访

jboss 未授权访问漏洞复现

一.漏洞描述 未授权访问管理控制台,通过该漏洞,可以后台管理服务,可以通过脚本命令执行系统命令,如反弹shell,wget写webshell文件. 二.漏洞环境搭建及复现 1. 这里用CVE-2017-7504的漏洞环境,启动环境 docker-compose up -d 2. 浏览器访问http://172.17.0.1:8080/ 3.发现jboss默认页面,点击进入控制页 4.点击jboss.deployment进入应用部署页面 5.使用apache搭建远程木马服务器 6.通过addurl