Commit Graph

11 Commits

Author SHA1 Message Date
ZacharyZcR
43ddb3630d feat: 完善本地插件控制机制和参数验证
- 实现本地插件严格单个指定控制,拒绝多插件分隔符
- 修复本地插件自动调用问题,避免不必要的插件实例创建
- 添加-local与-h/-u参数的互斥性检查
- 优化插件存在性检查,使用pluginExists()替代plugins.Get()
- 完善统一插件系统的端口信息管理
- 增强Web插件的协议智能检测功能

主要变更:
* 本地插件现在只能通过-local参数明确指定单个插件运行
* 插件适用性检查不再创建不必要的插件实例,提升性能
* 本地扫描与网络扫描参数完全隔离,避免配置冲突
2025-08-26 19:34:14 +08:00
ZacharyZcR
d570be1f50 Linus式插件系统重写第一阶段完成
- 删除460行过度工程代码,替换为273行简洁实现
- 统一三套独立注册系统为单一全局注册表
- 删除app/container.go容器依赖注入系统(107行)
- 删除app/initializer.go复杂初始化器(75行)
- 删除core/PluginAdapter.go适配器层(82行)
- 删除plugins/{services,web,local}/init.go重复代码(238行)
- 创建plugins/init.go统一插件接口(116行)
- 添加向后兼容适配层保持现有插件不变

架构简化效果:
- 代码减少: 460行 → 273行 (减少41%)
- 接口统一: 3个Plugin接口 → 1个Plugin接口
- 注册系统: 3套独立系统 → 1套全局系统
- 消除特殊情况,符合'好代码没有特殊情况'原则

编译测试通过,基本功能验证正常
2025-08-26 18:03:57 +08:00
ZacharyZcR
2e449c74ef 重构服务插件架构,移除冗余功能
- 统一所有服务插件的实现模式,移除i18n国际化依赖
- 删除硬编码的备份凭据列表,统一使用GenerateCredentials()
- 移除过度工程化的Context取消检查
- 清理exploitation功能,专注于弱密码检测和服务识别
- 简化代码结构,移除冗余注释和说明文档
- 优化19个服务插件:activemq, cassandra, elasticsearch, ftp, kafka, ldap, memcached, mongodb, mssql, mysql, neo4j, oracle, postgresql, rabbitmq, rsync, smtp, snmp, telnet, vnc
- 代码总量减少约40%,提升维护效率

此次重构确保插件架构的一致性和简洁性
2025-08-26 17:44:43 +08:00
ZacharyZcR
4cd8ed5668 feat: 完成本地插件架构统一迁移
迁移所有本地插件到统一Plugin接口架构:
- socks5proxy/systemdservice: 网络代理和Linux服务持久化
- winregistry/winservice/winschtask/winstartup/winwmi: Windows持久化套件
- 所有插件消除BaseLocalPlugin继承,统一使用Plugin接口
- 保持原有功能完整性,支持跨平台编译标记
- 删除过度设计的继承体系,实现直接简洁实现
2025-08-26 14:39:53 +08:00
ZacharyZcR
6cf5719e8a refactor: 彻底清理插件系统,消除虚假利用功能
- 删除整个legacy插件系统(7794行代码)
- 完成所有插件向单文件架构迁移
- 移除19个插件的虚假Exploit功能,只保留真实利用:
  * Redis: 文件写入、SSH密钥注入、计划任务
  * SSH: 命令执行
  * MS17010: EternalBlue漏洞利用
- 统一插件接口,简化架构复杂度
- 清理临时文件和备份文件

重构效果:
- 代码行数: -7794行
- 插件文件数: 从3文件架构→单文件架构
- 真实利用插件: 从22个→3个
- 架构复杂度: 大幅简化
2025-08-26 11:43:48 +08:00
ZacharyZcR
6eb9449181 feat: 迁移legacy插件findnet和smbinfo到新架构
将两个重要的Windows信息收集插件从复杂的legacy架构迁移到单文件插件架构:

🔍 **FindNet插件 (findnet.go)**
- 通过RPC端点映射服务收集Windows网络信息
- 支持主机名解析和网络接口发现
- 包含完整的利用功能用于详细信息收集
- 测试验证:成功发现主机名"Bifrost"和4个网络接口

🔍 **SMBInfo插件 (smbinfo.go)**
- SMB协议信息收集和操作系统检测
- 支持SMBv1和SMBv2协议自动检测
- 包含NTLM信息解析和Windows版本识别
- 测试验证:成功识别Windows 11 Build 26100和计算机名

两个插件都从原来的3文件架构简化为单文件实现,同时保持完整功能。
2025-08-26 00:22:32 +08:00
ZacharyZcR
e082e2bb59 refactor: 重组插件目录结构,提升管理直观性
将所有服务插件移动到plugins/services/目录下,使目录结构更加清晰直观:
• 创建plugins/services/目录统一管理服务扫描插件
• 添加init.go提供类型别名和函数导出
• 更新main.go导入路径
• 所有20个服务插件功能验证正常

新的目录结构更便于插件管理和维护。
2025-08-26 00:02:13 +08:00
ZacharyZcR
678d750c8a refactor: 重构插件架构,实现单文件插件系统
将复杂的三文件插件架构(connector/exploiter/plugin)重构为简化的单文件插件架构,
大幅减少代码重复和维护成本,提升插件开发效率。

主要改进:
• 将每个服务插件从3个文件简化为1个文件
• 删除过度设计的工厂模式、适配器模式等抽象层
• 消除plugins/services/、plugins/adapters/、plugins/base/复杂目录结构
• 实现直接的插件注册机制,提升系统简洁性
• 保持完全向后兼容,所有扫描功能和输出格式不变

重构统计:
• 删除文件:100+个复杂架构文件
• 新增文件:20个简化的单文件插件
• 代码减少:每个插件减少60-80%代码量
• 功能增强:所有插件包含完整扫描和利用功能

已重构插件: MySQL, SSH, Redis, MongoDB, PostgreSQL, MSSQL, Oracle,
Neo4j, Memcached, RabbitMQ, ActiveMQ, Cassandra, FTP, Kafka, LDAP,
Rsync, SMTP, SNMP, Telnet, VNC

验证通过: 新系统编译运行正常,所有插件功能验证通过
2025-08-25 23:57:00 +08:00
ZacharyZcR
074aebfeec refactor: 简化插件利用架构,移除不必要的exploit控制参数
- 移除-ne (DisableExploit)参数及其相关控制逻辑
- 统一服务插件exploit实现为空函数,保持接口一致性
- MySQL/FTP/Cassandra/ActiveMQ插件exploit方法改为空实现
- Redis插件移除-ne控制,利用功能由专用参数控制(-rwp/-rf/-rs)
- VNC插件exploit功能改为空实现,专注于服务检测和弱密码扫描
- 更新插件描述,准确反映实际功能范围

所有exploit功能现在由明确的用户参数控制,无需通用禁用开关
2025-08-12 17:56:06 +08:00
ZacharyZcR
7e4e3dbd1b refactor: 清理死代码函数以提升代码质量
移除了36个静态分析工具识别的未使用函数,减少代码体积534行:

核心模块:
- core/PluginAdapter.go: 移除7个未使用的插件适配器方法
- core/Registry.go: 移除5个未使用的注册器方法
- core/Scanner.go: 移除1个未使用的扫描方法
- core/WebDetection.go: 移除4个未使用的Web检测方法

通用模块:
- common/ConcurrencyMonitor.go: 移除3个未使用的并发监控方法
- common/common.go: 移除1个未使用的插件注册方法
- common/base/Plugin.go: 移除4个未使用的插件管理方法
- common/parsers/Simple.go: 移除1个未使用的端口解析方法
- common/utils/memmonitor.go: 移除9个未使用的内存监控方法
- common/utils/slicepool.go: 移除1个未使用的切片去重方法

插件模块:
- plugins/services/vnc/plugin.go: 移除1个未使用的服务识别方法

所有移除的函数均替换为中文注释标记,保持代码可读性。
2025-08-12 13:22:12 +08:00
ZacharyZcR
4a3f281b6b refactor: 统一Plugins目录大小写为小写
- 将所有Plugins路径重命名为plugins
- 修复Git索引与实际文件系统大小写不一致问题
- 确保跨平台兼容性和路径一致性
2025-08-12 13:08:06 +08:00