jarm: update jarm to not fail on handshake failure (#328)

This commit is contained in:
aspacewalz 2021-09-30 15:40:46 -04:00 committed by GitHub
parent 11611670fe
commit 00fe9ca9af
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 22 deletions

View File

@ -6,7 +6,6 @@ import (
_ "fmt" _ "fmt"
jarm "github.com/RumbleDiscovery/jarm-go" jarm "github.com/RumbleDiscovery/jarm-go"
"github.com/zmap/zgrab2" "github.com/zmap/zgrab2"
"io"
"log" "log"
"net" "net"
"strings" "strings"
@ -103,13 +102,8 @@ func (scanner *Scanner) Scan(target zgrab2.ScanTarget) (zgrab2.ScanStatus, inter
// Stores raw hashes returned from parsing each protocols Hello message // Stores raw hashes returned from parsing each protocols Hello message
rawhashes := []string{} rawhashes := []string{}
// Stores final module results
r := Results{}
// Loop through each Probe type // Loop through each Probe type
for _, probe := range jarm.GetProbes(target.Host(), int(scanner.GetPort())) { for _, probe := range jarm.GetProbes(target.Host(), int(scanner.GetPort())) {
data := jarm.BuildProbe(probe)
var ( var (
conn net.Conn conn net.Conn
err error err error
@ -120,20 +114,14 @@ func (scanner *Scanner) Scan(target zgrab2.ScanTarget) (zgrab2.ScanStatus, inter
return zgrab2.TryGetScanStatus(err), nil, err return zgrab2.TryGetScanStatus(err), nil, err
} }
_, err = conn.Write([]byte(data)) _, err = conn.Write(jarm.BuildProbe(probe))
if err != nil { if err != nil {
rawhashes = append(rawhashes, "") rawhashes = append(rawhashes, "")
conn.Close() conn.Close()
continue continue
} }
// ret, err = zgrab2.ReadAvailable(conn) ret, _ = zgrab2.ReadAvailableWithOptions(conn, 1484, 500*time.Millisecond, 0, 1484)
ret, err = zgrab2.ReadAvailableWithOptions(conn, 1484, 500*time.Millisecond, 0, 1484)
if err != io.EOF && err != nil {
rawhashes = append(rawhashes, "")
conn.Close()
continue
}
ans, err := jarm.ParseServerHello(ret, probe) ans, err := jarm.ParseServerHello(ret, probe)
if err != nil { if err != nil {
@ -142,12 +130,11 @@ func (scanner *Scanner) Scan(target zgrab2.ScanTarget) (zgrab2.ScanStatus, inter
continue continue
} }
rawhashes = append(rawhashes, string(ans)) rawhashes = append(rawhashes, ans)
conn.Close() conn.Close()
} }
fprint := jarm.RawHashToFuzzyHash(strings.Join(rawhashes, ",")) return zgrab2.SCAN_SUCCESS, &Results{
r.Fingerprint = string(fprint) Fingerprint: jarm.RawHashToFuzzyHash(strings.Join(rawhashes, ",")),
return zgrab2.SCAN_SUCCESS, &r, nil }, nil
} }

View File

@ -145,9 +145,7 @@ func ReadAvailableWithOptions(conn net.Conn, bufferSize int, readTimeout time.Du
} }
return ret, err return ret, err
} }
if err != nil {
return ret, err
}
if n >= maxReadSize { if n >= maxReadSize {
return ret, err return ret, err
} }