HTB靶机Redeemer实战解析
靶机环境部署与初步探测
在开始渗透测试前,首先需创建目标虚拟机实例。通过网络扫描发现目标主机开放的端口是关键突破口。
任务1:识别开放端口
使用快速端口扫描工具nmap对目标IP进行全端口探测:
nmap -sS -T4 -p0-65535 10.129.26.40
扫描结果显示,6379/tcp 端口处于开放状态,该端口通常用于Redis服务。
任务2:识别运行服务
针对6379端口进行详细服务指纹识别:
nmap -A -p6379 10.129.26.40
输出信息表明该端口运行的是 Redis 数据库服务,版本为 5.0.7。
任务3:确定数据库类型
Redis属于典型的内存型数据存储系统,其数据主要驻留在内存中以实现高速读写。因此,正确答案为:In-memory Database。
任务4:连接工具选择
与Redis服务器交互的标准命令行工具是 redis-cli。安装方式如下:
sudo apt install redis-cli
连接目标服务时,使用以下命令:
redis-cli -h 10.129.26.40 -p 6379
无需密码即可建立连接,进入交互模式后可执行后续操作。
任务5:指定主机的参数标志
在redis-cli中,用于指定目标主机地址的参数是 -h。
任务6:获取服务器信息
连接成功后,输入 info 命令可查看服务器运行状态、内存使用、客户端连接数等详细信息。
任务7:确认服务版本
根据nmap扫描结果及info命令输出,目标机器上运行的Redis版本为 5.0.7。
任务8:选择数据库实例
Redis默认支持16个数据库(索引0~15),可通过 select 命令切换当前操作的数据库:
select 0
此命令将上下文切换至编号为0的数据库。
任务9:查询键的数量
在数据库0中,通过查看 Keyspace 模块可知当前有 4 个键值对。
任务10:列出所有键
使用 keys * 命令可以获取当前数据库中全部键的列表。
获取最终凭证
执行以下命令查看所有键:
keys *
发现一个名为 flag 的键。随后使用 get flag 获取其值:
get flag
返回结果即为题目要求提交的flag,完成通关。
补充知识:Redis核心特性
- 数据类型:支持字符串、列表、集合、哈希表、有序集合五种基本类型。
- 内存优先:数据存储于内存,读写性能极高,适合缓存场景。
- 多数据库:默认提供16个独立的命名空间,可通过 select 切换。
- 键空间管理:每个数据库维护一个键值映射字典,称为 keyspace。
- 图形化管理:可通过phpStudy集成工具或RedisClient等客户端软件连接并管理。