渗透测试是个很有意思的工作,通过人的经验和技能,一步一步拿下目标,但学习过程很艰难,一般得有师傅带,现在师傅非常难找。
有了大模型,渗透测试确实变得容易,甚至有可能完全自动化,之前有一些介绍的文章可以参考。但大模型的智能化并不能取代人的能力,毕竟,大模型是个知识型的工具,创新很难。目前看,大模型难以完全取代高级的工程师,但它确实能取代一些一般的工程师。而人不可能一下子就成为高级工程师,训练和实践的过程不可或缺。
本文提供一个基于大模型的agent,可以辅助渗透测试,并在过程中给出命令,理由及解释等,非常有助于新手使用,既可以提高渗透测试效率,也是对新手的训练提供足够的指导,可以做新手的师傅了。
这是一个基于大语言模型的渗透测试助手工具,旨在辅助安全研究人员进行合法授权的安全测试。该程序通过结合人工智能和常用渗透测试工具,帮助分析测试结果并提供下一步操作建议。
示例基于Deepseek chat模型,也可以对接其它模型
主要功能
-
交互式渗透测试会话 -
命令执行与结果分析 -
提供基于分析的后续步骤建议 -
会话历史记录保存与加载 -
集成大语言模型进行智能分析 -
随时可向模型提问
安装依赖
在使用前,请确保安装了所需的Python依赖库:
pip install openai requests python-dotenv
环境配置
创建一个.env文件,包含以下内容:
api_key=你的API密钥
base_url=https://api.deepseek.com/v1
modelname=deepseek-chat
模型可根据需要修改,本程序只基于deepseek-chat作了测试。
基本使用
python pentest_agent.py --target 目标IP或主机名
-
-
输入渗透测试命令(如nmap -sV 192.168.1.1)执行并获取分析 -
q - 退出程序 -
his - 查看会话历史 -
help - 向大模型直接提问具体问题 -
save 文件名 - 保存当前会话 -
clear - 清除历史记录(保留系统提示)
-
命令行参数
-
--target - 指定目标IP或主机名 -
--load - 从文件加载之前的会话 -
--debug - 启用调试模式
usermessage:
我想对 192.168.3.93 执行授权的渗透测试。请帮我规划并逐步执行这个测试,从初始侦察开始。
## 初始侦察建议
我们将从基本的网络侦察开始,收集有关目标系统的信息。以下是建议的初始步骤:
## 下一步
1. `nmap -sP 192.168.3.93`
- 目的:执行ping扫描,确认目标主机是否在线
2. `nmap -sV -O 192.168.3.93`
- 目的:识别开放端口、运行的服务版本和操作系统信息
3. `nmap --script=banner 192.168.3.93`
- 目的:获取服务banner信息,可能包含有用的版本信息
4. `whois 192.168.3.93`(如果目标有公共IP)
- 目的:收集网络注册信息(如果适用)
5. `dnsenum 192.168.3.93`(如果目标有域名)
- 目的:执行DNS枚举,查找子域和其他DNS记录
请先运行第一个命令`nmap -sP 192.168.3.93`,然后分享结果,我将帮助分析并建议后续步骤。
记住,这些命令都是非侵入性的,旨在收集基本信息。根据这些初始结果,我们将决定如何进行更深入的扫描和测试。
每一个命令都标识的很清楚,目的也非常清楚,可以逐一尝试。我们直接运行第二个:
nmap -sV -O 192.168.3.93
结果如下:
## 分析
Nmap扫描结果显示目标主机192.168.3.93运行了多个服务,包括FTP、SSH、Telnet、SMTP、HTTP、Samba、MySQL、PostgreSQL、VNC等。 操作系统为Linux 2.6.X内核版本。值得注意的是,一些服务版本较旧,可能存在已知漏洞。
## 关键发现
- **FTP服务 (vsftpd 2.3.4)**: 该版本存在已知的后门漏洞(CVE-2011-2523),可能允许远程代码执行。
- **SSH服务 (OpenSSH 4.7p1)**: 该版本较旧,可能存在已知漏洞。
- **Telnet服务**: 开放Telnet服务,可能存在明文传输凭证的风险。
- **HTTP服务 (Apache 2.2.8)**: 该版本较旧,可能存在已知漏洞。
- **Samba服务 (Samba 3.X - 4.X)**: 可能存在未授权访问或远程代码执行漏洞。
- **MySQL服务 (MySQL 5.0.51a-3ubuntu5)**: 该版本较旧,可能存在已知漏洞。
- **VNC服务**: 开放VNC服务,可能存在未授权访问风险。
- **Metasploitable root shell (1524/tcp)**: 开放了一个绑定shell,可能允许直接访问系统。
## 下一步
1. **利用FTP漏洞**:
- 命令: `msfconsole`
- 目的: 使用Metasploit框架中的`exploit/unix/ftp/vsftpd_234_backdoor`模块尝试利用FTP服务的后门漏洞。
- 解释: vsftpd 2.3.4版本存在已知的后门漏洞,可以通过Metasploit框架进行利用,获取系统访问权限。
2. **扫描Samba服务漏洞**:
- 命令: `nmap --script smb-vuln* -p 139,445 192.168.3.93`
- 目的: 使用Nmap的Samba漏洞扫描脚本检测Samba服务是否存在已知漏洞。
- 解释: Samba服务可能存在未授权访问或远程代码执行漏洞,通过Nmap脚本可以快速识别这些漏洞。
3. **枚举HTTP服务**:
- 命令: `dirb http://192.168.3.93`
- 目的: 使用Dirb工具枚举HTTP服务的目录和文件,寻找潜在的漏洞或敏感信息。
- 解释: HTTP服务可能存在未公开的目录或文件,这些可能包含敏感信息或漏洞利用点。
4. **尝试访问VNC服务**:
- 命令: `vncviewer 192.168.3.93:5900`
- 目的: 尝试连接VNC服务,检查是否需要认证或是否存在未授权访问。
- 解释: VNC服务可能存在未授权访问风险,直接连接可以验证是否需要认证。
通过这些步骤,可以进一步深入渗透测试,识别和利用目标系统中的漏洞。
命令,目的,解释都很清楚,如果还需要进一步解释,可以随时调用help 追加提问。help里的提问不会进入历史记录,以防止干扰大模型的计划及步骤。
代理程序会逐步规划下一步动作,在靶机的操作上,具备专家技能,非常值得新手学习训练。
职场里最终能生存下来的人,要超过大模型的能力才行。必须的训练可以师从大模型,做到青出于蓝而胜于蓝,这是重要的职业发展方法。
同时,本代码对于如何开发大模型Agent也是个非常好的指导。
代码在Github上开源
https://github.com/SunZhimin2021/AIPentest/blob/main/Tools/pentestlearningagent.py
原文始发于微信公众号(AI与安全):可辅助渗透测试或教学的大模型agent(开源)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论