当前位置: 首页 > news >正文

小迪安全v2023学习笔记(一百四十五讲)—— Webshell篇魔改冰蝎打乱特征指纹新增加密协议过后门查杀过流量识别

文章目录

  • 免杀对抗——第一百四十五天
    • Webshell篇&魔改冰蝎&打乱特征指纹&新增加密协议&过后门查杀&过流量识别
      • Webshell工具 - 冰蝎Behinder
        • 简介
        • 流量特征
          • 冰蝎3.0
          • 冰蝎4.0
      • 魔改冰蝎 - JAR反编译打包构建
      • 魔改冰蝎 - 防识别-打乱特征指纹
      • 魔改冰蝎 - 防查杀-新增加密/传输协议
        • 修改加密方式
        • 修改传输方式

免杀对抗——第一百四十五天

Webshell篇&魔改冰蝎&打乱特征指纹&新增加密协议&过后门查杀&过流量识别

Webshell工具 - 冰蝎Behinder

简介
  • 冰蝎是一款基于 Java 开发的动态加密通信型 Webshell 管理工具,它有如下特点:
    1. 通信加密:使用 AES 或 XOR 对称加密算法对通信数据进行加密,密钥协商阶段动态生成密钥,后续通信基于该密钥进行加解密
    2. 跨平台兼容:客户端基于 Java,支持 Windows、Linux、macOS 等主流操作系统
    3. 功能丰富:支持命令执行、虚拟终端、文件管理、SOCKS 代理、反弹 shell、数据库管理、自定义代码、Java 内存马注入等
  • 我们在实战中主要用到冰蝎3.0和冰蝎4.0,它们两款的主要差别在于通信加密的密钥协商环节:
    • 冰蝎3.0硬编码了密钥为rebeyond的MD5前16位,因此没有密钥协商阶段
    • 冰蝎4.0默认密钥位rebeyond的MD5前16位,但是允许攻击者自定义算法、加解密逻辑,会存在密钥协商阶段
  • 但不管是冰蝎的哪个版本,整体的流程都如下图所示,本地加密之后发送到目标主机,当通信的时候才解密进行通信,因此能够在一定程度上进行免杀:
    在这里插入图片描述
    在这里插入图片描述
流量特征
  • 当然,由于冰蝎比较出名,所以它默认版本的流量特征基本都被研究透了,所以我们要对他进行魔改,以此来绕过检测
  • 冰蝎的强弱特征如下:
冰蝎3.0
  • 强特征:
    1. 固定密钥:默认连接密码 rebeyond → MD5 前 16 位 e45e329feb5d925b,写入 shell 且全程不变;拿到即可解密全部历史流量
    2. JSP shell 首次请求的 Content-Type 几乎必定是 application/octet-stream,正常上传/表单不会使用该值
    3. UA 高速轮换:内置 10+ 个 User-Agent,同一 IP 在相邻请求里来回切换,正常浏览器不会 3-5 秒换 UA
  • 弱特征:
    1. Accept 头倾向 text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2(Java HttpURLConnection 默认),合法但少见
    2. 命令执行类包体长度常落在 5720/5740 字节附近,且 Content-Length 偏大、无随机填充
    3. 全程长连接 Connection: keep-alive,只能算辅助行为
冰蝎4.0
  • 强特征:
    1. 本地 TCP 源端口从 49700 左右顺序递增,每次新会话 +1,可做时序关联
    2. 请求/响应体带固定字节头(现版本硬编码):
      请求 dFAXQV1LORcHRQtLRlwMAhwFTAg/M
      响应 TxcWR1NNExZAD0ZaAWMIPAZjH1BFBFtHThcJSlUXWEd
      不管选什么加密算法都会出现
    3. 默认 shell 仍保留 3.0 同款密钥 e45e329feb5d925b
  • 弱特征:
    1. Accept: application/json, text/javascript, */*; q=0.01
    2. Content-Type: application/x-www-form-urlencoded 与 3.0 相同,合法但偏少见
    3. User-Agent同样 10 选一、长连接、大 Content-Length

魔改冰蝎 - JAR反编译打包构建

  • 我们本节课主要是针对冰蝎进行魔改操作,那么需要拿到它的源码,它是由Java开发的,那我们就反编译拿到源码

  • 这里可以用自带的反编译工具,也可以使用网上的项目或者在线网站:

    1. java-decompiler.jar:Java自带反编译工具
    2. crf:https://github.com/leibnitz27/cfr/releases
    3. procyon:https://github.com/mstrobel/procyon/releases
    4. 在线反编译网站:https://www.decompiler.com/
  • 我们就用在线网站就好了,直接上传冰蝎4.0的jar包上去,然后等待他反编译成功下载下来:
    在这里插入图片描述

  • 打开IDEA创建新项目,选择Intellij构建系统,并将JDK版本改为1.8,因为大多数工具都是Java8开发的:
    在这里插入图片描述

  • 我们将反编译之后的文件夹放进去,然后新建一个lib目录,放入原版的冰蝎jar包:
    在这里插入图片描述

  • 然后利用该jar包构建项目模块:
    在这里插入图片描述

  • 选择工件,点击加号添加主类:
    在这里插入图片描述
    在这里插入图片描述

  • 配置完成之后,接下来我们就可以魔改冰蝎了,找到需要修改的代码,比如这里我们修改UI界面的显示名称为我们自己

  • 先搜索特征,比如“t00ls、By rebeyond”,尽量搜英文,因为这个编译可能中文会被Unicode编码,这里我们在这个文件中找到了上面的关键字:
    在这里插入图片描述

  • 然后我们尝试修改,比如将这个作者改为我们自己,我们先将这个文件夹复制到src目录,在src目录中修改代码:
    在这里插入图片描述

  • 修改完成之后,我们可以把无关的其他文件删除,当然也可以保留(如果有报错,只要不是我们修改的文件就把报错的文件删掉),然后点击构建:
    在这里插入图片描述

  • 构建完成之后就会在out目录放一个jar包,运行这个jar包就是我们魔改的冰蝎:
    在这里插入图片描述

  • 可以看到我们确实修改成功了,这里如果运行失败的,将原本的data.db文件复制到同一目录下即可:
    在这里插入图片描述

魔改冰蝎 - 防识别-打乱特征指纹

  • 上面讲到冰蝎的弱特征包括它请求头里的Accept、UA、Content-Type字段,而这些基本都被流量检测设备标记了,所以我们需要更改上面的内容,来绕过检测
    在这里插入图片描述

  • 我们根据这些关键词去找对应的代码,那还是找到上面的这个文件这里:
    在这里插入图片描述

  • 能够看到正好是我们说的弱特征的两个点,10个UA头,固定的Accept字段,那我们就可以尝试修改为其他的UA头和Accept字段:
    在这里插入图片描述

  • 然后构建打包,重新连接看看我们的UA和Accept字段是否修改:
    在这里插入图片描述

  • 当然,冰蝎其实也提供了自定义请求头的功能,可以在添加时自定义修改:
    在这里插入图片描述
    在这里插入图片描述

  • 所以这个只是更改默认的这些字段,我们魔改更多的还是为了下面的加密协议

魔改冰蝎 - 防查杀-新增加密/传输协议

  • 参考文章:冰蝎4.0流量分析及魔改-先知社区
修改加密方式
  • 传输协议可以理解为流量的加密方式,冰蝎内置了部分传输协议,但是这些可能基本都被流量检测设备给标记了:
    在这里插入图片描述

  • 比如我们随便选一个传输协议,然后通过这个发送数据包可以看到流量就变了:
    在这里插入图片描述
    在这里插入图片描述

  • 可以看到这里流量就变成了我们选择的加密方式进行传输,但是这些可能早就被标记了,所以我们需要新的算法去进行传输

  • 当然,这里就只是演示简单的看个修改的过程和效果即可,比如我们添加rot13、unicode等编码方式去绕过

  • 有两种添加方式,一种是直接图形化添加,一种是魔改源码,我们也是两个都看一下,第一种直接点击传输协议,然后新建即可:
    在这里插入图片描述

  • 比如这里我添加rot13,然后我们先在本地用Java代码实现加解密,直接让AI生成一份即可,然后点击保存,如果没有提示”一致性校验未通过“就说明我们的加解密是通的
    在这里插入图片描述

  • 然后选择远程,可以添加其他语言的加解密代码,比如php、asp等,然后再用这些木马去进行连接,就会发现流量已经完全变了:
    在这里插入图片描述

  • 当然如果这是这样添加,可能也没什么用,因为它生成的一句话木马本身还是无法实现免杀,所以最好的方式是修改源码

  • 我们根据特征找到 “net.rebeyond.behinder.resource” 包,下面的server目录存放的是木马模板,而transprotocol目录存放的就是传输协议配置:
    在这里插入图片描述

  • 我们做免杀基本就从这两个地方入手,比如我们对shell.php做一个简单的免杀(目前代码都可以用AI生成):
    在这里插入图片描述

  • 然后构建项目打包,然后随便生成一个木马看看效果:
    在这里插入图片描述

  • 可以看到卡巴斯基并没有报毒,并且也能成功上线:
    在这里插入图片描述

修改传输方式
  • 除了上面更改加密的方式,我们也可以更改传输的格式,比如用JSON、XML、multipart等格式进行传输

  • 当然它内置了JSON,所以我们可以新加一个XML格式传输:
    在这里插入图片描述

  • 然后抓包看看效果:
    在这里插入图片描述

http://www.dtcms.com/a/582474.html

相关文章:

  • 网站源码做exe执行程序域名被墙查询检测
  • HarmonyOS:ArkWeb在新窗口中打开页面
  • 青岛谁做网站多少钱做网站大概需要多少费用
  • jmeter内存踩坑记录
  • 浙江建设职业技术学院网站彬县网
  • PowerShell 和 CMD
  • EFS `<br>` 标签渲染修复:从文本到换行的完整解决方案
  • 怎样在建设厅网站查询安全员证彩票网站开发与建设
  • 创建一个网站要钱吗梅林网站建设公司
  • 成都小程序定制开发企业网站怎样做seo优化 应该如何做
  • Java中的设计模式------策略设计模式
  • 太原做网站设计电子商务网站设计原理书籍
  • 网站服务器迁移企业管理咨询机构
  • Redis —— 架构概览
  • 筑牢用电防线:Acrel-1000 自动化系统赋能 35kV 园区高效供电-安科瑞黄安南
  • 青海住房和城乡建设部网站山东省城乡建设厅官网
  • 哈尔滨智能建站模板厦门 网站建设 网站开发
  • 第3节 RSA算法开启公钥加密时代
  • 昆山做网站公司哪家好青岛市黄岛区城市建设局 网站
  • 从正确到卓越:昇腾CANN算子开发高级性能优化指南
  • 网站建设 国家标准微网站自助建站
  • 政务公开系统网站建设短剧分销平台
  • 网站建设的静态网页作业青田网站做服装找工作
  • 【1min 速通 -- PyTorch 张量数据类型】张量类型的获取、转化与判别
  • git stash push 命令作用及使用场景
  • 青岛李沧区城乡建设局网站自己给网站做优化怎么做
  • 梧州网站建设设计朝阳专业网站建设
  • 网站模板和定制的区别网站营销应该怎么做
  • 用自己服务器做网站用备案wordpress功能小工具增加按钮
  • 2025 年的热门 AI 编程工具评测:Cursor、Claude Code、Codex、Lovable、v0 等