AI辅助渗透测试小试牛刀

65 阅读4分钟

传统的自动化渗透测试工具在过去几十年中已成为安全评估的标准组成部分。然而,这些工具的效能主要局限于已知漏洞的广泛扫描和配置检查,其内在的局限性也日益凸显。传统自动化工具本质上是确定性的,依赖于静态签名库和预定义的规则集来识别漏洞 。这种方法在面对需要上下文理解、创造性思维或业务逻辑分析的复杂场景时显得力不从心。

LLM带来的范式转变      

大型语言模型(LLM)的出现为渗透测试自动化带来了范式级的转变。与依赖预编程逻辑的传统工具不同,LLM凭借其在自然语言理解、推理、代码生成和工具交互方面的强大能力,为自动化注入了前所未有的“认知”能力 。这种转变的核心在于,LLM能够处理和解释非结构化数据,例如工具输出、系统日志、网络流量和技术文档,并从中提取关键信息,形成攻击假设 。  

LLM不仅能理解任务,还能动态地规划和执行。例如,它们可以生成高度个性化和令人信服的网络钓鱼邮件,其成功率可与人类专家相媲美,同时将攻击成本降低超过95% 。它们还能根据目标系统的具体特征生成定制化的攻击载荷(payloads),或编写脚本来利用特定漏洞 。这种能力标志着自动化从执行“什么”检查(what to check)转向了决策“如何”行动(how to act),使机器能够模拟人类攻击者的思维过程,而不仅仅是重复其操作。

    过去笔者写过《AI辅助安全测试案例某电商-供应链平台平台安全漏洞》, 今天AI辅助渗透测试时代来了。我们保持某网站一个JS文件,上传到LLM进行分析。过去我们都是人为分析,现在通过LLM
即使是压缩与混淆过js文件,也能快速整理出后端HTTP API接口端点。如下,使用KIMI K2模型

image

Qwen3-Max 直接生成测试脚本

image

Claude CLI

新建文件夹把那个js文件放入文件夹

image

我们让他整理出api.md接口文档

image

api.md部分内容

Authentication

  • Method: Token-based authentication
  • Header: Authorization: Bearer <token>
  • Storage: Token stored in sessionStorage with key CacheUserInfo
  • Timeout: 100 seconds for API requests

Standard Response Format

{  
   "code": 200,  
  "data": {},  
   "message": "Success",  
   "total": 100,  
   "page": 1,  
   "pageSize": 10  
}  

Error Response Format

{  
   "code": 400,  
   "message": "Error message",  
   "errors": []  
}  

Pagination Parameters

ParameterDescriptionDefaultRequired
pageCurrent page1No
sizePage size10No
sortSort field"id"No
orderSort order"asc"No
searchSearch term""No

1. Authentication Module

1.1 User Login

POST /api/user/login  

Request Body

{  
   "username": "string",  
   "password": "string",  
   "captcha": "string", // Optional  
   "remember": "boolean" // Optional  
}  

Response

{  
   "code": 200,  
   "data": {  
     "token": "string",  
     "userInfo": {  
       "id": "string",  
       "username": "string",  
       "roles": [],  
       "permissions": []  
     }  
   }  
}  

编写渗透测试代码

image

我们使用LongCat-Flash模型

image

生成脚本工程

image

IDE中通义灵码继续编写测试代码

image

运行结果

image

展望

自动化攻击链(Kill Chain)
LLM驱动的智能体正被应用于模拟和自动化网络攻击的整个生命周期,即攻击链的各个阶段。

侦察 (Reconnaissance): 智能体可以自动执行信息收集任务,如利用工具进行端口扫描、服务枚举和目录探测 。与传统脚本不同,它们能够自适应地调整扫描策略,并能从海量的非结构化数据中识别出隐藏的API端点或配置错误的系统 。  

扫描与漏洞分析 (Scanning & Vulnerability Analysis): LLM超越了基于签名的静态扫描,能够分析系统行为中的异常模式,从而识别出传统工具可能忽略的逻辑缺陷 。研究表明,LLM在分析C/C++、Java和Solidity等语言的源代码以识别潜在漏洞方面表现出巨大潜力,尤其擅长发现内存相关漏洞和智能合约缺陷 。  

利用 (Exploitation): 这是LLM能力最引人注目的体现。智能体能够根据侦察和分析阶段获得的信息,生成定制化的攻击载荷 。更重要的是,它们能够将多个独立的漏洞串联起来,形成一条完整的攻击路径,模拟真实攻击者为达成最终目标(如获取shell访问权限)而采取的多步骤行为 。  

权限提升与横向移动 (Post-Exploitation): 在获得初步访问权限后,LLM可以生成用于权限提升和在网络内部横向移动的脚本和命令,进一步扩大攻击范围 。