diff --git a/CHANGELOG b/CHANGELOG index 2825e1c22..196dbdcd6 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,9 @@ # Nmap Changelog ($Id$); -*-text-*- +o [NSE] Made sslv2.nse give special output when SSLv2 is supported, + but no SSLv2 ciphers are offered. This happened with a specific + Sendmail configuration. [Matt Selsky] + o [NSE] Added a "times" table to the host table passed to scripts. This table contains Nmap's timing data (srtt, the smoothed round trip time; rttvar, the rtt variance; and timeout), all represented diff --git a/scripts/sslv2.nse b/scripts/sslv2.nse index ca42d9fea..71ed5c0cc 100644 --- a/scripts/sslv2.nse +++ b/scripts/sslv2.nse @@ -63,7 +63,7 @@ cyphers = function(cypher_list, len) [0x080080] = "SSL2_RC4_64_WITH_MD5", }; - if (len == 0) then return "\tthe server didn't offer any cyphers"; end + if (len == 0) then return "none"; end -- something's got broken along the way if these aren't equal if (len ~= string.len(cypher_list)) then return ""; @@ -215,20 +215,20 @@ action = function(host, port) return; end +-- get a list of cyphers offered + available_cyphers = cyphers(cypher_list, cyphers_len); + -- actually run some tests: if (ssl_version == string.char(0x00, 0x02)) then - return_string = "server still supports SSLv2\n"; - end - - if (nmap.verbosity() > 1 or nmap.debugging() > 0) then - available_cyphers = cyphers(cypher_list, cyphers_len); - end - - if ( string.len(return_string) > 0 - or string.len(available_cyphers) > 0) then - return return_string .. available_cyphers; - else - return; + if (available_cyphers == "none") then + return_string = "server supports SSLv2 protocol, but no SSLv2 cyphers\n"; + else + return_string = "server still supports SSLv2\n"; + if (nmap.verbosity() > 1 or nmap.debugging() > 0) then + return_string = return_string .. available_cyphers; + end + end end + return return_string; end