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

- 重构SSH/MySQL/Redis插件超时控制,移除第三方库超时依赖 - 统一使用Go Context超时机制,提升超时控制可靠性和精确度 - 扩展MySQL/Redis/SSH插件默认端口支持,提升扫描覆盖率 - 修复插件系统中ConcurrentScanConfig超时配置缺失问题 - 优化插件检测逻辑,正确识别新架构插件并显示准确状态信息 - 解决插件在错误端口上长时间等待问题,显著提升扫描效率
4.0 KiB
4.0 KiB
SSH测试环境
这是一个专门为fscan工具SSH插件设计的Docker测试环境,包含多个测试用户和弱密码配置。
⚠️ 安全警告
此测试环境包含多个安全漏洞和弱密码,仅供测试使用,切勿在生产环境中使用!
环境组成
测试用户账户
管理员账户(具有sudo权限)
root:password
- 系统root用户root2:password
- 额外的root级别用户admin:123456
- 管理员用户test:test123
- 测试管理员用户
普通用户账户
user:user
- 普通用户guest:guest
- 受限用户(启用chroot)web:web123
- Web服务用户service:service123
- 服务用户
数据库相关用户
oracle:oracle
- Oracle数据库用户mysql:mysql
- MySQL数据库用户postgres:postgres
- PostgreSQL数据库用户redis:redis123
- Redis用户mongodb:mongo123
- MongoDB用户
系统服务用户
ftp:ftp
- FTP服务用户anonymous
- 无密码用户(极不安全)
快速开始
1. 启动测试环境
# 进入测试目录
cd test/ssh-test-env
# 构建并启动容器
docker-compose up -d
# 查看容器状态
docker-compose ps
# 查看容器日志
docker-compose logs ssh-test-server
2. 测试连接
# 基本SSH连接测试(端口2222映射到容器的22端口)
ssh root@localhost -p 2222
# 密码: password
# 使用其他用户测试
ssh admin@localhost -p 2222
# 密码: 123456
ssh test@localhost -p 2222
# 密码: test123
3. 使用fscan测试
# 测试单个IP的SSH服务
./fscan -h 127.0.0.1:2222 -m ssh
# 测试SSH暴力破解
./fscan -h 127.0.0.1:2222 -m ssh -pwdf passwords.txt
# 测试特定用户
./fscan -h 127.0.0.1:2222 -m ssh -user admin -pwd 123456
4. 高级测试场景
测试弱密码检测
fscan应该能够检测到以下弱密码组合:
- root/password
- admin/123456
- test/test123
- user/user
- guest/guest
- oracle/oracle
- mysql/mysql
- postgres/postgres
测试连接超时和重试
# 测试连接超时设置
./fscan -h 127.0.0.1:2222 -m ssh -timeout 5
# 测试多线程扫描
./fscan -h 127.0.0.1:2222 -m ssh -t 10
测试用户枚举
# 测试是否能正确识别存在的用户
./fscan -h 127.0.0.1:2222 -m ssh -user root,admin,test,nonexistent
环境配置详情
SSH服务配置特点
- 端口: 22 (容器内) / 2222 (主机映射)
- 密码认证: 已启用
- Root登录: 已启用
- 空密码: 对anonymous用户启用
- 最大认证尝试: 6次
- 连接超时: 60秒
网络配置
- 网络: 172.20.0.0/24
- 容器名: fscan-ssh-test
- 健康检查: 每10秒检查SSH端口22
管理命令
环境控制
# 启动环境
docker-compose up -d
# 停止环境
docker-compose down
# 重启环境
docker-compose restart
# 查看实时日志
docker-compose logs -f ssh-test-server
# 进入容器shell
docker exec -it fscan-ssh-test bash
清理环境
# 停止并删除容器、网络
docker-compose down
# 清理所有相关资源
docker-compose down -v --rmi all
故障排除
端口冲突
如果端口2222已被占用,修改docker-compose.yml
中的端口映射:
ports:
- "2223:22" # 改为其他可用端口
SSH连接被拒绝
- 确认容器正在运行:
docker-compose ps
- 检查健康状态:
docker-compose logs ssh-test-server
- 验证端口映射:
docker port fscan-ssh-test
权限问题
# 确保脚本具有执行权限
chmod +x scripts/start-ssh.sh
# 重新构建容器
docker-compose build --no-cache ssh-test-server
测试建议
- 逐步测试: 先测试单个用户连接,再测试批量扫描
- 日志监控: 实时监控SSH服务日志了解fscan行为
- 性能测试: 测试不同线程数对扫描性能的影响
- 边界测试: 测试无效IP、关闭的端口等边界情况
安全提醒
- 此环境仅用于测试目的
- 不要将此环境暴露到公网
- 测试完成后及时清理环境
- 不要在生产网络中运行此配置