FlySecAgent:——MCP全自动AI Agent的实战利器
最近,出于对人工智能在网络安全领域应用潜力的浓厚兴趣,我利用闲暇时间进行了深入研究,并成功开发了一款小型轻量化的AI Agent安全客户端FlySecAgent。
什么是 FlySecAgent?
这是一个基于大语言模型和MCP(Model-Controller-Plugin)和Rag架构的网络安全智能助手项目。它旨在通过自然语言交互,帮助用户执行渗透测试任务、查询安全信息、分析流量包等。
项目地址: https://github.com/hnking-star/FlySecAgent
FlySecAgent实战体验
配置好url,并且写上对应的key,这里我使用的是gpt-4o来演示
运行项目界面,并且在服务端启动好对应的mcp工具
sql注入
以往,SQL注入攻击需要资深安全人员手动构造复杂的语句,或依赖sqlmap
等工具的特定参数。而FlySecAgent则将这一过程提升到智能化的新高度。当笔者指令助手进行SQL注入时,它能够迅速识别目标,并精准地爆破出完整的数据库名、表名,直至详尽的数据内容。
当我让助手帮我对其进行sql注入。发现他爆出了完整的库名
发现他爆出了完整的表名
爆出完整的数据
这展现了FlySecAgent结合AI的强大潜力:它能够理解上下文,自动生成和调整攻击载荷,使得sqlmap
等工具的运用变得前所未有的灵活和高效,极大地减少了人工查找特定指令的繁琐步骤。
fofa查询
在资产侦察阶段,Fofa等搜索引擎是不可或缺的利器。FlySecAgent将其集成,使得复杂查询变得轻而易举。例如,当笔者要求查询"baidu.com"的子域名时,FlySecAgent迅速列出了大量相关子域名。
发现他列出了baidu的许多子域名
进一步,当指令查询某个IP段的C段信息时,FlySecAgent也能精确识别并列出所有相关的C段地址。这种能力使得安全研究人员能够以前所未有的速度和便捷性,进行大规模的资产清查和目标锁定。
成功列出所有的C段
调用kali进行nmap扫描
FlySecAgent 的强大之处还在于其对常用渗透测试工具的无缝集成。通过调用Kali Linux中的工具,它能够执行一系列关键任务:
对其进行端口扫描
发现都准确无误
调用kali进行文件扫描
调用fscan进行扫描
其他工具的扫描
FlySecAgent 支持通过 stdio
和 sse
两种MCP连接方式,这为开发者和安全专家提供了无限的扩展空间。这意味着,用户可以连接更多功能丰富的第三方MCP工具,从而显著提升FlySecAgent的渗透测试能力。目前,Kali的MCP因其丰富的工具集而被高度推荐,它能够进一步释放FlySecAgent在实际渗透场景中的威力。
数据包研判效果
POST /admin/controller.jsp HTTP/1.1
Host: example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8
Cookie: JSESSIONID=ABCD1234567890; user_token=xyzABC123; admin_session=true;
Content-Type: application/x-www-form-urlencoded
Content-Length: 110
Cache-Control: no-store, no-cache, must-revalidate
xc=b2JmdXNjYXRlZCBqYXZhIHJlZmxlY3Rpb24gY29kZSBmb3IgY29tbWFuZCBleGVjdXRpb24%3D&pass=MzIxYWRhYmNl
这是一个简单的webshell流量
经过分析,得出了结果,但是结果不是很准确,有可能是因为我的知识库目前还没完善,这个数据包分析都是基于rag去检索的,所以有想法的师傅可以往知识库中添加东西来提高它研判的准度
Rag调用本地安全知识库
FlySecAgent 提供了一个本地知识库目录,用户可以在其中添加大量的安全知识。上文提到的流量包分析功能正是基于这一RAG知识库实现的。通过RAG机制,大模型在处理用户指令或分析数据时,会首先从本地知识库中检索相关信息,然后结合自身的语言理解和推理能力给出更精准的答案。
使用该目录可以往其中添加大量的安全知识,上面的流量包分析也是我基于rag知识库实现的,我认为他可以大大提升大模型的精确度
例如我在这里加了这么一些知识的简介
rag就会先从知识库去检索,然后再让大模型去处理,再返回给我们准确的答案
最新网络安全新咨询搜索
这边我是推荐使用tavily-search这个mcp
这样可以在我们打站的时候更加方便的去寻找最新的漏洞poc
编辑
这一功能在实战渗透测试中尤为实用,它能够让安全人员在最短的时间内获取最新威胁信息,从而更有效地发现并利用潜在的漏洞,提升攻击效率和成功率。
FlySecAgent 不仅仅是一个开源项目,它更是未来网络安全智能化的一个缩影。它巧妙地将大语言模型强大的自然语言理解能力与传统渗透测试工具的专业功能深度融合,并借助MCP的灵活性和RAG的知识增强能力,为安全专业人员提供了一个前所未有的智能助手。
从自动化SQL注入到智能资产侦察,从无缝集成Kali工具到实时威胁情报查询,FlySecAgent正在重塑我们进行渗透测试和安全分析的方式。它不仅极大地提升了工作效率,更通过智能化的交互降低了操作门槛,使得复杂的安全任务变得更加直观和易于执行。
相关文章:

FlySecAgent:——MCP全自动AI Agent的实战利器
最近,出于对人工智能在网络安全领域应用潜力的浓厚兴趣,我利用闲暇时间进行了深入研究,并成功开发了一款小型轻量化的AI Agent安全客户端FlySecAgent。 什么是 FlySecAgent? 这是一个基于大语言模型和MCP(Model-Contr…...
利用flask设计接口
Flask 接口设计详尽指南(整合知识库优化版) 目录 基础概念与安装接口设计规范核心功能实现高级特性扩展错误处理与调试部署与优化完整示例 基础概念与安装 安装 Flask pip install Flask项目结构建议 my_flask_api/ ├── app.py # 主…...

ideal创建Springboot项目(Maven,yml)
以下是使用 IntelliJ IDEA 创建基于 Maven 的 Spring Boot 项目并使用 YAML 配置文件的详细步骤: 一、创建 Spring Boot 项目 启动项目创建向导 打开 IntelliJ IDEA,点击“File”->“New”->“Project”。 在弹出的“New Project”窗口中&#…...

Pycharm(十九)深度学习
一、深度学习概述 1.1 什么是深度学习 深度学习是机器学习中的一种特殊方法,它使用称为神经网络的复杂结构,特别是“深层”的神经网络,来学习和做出预测。深度学习特别适合处理大规模和高维度的数据,如图像、声音和文本。深度学习、机器学习和人工智能之间的关系如下图所…...
XSS 攻击:深入剖析“暗藏在网页中的脚本“与防御之道
XSS (Cross-Site Scripting),即跨站脚本攻击,是 Web 安全领域中最常见也最具危害性的漏洞之一。攻击者通过巧妙的手段将恶意的 JavaScript、HTML 或其他脚本代码注入到正常的 Web 页面中。当其他用户浏览这些被注入了恶意脚本的页面时,这些脚…...

Scrapyd 详解:分布式爬虫部署与管理利器
Scrapyd 是 Scrapy 官方提供的爬虫部署与管理平台,支持分布式爬虫部署、定时任务调度、远程管理爬虫等功能。本文将深入讲解 Scrapyd 的核心功能、安装配置、爬虫部署流程、API 接口使用,以及如何结合 Scrapy-Redis 实现分布式爬虫管理。通过本文&#x…...
ai之pdf解析rapidOCR 的两种底层依赖PaddlePaddle 和ONNXRuntime
rapidocr_onnxruntime 与 rapidocr(通常指 rapidocr_paddle 或其他后端实现)的核心区别及使用推荐: 一、核心区别 特性rapidocr_onnxruntimerapidocr(以 rapidocr_paddle 为例)后端引擎基于 ONNXRuntime 推理框架&…...

驱动开发硬核特训 · 专题篇:Vivante GPU 与 DRM 图形显示体系全解析(i.MX8MP 平台实战)
视频教程请关注 B 站:“嵌入式Jerry”。 一、背景导读:GPU 与 DRM 到底谁负责“显示”? 在嵌入式 Linux 图形系统中,“画面怎么显示出来”的问题,表面看似简单,实则涉及多个内核子系统与用户态组件的协同&…...

C——猜数字游戏
前面我们已经学习了C语言常见概念,数据类型和变量以及分置于循环的内容,现在我们可以将这些内容结合起来写一个有趣的小游戏。下面正式开始我们今天的主题——猜数字游戏的实现。 猜数字游戏的要求: 1.电脑自动生成1~100的随机数。 2.玩家…...

C/C++实践(三)深入理解 C++ 三大特性之一:封装
一、封装的概念与核心思想 封装(Encencapsulation)是 C 面向对象编程(OOP)的三大核心特性之一,其本质是将数据(成员变量)和对数据的操作(成员函数)捆绑在一个逻辑单元&a…...
Filecoin存储管理:如何停止Lotus向特定存储路径写入新扇区数据
Filecoin存储管理:如何停止Lotus向特定存储路径写入新扇区数据 引言背景问题场景解决方案步骤1:修改sectorstore.json文件步骤2:重新加载存储配置步骤3:验证更改 技术原理替代方案最佳实践结论 引言 在Filecoin挖矿过程中&#x…...

1、RocketMQ 核心架构拆解
1. 为什么要使用消息队列? 消息队列(MQ)是分布式系统中不可或缺的中间件,主要解决系统间的解耦、异步和削峰填谷问题。 解耦:生产者和消费者通过消息队列通信,彼此无需直接依赖,极大提升系统灵…...

vue3 element-plus 输入框回车跳转页面问题处理
问题描述: 当页面搜索条件只有一个的情况下,输入框不管有没有值,回车后会跳转页面 解决办法,给表单添加 submit.prevent <el-form ref"ruleForm" :model"search" label-width"120px" class&qu…...
常见WEB漏洞----暴力破解
什么是暴力破解 暴力破解 (Brue Force) 是一种攻击方法 (穷举法),简称为“爆破”,黑客通过反复猜解和实验,旨在以暴力手段登入、访问目标主机获取服务,破坏系统安全,其属于 ATT&CK技术中的一种,常利用…...

快速入门深度学习系列(2)----损失函数、逻辑回归、向量化
针对深度学习入门新手目标不明确 知识体系杂乱的问题 拟开启快速入门深度学习系列文章的创作 旨在帮助大家快速的入门深度学习 写在前面: 本系列按照吴恩达系列课程顺序发布(说明一下为什么不直接看原笔记 因为内容太多 没有大量时间去阅读 所有作者需要一次梳理…...

[超详细,推荐!!!]前端性能优化策略详解
学习记录,部分内容版权归妙码学院 1.优化内容包括那些 其实前端的优化,整体粗略概括下来,白话之: 打开速度怎么变快再次打开速度怎么变快操作怎么才顺滑动画怎么保证流畅 2.性能优化 2.1首屏加载优化 在了解优化方法和策略之…...

数据提取之BeautifulSoup4快速使用
文章目录 一、前言二、概述2.1 安装2.2 初始化2.3 对象类型 三、遍历文档树3.1 子节点3.2 父节点3.3 兄弟节点3.4 前后节点3.5 节点内容3.5.1 文本内容3.5.2 属性值3.5.3 标签删除 四、搜索文档树4.1 find_all4.2 find4.3 CSS选择器4.4 更多 一、前言 官方文档:http…...

list类的详细讲解
【本节目标】 1. list的介绍及使用 2. list的深度剖析及模拟实现 3. list与vector的对比 1. list的介绍及使用 1.1 list的介绍 1. list 是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。 2. list 的底层是双向链表结构&a…...

Linux系统下安装mongodb
1. 配置MongoDB的yum仓库 创建仓库文件 sudo vi /etc/yum.repos.d/mongodb-org.repo添加仓库配置 根据系统版本选择配置(以下示例为CentOS 7和CentOS 9的配置): CentOS 7(安装MongoDB 5.0/4.2等旧版本): In…...

kuka, fanuc, abb机器人和移动相机的标定
基础知识 : 一, 9点标定之固定相机标定: 图1: 固定位置相机拍照 因为相机和机器人的基坐标系是固定的, 所以在海康威视相机的9点标定功能栏中, 填上海康使用“圆查找”捕捉到的坐标值, 再将机器人显示的工具坐标系在基坐标系的实时位置pos_act值填入物理坐标X, Y中即可 图2:…...

Android Framework学习四:init进程实现
文章目录 init流程简介init源码执行顺序执行顺序 init进程的具体工作事项挂载文件系统设置 SELinuxSecondStageMaininit.rc启动zygote和serviceManager进程的重要性serviceManager工作原理 Framework学习之系列文章 init流程简介 下面图片主要围绕 Android 系统中init进程的运…...
Linux计划任务与进程
at 命令使用方法 at 命令可在指定时间执行任务,适用于一次性任务调度。以下是基本用法: 安装 atd 服务(如未安装) # Debian/Ubuntu sudo apt-get install at# CentOS/RHEL sudo yum install at启动服务 sudo systemctl start atd…...

Java引用RabbitMQ快速入门
这里写目录 Java发送消息给MQ消费者接收消息实现一个队列绑定多个消费者消息推送限制 Fanout交换机路由的作用Direct交换机使用案例 Topic交换机声明队列和交换机的方式MQ消息转换器业务改造生产者可靠性设置重连 系统可靠性 Java发送消息给MQ public void testSendMessage() t…...

用R语言+随机森林玩转遥感空间预测-基于R语言机器学习遥感数据处理与模型空间预测技术及实际项目案例分析
遥感数据具有高维度、非线性及空间异质性等特点,传统分析方法往往难以充分挖掘其信息价值。机器学习技术的引入为遥感数据处理与模型预测提供了新的解决方案,其中随机森林(Random Forest)以其优异的性能和灵活性成为研究者的首选工…...
【许可证】Open Source Licenses
长期更新 扩展:shield.io装饰 开源许可证(Open Source Licenses)有很多种,每种都有不同的授权和限制,适用于不同目的。 默认的ISC🟰MIT License是否可商用是否要求开源衍生项目是否必须署名是否有专利授权…...

Spring Boot 文件上传实现详解
在项目开发过程中,文件上传是极为常见的功能需求。对于熟悉 Spring MVC 文件上传操作的开发者而言,Spring Boot 中的文件上传与之原理基本相通,只是在依赖管理和配置方式上更为简化。接下来,将详细阐述 Spring Boot 项目中文件上传…...

查看单元测试覆盖率
文章目录 1、POM文件配置2、编写单元测试3、执行单元测试4、查看单元测试覆盖率 1、POM文件配置 pom文件配置jacoco插件 <!-- 生成JaCoCo覆盖率数据插件 --> <plugin><groupId>org.jacoco</groupId><artifactId>jacoco-maven-plugin</artif…...

基于SpringBoot的在线教育管理系统
作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…...
交叉编译 opencv-4.10
编译说明 opencv 下包含很多模块,各个模块的作用可以参考Opencv—模块概览. 嵌入式考虑有限存储等因素会对模块进行裁剪,我这里主要保留图像拼接(stitching)图片编解码(imgcodecs)与特征点匹配(…...

C# 方法(方法重载)
本章内容: 方法的结构 方法体内部的代码执行 局部变量 局部常量 控制流 方法调用 返回值 返回语句和void方法 局部函数 参数 值参数 引用参数 引用类型作为值参数和引用参数 输出参数 参数数组 参数类型总结 方法重载 命名参数 可选参数 栈帧 递归 方法重载 一个类中可以有多个…...