初识Java内存马检测

近些年,无文件攻击技术越来越流行。本文旨在介绍无文件攻击中最为流行的一种技术——Java内存马,让企业、用户了解和重视其危害性,提高防范意识,降低安全风险。 

- 全文约1500字,预计阅读时间为4分钟 -

前言

7e4d64ef2b119b2e4ef3c6a4aacb775d.gif

在Ponemon Institute给出的一份网络安全报告中显示,2018年所有的网络攻击中,35%是无文件攻击。

据Dynatrace的不完全统计,2020年成功的勒索病毒攻击事件中,有超过80%是通过无文件的方式完成的。同年新增的大部分新型勒索病毒样本也大多采用了无文件技术。

互联网始于1969年美国的阿帕网,2000年之后进入高速增长,数据增长速度远超摩尔定律,这对企业的网络、存储、应用都提出了很大的考验。Java以其成熟且稳定的技术体系,在互联网的潮流中激流勇进,成为了最主要的语言,成为了企业的最爱。

Java内存马(以下简称“内存马”)也开始逐渐进入人们的视野中。由于其无文件的特性,可以有效躲避传统安全设备的检测,所以在近年的护网行动中内存马也逐渐成为了攻击方的常备武器之一。

在2017年的《看不见的Shell》文章中就已经提出了通过动态注册servlet在tomcat中注册内存马。而在一份2019年的Java生态报告中显示,tomcat仍是Java开发者中使用最广泛的web服务器,市场占有率高达73%。

此后随着冰蝎将Java Agent技术应用在Java内存马上以后,拓宽了内存马的使用场景,对内存马的研究和使用开始越来越火,2020年出现了更多针对特定框架使用的内存马,其中包括了在Java Web中占据主导地位的Spring。(Spring框架在Github上已有超过45k stars)

Java Web内存马作为众多WebShell的一种,在了解Java Web内存马之前我们先回顾一下什么是WebShell,它有哪些危害。

什么是WebShell?

1e8404ef05f4aa3ce36f90cf2f9c9e17.gif

WebShell通常指攻击者所使用的一种恶意脚本,其目的是为了获取web服务器的命令执行操作权限,来达到执行系统命令,窃取服务数据等恶意目的。WebShell所使用的语言类型往往和web服务的后端环境有关。

WebShell类型变迁

2e42c0feb2d167b9953475d70ff9b65e.gif

WebShell最初是以网站或者服务器管理的形式存在的,后来逐渐演变成功能较为齐全的“大马”,能够支持在渗透过程中可能用到的各种功能,比如文件管理,命令执行,端口扫描,反弹shell等等。但是功能齐全也意味着文件体积较大容易暴露或者直接被限制大小无法完成上传。随之也就衍生出了小马(体积较小,隐蔽性强),最重要的是在与图片结合一起上传之后利用nginx或者IIS6的解析漏洞来运行,一般只包含上传文件功能,然后通过小马拉大马。随后还出现了更加短小精悍的一句话木马。

047b411ff90855dfcb78a0f55bdf0330.png

主流WebShell工具

34606315a2fc32b4711a75ed5d93541d.gif

冰蝎

冰蝎是一款现在较为流行的WebShell工具,原因在于其拥有着极其优秀的加密通讯的特点,可以选择通过预共享密钥机制使其通讯全程秘文进行。并且在最新的版本中支持利用Java Agent技术对多种Web容器注入内存马的功能。并且在使用冰蝎时产生的TLS流量与正常访问网页的TLS流量在行为特征上差异很小。传统的WAF,IDS等设备对其检测有较大的难度。简单设置后就可以完成shell管理。

53187167e94d5b7a5340733c11459198.png

哥斯拉

哥斯拉的通讯流量和冰蝎一样也是加密过的,并且其号称其全类型的shell能够绕过市面上大部分的静态查杀。同时还能够提供各种插件配置,一键生成shell脚本等功能,在新版本中同时也支持了Java内存马的注入功能。

c5532cc597cfeb511abd96ddf1a9fe55.png

常见的检测思路

089187c0b867ca104aea784d907d37f8.gif

1. 静态特征匹配

由于WebShell需要传递命令以及执行命令,所以可以针对一些危险函数的调用进行匹配来判断是否为WebShell

2. 文件完整性检测

由于大部分类型的WebShell的实现需要涉及到文件的新增与修改,可以实时监测web服务中的文件是否涉及到以上特性的变化。

3. 动态行为检测

通过监控提供Web服务的进程在系统上执行了哪些系统命令来动态监测分析该行为是否是一个正常行为。

内存马的检测难点

8364a4cbe386484835ac9fd165c33fcf.gif

由于内存马仅存在于进程的内存空间中,很多传统的检测防护手段对其无能为力。同时内存马的种类也十分繁多,根据不同的脚本类型,Web中间件存在各种触发机制不同的内存马,没有稳定的静态特征。在下一篇,中我们会针对Java Web内存马进行深入分析。

关于Java内存马检测,我们将在微步安全学院进行专题直播,2022年1月6日晚19:10开播,同时也会在直播间发布河马Java内存马专杀工具,感兴趣的伙伴可以长按识别下图二维码报名。

ce74d8f46342c584823bd76221481ece.png

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值