利用计划任务反弹shell #
1.先用kali监听接收shell的端口:
2.连接redis,创建一个key x,值为反弹shell语句,修改备份目录为linux计划任务目录,修改备份文件名为 root,以root身体执行计划任务
3.执行完后回到监听终端页面,但是反弹的shell无法执行ifconfig命令
4.默认的ifconfig是在/usr/bin/目录下,解决方法:ln -s /usr/sbin/ifconfig /usr/bin/ifconfig
5.反弹shell成功
6.测试完后将备份目录和备份文件恢复
利用redis写入webshell #
服务器配置phpstudy
1. 下载Phpstudy for Linux的bin文件
操作命令: wget -c http://lamp.phpstudy.net/phpstudy.bin
2. 配置phpstudy.bin文件的可执行权限
操作命令: chmod +x phpstudy.bin
3. 执行安装PhpStudy
操作命令: ./phpstudy.bin
4.启动服务
Phpstudy start
5.连接服务器redis,服务器开启web服务,并知道网站路径,有文件读写增删权限
可以尝试apache默认路径,/phpstudy/www /var/www/
6.webshell写入成功,菜刀连接
利用redis主从复制获取shell #
redis主机:kali 192.168.1.138
redis从机:centos7 192.168.1.27
1.分别安装并开启redis数据库,注意4.X以上需要redis.conf关闭保护模式
2.在kali上连接靶机redis服务,并设置主从状态(将kali设置为redis主机)
3.在kali上编译恶意代码
git clone https://github.com/n0b0dyCN/RedisModules-ExecuteCommand.git
编译源码
4.利用工具进行getshell
git clone https://github.com/Ridter/redis-rce
5.将module.so文件放到利用工具目录下
6.在kali上使用nc-lvvp 4444 开启4444监听端口等待反弹shell
7.反弹成功
修复建议 #
1、禁止公网开放 Redis 端口,可以在防火墙上禁用 6379 Redis 的端口。
2、指定redis服务使用的网卡 (需要重启redis才能生效)
在 redis.conf 文件中找到 “# bind 127.0.0.1” ,把前面的#号去掉,然后保存。修改后只有本机才能访问Redis。
3、设置访问密码 (需要重启redis才能生效)
在 redis.conf 中找到“requirepass”字段,在后面填上你需要的密码,Redis客户端也需要使用此密码来访问Redis服务。
4、设置防火墙策略
如果正常业务中Redis服务需要被其他服务器来访问,可以设置iptables策略仅允许指定的IP来访问Redis服务。