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

源码检测

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

相关推荐
益达丫28 分钟前
Socket编程揭秘:端口、IP与进程通信的底层逻辑
linux·笔记
马可家的菠萝6 小时前
你收藏的资料,有多少真的被你第二次打开过?
笔记·知识管理·效率提升·个人知识库
小刘在重生~7 小时前
Java Lock 显式锁案例|ReentrantLock 解决多线程安全问题(超详细实战)
java·笔记·面试
职豚求职小程序7 小时前
中国人寿27秋招笔试[特殊字符]北森机考|备考攻略
笔记
江湖人称菠萝包7 小时前
【Qt】《Qt 5.9 C++开发指南》笔记-Chapter9-Qt Charts
笔记·qt·qt5
乐橙开放平台7 小时前
从「多套客户端」到一套开放能力:乐橙视频监控能力复盘
笔记·物联网·自动化·音视频·智能家居
山岚的运维笔记8 小时前
mysql 专业笔记 -- 第 36 章:MySQL 管理
运维·数据库·笔记·后端·mysql·oracle·dba
江湖人称菠萝包9 小时前
【Qt】《Qt 5.9 C++开发指南》笔记-Chapter10-Data Visualization
笔记·qt·qt5
老当益壮梁奶奶10 小时前
ARM汇编学习笔记(五):从按键轮询到 GIC 中断控制器(ARM Cortex-A7 )
arm开发·笔记·单片机·嵌入式硬件
既然如此,那就开摆10 小时前
2023_Kirillov_SAM_总结
笔记·学习·遥感