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

文章目录

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

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. crfhttps://github.com/leibnitz27/cfr/releases
    3. procyonhttps://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字段是否修改:

  • 当然,冰蝎其实也提供了自定义请求头的功能,可以在添加时自定义修改:

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

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

修改加密方式
  • 传输协议可以理解为流量的加密方式,冰蝎内置了部分传输协议,但是这些可能基本都被流量检测设备给标记了:

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

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

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

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

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

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

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

  • 我们根据特征找到 "net.rebeyond.behinder.resource" 包,下面的server目录存放的是木马模板,而transprotocol目录存放的就是传输协议配置:

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

  • 然后构建项目打包,然后随便生成一个木马看看效果:

  • 可以看到卡巴斯基并没有报毒,并且也能成功上线:

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

  • 当然它内置了JSON,所以我们可以新加一个XML格式传输:

  • 然后抓包看看效果:

相关推荐
Digitally3 小时前
如何将iPhone上的笔记传输到电脑
笔记·电脑·iphone
落羽的落羽3 小时前
【C++】现代C++的新特性constexpr,及其在C++14、C++17、C++20中的进化
linux·c++·人工智能·学习·机器学习·c++20·c++40周年
Claire_ccat3 小时前
2025山西省网络安全职业技能大赛PWN方向题解
linux·安全·网络安全·pwn·栈溢出
雾迟sec3 小时前
Web安全-文件上传漏洞-黑白名单及其它绕过思路(附思维导图)
javascript·安全·web安全·网络安全·apache·安全威胁分析
小苏兮3 小时前
【把Linux“聊”明白】编译器gcc/g++与调试器gdb/cgdb:从编译原理到高效调试
java·linux·运维·学习·1024程序员节
im_AMBER3 小时前
React 11 登录页项目框架搭建
前端·学习·react.js·前端框架
newxtc3 小时前
【锦州通APP注册_登录安全-无验证方式导致安全隐患】
人工智能·selenium·测试工具·安全·政务
lkbhua莱克瓦244 小时前
Java基础——常用算法4
java·数据结构·笔记·算法·github·排序算法·快速排序
lpfasd1234 小时前
GEO崛起与AI信任危机:数据源安全如何守护智能时代的基石?
大数据·人工智能·安全