diff options
author | Luca Deri <deri@ntop.org> | 2017-06-03 11:35:51 +0200 |
---|---|---|
committer | Luca Deri <deri@ntop.org> | 2017-06-03 11:35:51 +0200 |
commit | 2049e3d6555bcd0e872e45232583e34907e7e6a4 (patch) | |
tree | fa7b11d6676a83fc614e19814e58ab9c688cb545 /wireshark | |
parent | 2d72e2a2ae1f8520fe9d0954e84caf85c92dda49 (diff) |
Added SSL dissection
Diffstat (limited to 'wireshark')
-rw-r--r-- | wireshark/ndpi.lua | 63 |
1 files changed, 62 insertions, 1 deletions
diff --git a/wireshark/ndpi.lua b/wireshark/ndpi.lua index 822cefc51..934dad4c2 100644 --- a/wireshark/ndpi.lua +++ b/wireshark/ndpi.lua @@ -3,8 +3,20 @@ -- -- This plugin is part of nDPI (https://github.com/ntop/nDPI) -- +-- This program is free software; you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation; either version 3 of the License, or +-- (at your option) any later version. -- - +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program; if not, write to the Free Software Foundation, +-- Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +-- local ndpi_proto = Proto("ndpi", "nDPI", "nDPI Protocol Interpreter") ndpi_proto.fields = {} @@ -29,6 +41,7 @@ local f_udp_len = Field.new("udp.length") local f_tcp_header_len = Field.new("tcp.hdr_len") local f_ip_len = Field.new("ip.len") local f_ip_hdr_len = Field.new("ip.hdr_len") +local f_ssl_server_name = Field.new("ssl.handshake.extensions_server_name") local ndpi_protos = {} local ndpi_flows = {} @@ -57,6 +70,9 @@ local max_num_flows = 50 local num_top_dns_queries = 0 local max_num_dns_queries = 50 +local ssl_server_names = {} +local tot_ssl_flows = 0 + local min_nw_client_RRT = {} local min_nw_server_RRT = {} local max_nw_client_RRT = {} @@ -261,6 +277,9 @@ function ndpi_proto.init() syn = {} synack = {} + -- SSL + ssl_server_names = {} + -- DNS dns_responses_ok = {} dns_responses_error = {} @@ -496,6 +515,20 @@ function ndpi_proto.dissector(tvb, pinfo, tree) -- ########################################### + local ssl_server_name = f_ssl_server_name() + if(ssl_server_name ~= nil) then + ssl_server_name = getval(ssl_server_name) + + if(ssl_server_names[ssl_server_name] == nil) then + ssl_server_names[ssl_server_name] = 0 + end + + ssl_server_names[ssl_server_name] = ssl_server_names[ssl_server_name] + 1 + tot_ssl_flows = tot_ssl_flows + 1 + end + + -- ########################################### + local dns_response = f_dns_response() if(dns_response ~= nil) then local dns_ret_code = f_dns_ret_code() @@ -997,10 +1030,38 @@ end -- ############################################### +local function ssl_dialog_menu() + local win = TextWindow.new("SSL Server Contacts"); + local label = "" + local tot = 0 + local i + + if(tot_ssl_flows > 0) then + i = 0 + label = label .. "SSL Server\t\t\t\t# Flows\n" + for k,v in pairsByValues(ssl_server_names, rev) do + local pctg + + v = tonumber(v) + pctg = formatPctg((v * 100) / tot_ssl_flows) + label = label .. string.format("%-32s", shortenString(k,32)).."\t"..v.." [".. pctg.." %]\n" + if(i == 50) then break else i = i + 1 end + end + else + label = "No SSL server certificates detected" + end + + win:set(label) + win:add_button("Clear", function() win:clear() end) +end + +-- ############################################### + register_menu("ntop/ARP", arp_dialog_menu, MENU_TOOLS_UNSORTED) register_menu("ntop/VLAN", vlan_dialog_menu, MENU_TOOLS_UNSORTED) register_menu("ntop/IP-MAC", ip_mac_dialog_menu, MENU_TOOLS_UNSORTED) register_menu("ntop/DNS", dns_dialog_menu, MENU_TOOLS_UNSORTED) +register_menu("ntop/SSL", ssl_dialog_menu, MENU_TOOLS_UNSORTED) register_menu("ntop/Latency/Network", rtt_dialog_menu, MENU_TOOLS_UNSORTED) register_menu("ntop/Latency/Application", appl_rtt_dialog_menu, MENU_TOOLS_UNSORTED) |