内存马涉及基础知识整理

本文详细介绍了内存马的基础知识,从webshell的演变到内存马的效果和实现方式。重点讨论了如何利用Tomcat架构设计中的Filter、Servlet等组件实现内存马。内容涵盖Servlet的工作流程、Tomcat的架构原理以及Java反射机制,同时探讨了内存马的检测方法。
摘要由CSDN通过智能技术生成

内存马简介

1.1 webshell变迁

web服务器管理页面——> 大马——>小马拉大马——>一句话木马——>加密一句话木马

内存马是无文件攻击的一种常用手段,随着攻防演练热度越来越高:攻防双方的博弈,流量分析、EDR等专业安全设备被蓝方广泛使用,传统的文件上传的webshll或以文件形式驻留的后门越来越容易被检测到,内存马使用越来越多

Webshell内存马,是在内存中写入恶意后门和木马并执行,达到远程控制Web服务器的一类内存马,其瞄准了企业的对外窗口:网站、应用。但传统的Webshell都是基于文件类型的,黑客可以利用上传工具或网站漏洞植入木马,区别在于Webshell内存马是无文件马,利用中间件的进程执行某些恶意代码,不会有文件落地,给检测带来巨大难度。

1.2 效果和如何实现

我们想实现访问任意url或者指定url,带上命令执行参数,即可让服务器返回命令执行结果

如何实现?
请求和servlet通过动态注册一个新的Filter或者向Filter中注入恶意的shellcode,让Filter允许攻击者访问到Web服务器内存中的数据
同理 Listener,Servlet也能实现效果

1.3 涉及到的知识
  1. 什么是servlet

Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层

  1. 请求的处理过程

客户端发起一个http请求,比如get类型。
Servlet容器接收到请求,根据请求信息,封装成HttpServletRequest和HttpServletResponse对象。
Servlet容器调用HttpServlet的init()方法,init方法只在第一次请求的时候被调用。
Servlet容器调用service()方法。
service()方法根据请求类型,这里是get类型,分别调用doGet或者doPost方法,这里调用doGet方法。
doXXX方法中是我们自己写的业务逻辑。
业务逻辑处理完成之后&

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值