【中英文 网站源码】【nuxt源码讲解】【命理源码】大马 源码_php大马源码

2024-11-25 04:44:23 来源:工程合同管理源码 分类:百科

1.asp大马和小马是大马什么意思?
2.一文看懂内存马

大马 源码_php大马源码

asp大马和小马是什么意思?

       想ASP大马,一般就是源码指海洋之类的ASP木马,他们体积较大,马源码但功能也很全。大马

       所谓ASP小马,源码一般指站长助手、马源码中英文 网站源码一句话木马等。大马他们体积很小,源码一般在拿webshell是马源码都是先上上传站长助手,在通过它上传大马的大马。这就是源码杂志上经常提到的“小马传大马”

一文看懂内存马

       webshell的变迁过程大致如下:

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

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

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

       目标:访问任意url或者指定url,带上命令执行参数,即可让服务器返回命令执行结果

       实现:以java为例,客户端发起的web请求会依次经过Listener、Filter、Servlet三个组件,我们只要在这个请求的任务源码thinkphp过程中做手脚,在内存中修改已有的组件或者动态注册一个新的组件,插入恶意的shellcode,就可以达到我们的目的。

       根据内存马注入的方式,大致可以将内存马划分为如下两类

       1.servlet-api型 通过命令执行等方式动态注册一个新的listener、filter或者servlet,从而实现命令执行等功能。特定框架、容器的内存马原理与此类似,如spring的controller内存马,tomcat的后端源码加密valve内存马 2.字节码增强型 通过java的instrumentation动态修改已有代码,进而实现命令执行等功能。

       2.1 Servlet

       Servlet 是运行在 Web 服务器或应用服务器上的程序,是作为来自 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。它负责处理用户的请求,并根据请求生成相应的返回信息提供给用户。

       2.1.1 Filter

       简介

       filter也称之为过滤器,是对Servlet技术的一个强补充,其主要功能是在HttpServletRequest到达 Servlet 之前,拦截客户的HttpServletRequest ,根据需要检查HttpServletRequest,也可以修改HttpServletRequest 头和数据;在HttpServletResponse到达客户端之前,拦截HttpServletResponse ,根据需要检查HttpServletResponse,也可以修改HttpServletResponse头和数据。

       基本工作原理

       实现

       filter的生命周期

       filter链 当多个filter同时存在的时候,组成了filter链。web服务器根据Filter在web.xml文件中的注册顺序,决定先调用哪个Filter。当第一个Filter的doFilter方法被调用时,web服务器会创建一个代表Filter链的FilterChain对象传递给该方法,通过判断FilterChain中是否还有filter决定后面是否还调用filter。

       2.1.3 Listener

       简介

       JavaWeb开发中的监听器(Listener)就是Application、Session和Request三大对象创建、销毁或者往其中添加、修改、删除属性时自动执行代码的功能组件。

       用途

       可以使用监听器监听客户端的请求、服务端的操作等。通过监听器,可以自动出发一些动作,比如监听在线的用户数量,统计网站访问量、网站访问监控等。

       2.2 Tomcat

       Tomcat 作为Servlet容器,将http请求文本接收并解析,然后封装成HttpServletRequest类型的request对象,传递给servlet;同时会将响应的信息封装为HttpServletResponse类型的response对象,然后将response交给tomcat,tomcat就会将其变成响应文本的格式发送给浏览器。

       2.3 其他java背景知识

       2.3.1 java反射

       2.3.2 java instrumentation

       3 内存马实现

       使用新增servlet的方式就需要绑定指定的URL。如果我们想要更加隐蔽,做到内存马与URL无关,无论这个url是原生servlet还是某个struts action,甚至无论这个url是否真的存在,只要我们的请求传递给tomcat,tomcat就能相应我们的指令,那就得通过注入新的或修改已有的filter或者listener的方式来实现了。比如早期rebeyond师傅开发的memshell,就是通过修改org.apache.catalina.core.ApplicationFilterChain类的internalDoFilter方法来实现的,后期冰蝎最新版本的内存马为了实现更好的兼容性,选择hook javax.servlet.http.HttpServlet#service 函数,在weblogic选择hook weblogic.servlet.internal.ServletStubImpl#execute 函数。

       4 内存马检测与排查

       在java中,只有被JVM加载后的类才能被调用,或者在需要时通过反射通知JVM加载。所以特征都在内存中,表现形式为被加载的class。需要通过某种方法获取到JVM的运行时内存中已加载的类, Java本身提供了Instrumentation类来实现运行时注入代码并执行,因此产生一个检测思路:注入jar包-> dump已加载class字节码->反编译成java代码-> 源码webshell检测。

本文地址:http://5o.net.cn/html/92d254897359.html 欢迎转发