mirror of
https://github.com/shadow1ng/fscan.git
synced 2025-06-02 11:40:24 +00:00
docs: 移除说明,版本号增加
This commit is contained in:
parent
247459a7f7
commit
a8bd8ca508
@ -1,155 +0,0 @@
|
||||
# Fscan2.0使用指南
|
||||
|
||||
大家好,我是ZacharyZcR,很荣幸能参与Fcan的重构工作,本文档将会带您详细了解Fcan2.0的新特性。
|
||||
|
||||
目前已经完成的新增功能:
|
||||
|
||||
新增Telnet、VNC、Elasticsearch、RabbitMQ、Kafka、ActiveMQ、LDAP、SMTP、IMAP、POP3、SNMP、Zabbix、Modbus、Rsync、Cassandra、Neo4j扫描。
|
||||
|
||||
新增SYN和UDP端口扫描。
|
||||
|
||||
## 0x01 代码结构重构
|
||||
|
||||
代码架构经过全面重构,现已优化为四个主要模块:Common、Core、Plugins和WebScan。
|
||||
|
||||
每个模块都有其明确的职责划分:
|
||||
|
||||
### Common 模块
|
||||
负责基础功能实现,包括参数解析和配置管理。作为底层支撑模块,为其他模块提供基础服务支持。
|
||||
|
||||
### Core 模块
|
||||
作为Fscan的核心引擎,实现端口扫描等基础功能。该模块是整个系统的中枢,负责协调和调度其他功能模块。
|
||||
|
||||
### Plugins 模块
|
||||
提供多样化的扫描插件实现,支持功能扩展和定制化需求。
|
||||
|
||||
### WebScan 模块
|
||||
|
||||
专门负责Web应用层面的扫描功能,提供深度的Web安全评估能力。
|
||||
|
||||
### 代码规范
|
||||
为提升代码质量和可维护性,我们制定了以下规范:
|
||||
|
||||
1. 文件命名采用大驼峰命名法,所有文件名以大写字母开头
|
||||
2. 内部函数和方法的命名保持灵活性,以实用性为准
|
||||
3. 使用LLM技术对全部代码进行了注释补充和优化
|
||||
4. 完善了代码文档,便于开发者理解和进行二次开发
|
||||
|
||||
## 0x02 插件热插拔设计
|
||||
|
||||
Fcan 2.0采用了基于反射机制的插件热插拔架构,实现了插件的灵活添加和移除。以下是详细说明:
|
||||
|
||||
### 插件注册机制
|
||||
插件注册通过 `Core/Registry.go` 文件实现,使用简洁的注册语法:
|
||||
|
||||
```go
|
||||
Common.RegisterPlugin("mysql", Common.ScanPlugin{
|
||||
Name: "MySQL",
|
||||
Ports: []int{3306, 3307},
|
||||
ScanFunc: Plugins.MysqlScan,
|
||||
})
|
||||
```
|
||||
|
||||
注册结构包含三个关键要素:
|
||||
- 插件标识符(小写字符串)
|
||||
- 插件名称(显示名称)
|
||||
- 默认扫描端口
|
||||
- 具体实现函数
|
||||
|
||||
### 端口配置
|
||||
在 `Common/Ports.go` 中定义了多组预设端口配置:
|
||||
|
||||
- ServicePorts:常用服务端口
|
||||
- DbPorts:数据库相关端口
|
||||
- WebPorts:Web服务端口
|
||||
- AllPorts:全端口范围(1-65535)
|
||||
- MainPorts:核心服务端口
|
||||
|
||||
### 扫描模式配置
|
||||
`Common/ParseScanMode.go` 中定义了默认扫描模式分组:
|
||||
|
||||
```go
|
||||
var pluginGroups = map[string][]string{
|
||||
ModeAll: [...], // 全量扫描
|
||||
ModeBasic: [...], // 基础扫描
|
||||
ModeDatabase: [...], // 数据库扫描
|
||||
ModeWeb: [...], // Web服务扫描
|
||||
ModeService: [...], // 基础服务扫描
|
||||
ModeVul: [...], // 漏洞扫描
|
||||
ModeLocal: [...], // 本地信息收集
|
||||
}
|
||||
```
|
||||
|
||||
### 使用方式
|
||||
插件注册后即可通过 `-m` 参数调用,无需额外配置。这种设计既保证了扩展性,又维持了使用的简便性。若需要更多便捷功能,可通过修改相应配置文件实现。
|
||||
|
||||
## 0x03 Fscan-Lab
|
||||
|
||||
Fscan-Lab是一个集成的测试环境平台,专为安全学习和功能验证设计。
|
||||
|
||||
### 功能特点
|
||||
|
||||
1. 预配置Docker环境
|
||||
- 位于TestDocker目录下
|
||||
- 包含多种预设测试场景
|
||||
- 环境经过完整测试和验证
|
||||
|
||||
2. 使用场景
|
||||
- 新手用户快速入门
|
||||
- 功能学习与实践
|
||||
- 插件开发测试验证
|
||||
- 单点功能调试
|
||||
|
||||
### 优势
|
||||
|
||||
- 即开即用:预置环境免去繁琐配置
|
||||
- 标准化:统一的测试环境确保结果可复现
|
||||
- 安全可控:本地环境避免误操作风险
|
||||
- 快速验证:便于开发者进行功能测试
|
||||
|
||||
## 0x04 本地扫描与本地利用
|
||||
|
||||
Fscan 2.0正在开发一套全新的本地化功能模块,主要包含以下方向:
|
||||
|
||||
### 计划功能
|
||||
|
||||
1. 本地敏感信息搜集
|
||||
2. 本地提权检测与利用
|
||||
3. 隧道搭建功能
|
||||
4. 权限维持组件
|
||||
|
||||
### 开发状态
|
||||
|
||||
该模块目前处于积极开发阶段,我们正在努力确保每个功能的安全性和可靠性。这个新增模块将极大扩展Fscan的功能范围,使其成为一个更全面的安全评估工具。
|
||||
|
||||
### 未来展望
|
||||
|
||||
我们将在确保功能稳定性的基础上,逐步发布这些新特性。欢迎社区持续关注项目进展,也欢迎有兴趣的开发者参与贡献。
|
||||
|
||||
具体发布时间和详细功能列表将在开发完成后公布,敬请期待。
|
||||
|
||||
## 0x05 更多功能与开发说明
|
||||
|
||||
### 持续开发
|
||||
|
||||
Fscan 2.0目前处于活跃开发阶段:
|
||||
- 最新代码会持续发布到dev分支
|
||||
- 更新频率较高
|
||||
- 功能不断优化和扩展
|
||||
|
||||
### 版本选择建议
|
||||
|
||||
由于dev分支的特点:
|
||||
- 更新速度快
|
||||
- 不保证完全稳定
|
||||
- 可能包含实验性功能
|
||||
|
||||
建议用户根据实际需求选择合适的版本:
|
||||
- 追求稳定性的用户建议使用主分支
|
||||
- 需要尝试新功能的用户可以使用dev分支
|
||||
|
||||
### 致谢
|
||||
|
||||
感谢您对Fscan 2.0的关注。我们将继续完善功能,提供更好的使用体验。
|
||||
|
||||
ZacharyZcR
|
@ -1,88 +0,0 @@
|
||||
# FScan 插件开发指南
|
||||
|
||||
## 1. 创建插件
|
||||
在 `Plugins` 目录下创建你的插件文件,例如 `myPlugin.go`:
|
||||
|
||||
```go
|
||||
package Plugins
|
||||
|
||||
import (
|
||||
"github.com/shadow1ng/fscan/Common"
|
||||
)
|
||||
|
||||
func MyPluginScan(info *Common.HostInfo) error {
|
||||
// 1. 基础检查
|
||||
if info == nil {
|
||||
return errors.New("Invalid host info")
|
||||
}
|
||||
|
||||
// 2. 实现扫描逻辑
|
||||
result, err := doScan(info)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// 3. 处理结果
|
||||
if result.Vulnerable {
|
||||
Common.LogSuccess(fmt.Sprintf("Found vulnerability in %s:%d", info.Host, info.Port))
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
```
|
||||
|
||||
## 2. 注册插件
|
||||
在 `Core/Registry.go` 中注册你的插件:
|
||||
|
||||
```go
|
||||
Common.RegisterPlugin("myplugin", Common.ScanPlugin{
|
||||
Name: "MyPlugin",
|
||||
Port: 12345, // 指定端口,如果是web类插件可设为0
|
||||
ScanFunc: Plugins.MyPluginScan,
|
||||
})
|
||||
```
|
||||
|
||||
## 3. 开发规范
|
||||
|
||||
### 插件结构
|
||||
- 每个插件应当是独立的功能模块
|
||||
- 使用清晰的函数名和变量名
|
||||
- 添加必要的注释说明功能和实现逻辑
|
||||
|
||||
### 错误处理
|
||||
```go
|
||||
// 推荐的错误处理方式
|
||||
if err != nil {
|
||||
return fmt.Errorf("plugin_name scan error: %v", err)
|
||||
}
|
||||
```
|
||||
|
||||
### 日志输出
|
||||
```go
|
||||
// 使用内置的日志函数
|
||||
Common.LogSuccess("发现漏洞")
|
||||
Common.LogError("扫描错误")
|
||||
```
|
||||
|
||||
## 4. 测试验证
|
||||
|
||||
- 编译整个项目确保无错误
|
||||
- 实际环境测试插件功能
|
||||
- 验证与其他插件的兼容性
|
||||
|
||||
## 5. 提交流程
|
||||
|
||||
1. Fork 项目仓库
|
||||
2. 创建功能分支
|
||||
3. 提交代码更改
|
||||
4. 编写清晰的提交信息
|
||||
5. 创建 Pull Request
|
||||
|
||||
## 注意事项
|
||||
|
||||
- 遵循 Go 编码规范
|
||||
- 保证代码可读性和可维护性
|
||||
- 禁止提交恶意代码
|
||||
- 做好异常处理和超时控制
|
||||
- 避免过度消耗系统资源
|
||||
- 注意信息安全,不要泄露敏感数据
|
@ -1,7 +1,7 @@
|
||||
# FScan
|
||||
|
||||
<div align="center"> <img src="image/gpt-4o/final.png" alt="FScan Logo" width="300px"/> <br><br>
|
||||
<img src="https://img.shields.io/badge/官方网站-FScan.club-blue?style=for-the-badge&logo=firefox&logoColor=white" alt="官方网站"></a><a href="#"><img src="https://img.shields.io/badge/语言-Go-00ADD8?style=for-the-badge&logo=go&logoColor=white" alt="语言"></a><a href="#"><img src="https://img.shields.io/badge/版本-2.0.0-red?style=for-the-badge" alt="版本"></a><img src="https://img.shields.io/badge/build-passing-brightgreen?style=for-the-badge&logo=github-actions" alt="Build"></a><a href="#"><img src="https://img.shields.io/badge/支持-Windows|Linux|MacOS-lightgrey?style=for-the-badge&logo=windows" alt="平台"></a></div>
|
||||
<img src="https://img.shields.io/badge/官方网站-FScan.club-blue?style=for-the-badge&logo=firefox&logoColor=white" alt="官方网站"></a><a href="#"><img src="https://img.shields.io/badge/语言-Go-00ADD8?style=for-the-badge&logo=go&logoColor=white" alt="语言"></a><a href="#"><img src="https://img.shields.io/badge/版本-2.0.1-red?style=for-the-badge" alt="版本"></a><img src="https://img.shields.io/badge/build-passing-brightgreen?style=for-the-badge&logo=github-actions" alt="Build"></a><a href="#"><img src="https://img.shields.io/badge/支持-Windows|Linux|MacOS-lightgrey?style=for-the-badge&logo=windows" alt="平台"></a></div>
|
||||
|
||||
|
||||
## 简介
|
||||
|
Loading…
x
Reference in New Issue
Block a user