Skip to content

Release v2.2.0#594

Merged
ZacharyZcR merged 13 commits into
mainfrom
dev
Jul 10, 2026
Merged

Release v2.2.0#594
ZacharyZcR merged 13 commits into
mainfrom
dev

Conversation

@ZacharyZcR

Copy link
Copy Markdown
Collaborator

Summary

  • prepare v2.2.0 version metadata and release notes
  • update release workflow so merging dev into main creates the v2.2.0 tag and runs GoReleaser in the same workflow
  • update GoReleaser v2 config and reduce UPX scope to keep release builds reliable

Verification

  • go test ./...
  • ruby YAML parse for .github YAML files
  • go run github.com/rhysd/actionlint/cmd/actionlint@latest .github/workflows/*.yml
  • GITHUB_OWNER=shadow1ng GITHUB_REPO=fscan goreleaser check -f .github/conf/.goreleaser.yml
  • GITHUB_OWNER=shadow1ng GITHUB_REPO=fscan goreleaser release --snapshot --clean -f .github/conf/.goreleaser.yml
  • built local release-check binary with ldflags and confirmed Fscan 2.2.0 banner

ZacharyZcR and others added 13 commits June 17, 2026 12:51
新建 18 个测试文件,追加 30 个已有测试文件,覆盖协议解析、
错误分类、CEL 表达式求值、YAML 反序列化、字节编码等纯函数。
Go map 遍历顺序不确定,导致 buildBSON 输出的命令文档中
saslStart/saslContinue 不一定是第一个键,MongoDB 拒绝执行。

引入有序 []mongoKV 类型,SASL 命令改用 orderedDoc() 构造。
同时新增 6 协议集成测试框架(Docker Compose + go test -tags integration)。
cqlSend 写 8 字节头(缺 flags),实际 CQL v4 需要 9 字节。
version byte 0x84 是 response 方向,request 应为 0x04。

同时扩展集成测试至 17 个协议:新增 Memcached、Elasticsearch、
MSSQL、RabbitMQ、MQTT、LDAP、Cassandra、Neo4j、Kafka、SMTP。
Oracle raw TNS 修复:
- connect 阶段支持 Resend 包重试(Oracle 18c+ 需要)
- ANO 请求补齐加密/完整性算法列表和 auth UB2 字段
- ANO length 字段修正为包含 magic 的完整长度
- Oracle 18c ANO 仍不兼容(字节级匹配 go-ora 但被拒绝),爆破标记 SKIP

新增集成测试协议:
ActiveMQ, Zookeeper, Rsync, VNC, SNMP, Oracle(服务检测), Cassandra, Neo4j, Kafka, SMTP, LDAP

VNC 修复:换用支持 RFB 3.8 的 debian-xfce-vnc 镜像
扫描非 HTTP 端口时 Go net/http 返回 malformed HTTP status code 等
transport 级错误,属于正常现象,不应作为 error 输出。
在 executeRule 和 clustersend 两个调用点统一过滤 transport 错误,
返回 false, nil 表示"目标不可达 = 无漏洞"。
大规模扫描时 probeSubnets 会自动跳过空 /24 网段,
部分场景下用户需要关闭此优化以扫描全部目标。
新增 -nsp (no subnet probe) 参数控制。
1. buildTargetURL 对 443/8443 等已知 TLS 端口默认使用 https scheme,
   webtitle 触发 POC 扫描前将检测到的协议写回 info.URL,
   避免对 HTTPS 服务发送 HTTP 请求导致 EOF
2. GetInfo 添加 probe nil 检查,防止探针初始化失败时空指针 panic
3. 删除 test-nuclei-example.yaml 测试模板,避免 robots.txt 误报
POC 扫描结果存入 details["vulnerability_name"],
但 TXT/CSV/NDJSON 三种输出格式只读 details["vulnerability"],
key 不匹配导致漏洞名丢失,退化为显示 status 字段 "vulnerable"。
三种 writer 统一兼容两种 key。
isShellPrompt 使用 Contains 匹配 # $ > 单字符,Cisco IOS MOTD 横幅中
的装饰线(###)和文本内容会误触发,导致未发送凭据就判定认证成功。

重写 isShellPrompt 改为行尾匹配,排除全同字符装饰线;
performTelnetAuth 等待 login prompt 阶段移除 isShellPrompt 检查,
未授权检测由 testUnauthAccess 专门负责。
4 万 IP 全端口扫描默认 -gt 180s 完全不够用,3 分钟后报
"解析目标失败: context deadline exceeded" 误导用户。

1. 自适应全局超时:用户未显式指定 -gt 时,根据端口数和是否有
   hosts 文件自动调大超时(最高 24h),并输出调整日志
2. 修正超时错误信息:context deadline exceeded 不再包装为
   "解析目标失败",改为提示用户调大 -gt 或设为 0 禁用
根据 hostCount × portCount / threads 计算端口扫描耗时,
结合开放率估算插件扫描耗时,加 20% 余量,上限 2h。
新增 EstimateHostCount 快速统计 CIDR/range/文件中的主机数。
@ZacharyZcR ZacharyZcR merged commit bf036fd into main Jul 10, 2026
13 of 16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant