mirror of
https://github.com/shadow1ng/fscan.git
synced 2025-09-14 14:06:44 +08:00
![]() 经Linus式架构审计,发现并修复插件系统中的具体问题: ## 核心修复 ### 1. 消除local插件GetPorts()方法冗余 - 删除21个local插件中无意义的GetPorts()方法 - 简化local.Plugin接口:移除端口概念 - 理由:本地插件不涉及网络,端口概念完全多余 ### 2. 消除web插件GetPorts()方法冗余 - 删除2个web插件中无用的GetPorts()方法 - 简化web.WebPlugin接口:专注智能HTTP检测 - 理由:Web插件使用动态HTTP检测,预定义端口无价值 ### 3. 统一插件命名规范 - 统一所有插件接口使用Name()方法(符合Go惯例) - 消除GetName()与Name()不一致问题 - 简化适配器:不再需要方法名转换 ## 技术改进 接口精简: - local插件:GetName() + GetPorts() → Name() - web插件:GetName() + GetPorts() → Name() - services插件:GetName() → Name()(保留GetPorts(),业务必需) 代码减少: - 删除23个无用GetPorts()方法 - 重命名52个Name()方法 - 简化3个插件接口定义 ## 影响范围 修改文件:55个插件文件 代码变更:-155行 +61行(净减少94行) 功能影响:零破坏性,保持所有业务逻辑不变 这是基于业务需求分析的精准重构,消除真正多余的部分, 保持系统架构合理性和向后兼容性。 |
||
---|---|---|
.. | ||
activemq.go | ||
cassandra.go | ||
elasticsearch.go | ||
findnet.go | ||
ftp.go | ||
kafka.go | ||
ldap.go | ||
memcached.go | ||
mongodb.go | ||
ms17010.go | ||
mssql.go | ||
mysql.go | ||
neo4j.go | ||
netbios.go | ||
oracle.go | ||
postgresql.go | ||
rabbitmq.go | ||
rdp.go | ||
README.md | ||
redis.go | ||
rsync.go | ||
smb2.go | ||
smb.go | ||
smbghost.go | ||
smbinfo.go | ||
smtp.go | ||
snmp.go | ||
ssh.go | ||
telnet.go | ||
types.go | ||
vnc.go |
服务扫描插件目录
本目录包含所有服务扫描插件,采用简化的单文件插件架构。
已实现插件
数据库服务
mysql.go
- MySQL数据库扫描postgresql.go
- PostgreSQL数据库扫描redis.go
- Redis内存数据库扫描mongodb.go
- MongoDB文档数据库扫描mssql.go
- Microsoft SQL Server扫描oracle.go
- Oracle数据库扫描memcached.go
- Memcached缓存扫描neo4j.go
- Neo4j图数据库扫描
消息队列服务
rabbitmq.go
- RabbitMQ消息队列扫描activemq.go
- ActiveMQ消息队列扫描kafka.go
- Apache Kafka扫描
网络服务
ssh.go
- SSH远程登录服务扫描ftp.go
- FTP文件传输服务扫描telnet.go
- Telnet远程终端服务扫描smtp.go
- SMTP邮件服务扫描snmp.go
- SNMP网络管理协议扫描ldap.go
- LDAP目录服务扫描rsync.go
- Rsync文件同步服务扫描
Windows服务
findnet.go
- Windows网络发现插件 (RPC端点映射)smbinfo.go
- SMB协议信息收集插件
其他服务
vnc.go
- VNC远程桌面服务扫描cassandra.go
- Apache Cassandra数据库扫描
插件特性
每个插件都包含:
- ✅ 服务识别功能
- ✅ 弱密码检测功能
- ✅ 完整的利用功能
- ✅ 错误处理和超时控制
- ✅ 统一的结果输出格式
开发规范
所有插件都遵循 ../README.md
中定义的开发规范。