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

冰蝎--安装、使用

用途限制声明,本文仅用于网络安全技术研究、教育与知识分享。文中涉及的渗透测试方法与工具,严禁用于未经授权的网络攻击、数据窃取或任何违法活动。任何因不当使用本文内容导致的法律后果,作者及发布平台不承担任何责任。渗透测试涉及复杂技术操作,可能对目标系统造成数据损坏、服务中断等风险。读者需充分评估技术能力与潜在后果,在合法合规前提下谨慎实践。

冰蝎(Behinder)是一款在网络安全领域(尤其是渗透测试和红队行动中)广为人知的 动态加密型 Web 管理客户端。它本质上是一个 高级的 WebShell 管理工具,以其强大的通信加密和内存马技术而闻名,显著提高了攻击的隐蔽性,给传统基于流量特征和文件落地的安全检测带来了巨大挑战。

一、介绍

  • 性质: 冰蝎是一款功能强大的动态加密Webshell管理客户端

  • 目的: 攻击者在成功利用漏洞(如文件上传漏洞、命令注入漏洞等)将一个小型的Webshell后门文件上传到目标Web服务器后,使用冰蝎客户端来连接、管理和控制这个后门,从而完全操控被入侵的服务器。

  • 特点:

    • 高度隐蔽性: 核心特点是通信全程动态加密/混淆。客户端与服务器端的Webshell之间的通信流量(包括请求和响应)都经过强加密(如AES)和编码(如Base64),使得传统的基于特征匹配的WAF、IDS/IPS难以检测和拦截。

    • 流量伪装: 通信协议模拟HTTP/HTTPS,试图伪装成正常Web流量。

    • 内存马支持: 高级版本支持将恶意代码注入到Web服务器进程(如Tomcat, Jboss, WebLogic等)的内存中执行(称为“内存马”)。这种方式不落地文件,重启后失效,但极难被常规文件扫描发现,检测和清除难度极大。

    • 跨平台: 客户端基于Java开发,可在多种操作系统上运行。服务端Webshell支持JSP、PHP、ASPX等多种脚本语言。

    • 功能强大: 提供文件管理、虚拟终端(执行系统命令)、数据库管理、内网代理、端口扫描、内网穿透(Socks代理)、屏幕截图、键盘记录等多种攻击功能模块。

二、工作原理

冰蝎的工作流程可以分为几个关键阶段:

  1. 初始植入:

    • 攻击者首先需要通过其他漏洞(如文件上传、RCE、反序列化等)在目标 Web 服务器上部署一个非常小的、初始的“桩”程序。这个“桩”通常是一个体积很小、功能极其简单的 Webshell 脚本文件(如 behinder.jspbehinder.aspxbehinder.php)。

    • 这个“桩”的核心作用仅仅是为了接收冰蝎客户端发送过来的加密指令和 Payload,并将其加载执行。它本身不具备复杂的恶意功能。

  2. 连接与密钥协商:

    • 攻击者启动冰蝎客户端,配置目标 URL(指向部署的“桩”程序)和连接密码。

    • 客户端发起第一次 HTTP 请求到“桩”。

    • “桩”程序收到请求后,会利用预设的机制(通常基于连接密码)动态生成一个随机的会话密钥

    • “桩”将这个密钥加密(通常用客户端的公钥或基于密码的算法)后返回给冰蝎客户端。

    • 客户端用自己的私钥或密码解密,获得后续通信使用的对称加密会话密钥(如 AES 密钥)。

  3. 内存马注入:

    • 冰蝎客户端使用协商好的会话密钥,加密一个精心构造的、功能完整的恶意 Payload。这个 Payload 就是“内存马”的核心代码。

    • 客户端将加密后的 Payload 通过 HTTP POST 请求发送给“桩”程序。

    • “桩”程序接收到加密数据后,用会话密钥解密得到 Payload。

    • 关键步骤: “桩”程序利用目标 Web 容器的特性(如 Java 的类加载机制、.NET 的 Assembly 加载、PHP 的 eval 或扩展)将解密后的 Payload 动态加载到 Web 服务器进程的内存空间并执行。这个 Payload 会:

      • 挂钩(Hook)关键的系统函数或 Web 请求处理流程(如 javax.servlet.FilterSystem.Web.IHttpModule, PHP 的 auto_prepend_file 等)。

      • 在内存中创建一个无文件的、功能完备的后门,监听特定的请求路径或参数。

      • 这个内存马一旦注入成功,就完全驻留在内存中,不依赖于最初部署的“桩”文件。即使删除原始的“桩”文件,只要 Web 服务器进程不重启,内存马依然有效。

  4. 加密通信与控制:

    • 后续所有的操作(文件管理、命令执行、数据库操作等)都由冰蝎客户端发起。

    • 客户端将指令和所需数据用会话密钥加密,通过 HTTP 请求发送到内存马监听的特定路径。

    • 内存马接收到请求后:

      • 解密指令和数据。

      • 在 Web 服务器进程的上下文中执行指令(如调用系统命令 API、操作文件系统、连接数据库、扫描内网等)。

      • 将执行结果加密

      • 通过 HTTP 响应将加密结果返回给冰蝎客户端。

    • 冰蝎客户端解密响应,将结果显示在图形化界面上给攻击者。

    • 整个通信过程在网络上看到的只是看似随机的、加密的 HTTP 请求和响应数据包,没有明显的恶意特征。

三、为什么冰蝎难以防御?

  1. 流量加密: 高强度、动态密钥的加密使得基于特征匹配的流量审计(IDS/IPS/WAF)失效。

  2. 无文件落地(内存马):

    • 磁盘上只有最初那个简单的“桩”,核心恶意代码在内存中,文件扫描工具找不到。

    • 内存马注入后,删除“桩”文件不影响后门运行。

    • 重启 Web 服务会清除内存马,但攻击者可以通过其他持久化手段或再次利用漏洞重新注入。

  3. 行为隐蔽: 通信模拟正常 Web 流量(HTTP/HTTPS),内存操作在合法进程内部进行,行为监控难度大。

  4. 利用合法进程: 内存马寄生在 java.exew3wp.exephp-fpm.exe 等合法 Web 服务进程中,绕过基于进程名的监控。

四、安装

下载地址:冰蝎-一款强大的内网后门工具资源-CSDN下载

下载后文件如图所示,我们进行终端,通过运行jar文件即可进入web页面,我们也可以通过创建一个bat脚本文件来直接运行其jar文件

脚本代码如下,创建bat文件,直接运行即可

@echo off
setlocal enabledelayedexpansion:: 设置JAR文件名(请替换为你的jar文件名)
set JAR_FILE=Behinder.jar:: 检查JAR文件是否存在
if not exist "!JAR_FILE!" (echo 错误:未找到文件 "!JAR_FILE!"echo 请确认JAR文件名是否正确,或是否与本脚本在同一目录pauseexit /b 1
):: 检查Java环境
java -version >nul 2>&1
if %errorlevel% neq 0 (echo 错误:未检测到Java环境echo 请确保已安装Java并配置好环境变量pauseexit /b 1
):: 运行JAR文件
echo 正在启动应用程序...
echo 运行命令:java -jar "!JAR_FILE!"
echo.
java -jar "!JAR_FILE!":: 捕获应用程序退出代码
set exit_code=%errorlevel%
echo.
echo 应用程序已退出,退出代码:!exit_code!
pause
exit /b !exit_code!

每次打开只要点击bat文件即可,进去页面如下所示

这个工具主要应用于web服务端方面,只要能够上传脚本文件至目标机,并且知道其文件的绝对路径,就可以通过此脚本来获得目标机的webshell,只要目标机没有检测出脚本文件所在,并且目标机运行,那么此工具可以随时随地获得目标机webshell。所以说这是一款强大的后门工具,此类工具很多,比如蚁剑、菜刀、哥斯拉等,冰蝎工具的优势在于有动态加密的特征,更加隐蔽。接下来就是如何使用

1、生成木马

左上角的传输协议处,然后协议名称选择base64,接着生成服务端

生成木马如下

2、连接

然后把文件放在web目录下,进行访问连接

URL填写木马文件所在的地址,传输协议选择你所选择的,然后保存即可

成功连接并且访问,那么就可以进行一系列的操作了,比如查看文件,甚至能够与msf联动,进行内网渗透等一系列操作

最后在连接的过程中,可能会出现一种问题,java版本问题

这里只要更改为jdk-17即可。

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

相关文章:

  • BOM(物料清单)详解:定义、类型、差异与作用
  • 【跨国数仓迁移最佳实践5】MaxCompute近线查询解决方案助力物流电商等实时场景实现高效查询
  • Python 属性描述符(方法是描述符)
  • MySQL 配置性能优化赛:核心策略与实战技巧
  • 新客户 | TDengine 时序数据库是怎么在钢厂“撬动”PI 的?
  • [Flutter] v3.24 AAPT:错误:未找到资源 android:attr/lStar。
  • 详解 Seaborn:让数据可视化更简单高效的 Python 库
  • 使用Python爬虫,selenium能否替代requests?
  • centos出现ping: baidu.com: 未知的名称或服务问题
  • 每日五个pyecharts可视化图表:条形图与关系图
  • 【Centos】Redis 单机部署图文步骤
  • Vue3 基本语法
  • 《从零构建大语言模型》学习笔记2,文本数据处理1(以及tiktoken库无法下载gpt2参数,调用get_encoding时SSL超时的解决方法)
  • 【lucene】PostingsEnum.freq()
  • CVRF 是什么?微软弃用 MS 编号后,网络安全的下一个标准
  • C/C++与JavaScript的WebAssembly协作开发指南
  • 电脑定时开关机终极指南
  • 2025小程序怎么快速接入美团核销,实现自动化核销
  • PeiQi网络安全知识文库PeiQi-WIKI-Book保姆式搭建部署教程
  • sqli-labs通关笔记-第38关 GET字符型堆叠注入(单引号闭合 手工注入+脚本注入两种方法)
  • 欧拉角、四元数与旋转矩阵的C语言转换实现
  • 《论文阅读》传统CoT方法和提出的CoT Prompting的区分
  • 手搓MCP全流程指南:从本地开发部署到PyPI公开发布
  • 自由学习记录(79)
  • 深入解析 Seaborn:数据可视化的优雅利器
  • 智慧社区(九)——事务加持下的小区删除操作
  • Azure OpenAI gpt5和AWS Secrets Manager构建智能对话系统
  • 智能云探索:基于Amazon Bedrock与MCP Server的AWS资源AI运维实践
  • AWS 云小白学习指南 (一)
  • 跟着尚硅谷学vue-day7