ZacharyZcR
|
6d61b661f4
|
fix: 修复实机测试发现的可靠性问题 (v2.2.0-rc.1)
- UDP 插件在 -p 指定端口时被跳过
- Redis exploit 无超时保护 / readReply 吞没非超时错误
- service_probe 连接丢失后静默成功
- SNMP 探测成功但终端无输出
- SSH 爆破不稳定 (并发过高 + 自适应超时过短 + 限流误判)
- 进度条 isActive 竞态
新增 Config.ModuleTimeout() 协议级超时下限 (≥3s)
新增 ErrorTypeThrottle 限流错误分类
|
2026-06-14 22:23:52 +08:00 |
|
ZacharyZcR
|
04cae2e42d
|
fix: 彻底解决UDP插件阻塞导致扫描无法结束的问题
根因分析(通过 goroutine dump 定位):
1. UDP conn.Write 在 WSL2 上可能永久阻塞(SetDeadline 对 Write 不生效)
2. SNMP community 爆破混入通用密码字典(57个),串行 × 10s超时 = 10分钟
修复:
- 提取 udpProbe() 公共函数,用 context timeout + conn.Close 双保险
超时后强制关闭连接,中断阻塞的 Write/Read
- BACnet/DNS/IPMI/TFTP 统一使用 udpProbe()
- SNMP probe 使用 goroutine + context select 保护
- SNMP community 列表不再混入通用密码字典(8个专用 community 足够)
- SNMP 后续 community 爆破用 3s 短超时 + 连续失败 3 次快速退出
效果: 同样的扫描从无限卡死 → 9秒完成
|
2026-06-14 22:23:50 +08:00 |
|
ZacharyZcR
|
4169eb6ee0
|
fix: UDP插件改用 conn.SetDeadline 替代类型断言
|
2026-06-14 22:23:50 +08:00 |
|
ZacharyZcR
|
63631d6cdf
|
fix: 所有UDP插件添加ReadDeadline防止无限阻塞
SNMP/BACnet/DNS/IPMI/TFTP 的 conn.Read() 在目标不响应时
无限阻塞(goroutine 泄漏),导致整个扫描无法结束。
在 Write 前设置 ReadDeadline 确保超时后返回。
|
2026-06-14 22:23:50 +08:00 |
|
ZacharyZcR
|
569d21a8bc
|
fix: harden address parsing edge cases
|
2026-06-01 04:03:46 +08:00 |
|
ZacharyZcR
|
8d30ee334c
|
Add native protocol service plugins
|
2026-05-23 15:51:50 +08:00 |
|