Memcached服务渗透
Memcached介绍
Memcached是一套分布式的高速缓存系统。它以Key-Value(键值对)形式将数据存储在内存中,这些数据通常是应用读取频繁的。正因为内存中数据的读取远远大于硬盘,因此可以用来加速应用的访问。
Memcached服务默认端口号为11211
,连接方式如下
telnet IP 11211
nc -vv IP 11211
Memcached命令
下面列举Memcached服务器常用的命令。
-
stats:输出 Memcached 服务信息。下面详细解释每个状态项
pid:memcache服务器进程ID uptime:服务器已运行秒数 time:服务器当前Unix时间戳 version:memcache版本 pointer_size:操作系统指针大小 rusage_user:进程累计用户时间 rusage_system:进程累计系统时间 curr_connections:当前连接数量 total_connections:Memcached运行以来连接总数 connection_structures:Memcached分配的连接结构数量 cmd_get:get命令请求次数 cmd_set:set命令请求次数 cmd_flush:flush命令请求次数 get_hits:get命令命中次数 get_misses:get命令未命中次数 delete_misses:delete命令未命中次数 delete_hits:delete命令命中次数 incr_misses:incr命令未命中次数 incr_hits:incr命令命中次数 decr_misses:decr命令未命中次数 decr_hits:decr命令命中次数 cas_misses:cas命令未命中次数 cas_hits:cas命令命中次数 cas_badval:使用擦拭次数 auth_cmds:认证命令处理的次数 auth_errors:认证失败数目 bytes_read:读取总字节数 bytes_written:发送总字节数 limit_maxbytes:分配的内存总大小(字节) accepting_conns:服务器是否达到过最大连接(0/1) listen_disabled_num:失效的监听数 threads:当前线程数 conn_yields:连接操作主动放弃数目 bytes:当前存储占用的字节数 curr_items:当前存储的数据总数 total_items:启动以来存储的数据总数 evictions:LRU释放的对象数目 reclaimed:已过期的数据条目来存储新数据的数目
-
stats items:查看缓存中存储的键值对的统计信息
-
set:添加/更新键
-
add:添加键
-
get:获取键的值
-
delete:删除键
Memcached未授权访问
由于Memcached安全设计缺陷,默认的11211端口不需要密码即可访问,导致攻击者可直接连接Memcached服务并获取其中的信息,造成信息泄露。
对于Memcached未授权访问,可以使用nmap的脚本扫描验证,如下
nmap -sV -p11211 --script="memcached-info" IP
出现Authentication: no
即代表Memcached存在未授权访问
鸣谢
- https://www.runoob.com/memcached/memcached-get-data.html
- https://blog.csdn.net/ZhaoSong_/article/details/135029513
- https://blog.csdn.net/eric_sunah/article/details/51612316
- https://wiki.96.mk/Web安全/Memcache/Memcache未授权访问/#21
- https://www.cnblogs.com/TiramisuPS/p/16476083.html
- https://www.cnblogs.com/Yuanbangchen/p/16567402.html
- https://developer.aliyun.com/article/1326529