shadow1ng/fscan · warning
service_no_credentials
Error message
service_no_credentials
What it means
The rsync service Scan produces a successful service-identification result but then finds no candidate credentials to test. When the credentials slice is empty, it returns a failed ScanResult with service_no_credentials, meaning the module cannot proceed to authentication because the caller supplied no username/password pairs.
Source
Thrown at plugins/services/rsync.go:61
session.LogSuccess(i18n.Tr("rsync_service", target, result.Banner))
findings = append(findings, result.Banner)
}
// 生成密码字典
credentials := plugins.GenerateCredentials("rsync", config)
if len(credentials) == 0 {
if len(findings) > 0 {
return &ScanResult{
Success: true,
Type: plugins.ResultTypeService,
Service: "rsync",
Banner: findings[0],
}
}
return &ScanResult{
Success: false,
Service: "rsync",
Error: fmt.Errorf("%s", i18n.GetText("service_no_credentials")),
}
}
// 转换凭据类型
creds := make([]Credential, len(credentials))
for i, c := range credentials {
creds[i] = Credential{Username: c.Username, Password: c.Password}
}
// 使用公共框架进行并发凭据测试
authFn := p.createAuthFunc(info, session)
testConfig := DefaultConcurrentTestConfigWithTarget(config, info)
result := TestCredentialsConcurrently(ctx, creds, authFn, "rsync", testConfig)
if result.Success {
session.LogVuln(i18n.Tr("rsync_credential", target, result.Username, result.Password))
return resultView on GitHub (pinned to 95cc12e753)
Solutions
- Supply at least one credential pair (or an anonymous/empty-password pair) in the scan configuration.
- Check the credential-loading config so the rsync module receives the shared credential list.
- If anonymous rsync is expected, pass an empty username/password credential explicitly.
Example fix
// before
scan(target, credentials=[]) // service_no_credentials
// after
scan(target, credentials=[{user: "", pass: ""}, {user: "root", pass: "root"}]) Defensive patterns
Strategy: validation
Validate before calling
if len(credentials) == 0 {
return errors.New("skipping rsync module: no credentials configured; add at least one user/pass or an anonymous pair")
} Prevention
- Load and validate credential wordlists before starting the scan run.
- Always include an empty-credential entry for anonymous rsync modules.
- Assert non-empty credentials per module in scan-config unit tests.
When it happens
Trigger: Scan is invoked on a host where an rsync banner was detected (findings non-empty) but the credentials parameter has zero entries, so the early-return branch fires with i18n.GetText("service_no_credentials").
Common situations: Running the scanner without a username/password wordlist loaded; credential config file missing or filtered out for the rsync module; intentionally testing only service identification but expecting auth attempts.
Related errors
AI-assisted analysis of shadow1ng/fscan@95cc12e753 (2026-09-06).
Data as JSON: /api/errors/dc0486c52f9c9d39.
Report an issue: GitHub.