Struts2-045
Redis未授权访问
产生原因
Redis 默认情况下,会绑定在 0.0.0.0:6379,这样将会将 Redis 服务暴露到公网上,如果在没有开启认证的情况下,可以导致任意用户在可以访问目标服务器的情况下未授权访问 Redis 以及读取 Redis 的数据。攻击者在未授权访问 Redis 的情况下可以利用 Redis 的相关方法,可以成功在 Redis 服务器上写入公钥,进而可以使用对应私钥直接登录目标服务器
利用条件和方法
条件:
redis服务以root账户运行
redis无密码或弱密码进行认证
redis监听在0.0.0.0公网上
方法:
通过 Redis 的 INFO 命令, 可以查看服务器相关的参数和敏感信息, 为攻击者的后续渗透做铺垫
上传SSH公钥获得SSH登录权限
通过crontab反弹shell
slave主从模式利用
修复
密码验证
降权运行
限制ip/修改端口
Jenkins未授权访问
攻击者通过未授权访问进入脚本命令执行界面执行攻击指令
println “ifconfig -a”.execute().text 执行一些系统命令,利用wget下载webshell
MongoDB未授权访问
开启MongoDB服务时不添加任何参数时,默认是没有权限验证的,而且可以远程访问数据库,登录的用户可以通过默认端口无需密码对数据库进行增、删、改、查等任意高危操作。
防护
1、为MongoDB添加认证:1)MongoDB启动时添加–auth参数 2)给MongoDB添加用户:use admin #使用admin库 db.addUser(“root”, “123456”) #添加用户名root密码123456的用户 db.auth(“root”,“123456”) #验证下是否添加成功,返回1说明成功 2、禁用HTTP和REST端口 MongoDB自身带有一个HTTP服务和并支持REST接口。在2.6以后这些接口默认是关闭的。mongoDB默认会使用默认端口监听web服务,一般不需要通过web方式进行远程管理,建议禁用。修改配置文件或在启动的时候选择–nohttpinterface 参数nohttpinterface=false 3、限制绑定IP 启动时加入参数 –bind_ip 127.0.0.1 或在/etc/mongodb.conf文件中添加以下内容:bind_ip = 127.0.0.1
Memcache未授权访问
Memcached是一套常用的key-value缓存系统,由于它本身没有权限控制模块,所以对公网开放的Memcache服务很容易被攻击者扫描发现,攻击者通过命令交互可直接读取Memcached中的敏感信息。
利用
1、登录机器执行netstat -an |more命令查看端口监听情况。回显0.0.0.0:11211表示在所有网卡进行监听,存在memcached未授权访问漏洞。
2、telnet 11211,或nc -vv 11211,提示连接成功表示漏洞存在
漏洞加固
1、设置memchached只允许本地访问
2、禁止外网访问Memcached 11211端口
3、编译时加上–enable-sasl,启用SASL认证
FFMPEG 本地文件读取漏洞
原理
通过调用加密API将payload加密放入一个会被执行的段字节中。但是具体回答工程中我只回答道了SSRF老洞,m3u8头,偏移量,加密。