{"record":{"id":"4d4041f3b50e140c","repo":"owasp-amass/amass","slug":"probes-were-not-successful-against-the-target","errorCode":null,"errorMessage":"probes were not successful against the target","messagePattern":"probes were not successful against the target","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"engine/plugins/support/fingerprinting.go","lineNumber":83,"sourceCode":"\t\tbuf := make([]byte, 1484)\n\t\tn, err := c.Read(buf)\n\t\tif err != nil || n == 0 {\n\t\t\tresults = append(results, \"\")\n\t\t\tcontinue\n\t\t}\n\t\tdata = buf[:n]\n\n\t\tans, err := jarm.ParseServerHello(data, probe)\n\t\tif err != nil {\n\t\t\tresults = append(results, \"\")\n\t\t\tcontinue\n\t\t}\n\t\tresults = append(results, ans)\n\t}\n\n\thash := jarm.RawHashToFuzzyHash(strings.Join(results, \",\"))\n\tif hash == \"00000000000000000000000000000000000000000000000000000000000000\" {\n\t\treturn \"\", errors.New(\"probes were not successful against the target\")\n\t}\n\treturn hash, nil\n}\n","sourceCodeStart":65,"sourceCodeEnd":87,"githubUrl":"https://github.com/owasp-amass/amass/blob/79299dce87b0085db0f2f4ef3e9c52cccb49f514/engine/plugins/support/fingerprinting.go#L65-L87","documentation":"Thrown by support.JARMFingerprint when every TLS probe to the target produced no usable data, so the assembled raw hash collapses to the all-zero sentinel that jarm.RawHashToFuzzyHash maps to a 64-zero-character fuzzy hash. This means the JARM probes could not extract any TLS responses. The function treats the all-zero hash as a failure rather than returning a meaningless fingerprint.","triggerScenarios":"All JARM probe packets to host:port fail or return empty answers (host unreachable, port filtered/closed, no TLS service, firewall drops, network timeouts), yielding results that hash to the all-zero sentinel.","commonSituations":"Scanning hosts behind firewalls that drop non-standard TLS probes; target port not running TLS; hosts that blackhole packets (timeout) instead of refusing; IPv6 misconfig where the address is unreachable; aggressive rate limiting dropping probes.","solutions":["Confirm the target port actually speaks TLS and is reachable (test with openssl s_client)","Check firewall/IDS rules that may drop JARM's malformed-TLS probes","Verify network reachability and DNS resolution of the target host","Retry later or mark the target as unfingerprintable instead of treating it as an error"],"exampleFix":"// before\nhash, err := support.JARMFingerprint(session, fqdn, 443)\nif err != nil {\n\treturn err\n}\n// after\nhash, err := support.JARMFingerprint(session, fqdn, 443)\nif err != nil {\n\t// target likely unreachable or non-TLS; skip fingerprinting\n\treturn nil\n}","handlingStrategy":"retry","validationCode":"conn, err := net.DialTimeout(\"tcp\", host+\":\"+port, 5*time.Second)\nif err != nil {\n\treturn nil // target unreachable; JARM probes will fail\n}\nconn.Close()","typeGuard":"null","tryCatchPattern":"hash, err := support.JARMFingerprint(session, target, port)\nif err != nil {\n\tif strings.Contains(err.Error(), \"probes were not successful\") {\n\t\t// unreachable or non-TLS target; skip or retry later\n\t\treturn nil\n\t}\n\treturn err\n}","preventionTips":["Pre-check TCP reachability before JARM fingerprinting","Verify the port serves TLS before probing","Account for firewalls that drop malformed-TLS probes","Retry once with a longer timeout before giving up"],"tags":["go","network","tls","jarm","fingerprinting"],"backgroundTag":"network-unreachable","analyzedSha":"79299dce87b0085db0f2f4ef3e9c52cccb49f514","analyzedAt":"2026-09-06T08:22:48.198Z","contentChangedAt":"2026-09-06T08:22:48.198Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}