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

- 新建本地插件统一架构,包含接口定义和基础类 - 实现三个本地插件:fileinfo(文件信息收集)、dcinfo(域控信息收集)、minidump(内存转储) - 添加-localplugin参数,支持指定单个本地插件执行 - 完善参数验证机制,本地模式必须指定插件 - 集成新插件系统到核心扫描策略 - 修复Go方法调用机制导致的插件执行问题 - 支持跨平台和权限检查功能 支持的本地插件: - fileinfo: 敏感文件扫描 - dcinfo: Windows域控信息收集 - minidump: lsass进程内存转储 使用方式: fscan -local -localplugin <plugin_name>
54 lines
1.4 KiB
Go
54 lines
1.4 KiB
Go
package local
|
|
|
|
import (
|
|
"context"
|
|
"github.com/shadow1ng/fscan/common"
|
|
"github.com/shadow1ng/fscan/plugins/base"
|
|
)
|
|
|
|
// LocalConnector 本地信息收集连接器接口
|
|
type LocalConnector interface {
|
|
// Connect 建立本地连接(实际上是初始化本地环境)
|
|
Connect(ctx context.Context, info *common.HostInfo) (interface{}, error)
|
|
|
|
// Close 关闭连接和清理资源
|
|
Close(conn interface{}) error
|
|
|
|
// GetSystemInfo 获取系统信息
|
|
GetSystemInfo(conn interface{}) (map[string]string, error)
|
|
}
|
|
|
|
// LocalScanner 本地扫描器接口
|
|
type LocalScanner interface {
|
|
base.Scanner
|
|
|
|
// ScanLocal 执行本地扫描
|
|
ScanLocal(ctx context.Context, info *common.HostInfo) (*base.ScanResult, error)
|
|
|
|
// GetLocalData 获取本地数据
|
|
GetLocalData(ctx context.Context) (map[string]interface{}, error)
|
|
}
|
|
|
|
// LocalExploiter 本地信息提取器接口
|
|
type LocalExploiter interface {
|
|
base.Exploiter
|
|
|
|
// ExtractData 提取本地数据
|
|
ExtractData(ctx context.Context, info *common.HostInfo, data map[string]interface{}) (*base.ExploitResult, error)
|
|
}
|
|
|
|
// LocalPlugin 本地插件接口
|
|
type LocalPlugin interface {
|
|
base.Plugin
|
|
LocalScanner
|
|
LocalExploiter
|
|
|
|
// GetLocalConnector 获取本地连接器
|
|
GetLocalConnector() LocalConnector
|
|
|
|
// GetPlatformSupport 获取支持的平台
|
|
GetPlatformSupport() []string
|
|
|
|
// RequiresPrivileges 是否需要特殊权限
|
|
RequiresPrivileges() bool
|
|
} |