shadow1ng/fscan · error
smbv1_session_send_failed: %w
Error message
smbv1_session_send_failed: %w
What it means
Guard in probeSMBv1: writing the Session Setup request packet over the SMBv1 connection failed after negotiate succeeded. The write error aborts SMBv1 information gathering (OS version, domain) for the target.
Source
Thrown at plugins/services/smb_protocol.go:242
if err != nil {
session.LogDebug(i18n.Tr("smbv1_negotiate_read_failed", err))
}
// 检查是否支持SMBv1
if len(r1) > 0 {
return probeSMBv1(conn, target, timeout)
}
// SMBv2路径
return probeSMBv2(ctx, target, timeout, session)
}
// probeSMBv1 处理SMBv1协议信息收集
func probeSMBv1(conn net.Conn, target string, timeout time.Duration) (*SMBTarget, error) {
// 发送Session Setup请求
_, err := conn.Write(smbv1SessionSetupPacket)
if err != nil {
return nil, fmt.Errorf("%s: %w", i18n.GetText("smbv1_session_send_failed"), err)
}
ret, err := readSMBMessage(conn)
if err != nil || len(ret) < 47 {
return nil, fmt.Errorf("%s: %w", i18n.GetText("smbv1_session_read_failed"), err)
}
info := &SMBTarget{
Protocol: SMBProtocol1,
}
// 解析blob信息
blobLength := int(bytesToUint16(ret[43:45]))
blobCount := int(bytesToUint16(ret[45:47]))
gssNative := ret[47:]
gssLen := len(gssNative)
View on GitHub (pinned to 95cc12e753)
Solutions
- Retry the SMBv1 probe
- Verify the server still accepts SMBv1 (often disabled by hardening)
- Fall back to the SMBv2 probe path
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at plugins/services/smb_protocol.go:242 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of shadow1ng/fscan@95cc12e753 (2026-09-06).
Data as JSON: /api/errors/f58e76021095a4cf.
Report an issue: GitHub.