Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
MASAPT — 用于自动化渗透测试的多智能体系统 (MASAPT) | Kitploit
工具/GitHubGitHub/marzekan/masapt
渗透测试框架侦察漏洞扫描器网络映射渗透测试学习与教育
GitHubmarzekan/masapt

MASAPT

用于自动化渗透测试的多智能体系统 (MASAPT)

查看仓库
3044年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

MASAPT 🤖 ↔ 🧠 ↔ 🤖


 

❗ 免责声明

本工具仅用于学术和研究目的,作为大学课程的一部分。 在未获事先同意的情况下使用 MASAPT 攻击目标是非法的。

开发者对因使用本工具造成的任何损害概不负责,并 谴责任何恶意使用 MASAPT 的行为。本工具目前不适用于任何专业 环境,它只是底层理论模型的 概念验证。


欢迎来到...

多智能体自动化渗透测试系统 🐱‍💻

usage_gif

 

探索 → 利用 → 报告 → 📝

一个基于 SPADE 智能体通过 XMPP 通信协调并执行渗透测试的自主系统。 以命令行工具的形式呈现!

传入 URL,稍等片刻,阅读报告!

   

report1 report1


MASAPT 是什么?

它是一个用 Python 开发的 概念验证 多智能体系统,旨在 以结构化和智能化的方式自动化渗透测试过程。

最终目标是打造一个功能完善、灵活、分布式的基于 CLI 的渗透测试 工具,用于自动化渗透测试任务。

当前功能:

  • 使用 Nmap 执行网络扫描
  • 使用 SQLMap 执行基础 SQL 注入
  • 生成包含已执行利用和侦察结果的报告

未来计划与功能列于 此处。


如何运行?

比较复杂。

安装依赖:

需要安装相当数量的先决条件和依赖:

  • Kali Linux 2020.4(可选)——任何基于 Debian 的操作系统应该都能正常工作。
  • Python 3.8
  • Pip3
  • SPADE
  • SQLMap(Kali 上已预装)
  • Nmap(Kali 上已预装)

除了 Python 和 Kali 自带的渗透测试工具外,你还需要 访问某个 XMPP 服务。我在测试系统时使用了本地运行的 ejabberd。

要让你选择的 XMPP 服务器上的智能体运行起来,你需要创建 以下用户。当然,你也可以创建其他用户,但随后你需要在 masapt 脚本中创建智能体时传递新的 JID 和 PWD 参数。

JIDPASSWORD
repoter@domainrepoterSecret

设置:

在先决条件安装完成且 XMPP 设置妥当之后:

  1. 进入项目文件夹

    root@kitploit:~
        cd ../MASAPT
    
  2. 将目录添加到 PATH

    root@kitploit:~
        export PATH=$PATH:/path/to/MASAPT
        source ~/.bashrc
    
  3. 安装 Python 依赖

    root@kitploit:~
        pip install -r requirements.txt
    
  4. 使 masapt 脚本可执行

    root@kitploit:~
        chmod +x masapt
    

运行:

通过以下命令启动系统:

root@kitploit:~
    masapt -t url/to/target

 


后续工作

  • install.sh 脚本
  • Docker 智能体
  • 连接漏洞利用数据库/知识库

更多智能体:

  • DoS 智能体
  • XSS 智能体
  • 缓冲区溢出智能体

扩展 Explorer.py 以支持:

  • 运行 Harvester
  • 运行更多 OSINT 工具

扩展 SQLinjector.py 以支持:

  • 更好地利用 SQLMap
  • 适应更多类型的数据库

扩展 Coordinator.py 以支持:

  • 更优地决定哪些智能体执行攻击

系统概述 🔎

MASAPT 系统被设想为 模块化、分布式 和 务实 的。这意味着组成系统的智能体独立于主进程,可升级,并使用现有的、经过“实战检验”的渗透测试工具。

为实现设想的目标,智能体作为 三层模型 的一部分进行开发,该模型源自标准的渗透测试阶段(规划 - 执行 - 后执行)。该模型的高层概览见下方的 图 1。

本概述中的所有理论概念均已实现代码(除了未来的构想——图 8)。这些概念应在系统未来的任何升级中继续实现。

三层模型

三层模型 的主要思想是提供一个框架,用于组织和分类本系统中的智能体。

模型的第一层包含 探索者 智能体,负责进行 OSINT 并收集有关目标的任何有用情报。

第二层包含 协调者 智能体和 利用 智能体。协调者是一个单独的智能体,它决定哪些利用智能体将参与当前的测试。利用智能体顾名思义是执行漏洞利用的智能体——SQL 注入、XSS、DoS、缓冲区溢出……可以有很多这类利用智能体。

第三层包含 报告者 智能体,其任务是收集所有利用数据、结果、所有利用智能体的数据转储,并在最终报告中汇总。报告随后展示给用户并本地存储。

在第一张图中,粗箭头代表模型中的数据流。

 

图1     图2

 

图 2 显示了与第一张图相同的模型,但更详细——智能体可以清楚地看到在各自层级中。该图中的 实心 箭头再次代表模型中的数据流,从而显示哪些智能体在相互通信。可以看到 探索者 智能体将数据发送给 协调者 智能体,后者再将一些数据发送给 利用 智能体(SQLinjector、agent2、agent3)。最后,利用智能体收集的所有数据都传递给 报告者 智能体,然后由它编译、汇总并呈现给用户。

还可以看到只有 探索者 和 利用(SQLinjector)智能体与外部环境(测试目标)交互。这由双向 虚线 箭头表示。


架构

如前所述,MASAPT 系统的特性之一是分布式的。这方面的一个方面已经实现,因为所有智能体都是作为独立程序实现的,由主(masapt)脚本运行。

图 3. 显示了当前系统的设置和测试方式。可以看到智能体使用 SPADE 环境通过本地系统上设置的 XMPP(ejabberd)服务器进行通信。测试目标(SQLi Labs)也设置在本地系统上。这种设置适合测试系统,但并未展示 MASAPT 作为分布式系统的全部能力。

 

 

另一方面,图 4. 显示了 MASAPT 未来可能的实现方式。它展示了一个分布式多智能体系统,使用 XMPP 进行通信,并使用 Docker 跨多个不同系统运行。实心 箭头再次显示了系统的通信和数据流方面,展示了智能体如何通过中心 XMPP 服务器发送和接收数据。

 

 

选择 XMPP 的原因

智能体通过 XMPP 通信的主要原因是为智能体提供一种可靠、语言无关的通信方式。通过这种方法,并非所有未来的智能体都必须用 Python 编写,甚至不必使用 SPADE 环境。

其背后的理由是,未来可能存在使不同系统成为 MASAPT 一部分的用例(例如,用其他编程语言编写的智能体)。因此,这种“XMPP 方法”是为系统提供那种灵活性的最佳方式。

智能体行为

除了通信能力,行为是任何智能体的第二个最重要的方面。MASAPT 智能体及其行为通过一组状态建模,这使其成为有限状态机。SPADE 环境对创建有限状态机有很好的支持。

下面的图表显示了智能体在任何时刻可能处于的所有状态。图表还显示了哪些事件导致智能体转移到下一个状态。所有未来的智能体都应以同样的方式实现。

所有未来的利用智能体(例如 DoS、XSS……)应使用 图 8. 的图表作为模板实现。

 

图5 图6

 

图7   图8

 

参考文献 🔗

[1] 非常感谢 Audi-1 和他出色的 SQLI labs,用于测试基于错误的、布尔盲注和基于时间的 SQL 注入!

[2] Chu, Ge, and Alexei Lisitsa. "Agent-based (BDI) modeling for automation of penetration testing." arXiv preprint arXiv:1908.06970 (2019).

[3] Qiu, X., Wang, S., Jia, Q., Xia, C., & Xia, Q. (2014, October). An automated method of penetration testing. In 2014 IEEE Computers, Communications and IT Applications Conference (pp. 211-216). IEEE.

下载工具
explorer@domain
explorerSecret
coordinator@domaincoordinatorSecret
sqlinjector@domaininjectorSecret