冰鞋3.0 beta9更新浅析

  • A+
所属分类:安全文章

冰鞋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。冰鞋3.0 beta9更新浅析冰鞋3.0 beta9更新浅析

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

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

冰鞋3.0 beta9更新浅析

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

下面我们使用tomcat native扩展来执行命令冰鞋3.0 beta9更新浅析

冰鞋3.0 beta9更新浅析

实测可以绕过openrasp。

结论

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

2. windows 内存马防查杀补丁

在前几篇的文章中,我们分析了windows 下jvm attach的机制,其中最关键的一个方法是JVM的[email protected]方法。该方法在被attach后在目标JVM运行。冰鞋3.0 beta9更新浅析

而冰蝎的操作是,直接在JVM中干掉这个方法,代码也很简单,直接修改JVM中该方法所在内存的权限,让她不能执行。冰鞋3.0 beta9更新浅析

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


冰鞋3.0 beta9更新浅析


本文始发于微信公众号(宽字节安全):冰鞋3.0 beta9更新浅析

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: