From 4a5e937b140771d2656360375a946d7572d9347d Mon Sep 17 00:00:00 2001 From: Sean Smith Date: Sat, 17 Feb 2024 19:44:51 -0500 Subject: [PATCH] Add tls output to banner when we have a tls connection (#404) Co-authored-by: Zakir Durumeric --- modules/banner/scanner.go | 12 ++++++++---- zgrab2_schemas/zgrab2/banner.py | 3 ++- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/modules/banner/scanner.go b/modules/banner/scanner.go index 51e035e3..616d1732 100644 --- a/modules/banner/scanner.go +++ b/modules/banner/scanner.go @@ -50,8 +50,9 @@ type Scanner struct { // ScanResults instances are returned by the module's Scan function. type Results struct { - Banner string `json:"banner,omitempty"` - Length int `json:"length,omitempty"` + Banner string `json:"banner,omitempty"` + Length int `json:"length,omitempty"` + TLSLog *zgrab2.TLSLog `json:"tls,omitempty"` MD5 string `json:"md5,omitempty"` SHA1 string `json:"sha1,omitempty"` SHA256 string `json:"sha25,omitempty"` @@ -166,6 +167,8 @@ func (s *Scanner) Scan(target zgrab2.ScanTarget) (zgrab2.ScanStatus, interface{} } break } + + if err != nil { return zgrab2.TryGetScanStatus(err), nil, err } @@ -216,11 +219,12 @@ func (s *Scanner) Scan(target zgrab2.ScanTarget) (zgrab2.ScanStatus, interface{} results.SHA256 = hex.EncodeToString(digest[:]) } } - + if tlsConn != nil { + results.TLSLog = tlsConn.GetLog() + } if s.regex == nil { return zgrab2.SCAN_SUCCESS, &results, nil } - if s.regex.Match(data) { return zgrab2.SCAN_SUCCESS, &results, nil } diff --git a/zgrab2_schemas/zgrab2/banner.py b/zgrab2_schemas/zgrab2/banner.py index 7014e622..46220187 100644 --- a/zgrab2_schemas/zgrab2/banner.py +++ b/zgrab2_schemas/zgrab2/banner.py @@ -11,7 +11,8 @@ banner_scan_response = SubRecord({ "result": SubRecord({ "banner": String(), - "length": Unsigned32BitInteger() + "length": Unsigned32BitInteger(), + "tls": zgrab2.tls_log, }) }, extends=zgrab2.base_scan_response)