mirror of
https://github.com/shadow1ng/fscan.git
synced 2026-02-09 10:19:19 +08:00
11 KiB
11 KiB
Fscan
内网综合扫描工具,一键自动化漏扫。
版本: 2.1.1 | 官网: https://fscan.club/
功能特性
扫描能力
- 主机发现 - ICMP/Ping存活探测,支持大网段B/C段存活统计
- 端口扫描 - TCP全连接扫描,内置133个常用端口,支持端口组(web/db/service/all)
- 服务识别 - 智能协议识别,支持20+种服务指纹匹配
- Web探测 - 网站标题、CMS指纹、Web中间件、WAF/CDN识别(40+指纹)
爆破能力
- 弱密码爆破 - 28种服务爆破(SSH/RDP/SMB/FTP/MySQL/MSSQL/Oracle/Redis等)
- Hash碰撞 - 支持NTLM Hash认证(SMB/WMI)
- SSH密钥登录 - 支持私钥认证方式
- 智能字典 - 内置100+常见弱密码,支持{user}变量替换
漏洞检测
- 高危漏洞 - MS17-010(永恒之蓝)、SMBGhost(CVE-2020-0796)
- 未授权访问 - Redis/MongoDB/Memcached/Elasticsearch等未授权检测
- POC扫描 - 集成Web漏洞POC,支持Xray POC格式
- DNSLog - 支持DNSLog外带检测
漏洞利用
- Redis利用 - 写公钥、写计划任务、写WebShell、主从复制RCE
- MS17-010利用 - ShellCode注入,支持添加用户、执行命令
- SSH命令执行 - 认证成功后自动执行命令
本地模块
- 信息收集 - 系统信息、环境变量、域控信息、网卡配置
- 凭据获取 - 内存转储(MiniDump)、键盘记录、注册表导出
- 权限维持 - Systemd服务、Windows服务、计划任务、启动项、LD_PRELOAD
- 反弹Shell - 正向Shell、反向Shell、SOCKS5代理服务
- 杀软检测 - 识别目标主机安装的安全软件
- 痕迹清理 - 日志清理工具
输入输出
- 目标输入 - IP/CIDR/域名/URL,支持文件批量导入
- 排除规则 - 支持排除特定主机、端口
- 输出格式 - TXT/JSON/CSV多格式输出
- 静默模式 - 无Banner、无进度条、无颜色输出
网络控制
- 代理支持 - HTTP/SOCKS5代理,支持指定网卡
- 发包控制 - 速率限制、最大发包数量控制
- 超时控制 - 端口超时、Web超时、全局超时独立配置
- 并发控制 - 端口扫描线程、服务扫描线程独立配置
扩展功能
- Web管理界面 - 可视化扫描任务管理(条件编译 -tags web)
- Lab靶场环境 - 内置Docker靶场用于测试学习
- 插件化架构 - 服务插件/Web插件/本地插件分离,易于扩展
- 多语言支持 - 中英文界面切换(-lang zh/en)
- 性能统计 - JSON格式性能报告(-perf)
v2.1.0 更新日志
本次更新包含 262个提交,涵盖30项新功能、120项修复、54项重构、14项性能优化、20项测试增强。
架构重构
- 全局变量消除 - 迁移至Config/State对象,提升并发安全和可测试性
- SMB插件融合 - 整合smb/smb2/smbghost/smbinfo为统一插件,新增smb_protocol.go
- 服务探测重构 - 实现Nmap风格fallback机制,优化端口指纹识别策略
- 输出系统重构 - TXT实时刷盘+双写机制,解决结果丢失和乱序问题
- i18n框架升级 - 迁移至go-i18n,完整覆盖core/plugins/webscan模块
- HostInfo重构 - Ports字段从string改为int,类型安全
- 函数复杂度优化 - clusterpoc(125→30)、EnhancedPortScan(111→20)
- 代码审计 - 修复P0-P2级别问题,清理deadcode
- 日志系统优化 - LogDebug调用清理(71→18),精简启动日志输出
性能优化
- 正则预编译 - 全局正则表达式预编译,避免重复编译开销
- 内存优化 - map[string]bool改为map[string]struct{}节省内存
- 并发指纹匹配 - 多协程并行匹配,提升识别速度
- 连接复用 - SOCKS5全局拨号器复用,避免重复握手
- 滑动窗口调度 - 自适应线程池+流式迭代器,优化端口扫描
- CEL缓存优化 - POC扫描CEL环境缓存,减少重复初始化
- 包级变量提取 - proxyFailurePatterns/resourceExhaustedPatterns/sslSecondProbes等
- 预分配容量 - 简化转换链、单次字符串替换
- 并发安全优化 - 优化锁粒度和内存分配
新功能
- Web管理界面 - 可视化扫描任务管理,响应式布局和进度显示
- 多格式POC适配 - 支持xray和afrog格式POC
- 智能扫描模式 - 布隆过滤器去重+代理优化
- 增强指纹库 - 集成FingerprintHub(3139条指纹)
- Favicon指纹识别 - 支持mmh3和MD5双格式hash匹配
- 通用版本提取器 - 自动提取服务版本信息
- 指纹优先级排序 - 智能排序匹配结果
- 智能协议检测 - 自动识别HTTP/HTTPS协议类型
- 网卡指定功能 - 支持VPN场景(-iface参数)
- 排除主机文件 - 支持从文件读取排除主机(-ehf参数)
- ICMP令牌桶限速 - 防止高速扫描导致路由器崩溃
- 端口扫描重试 - 失败自动重扫机制
- RDP真实认证 - 集成grdp库实现系统指纹识别
- SMB/FTP文件列表 - 匿名访问时自动列出文件
- 302跳转双重识别 - 同时识别原始响应和跳转后响应指纹
- TXT输出URL汇总 - 末尾添加Web服务URL列表便于批量测试
- nmap核心集成 - 三大改进:探测策略/匹配引擎/版本解析
- 插件选择性编译 - Build Tags系统,支持服务/本地/Web插件独立编译
- 默认端口扩展 - 从62个扩展到133个常用端口
- 全端口扫描支持 - 扩大端口范围限制
- HTTP重定向控制 - 可配置的重定向次数限制
- 性能分析支持 - 添加pprof性能分析和benchmark测试
- TCP包统计 - 服务插件支持TCP包发送统计
- fscan-lab靶场 - 内网渗透训练平台,覆盖全部漏洞场景(未完成)
- Redis利用增强 - 移植完整Redis利用功能(写公钥/计划任务/WebShell/主从RCE)
- rsync插件重构 - 使用go-rsync库重构认证逻辑
Bug修复(120项,列出关键修复)
- RDP空指针panic - 修复证书解析导致的崩溃(#551)
- 批量扫描漏报 - 修复大规模扫描遗漏问题(#304)
- JSON输出格式 - 修复输出格式错误(#446)
- Redis弱密码检测 - 修复检测遗漏问题(#447)
- 结果实时保存 - 修复扫描结果未及时保存(#469)
- Nmap解析溢出 - 修复八进制转义解析bug(#478)
- 指纹识别竞态 - 修复webtitle/webpoc竞态问题(#474)
- MySQL连接验证 - 改用information_schema库验证
- 代理端口误判 - 修复代理模式下端口状态判断错误
- Context超时 - 修复22处插件超时未响应问题
- ICMP竞态条件 - 修复并发扫描竞争问题
- IPv6地址格式 - 修复4处地址格式化问题
- POC高并发卡死 - 修复Context未传播问题
- Ctrl+C结果丢失 - 添加信号处理确保结果写入
- SOCKS5全回显 - 添加代理连接验证
- 服务探测泄漏 - 修复连接未正确关闭问题
- webtitle响应丢弃 - 修复部分响应数据被丢弃导致识别失败
- TXT漏洞信息缺失 - 修复输出遗漏漏洞详情
- JSON指纹缺失 - 统一SERVICE结果Target格式
- 扫描耗时显示 - 修复完成耗时显示为0的问题
- 虚假漏洞记录 - 重构TXT输出系统消除误报
- Redis跨平台路径 - 修复利用功能的路径和超时问题
- Windows编译警告 - 修复fscan-lite平台兼容性
- Go 1.20兼容 - 降级依赖保持兼容性
测试增强(20项)
- 单元测试 - 核心模块覆盖率74-100%
- 并发安全测试 - State对象、指纹匹配引擎专项测试
- 集成测试 - Web扫描/端口扫描/服务探测/SSH认证/ICMP探测
- CLI参数测试 - 命令行参数解析验证
- 性能基准测试 - AdaptivePool、服务探测策略benchmark
- ResultBuffer测试 - 去重和完整度评分验证
工程化改进
- CI流程优化 - golangci-lint v2升级,简化构建步骤
- Issue自动化 - GitHub Issue模板优化,Project自动化工作流
- Lint全量修复 - revive/errcheck/shadow/staticcheck/gosimple全部通过
- README重写 - 中英文文档全面更新
- 代码格式统一 - gofmt/goimports规范化
快速开始
# 扫描C段
./fscan -h 192.168.1.1/24
# 指定端口
./fscan -h 192.168.1.1 -p 22,80,443,3389
# 仅存活探测
./fscan -h 192.168.1.1/24 -ao
# 禁用爆破
./fscan -h 192.168.1.1/24 -nobr
# Web扫描
./fscan -u http://192.168.1.1
# 本地插件
./fscan -local systeminfo
# Hash碰撞
./fscan -h 192.168.1.1 -m smb2 -user admin -hash xxxxx
# Redis写公钥
./fscan -h 192.168.1.1 -m redis -rf id_rsa.pub
编译
# 标准编译
go build -ldflags="-s -w" -trimpath -o fscan main.go
# 带Web管理界面
go build -tags web -ldflags="-s -w" -trimpath -o fscan main.go
安装
# Arch Linux
yay -S fscan-git
运行截图
fscan.exe -h 192.168.x.x -rf id_rsa.pub (Redis写公钥)

fscan.exe -h 192.168.x.x -m ssh -user root -pwd password

fscan.exe -h 192.168.x.x -p80 -proxy http://127.0.0.1:8080

fscan.exe -h 192.168.x.x -p 139 -m netbios

fscan.exe -h 192.0.0.0/8 -m icmp

路线图
更新计划
- 更新周期 - 每月一次版本发布
- 前两周 - 新功能开发与特性更新
- 后两周 - Bug修复与代码整合
- 欢迎PR - 期待您的贡献!
插件生态
- 持续扩展服务插件覆盖范围
- 为每个服务插件开发更多漏洞检测和利用能力
- 保持插件API向后兼容,确保旧版本POC持续可用
Fscan-lite
- C语言重写的轻量版本
- 更小的体积,更少的依赖
- 支持更多嵌入式/受限环境
- 目录: fscan-lite
Fscan-lab
- 内网渗透测试靶场环境
- 覆盖所有fscan支持的漏洞场景
- 开发测试与功能验证平台
- 新手学习与技能练习环境
- 目录: fscan-lab
免责声明
本工具仅面向合法授权的企业安全建设行为。使用前请确保已获得授权,符合当地法律法规,不对非授权目标扫描。作者不承担任何非法使用产生的后果。
404StarLink
fscan 是 404Team 星链计划2.0 成员项目。





