Commit Graph

777 Commits

Author SHA1 Message Date
ZacharyZcR
1cb1e8b2aa docs: 更新PARAMETERS.md以反映v2.2.1版本新增功能
- 更新版本信息至v2.2.1
- 添加host:port格式支持的说明和示例
- 新增SOCKS5代理参数到HTTP设置部分
- 增加新增功能改进章节,详细说明智能目标识别功能
- 更新使用示例,包含新的host:port格式用法
- 添加版本更新说明章节,记录v2.2.1的主要改进
2025-08-12 17:23:12 +08:00
ZacharyZcR
2703ddd9ed feat: 增强目标解析功能支持host:port格式
- 修复目标地址验证逻辑,支持host:port格式的直接输入
- 优化端口扫描流程,对明确指定的host:port跳过不必要的端口扫描
- 改进主机地址解析,智能识别和处理host:port格式
- 统一端口扫描结果显示,避免显示不一致问题
- 增强用户体验,支持 -h 127.0.0.1:135 等便捷格式
2025-08-12 17:20:59 +08:00
ZacharyZcR
cc4f55374a fix: 修复Web扫描功能无法正常工作的问题
- 修复URL正则表达式支持IP地址格式
- 修复URL解析后正确设置到HostInfo.Url字段
- 修复Web扫描目标Host和Port字段的提取
- 修复Web插件适用性检查逻辑,允许Web扫描策略直接执行Web插件
- 完善URL到目标信息的转换,包含协议默认端口处理
2025-08-12 17:03:38 +08:00
ZacharyZcR
0eb0a8f14a chore: 更新版本号到v2.2.1
- 版本从2.2.0更新到2.2.1
- 反映新增的内存监控功能
2025-08-12 16:31:31 +08:00
ZacharyZcR
245e3d0a12 feat: 在进度条中添加内存使用量监控
- 添加实时内存使用量显示(MB)
- 实现颜色编码:绿色(<50MB)、黄色(50-100MB)、红色(>100MB)
- 优化性能:限制内存统计更新频率为每秒一次
- 支持无颜色模式兼容性
- 在所有进度条状态下显示内存信息
2025-08-12 16:27:39 +08:00
ZacharyZcR
701306ee5f feat: 增强进度条活跃指示器,防止用户误判程序卡死
- 添加动态活跃指示器:活跃时显示●,长时间无更新时显示旋转动画
- 实现智能更新机制:2秒内有更新显示静态圆点,超时切换到旋转指示
- 独立goroutine处理活跃指示器,500ms更新间隔
- 优化渲染逻辑:避免频繁更新时重复渲染,提升性能
- 完善资源清理:正确停止ticker和关闭channel
- 改善用户体验:明确表明程序正在运行,消除卡死疑虑
2025-08-12 16:16:51 +08:00
ZacharyZcR
defe5b0733 refactor: 清理未使用的死代码函数
- 移除hostinfo_ext.go中7个未使用函数
- 移除target.go中7个未使用函数
- 清理多余空行,提升代码简洁性
- 保持核心功能完整,仅删除确认未被调用的函数
- 消除所有死代码编译警告
2025-08-12 16:12:47 +08:00
ZacharyZcR
792a075172 fix: 修复目标主机重复显示的问题
- 解决updateGlobalVariables中主机列表重复追加的逻辑错误
- 当info.Host已有值时不再重复设置解析结果
- 修复容器管理日志中显示"127.0.0.1,127.0.0.1"的问题
- 保持从文件读取主机时的正常功能
2025-08-12 16:09:06 +08:00
ZacharyZcR
c6bfb5f064 feat: 优化智能Web检测性能,避免重复调用
- 添加检测结果缓存机制,避免同一端口重复HTTP探测
- 使用线程安全的读写锁保护缓存访问
- 显著减少网络请求次数,提升扫描速度
- 支持多主机扫描的缓存键设计
- 保持架构兼容性的同时优化性能表现
2025-08-12 16:05:20 +08:00
ZacharyZcR
b706fb46bb refactor: 统一端口组定义并支持多种端口组扫描
- 新增多个预定义端口组常量到base/Constants.go
- 实现-p web/main/db/service/common/all参数支持
- 删除重复的DefaultPorts常量和database端口组
- 合并GetPortGroups和GetTargetPortGroups函数避免重复
- 统一所有端口组定义到统一位置便于维护
2025-08-12 15:56:09 +08:00
ZacharyZcR
a206e2c16e fix: 从默认端口列表中移除161端口
- 将SNMP端口161从MainPorts常量中移除避免默认扫描
- 保持用户可通过-p 161手动指定扫描SNMP服务
- 默认扫描端口数量从58个减少至57个
- 提升扫描效率减少不必要的SNMP端口探测
2025-08-12 14:55:00 +08:00
ZacharyZcR
b463984e78 refactor: 重构main.go入口文件并引入依赖注入架构
- 创建app包实现依赖注入容器和初始化器模式
- 重构main.go为六阶段清晰的初始化流程
- 新增结构化错误处理替代简陋的os.Exit调用
- 为HostInfo添加辅助函数增强功能但保持向后兼容
- 引入TargetInfo包装器支持上下文和元数据管理
- 优化代码组织提升可维护性和可测试性
2025-08-12 14:37:28 +08:00
ZacharyZcR
338dd60c3e feat: 实现智能Web服务检测系统
- 扩展Web端口识别范围至40+个常见端口
- 新增HTTP/HTTPS协议智能探测机制
- 实现并发协议检测提升性能
- 添加精确错误分析避免误判
- 完善插件过滤确保Web插件仅在检测到Web服务时执行
- 支持端口模式匹配和响应头分析
2025-08-12 14:20:57 +08:00
ZacharyZcR
0cc29afbeb fix: 修复服务扫描插件列表显示本地插件的问题
修复了服务扫描模式下插件列表错误包含本地插件的显示问题:

- 在ServiceScanner的插件过滤逻辑中正确排除本地插件
- 统一新插件架构和传统插件系统的过滤规则
- 保留Web插件的智能检测功能(当检测到Web端口时自动包含)

修复前显示包含:cleaner, keylogger, winschtask, minidump 等本地插件
修复后只显示:ssh, mysql, redis, vnc 等真正的服务插件和适用的Web插件

提升了用户体验的准确性和扫描日志的可读性。
2025-08-12 13:51:26 +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
ZacharyZcR
cddbb9e7e4 refactor: 统一Core目录大小写为小写 2025-08-12 13:04:14 +08:00
ZacharyZcR
3e4cd2466e feat: 实现完整的VNC插件支持
- 新增VNC远程桌面协议检测和利用插件
- 实现RFB协议连接器支持版本识别和认证
- 支持无认证访问检测和弱密码暴力破解
- 添加VNC服务风险评估和信息收集功能
- 支持标准VNC端口范围(5900-5909)
- 在插件注册系统中集成VNC服务扫描

功能特性: 服务识别、安全检测、利用验证、风险评估
2025-08-12 12:08:30 +08:00
ZacharyZcR
f097d2812a refactor: 清理项目死代码和未使用函数
- 移除所有未使用的generateCredentials方法
- 删除插件适配器中的过时函数
- 清理MySQL连接器中的无用方法
- 移除Redis利用器中的未调用函数
- 删除遗留加密函数和基础扫描器无用方法
- 完全移除未注册的VNC插件
- 优化代码结构,提升项目可维护性

清理统计: 移除25+个死代码函数,减少400+行无用代码
2025-08-12 11:51:36 +08:00
ZacharyZcR
b89bf4b0da refactor: 规范本地插件编译标签和注册架构
- 为所有平台特定插件添加正确的编译标签
  - Linux插件添加 //go:build linux 标签
  - Windows插件添加 //go:build windows 标签
- 重构本地插件注册方式
  - 从main.go移至core包统一管理
  - 创建平台特定的注册文件实现条件编译
- 修正参数文档中minidump平台支持描述
- 优化插件注册架构,提升代码组织性
2025-08-11 21:36:14 +08:00
ZacharyZcR
7ca20cbebe docs: 更新SOCKS5代理支持文档
- 明确说明代理支持范围:HTTP代理仅Web扫描,SOCKS5代理支持所有服务
- 添加代理失败自动回退的说明
- 更新使用示例,展示SOCKS5代理在不同场景的应用
- 重新组织代理相关参数的文档结构
2025-08-11 21:17:42 +08:00
ZacharyZcR
60eb65766a fix: 为WrapperTcpWithContext和WrapperTlsWithContext添加SOCKS5代理支持
- 修复核心TCP包装函数,检测并使用SOCKS5代理配置
- 添加TLS连接的代理支持
- 实现优雅降级:代理失败时自动回退到直连
- 添加详细的调试日志记录代理使用情况
- 修复影响PostgreSQL、Cassandra、Telnet、LDAP、IMAP等服务插件的代理功能

解决的问题:
- 之前只有WebScan和MySQL支持SOCKS5代理
- 现在所有使用WrapperTcpWithContext的服务都支持代理
- 保持与现有MySQL自定义实现的兼容性
2025-08-11 21:16:28 +08:00
ZacharyZcR
3b6f2083de feat: 优化SOCKS5参数命名以提升清晰度
- 将 -socks5-port 重命名为 -start-socks5,更明确表达启动服务器的意图
- 修正 -socks5 参数描述为使用SOCKS5代理(客户端模式)
- 添加新的i18n消息 flag_start_socks5_server 区分两种用途
- 更新文档说明两个参数的不同用途和使用示例

参数对比:
  旧方式: -socks5-port 1080 (容易混淆)
  新方式: -start-socks5 1080 (启动代理服务器)
  区别于: -socks5 127.0.0.1:1080 (使用外部代理)
2025-08-11 21:02:47 +08:00
ZacharyZcR
285358772f refactor: 简化本地插件参数设计
- 移除 -localplugin 参数,使用 -local 直接指定插件名称
- 简化用户体验:go run main.go -local cleaner
- 保持相同的验证逻辑和错误提示
- 更新文档和帮助信息
- 减少参数数量:从71个减少到70个

使用示例:
  新方式: go run main.go -local cleaner
  旧方式: go run main.go -local -localplugin cleaner (已移除)
2025-08-11 20:55:50 +08:00
ZacharyZcR
c85370a7d9 fix: 替换硬编码插件列表为动态注册表查询
- 在main.go中添加initLocalPlugins函数,从插件注册表动态获取本地插件列表
- 修改Common/Flag.go使用动态插件列表进行验证
- 消除硬编码插件名称,支持自动发现新插件
- 插件列表按字母顺序排序,保持一致性
- 修复循环导入问题
- 添加cleaner插件自毁脚本到.gitignore
- 创建完整的参数说明文档
2025-08-11 20:42:02 +08:00
ZacharyZcR
c0374a6250 feat: 添加跨平台系统痕迹清理本地插件
- 实现Windows/Linux/macOS三平台痕迹清理功能
- Windows: 清理事件日志、预取文件、注册表、最近文档、临时文件、网络缓存
- Linux: 清理Shell历史、系统日志、用户缓存、临时文件、网络缓存
- macOS: 清理Spotlight索引、LaunchServices数据库、系统日志、缓存文件
- 支持安全文件删除和程序自毁功能
- 采用保守策略避免误删重要文件
2025-08-11 11:51:36 +08:00
ZacharyZcR
25649467c1 feat: 添加跨平台文件下载插件
- 新增downloader本地插件,支持Windows/Linux/Darwin
- 添加-download-url和-download-path命令行参数
- 支持HTTP/HTTPS协议文件下载
- 实现文件大小限制和超时控制
- 支持自动文件名提取和路径权限检查
- 完整的错误处理和资源清理机制
- 集成多语言支持(中英文)
2025-08-11 10:33:16 +08:00
ZacharyZcR
ebe7c631fa fix: 修复Windows键盘记录特殊键识别问题
- 支持识别左右Shift键(VK_LSHIFT/VK_RSHIFT)
- 支持识别左右Ctrl键(VK_LCONTROL/VK_RCONTROL)
- 支持识别左右Alt键(VK_LMENU/VK_RMENU)
- 增加方向键、功能键和基本标点符号支持
- 简化键盘事件处理逻辑提升性能
- 统一字母输出为小写格式
2025-08-11 10:23:46 +08:00
ZacharyZcR
4e237f6bc3 feat: 移除键盘记录时间限制,改为持续记录模式
- 删除-keylog-duration命令行参数和相关配置
- 移除KeyloggerDuration全局变量和时间限制逻辑
- 键盘记录现在持续运行直到程序手动停止
- 更新日志格式为「记录模式: 持续记录」
- 优化用户体验,避免因时间限制导致记录意外中断
- 保持实时文件输出和高性能键盘捕获特性
- 更新插件信息和帮助文档,移除时间相关描述
2025-08-11 09:48:50 +08:00
ZacharyZcR
42522df80c perf: 优化Windows键盘记录性能和实时输出
- 重构键盘Hook架构,采用事件驱动模式降低系统影响
- 实现真正的实时文件写入,支持按键立即同步到磁盘
- 优化Hook回调处理时间,立即调用CallNextHookEx确保系统响应
- 使用非阻塞事件通道避免键盘Hook阻塞系统
- 简化键码转换逻辑,提升按键处理性能
- 解决文件输出延迟问题,支持键盘记录过程中实时查看
- 分离平台实现,Windows平台使用高效实时写入模式
2025-08-11 09:36:49 +08:00
ZacharyZcR
c9d07ebd9b feat: 添加跨平台键盘记录本地插件
- 实现Windows键盘Hook机制,支持低级键盘事件捕获
- 实现Linux输入设备监听,支持/dev/input/eventX设备读取
- 实现macOS Core Foundation事件监听,支持CGEventTap
- 添加键盘记录配置参数:-keylog-output和-keylog-duration
- 修复Windows消息循环阻塞问题,改用PeekMessage非阻塞模式
- 支持跨平台键盘输入捕获和文件输出
- 集成到FScan本地插件系统,支持-localplugin keylogger调用
2025-08-11 08:55:01 +08:00
ZacharyZcR
e254d6e333 feat: 添加Windows持久化插件套件
- 新增5个Windows持久化插件:
  * winregistry: Windows注册表持久化(Run键、RunOnce键、Winlogon Shell等)
  * winstartup: Windows启动文件夹持久化(快捷方式、批处理脚本等)
  * winschtask: Windows计划任务持久化(schtasks、XML任务导入)
  * winservice: Windows服务持久化(系统服务、svchost集成)
  * winwmi: Windows WMI事件订阅持久化(事件过滤器、消费者绑定)

- 添加-win-pe参数支持PE文件路径指定
- 完整的参数验证和错误处理
- 支持.exe和.dll文件格式
- 国际化支持(中英文)
- 遵循FScan简化本地插件架构

所有插件已完成测试验证,提供多层次Windows持久化方案
2025-08-11 07:04:22 +08:00
ZacharyZcR
804274ff67 feat: 添加Linux持久化插件套件
- 新增ldpreload插件:通过LD_PRELOAD动态库预加载实现持久化
- 新增shellenv插件:通过修改shell配置文件实现持久化
- 新增crontask插件:通过cron计划任务实现持久化
- 新增systemdservice插件:通过systemd服务实现持久化
- 添加-persistence-file参数支持.elf/.sh文件
- 四种持久化方式覆盖多个持久化向量
- 仅支持Linux平台,包含完善的平台检查
- 集成智能权限管理和错误处理机制
2025-08-11 06:18:15 +08:00
ZacharyZcR
0eef393420 feat: 添加正向Shell本地插件
- 新增forwardshell本地插件,支持跨平台远程Shell访问
- 支持Windows (cmd)、Linux/macOS (/bin/sh) 平台
- 添加-fsh-port参数指定监听端口,默认4444
- 实现并发连接处理和命令超时控制
- 集成生命周期管理,支持长时间运行
- 提供exit命令优雅断开连接
2025-08-11 05:17:39 +08:00
ZacharyZcR
50247ee1e4 chore: 清理未使用的死代码
- 删除plugins/local/connector.go中未使用的GetCommonDirectories和GetSensitiveFiles函数
- 移除整个connector.go文件,因为其只包含死代码
- 通过deadcode工具验证,确保代码库整洁
2025-08-11 04:11:36 +08:00
ZacharyZcR
a86098d6b6 refactor: 重构本地插件架构并支持多平台
- 简化本地插件架构,移除不必要的连接器抽象
- 重构6个本地插件使用统一的简化架构
- 更新平台支持配置:Windows专用插件(avdetect/dcinfo/minidump),跨平台插件(fileinfo/reverseshell/socks5proxy)
- 修复插件注册和系统集成
- 优化代码结构和错误处理
2025-08-11 04:10:04 +08:00
ZacharyZcR
1cfb21ed64 refactor: 将auto.json嵌入编译文件中
- 使用Go embed包将AV/EDR规则数据库嵌入到可执行文件
- 移除对外部auto.json文件的依赖
- 提高工具的便携性和独立性
- 将auto.json移动到avdetect插件目录
- 更新loadAVDatabase方法使用嵌入数据
2025-08-10 10:57:31 +08:00
ZacharyZcR
4a33b89738 feat: 添加AV/EDR自动检测本地插件
- 实现基于auto.json规则库的安全软件自动识别
- 支持Windows/Linux/macOS跨平台进程枚举
- 智能匹配算法:精确匹配+模糊匹配
- 风险等级评估:HIGH/MEDIUM/LOW三级分类
- 产品分类:EDR/企业级AV/云安全等类别
- 详细检测报告生成,包含渗透测试建议
- 解决中文系统编码问题,使用PowerShell优化进程获取
- 包含175个安全产品规则,支持主流AV/EDR产品检测
2025-08-10 10:49:36 +08:00
ZacharyZcR
b60a2af424 feat: 添加SOCKS5代理本地插件
- 实现完整的SOCKS5协议支持,包括握手和连接请求处理
- 支持IPv4/IPv6地址和域名解析
- 添加-socks5-port命令行参数用于指定代理端口
- 实现双向数据转发和并发连接处理
- 集成主程序生命周期管理,避免代理运行时程序退出
- 支持跨平台运行(Windows/Linux/macOS)
- 通过curl测试验证代理功能正常
2025-08-10 10:25:51 +08:00
ZacharyZcR
f659a222cd docs: 添加本地插件开发文档和Claude文档目录
- 创建.claude_docs目录用于存储AI助手参考文档
- 更新.gitignore排除Claude文档目录
- 编写详细的本地插件开发指南文档
- 分析fscan本地插件架构和开发模式
- 提供完整的开发流程和最佳实践指导
2025-08-10 10:11:35 +08:00
ZacharyZcR
4729be481e chore: 清理项目多余文件
- 删除所有测试可执行文件 (fscan_*_test.exe等)
- 清理临时开发文件
- 保持项目目录整洁
- 所有多余文件已被gitignore正确排除
2025-08-10 06:20:37 +08:00
ZacharyZcR
fead006830 fix: 修复反弹shell连接冲突导致的秒断问题
- 移除Connect方法中的连通性测试,避免抢占反弹shell连接通道
- 清理未使用的time包导入
- 提高反弹shell连接的稳定性和成功率
2025-08-10 06:06:46 +08:00
ZacharyZcR
551d36b998 fix: 修复反弹shell插件立即退出问题,改为纯Go原生实现
- 添加ReverseShellActive全局状态标志用于控制程序生命周期
- 修改Scanner.go检查活跃反弹shell并阻塞程序退出
- 重写reverseshell插件为纯Go原生TCP实现,移除PowerShell依赖
- 实现原生命令执行和交互式shell会话管理
- 修复多线程异步架构导致的连接立即断开问题
2025-08-10 06:00:13 +08:00
ZacharyZcR
fc6dd50377 feat: 添加跨平台反弹Shell本地插件
新增功能:
- 添加 reverseshell 本地插件,支持 Windows/Linux/macOS 反弹Shell
- 新增 -rsh 命令行参数,用于指定反弹目标地址:端口
- 支持自动生成不同平台的反弹Shell命令
- 集成到现有本地插件架构中

代码重构:
- 清理旧插件架构文件 (Plugins/*.go)
- 统一使用新的模块化插件架构
- 修复 main.go 中的函数调用
- 更新可用插件列表和参数验证

技术细节:
- Windows: PowerShell TCP反弹Shell
- Linux/macOS: Bash TCP反弹Shell
- 支持连接测试和错误处理
- 遵循现有插件架构模式
2025-08-10 05:10:03 +08:00
ZacharyZcR
c72cd25e63 chore: 添加Todo文件到gitignore,忽略所有todo相关文档文件 2025-08-10 04:09:28 +08:00
ZacharyZcR
fbe846068a version: 更新版本号为v2.2.0 2025-08-10 04:07:29 +08:00
ZacharyZcR
e543afacdb enhance: 完善DCInfo本地插件功能,修复GPO和OU检索问题
- 增强域控制器发现机制,支持多种查询方法
- 修复IPv6连接问题,优先使用IPv4连接LDAP
- 完善GPO检索,使用正确的LDAP查询修复7个GPO获取
- 优化OU过滤,减少系统容器噪音,保留重要组织结构
- 增加详细的域信息收集:用户、管理员、计算机详情
- 改进日志输出格式,提供更清晰的域环境分析结果
- 新增本地插件架构支持:fileinfo、minidump、dcinfo统一管理
2025-08-10 01:13:24 +08:00
ZacharyZcR
653a89b737 enhance: 优化minidump插件,支持mimikatz兼容的完整内存转储 2025-08-09 23:48:04 +08:00
ZacharyZcR
a1c82d188b fix: 完全修复minidump插件的稳定性和功能问题
主要修复内容:
- 添加全面的错误处理和panic恢复机制
- 增强Windows API调用的稳定性和调试输出
- 实现双重转储策略: PowerShell系统工具 + Windows API备份
- 修复DLL加载和进程枚举的错误处理
- 优化进程查找算法,提供详细的搜索统计
- 改进权限提升逻辑,允许在失败时继续执行
- 添加comprehensive的日志记录便于问题诊断

现在minidump插件可以稳定运行并成功收集lsass进程信息
2025-08-09 23:14:52 +08:00
ZacharyZcR
a90d9c5bc7 fix: 优化minidump插件错误处理和调试输出
- 添加详细的调试日志,便于问题诊断
- 改进错误消息显示,使用LogError统一格式
- 添加测试模式支持,方便非管理员环境测试
- 增强权限检查和状态反馈机制
2025-08-09 22:53:54 +08:00