中了内存马如何排查(不死马)

源码检测

java中,只有被JVM加载后的类才能被调用,或者在需要时通过反射通知JVM加载。所以特征 都在内存中,表现形式为被加载的class,可以通过一些工具或方法获取到JVM的运行时内存 中已加载的类, Java本身提供了Instrumentation类来实现运行时注入代码并执行,所以我么可以筛选条件组合进行检测:

①新增的或修改的;

②没有对应class文件的

③xml配置中没注册的

④冰蝎等常见工具使用的

⑤filterchain中排第一的filter类

还有一些比较弱的特征可以用来辅助检测,比如类名称中包含shell或者为随机名,使用不常 见的classloader加载的类

另外,有一些工具可以辅助检测内存马,如java-memshell-scanner (https://github.com/c0ny1/java-memshell-scanner)是通过jsp扫描应用中所有

的filter和servlet,然后通过名称、对应的class是否存在来判断是否是内存马

如果是jsp注入,日志中排查可疑jsp的访问请求。

如果是代码执行漏洞,排查中间件的error.log,查看是否有可疑的报错,判断注入时间和方 法

根据业务使用的组件排查是否可能存在java代码执行漏洞以及是否存在过webshell,排查框 架漏洞,反序列化漏洞。

如果是servlet或者spring的controller类型,根据上报的webshell的url查找日志

(日志可能被关闭,不一定有),根据url最早访问时间确定被注入时间

如果是filter或者listener类型,可能会有较多的404但是带有参数的请求,或者大量请求 不同url但带有相同的参数,或者页面并不存在但返回200

相关推荐
Li_RuiQi10 小时前
DAgger方法演进_独立学习笔记
笔记·学习·计算机视觉
Li_RuiQi15 小时前
DAgger与交互式模仿学习_ACT学习笔记
笔记·学习
He BianGu15 小时前
【笔记】C# 中BindingFlags的详细作用
笔记·c#
AI视觉网奇15 小时前
turtle 入门教程笔记
笔记
跨知易知识产权15 小时前
美国专利确权是什么,和专利诉讼有什么不一样?
笔记
杨逢昌工厂6S管理16 小时前
126-杨逢昌6S三环体系:越做越乱的现场熵增机理与基准化治理——一线现场诊断笔记
经验分享·笔记·职场和发展·学习方法
悟道书生16 小时前
若依 RBAC 权限控制学习笔记
java·网络·笔记·sql·学习·vue
陈哈哈111116 小时前
折腾了半天,总算把 Vim 9.2 装明白了
笔记
陈哈哈111116 小时前
折腾了半天,总算把 OpenGL 的开发环境给装明白了
笔记
深圳老胡17 小时前
STM32F103 硬件 SPI 与软件 IO 模拟 SPI 最高速度差异详解
笔记·stm32·单片机·代码规范·1024程序员节