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超时配置缺失问题 - 优化插件检测逻辑,正确识别新架构插件并显示准确状态信息 - 解决插件在错误端口上长时间等待问题,显著提升扫描效率
189 lines
4.0 KiB
Markdown
189 lines
4.0 KiB
Markdown
# 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. 启动测试环境
|
||
|
||
```bash
|
||
# 进入测试目录
|
||
cd test/ssh-test-env
|
||
|
||
# 构建并启动容器
|
||
docker-compose up -d
|
||
|
||
# 查看容器状态
|
||
docker-compose ps
|
||
|
||
# 查看容器日志
|
||
docker-compose logs ssh-test-server
|
||
```
|
||
|
||
### 2. 测试连接
|
||
|
||
```bash
|
||
# 基本SSH连接测试(端口2222映射到容器的22端口)
|
||
ssh root@localhost -p 2222
|
||
# 密码: password
|
||
|
||
# 使用其他用户测试
|
||
ssh admin@localhost -p 2222
|
||
# 密码: 123456
|
||
|
||
ssh test@localhost -p 2222
|
||
# 密码: test123
|
||
```
|
||
|
||
### 3. 使用fscan测试
|
||
|
||
```bash
|
||
# 测试单个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
|
||
|
||
#### 测试连接超时和重试
|
||
```bash
|
||
# 测试连接超时设置
|
||
./fscan -h 127.0.0.1:2222 -m ssh -timeout 5
|
||
|
||
# 测试多线程扫描
|
||
./fscan -h 127.0.0.1:2222 -m ssh -t 10
|
||
```
|
||
|
||
#### 测试用户枚举
|
||
```bash
|
||
# 测试是否能正确识别存在的用户
|
||
./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
|
||
|
||
## 管理命令
|
||
|
||
### 环境控制
|
||
```bash
|
||
# 启动环境
|
||
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
|
||
```
|
||
|
||
### 清理环境
|
||
```bash
|
||
# 停止并删除容器、网络
|
||
docker-compose down
|
||
|
||
# 清理所有相关资源
|
||
docker-compose down -v --rmi all
|
||
```
|
||
|
||
## 故障排除
|
||
|
||
### 端口冲突
|
||
如果端口2222已被占用,修改`docker-compose.yml`中的端口映射:
|
||
```yaml
|
||
ports:
|
||
- "2223:22" # 改为其他可用端口
|
||
```
|
||
|
||
### SSH连接被拒绝
|
||
1. 确认容器正在运行:`docker-compose ps`
|
||
2. 检查健康状态:`docker-compose logs ssh-test-server`
|
||
3. 验证端口映射:`docker port fscan-ssh-test`
|
||
|
||
### 权限问题
|
||
```bash
|
||
# 确保脚本具有执行权限
|
||
chmod +x scripts/start-ssh.sh
|
||
|
||
# 重新构建容器
|
||
docker-compose build --no-cache ssh-test-server
|
||
```
|
||
|
||
## 测试建议
|
||
|
||
1. **逐步测试**: 先测试单个用户连接,再测试批量扫描
|
||
2. **日志监控**: 实时监控SSH服务日志了解fscan行为
|
||
3. **性能测试**: 测试不同线程数对扫描性能的影响
|
||
4. **边界测试**: 测试无效IP、关闭的端口等边界情况
|
||
|
||
## 安全提醒
|
||
|
||
- 此环境仅用于测试目的
|
||
- 不要将此环境暴露到公网
|
||
- 测试完成后及时清理环境
|
||
- 不要在生产网络中运行此配置 |