1. 为什么要在Kali Linux上安装蚁剑?

如果你刚开始接触网络安全,或者已经玩了一段时间的Kali,那你肯定对Metasploit、Nmap这些工具不陌生。它们就像是你的“瑞士军刀”,功能强大,但在某些特定场景下,比如当你已经通过一个Web漏洞拿到了一台服务器的“一句话木马”连接时,你需要的可能是一把更趁手、更专注于文件管理和交互的“手术刀”。这时候,蚁剑(AntSword)就该登场了。

我刚开始做渗透测试的时候,也经历过用命令行一点点敲,用其他工具凑合着用的阶段,效率低还容易出错。后来接触到蚁剑,感觉就像打开了新世界的大门。它本质上是一个图形化的WebShell管理工具,专门用来连接和管理你已经植入到目标服务器上的WebShell。什么叫WebShell?你可以把它理解成一个藏在网站里的“后门程序”,你通过蚁剑这个“遥控器”连接上它,就能在目标服务器上执行命令、上传下载文件、甚至操作数据库,就像在操作自己电脑的文件夹一样直观。

那为什么非得在Kali Linux上装呢?原因很简单,Kali是渗透测试的“标准作战平台”。它预装了海量的安全工具,环境纯净,网络配置也方便。你在Kali里做漏洞扫描、漏洞利用,拿到WebShell后,直接在同一台机器上用蚁剑去连接和管理,整个工作流是连贯的,不用在虚拟机或者物理机之间来回切换,效率能提升不少。而且,很多靶场环境和实战场景都默认在Linux环境下进行,在Kali上使用蚁剑能获得最原生的体验,避免一些跨平台的兼容性问题。

所以,这篇文章我就来手把手带你,在Kali Linux上把蚁剑装好、配置好,并且结合几个我实战中经常遇到的场景,告诉你怎么用它。我会尽量把每一步都讲清楚,包括我踩过的坑和总结的小技巧,目标是让你看完就能上手,在下次渗透测试中真正用起来。

2. 前期准备与依赖安装

在正式安装蚁剑之前,我们得先把“地基”打好。这个地基就是运行蚁剑所必需的软件环境。蚁剑本身是用Node.js开发的,所以Node.js环境是必须的。另外,我们还需要一个能显示图形界面的环境,毕竟蚁剑是个图形化软件。好在Kali Linux默认已经安装好了图形桌面环境(比如Xfce),所以我们主要搞定Node.js就行。

2.1 安装Node.js与npm

打开你的Kali终端。首先,我建议先更新一下系统的软件包列表,确保我们安装的是最新版本的软件。这个习惯很好,能避免一些因版本过旧导致的奇怪问题。

sudo apt update

更新完成后,就可以安装Node.js和npm(Node.js的包管理器)了。在Kali的仓库里,通常有多个版本的Node.js。对于蚁剑来说,我们安装长期支持版(LTS)就足够了,它更稳定。

sudo apt install nodejs npm -y

命令里的 -y 参数表示自动确认安装,省去我们手动输入“y”的步骤。安装完成后,我们可以验证一下是否安装成功:

node -v
npm -v

这两条命令会分别输出Node.js和npm的版本号。如果能看到版本信息,比如 v18.x.x9.x.x,那就说明安装成功了。我遇到过有些时候安装的Node.js版本太老,导致后续运行蚁剑出问题。如果版本低于14,我建议你考虑通过NodeSource的仓库来安装更新的版本,不过对于大多数情况,Kali仓库里的版本已经够用了。

2.2 获取蚁剑安装包

环境准备好了,接下来就是获取蚁剑的“本体”。蚁剑是一个开源项目,代码托管在GitHub上。我们有两种主要方式获取它:直接下载编译好的发布包,或者克隆源代码自己构建。对于新手和大多数使用者,我强烈推荐直接下载发布包,省时省力,不容易出错。

我们可以打开浏览器,访问蚁剑的GitHub发布页面:https://github.com/AntSwordProject/antSword/releases。你会看到很多个版本,我建议选择最新的稳定版(通常标题里没有“beta”或“alpha”字样)。下载哪个文件呢?找到文件名类似 antSword-v2.x.x-linux-x64.zip 或者 antSword-v2.x.x-linux-x64.tar.gz 的,这就是为Linux 64位系统预编译好的包。

当然,作为一个“命令行爱好者”,我们也可以直接在Kali终端里用wget命令下载,这样更快捷。比如,假设最新版本是2.1.15,我们可以这样操作(请注意,版本号需要你根据实际最新发布页面的信息进行替换):

wget https://github.com/AntSwordProject/antSword/releases/download/2.1.15/antSword-v2.1.15-linux-x64.zip

如果你下载的是 .zip 格式,Kali默认可能没有解压工具,需要安装一下:

sudo apt install unzip -y

然后创建一个你喜欢的目录,用来存放蚁剑。我不建议把它放在桌面或者临时目录,找一个固定的、你有权限的路径。比如,我习惯在用户主目录下创建一个 Tools 文件夹来存放所有安全工具:

mkdir ~/Tools
mv antSword-v2.1.15-linux-x64.zip ~/Tools/
cd ~/Tools
unzip antSword-v2.1.15-linux-x64.zip

解压后,你会得到一个名为 antSword 的目录,这就是蚁剑的全部文件了。至此,前期准备工作就全部完成了。

3. 详细安装与初始化配置

拿到安装包只是第一步,接下来我们要让蚁剑真正运行起来,并进行一些必要的初始化设置。这个过程有点像给新手机开机并设置语言、账户一样。

3.1 启动蚁剑与数据目录设置

进入我们刚才解压出来的 antSword 目录:

cd ~/Tools/antSword

在这个目录下,你会看到一个可执行文件,也叫 antSword(没有扩展名)。在终端里,直接运行它:

./antSword

第一次运行,蚁剑会弹出一个设置向导。最关键的一步来了:设置数据目录。这个数据目录是蚁剑用来存储所有核心数据的地方,包括你添加的服务器连接配置、插件、日志等等。这个目录绝对不能是蚁剑本身的安装目录,也最好不要是临时目录。为什么呢?因为如果你不小心删除了安装目录,或者下次更新蚁剑时覆盖了安装目录,你所有的连接配置就全丢了,那会非常痛苦。

所以,我建议你在一个安全的地方专门创建一个目录。比如,在用户主目录下创建一个 .antSword 文件夹(以点开头的文件夹在Linux下是隐藏的):

mkdir ~/.antSword

然后在蚁剑的设置向导里,点击路径选择按钮,导航到并选中这个 ~/.antSword 文件夹。点击确定。这样做的好处是,你的配置数据和你安装的程序完全分离。以后即使你下载了新版本的蚁剑,解压到新的地方,只要在首次启动时再次指向这个 ~/.antSword 目录,你所有的服务器连接记录、插件就都回来了,无缝切换。

设置好数据目录后,蚁剑会进行初始化,这个过程很快。完成后,你就会看到蚁剑的主界面了。一个干净、简洁的窗口,中间是空白的,因为我们还没有添加任何“数据”(也就是服务器连接)。

3.2 主界面初探与核心概念

第一次打开主界面,你可能会觉得有点无从下手。别急,我来给你快速捋一下几个核心区域和概念。

主界面左侧通常是一个树形列表,未来你所有的服务器连接都会以分类的形式显示在这里。中间是最大的空白区域,这是工作区,当你连接上一个WebShell后,文件管理、终端模拟、数据库管理等功能都会在这里以标签页的形式打开。顶部是菜单栏,包含文件、编辑、视图、工具等选项。

现在,在左侧空白处右键点击,选择“添加数据”。这会弹出添加服务器的核心配置窗口。这里有几个关键参数你必须理解:

  • URL:这是你植入在目标网站上的WebShell文件的完整访问地址。比如 http://target.com/shell.php
  • 连接密码:这是你在WebShell文件中设置的密码。蚁剑通过这个密码来验证连接。常见的WebShell类型如“中国菜刀”格式,密码字段就叫 pass
  • 编码器:这是为了绕过一些简单的WAF(Web应用防火墙)或IDS(入侵检测系统)而设计的。默认的 default 编码器是明文传输,在实战中很容易被拦截。我们通常会选择 base64random 等编码器,它们会对通信数据进行编码,增加隐蔽性。
  • 请求配置:这里可以设置HTTP头,比如修改User-Agent来模拟普通浏览器,或者设置代理。设置代理是一个非常重要的实战技巧,在后续的实战部分我们会详细讲。

你先不用着急填写,我们先把界面熟悉一下。知道这几个核心概念后,我们就可以进入最激动人心的实战环节了。

4. 实战渗透测试场景应用

工具装好了,界面也认识了,现在我们来点真格的。我会模拟两个最常见的渗透测试场景,带你看看蚁剑到底能做什么。请记住,所有操作都必须在你有合法授权或在自己搭建的靶机环境中进行,未经授权攻击他人系统是违法行为。

4.1 场景一:文件管理与信息搜集

假设我们已经通过一个文件上传漏洞,将一句话木马 shell.php 上传到了目标服务器,地址是 http://192.168.1.100/uploads/shell.php,连接密码是 ant

我们在蚁剑中添加这个数据。右键 -> 添加数据,填写URL和密码,编码器先选 default,点击“添加”。如果连接成功,左侧列表就会出现这个主机的条目,双击它,工作区就会打开这个Shell的“虚拟文件管理器”。

1. 浏览文件系统:你会看到一个很像Windows资源管理器或Mac Finder的界面。你可以随意点击文件夹,查看目标服务器上的文件。这是最基本也是最强大的功能。我通常会第一时间查看以下几个关键目录:

  • /home:查看有哪些用户目录。
  • /var/www/html:网站根目录,看看有没有其他网站的源码、配置文件。
  • /tmp:临时目录,经常会有一些可写的文件。
  • /etc/passwd/etc/shadow:查看系统用户和密码哈希(需要root权限才能读shadow)。

2. 上传/下载文件:右键点击文件或文件夹,可以选择上传、下载、删除、重命名等。比如,你可以上传一个更强大的后门脚本,或者把找到的数据库配置文件 config.php 下载回来分析。这里有个小技巧:上传大文件时,如果网络不稳定,可以先用压缩命令在目标服务器上打包成多个小包,再分批下载。

3. 终端模拟:点击上方的“虚拟终端”标签页(或者按Ctrl+T),会打开一个命令行界面。你可以在这里执行系统命令,比如 whoami 查看当前权限,uname -a 查看系统信息,ifconfig 查看网络配置。信息搜集阶段,这些命令的输出至关重要。

4.2 场景二:权限提升与内网渗透

通过文件管理,我们可能发现当前权限很低,只是一个普通的Web用户(比如 www-data)。很多敏感操作做不了。这时候就需要“提权”。

1. 利用蚁剑插件进行漏洞检测:蚁剑的强大之处在于其插件生态。点击菜单栏的“插件”->“插件市场”,你可以在线安装很多实用插件。比如,有一些插件可以自动检测系统版本、运行的服务、SUID文件等,并给出可能的本地提权漏洞建议。安装后,在Shell的右键菜单或插件菜单里就能使用。

2. 上传提权利用代码:如果我们通过信息搜集,发现目标系统是Linux内核4.x,并且知道一个对应的本地提权漏洞(比如Dirty Cow)。我们可以先在本地下载好漏洞利用的C代码(exp),然后通过蚁剑的文件管理上传到目标服务器的可写目录(如 /tmp)。

接着,在蚁剑的虚拟终端里,切换到 /tmp 目录,使用系统自带的GCC编译器编译这个exp:

cd /tmp
gcc dirtycow.c -o dirtycow -pthread

编译成功后,运行 ./dirtycow。如果利用成功,我们可能就会获得一个root权限的Shell。这时,在蚁剑终端里再执行 whoami,应该就会显示 root 了。

3. 端口转发与代理设置:拿到更高权限后,我们可能发现目标服务器处于内网,而内网里还有其它机器。蚁剑本身不直接提供强大的内网穿透功能,但我们可以利用它作为跳板。

一种常见的方法是,在目标服务器上上传一个轻量级的SOCKS5代理工具(如ewfrp的客户端),并在目标服务器上运行起来,监听一个端口。然后,在蚁剑的该数据配置中,设置“请求配置”->“代理”,类型选择SOCKS5,地址填写 127.0.0.1,端口填写你刚才在目标服务器上启动的代理端口。这样设置后,蚁剑所有通向这个WebShell的流量,都会先经过你本机的代理设置(需要在本机也运行对应的代理服务端),最终通过目标服务器上的代理工具转发到内网。这样,你就可以在蚁剑中添加新的数据,去连接内网中其他机器的WebShell了,实现了内网穿透。

这个过程稍微有点绕,但它是实战中非常经典的“跳板”技术。蚁剑通过代理配置,完美地融入了这个攻击链。

5. 高级技巧与安全注意事项

玩转了基本功能,我们再来聊聊一些能让你效率倍增的高级技巧,以及绝对不能忽视的安全守则。

5.1 编码器与流量伪装

在实战中,直接使用 default 编码器(明文传输)的连接请求,其HTTP包特征非常明显,很容易被安全设备(WAF、IDS/IPS)识别并阻断。蚁剑内置了多种编码器来对抗这种检测。

  • Base64编码器:这是最常用的之一。它会将你的命令、参数等内容进行Base64编码后再发送,接收端解码后执行。这能绕过一些简单的字符串匹配检测。
  • Random编码器:它会生成随机的参数名和无效数据填充到请求中,使得每次请求的数据包大小、结构都略有不同,干扰基于固定模式的检测。
  • 自定义编码器:对于高手,可以自己编写JS代码来定义编码解码规则,实现高度定制化的流量混淆。

我的建议是,在测试时,可以多尝试几种编码器。如果一个连接失败,可以编辑数据,换一个编码器再试。有时候,配合修改HTTP请求头(如使用常见的浏览器User-Agent),能大幅提高连接成功率。

5.2 插件扩展与自定义开发

蚁剑的插件系统是其生命力所在。除了之前提到的漏洞扫描插件,还有:

  • 数据库管理插件:直接连接和管理MySQL、MSSQL、Oracle等数据库,图形化操作,比命令行方便太多。
  • 文件打包下载插件:自动将整个目录打包成zip再下载,解决了大目录下载慢的问题。
  • 内存马管理插件:针对Java等环境的无文件WebShell进行管理,属于高阶利用。

如果你会JavaScript,甚至可以基于蚁剑提供的API开发自己的插件。比如,写一个插件来自动化完成你每次渗透测试都要做的一系列信息搜集命令。这能把你从重复劳动中解放出来。

5.3 至关重要的安全操作守则

最后,也是最重要的,是安全注意事项。这不仅指目标系统的安全,更指你自身操作的安全。

  1. 法律红线:再次强调,只在获得明确授权的目标或自己完全控制的实验环境(如DVWA、Metasploitable等靶机)中使用蚁剑。未经授权的测试是犯罪。
  2. 隔离环境:最好在虚拟机(如VMware里的Kali)中运行蚁剑和进行测试。避免测试用的恶意代码或操作影响到你的宿主机。
  3. 数据备份:定期备份你的 ~/.antSword 数据目录。你可以把这个目录打包加密保存。一旦Kali虚拟机崩溃或重置,这是你恢复所有工作成果的唯一希望。
  4. 清理痕迹:在授权测试结束后,务必使用蚁剑的文件管理和终端功能,清理你上传的所有工具、脚本以及可能产生的日志文件。一个专业的渗透测试者,不仅要能进去,还要能悄悄地离开,不留尾巴。这既是职业操守,也能在真实的对抗环境中保护自己不被反追踪。
  5. 保持更新:关注蚁剑的GitHub项目,定期更新到新版本。新版本通常会修复已知漏洞、增加新功能和提高稳定性。使用一个过时且有已知漏洞的工具去攻击别人,本身就是极大的风险。

蚁剑只是一个工具,它的威力取决于使用它的人。把它用在正确的道路上,它能帮助你极大地提升工作效率,深入理解系统与安全的原理。希望这篇指南能成为你手中这把“手术刀”的锋利开端。在实际使用的过程中,你肯定会遇到各种奇怪的问题,多搜索、多尝试、多思考,每一次解决问题的过程,都是你技术成长的一块坚实基石。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐