冰鞋3.0 beta9更新浅析 – 作者:宽字节安全实验室

冰鞋3.0 bete9更新了,本此更新如下

  1. 修复了内存马防查杀补丁在windows服务器未生效的问题
  2. .anti rasp

1. anti rasp

java这一块rasp比较多,因为jvm提供了相关的技术支持。但是rasp真的是万金油吗?我们以百度的openrasp为例。

众所周知,java的rasp只可以修改java class的字节码,不可以修改native库的字节码。虽然这句话说起来很别扭,但是像我们阐述一个道理,即java agent修改字节码的能力是有限的。

如果我们把很多操作,通过java调用native库,也就是JNI技术去实现,这样就可以绕过java agent了。原理在于,rasp对于很多他认为有关敏感操作的类的方法进行插桩。在很多中漏洞攻击中,最终都要回归到调用相关敏感方法上。在该方法被调用的时候用规则去检测被调用函数的参数。如果认为是敏感操作则拦截本次方法的请求。那么如果有关敏感操作的方法是JNI实现的,那么rasp就无能为力了。

我们可以发现,这种rasp绕过的技巧比较高,需要目标靶机上存在有敏感操作的JNI库方法,我们才可以加以利用。所以,冰蝎的绕过方法是,自己上传一个JNI库文件(windows dll共享库),将相关操作封装为shellcode。 图片[1]-冰鞋3.0 beta9更新浅析 – 作者:宽字节安全实验室-安全小百科图片[2]-冰鞋3.0 beta9更新浅析 – 作者:宽字节安全实验室-安全小百科

在load方法中我们可以明显看出这就是执行一段shellcode的功能,不知道广大厂商的EDR能否拦截这种操作。

当然,某些中间件也会自带JNI库,去实现某些高性能操作。我们也可以用来绕过rasp。例如tomcat

图片[3]-冰鞋3.0 beta9更新浅析 – 作者:宽字节安全实验室-安全小百科

org.apache.tomcat.jni包中,tomcat为了实现高性能的网络IO处理,自己使用C语言的方式重新实现了socket操作,文件读写,MMAP等一系列操作。tomcat需要安装tomcat-native扩展才可以使用org.apache.tomcat.jni包下的操作。

下面我们使用tomcat native扩展来执行命令 图片[4]-冰鞋3.0 beta9更新浅析 – 作者:宽字节安全实验室-安全小百科

图片[5]-冰鞋3.0 beta9更新浅析 – 作者:宽字节安全实验室-安全小百科

实测可以绕过openrasp。

结论

冰蝎的rasp绕过只是影响被渗透后无法溯源webshell都执行过什么命令,而不影响渗透前rasp的拦截。看样子rasp们还可以放心

2. windows 内存马防查杀补丁

在前几篇的文章中,我们分析了windows 下jvm attach的机制,其中最关键的一个方法是JVM的_JVM_EnqueueOperation@20方法。该方法在被attach后在目标JVM运行。 图片[6]-冰鞋3.0 beta9更新浅析 – 作者:宽字节安全实验室-安全小百科

而冰蝎的操作是,直接在JVM中干掉这个方法,代码也很简单,直接修改JVM中该方法所在内存的权限,让她不能执行。 图片[7]-冰鞋3.0 beta9更新浅析 – 作者:宽字节安全实验室-安全小百科

当然,这种也比较容易恢复,重新设置一下内存的权限即可。可能很多EDR就支持该查杀

来源:freebuf.com 2021-04-22 10:10:30 by: 宽字节安全实验室

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论