Java内存马攻防实战——攻击基础篇

在红蓝对抗中,攻击方广泛应用webshell等技术在防守方提供的服务中植入后门,防守方也发展出各种技术来应对攻击,传统的落地型webshell很容易被攻击方检测和绞杀。而内存马技术则是通过在运行的服务中直接插入运行攻击者的webshell逻辑,利用中间件的进程执行某些恶意代码,而不依赖实体文件的存在实现的服务后门,因此具有更好的隐蔽性,也更容易躲避传统安全监测设备的检测。

本文以Java语言为基础讨论内存马技术的攻防,分为两个篇章,分别是攻击基础篇和防护应用篇。本篇攻击基础篇介绍了Java Servlet技术前置知识,并重点讨论了Java内存马的注入点和注入方式。下一篇文章将会针对这些注入方式的拦截防御手段展开讨论,进一步探索Java内存马的攻防实战。

JAVA Servlet技术前置知识

Servlet/Filter/Listener JAVA WEB三大件

1. Servlet

Servlet 是服务端的 Java 应用程序,用于处理HTTP请求,做出相应的响应。

2. Filter

Filter 是介于 Web 容器和 Servlet 之间的过滤器,用于过滤未到达 Servlet 的请求或者由 Servlet 生成但还未返回响应。客户端请求从 Web 容器到达 Servlet 之前,会先经过 Filter,由 Filter 对 request 的某些信息进行处理之后交给 Servlet。同样,响应从 Servlet 传回 Web 容器之前,也会被 Filter 拦截,由 Filter 对 response 进行处理之后再交给 Web 容器。

3. Listener

Listener 是用于监听某些特定动作的监听器。当特定动作发生时,监听该动作的监听器就会自动调用对应的方法。下面是一个HttpSession的Listener示意图。

该 Listener 监听 session 的两种状态,即创建和销毁。当 session 被创建时,会自动调用 HttpSessionListener 的 sessionCreated() 方法,我们可以在该方法中添加一些处理逻辑。当 session 被销毁时,则会调用 sessionDestroyed() 方法。

当我们在请求一个实现servlet-api规范的java web应用时,程序先自动执行 listener 监听器的内容,再去执行 filter 过滤器,如果存在多个过滤器则会组成过滤链,最后一个过滤器将会去执行 Servlet 的 service 方法,即 Listener -> Filter -> Servlet。

内存马的攻击面

webshell实际上也是一种web服务,那么从创建web服务的角度考虑,自顶向下,有下面几种手段和思路:

  1. 动态注册/字节码替换 interceptor/controller(使用框架如 spring/struts2/jfinal)

  2. 动态注册/字节码替换 使用责任链设计模式的中间件、框架的实现(例如 Tomcat 的 Pipeline & Valve,Grizzly 的 FilterChain & Filter 等等)

  3. 动态注册/字节码替换 servlet-api 的具体实现 servlet/filter/listener

  4. 动态注册/字节码替换一些定时任务的具体实现 比如 TimeTask等

另外,换一个角度来说,webshell作为一个后门,实际上我们需要他完成的工作是能接收到恶意输入,执行恶意输入并回显。那么我们可以考虑启动一个进程或线程,无限循环等待恶意输入并执行代码来作为一个后门。

环境准备

我们首先从Tomcat这一使用广泛的中间件开始说起,在其他中间件如weblogic中对servlet-api规范的实现略有不同,但其思想是一致的。

实验环境如下 jdk 8u102 springboot 2.5.5 (Tomcat embedded) fastjson 1.2.47

下面我们构造一个简单的JAVA 任意代码注入点

通过fastjson 1.2.47 rmi反序列化的方式进行注入,因为重点是注入内存马所以选择了jdk 1.8u102<121的版本进行实验。

fastjson使用的exp为:

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《网络攻防技术与实战——深入理解信息安全防护体系》是一本介绍网络攻防技术和信息安全防护的书籍。该书通过系统地介绍了网络攻防技术和实战经验,帮助读者深入理解信息安全防护的相关知识。 首先,该书对网络攻防技术进行了详细的介绍。它从网络攻击的基本原理和分类开始,介绍了常见的攻击手段,如拒绝服务攻击、病毒蠕虫和木攻击等。接着,书籍重点探讨了不同防护技术的原理和实施方法,包括访问控制技术、入侵检测与防御技术、流量分析技术等。这些内容可以帮助读者了解网络攻击的过程和方法,为实施信息安全防护奠定基础。 其次,该书介绍了信息安全防护体系。作者将信息安全防护分为多个层次,包括网络层、主机层和应用层等,针对不同层次的安全防护提供了相应的解决方案。读者可以学习如何构建强大的信息安全防护体系,以保护企业和个人的敏感数据,并降低信息泄露和损失的风险。 另外,该书还提供了丰富的实战经验和案例分析。通过分析真实的攻击事件和防御措施,读者可以更好地理解信息安全防护的实践和应用。此外,书中还介绍了一些常见的安全工具和平台,如入侵检测系统和安全事件响应平台等,帮助读者更加高效地进行信息安全防护工作。 总之,《网络攻防技术与实战——深入理解信息安全防护体系》是一本对网络攻防技术和信息安全防护进行深入讲解的书籍。它提供了全面而系统的知识,帮助读者理解攻击原理、掌握防护技术,并且通过实战经验和案例分析提供了实用的指导。读者可以通过该书提升自己在信息安全领域的能力和水平。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值