From cfec231107595b6d3c0f289e2bbc22936c62293c Mon Sep 17 00:00:00 2001 From: "manuel.montes" Date: Mon, 17 Sep 2018 12:44:47 +0200 Subject: [PATCH] Especified SNMP version in recon task --- .../godmode/servers/manage_recontask.php | 105 +++++++++++++++--- .../godmode/servers/manage_recontask_form.php | 66 ++++++++++- 2 files changed, 151 insertions(+), 20 deletions(-) diff --git a/pandora_console/godmode/servers/manage_recontask.php b/pandora_console/godmode/servers/manage_recontask.php index 2b9527704d..25f9e048dd 100644 --- a/pandora_console/godmode/servers/manage_recontask.php +++ b/pandora_console/godmode/servers/manage_recontask.php @@ -97,7 +97,15 @@ if ((isset ($_GET["update"])) OR ((isset ($_GET["create"])))) { $field2 = get_parameter ("_field2_", ""); $field3 = get_parameter ("_field3_", ""); $field4 = get_parameter ("_field4_", ""); - + $snmp_version = get_parameter_post ("snmp_version"); + $snmp3_auth_user = get_parameter_post ("snmp_auth_user"); + $snmp3_auth_pass = get_parameter_post ("snmp_auth_pass"); + $snmp3_privacy_method = get_parameter_post ("snmp_privacy_method"); + $snmp3_privacy_pass = get_parameter_post ("snmp_privacy_pass"); + $snmp3_auth_method = get_parameter_post ("snmp_auth_method"); + $snmp3_security_level = get_parameter_post ("snmp_security_level"); + + if ($mode == "network_sweep") $id_recon_script = 0; else @@ -154,8 +162,30 @@ if (isset($_GET["update"])) { 'macros' => $macros, 'alias_as_name' => $alias_as_name, 'snmp_enabled' => $snmp_enabled, - 'vlan_enabled' => $vlan_enabled + 'vlan_enabled' => $vlan_enabled, + 'snmp_version' => $snmp_version ); + + $values_v3 = array( + 'snmp_auth_user' => $snmp3_auth_user, + 'snmp_auth_pass' => $snmp3_auth_pass, + 'snmp_privacy_method' => $snmp3_privacy_method, + 'snmp_privacy_pass' => $snmp3_privacy_pass, + 'snmp_auth_method' => $snmp3_auth_method, + 'snmp_security_level' => $snmp3_security_level + ); + if($values['snmp_version'] == '1' || $values['snmp_version'] == '2' || $values['snmp_version'] == '2c'){ + $values_v3 = array( + 'snmp_auth_user' => '', + 'snmp_auth_pass' => '', + 'snmp_privacy_method' => '', + 'snmp_privacy_pass' => '', + 'snmp_auth_method' => '', + 'snmp_security_level' => '' + ); + } + + $values = array_merge($values, $values_v3); $where = array('id_rt' => $id); @@ -217,13 +247,35 @@ if (isset($_GET["create"])) { 'macros' => $macros, 'alias_as_name' => $alias_as_name, 'snmp_enabled' => $snmp_enabled, - 'vlan_enabled' => $vlan_enabled + 'vlan_enabled' => $vlan_enabled, + 'snmp_version' => $snmp_version ); + $values_v3 = array( + 'snmp_auth_user' => $snmp3_auth_user, + 'snmp_auth_pass' => $snmp3_auth_pass, + 'snmp_privacy_method' => $snmp3_privacy_method, + 'snmp_privacy_pass' => $snmp3_privacy_pass, + 'snmp_auth_method' => $snmp3_auth_method, + 'snmp_security_level' => $snmp3_security_level + ); + if($values['snmp_version'] == '1' || $values['snmp_version'] == '2' || $values['snmp_version'] == '2c'){ + $values_v3 = array( + 'snmp_auth_user' => '', + 'snmp_auth_pass' => '', + 'snmp_privacy_method' => '', + 'snmp_privacy_pass' => '', + 'snmp_auth_method' => '', + 'snmp_security_level' => '' + ); + } + + $values = array_merge($values, $values_v3); + $name = io_safe_output($name); $name = trim($name, ' '); $name = io_safe_input($name); - + html_debug($values, true); $reason = ""; if ($name != "") { @@ -245,6 +297,7 @@ if (isset($_GET["create"])) { } else{ $result = db_process_sql_insert('trecon_task', $values); + html_debug("entra", true); } } else { @@ -293,7 +346,7 @@ else { $color=1; if ($result !== false) { $table = new StdClass(); - $table->head = array (__('Name'), __('Network'), __('Mode'), __('Group'), __('Incident'), __('OS'), __('Interval'), __('Ports'), __('Action')); + $table->head = array (__('Name'), __('Network'), __('Mode'), __('Group'), __('SNMP Version'), __('Incident'), __('OS'), __('Interval'), __('Ports'), __('Action')); $table->align = array ("left","left","left","left","left","left","left","left"); $table->width = "100%"; $table->cellpadding = 4; @@ -336,48 +389,64 @@ if ($result !== false) { $data[3] = "-"; } + //SNMP VERSION + if ($row["snmp_version"] == '1'){ + $data[4] = "v. 1"; + } + elseif($row["snmp_version"] == '2'){ + $data[4] = "v. 2"; + } + elseif($row["snmp_version"] == '2c'){ + $data[4] = "v. 2c"; + } + elseif($row["snmp_version"] == '3'){ + $data[4] = "v. 3"; + } + + + // INCIDENT - $data[4] = (($row["create_incident"] == 1) ? __('Yes') : __('No')); + $data[5] = (($row["create_incident"] == 1) ? __('Yes') : __('No')); // OS if ($row["id_recon_script"] == 0) { - $data[5] =(($row["id_os"] > 0) ? ui_print_os_icon ($row["id_os"], false, true) : __('Any')); + $data[6] =(($row["id_os"] > 0) ? ui_print_os_icon ($row["id_os"], false, true) : __('Any')); } else { - $data[5] = "-"; + $data[6] = "-"; } // INTERVAL if ($row["interval_sweep"]==0) - $data[6] = __("Manual"); + $data[7] = __("Manual"); else - $data[6] =human_time_description_raw($row["interval_sweep"]); + $data[7] =human_time_description_raw($row["interval_sweep"]); // PORTS if ($row["id_recon_script"] == 0) { - $data[7] = substr($row["recon_ports"],0,15); + $data[8] = substr($row["recon_ports"],0,15); } else { - $data[7] = "-"; + $data[8] = "-"; } // ACTION $task_group = $row["id_group"]; if (in_array($task_group, $user_groups_w)){ - $data[8] = '' . html_print_image("images/eye.png", true) . ''; - $data[8] .= '' . html_print_image("images/cross.png", true, array("border" => '0')) . ''; + $data[9] = '' . html_print_image("images/eye.png", true) . ''; + $data[9] .= '' . html_print_image("images/cross.png", true, array("border" => '0')) . ''; if($mode_name != 'IPAM Recon'){ - $data[8] .= '' .html_print_image("images/config.png", true) . ''; + $data[9] .= '' .html_print_image("images/config.png", true) . ''; } else { $sql_ipam = 'select id from tipam_network where id_recon_task =' . $row["id_rt"]; $id_recon_ipam = db_get_sql($sql_ipam); - $data[8] .= '' . html_print_image("images/config.png", true) . ''; + $data[9] .= '' . html_print_image("images/config.png", true) . ''; } if($row["disabled"] == 0) { - $data[8] .= '' .html_print_image("images/lightbulb.png", true) . ''; + $data[9] .= '' .html_print_image("images/lightbulb.png", true) . ''; } else { - $data[8] .= '' .html_print_image("images/lightbulb_off.png", true) . ''; + $data[9] .= '' .html_print_image("images/lightbulb_off.png", true) . ''; } } diff --git a/pandora_console/godmode/servers/manage_recontask_form.php b/pandora_console/godmode/servers/manage_recontask_form.php index d33e0ee19c..eacc850dd4 100644 --- a/pandora_console/godmode/servers/manage_recontask_form.php +++ b/pandora_console/godmode/servers/manage_recontask_form.php @@ -108,6 +108,13 @@ if (isset($_GET["update"]) || (isset($_GET["upd"]))) { $id_os = $row["id_os"]; $recon_ports = $row["recon_ports"]; $snmp_community = $row["snmp_community"]; + $snmp_version = $row["snmp_version"]; + $snmp3_auth_user = $row["snmp_auth_user"]; + $snmp3_auth_pass = $row["snmp_auth_pass"]; + $snmp3_privacy_method = $row["snmp_privacy_method"]; + $snmp3_privacy_pass = $row["snmp_privacy_pass"]; + $snmp3_auth_method = $row["snmp_auth_method"]; + $snmp3_security_level = $row["snmp_security_level"]; $id_recon_script = $row["id_recon_script"]; $field1 = $row["field1"]; $field2 = $row["field2"]; @@ -156,6 +163,13 @@ elseif (isset($_GET["create"]) || isset($_GET["crt"])) { $id_group = 0; $create_incident = 1; $snmp_community = "public"; + $snmp3_auth_user = ''; + $snmp3_auth_pass = ''; + $snmp_version = 1; + $snmp3_privacy_method = ''; + $snmp3_privacy_pass = ''; + $snmp3_auth_method = ''; + $snmp3_security_level = ''; $id_network_profile = 0; $id_os = -1; // Any $recon_ports = ""; // Any @@ -212,6 +226,13 @@ $table->rowclass[20] = "network_sweep"; $table->rowclass[21] = "network_sweep"; $table->rowclass[22] = "network_sweep"; $table->rowclass[23] = "network_sweep"; +$table->rowclass[24] = "network_sweep"; +$table->rowclass[25] = "network_sweep recon_v3"; +$table->rowclass[26] = "network_sweep recon_v3"; +$table->rowclass[27] = "network_sweep recon_v3"; +$table->rowclass[28] = "network_sweep recon_v3"; +$table->rowclass[29] = "network_sweep recon_v3"; +$table->rowclass[30] = "network_sweep recon_v3"; $table->rowclass[6] = "recon_script"; $table->rowclass[13] = "recon_script"; @@ -327,6 +348,34 @@ $table->data[12][0] = "".__('SNMP Default community'); $table->data[12][0] .= ui_print_help_tip (__('You can specify several values, separated by commas, for example: public,mysecret,1234'), true); $table->data[12][1] = html_print_input_text ('snmp_community', $snmp_community, '', 35, 0, true); +//SNMP version + +$snmp_versions['1'] = 'v. 1'; +$snmp_versions['2'] = 'v. 2'; +$snmp_versions['2c'] = 'v. 2c'; +$snmp_versions['3'] = 'v. 3'; +$table->data[24][0] ="". _('SNMP version'); +$table->data[24][1] = html_print_select ($snmp_versions, 'snmp_version', $snmp_version, '', '', 0, true); + +$table->data[25][0] ="".__('Auth user'); +$table->data[25][1] = html_print_input_text ('snmp_auth_user', $snmp3_auth_user, '', 15, 60, true, '', + false, '', ''); +$table->data[26][0] ="". __('Auth password') . ui_print_help_tip(__("The pass length must be eight character minimum."), true); +$table->data[26][1] = html_print_input_password ('snmp_auth_pass', $snmp3_auth_pass, '', 15, 60, true, '', + false, ''); +$table->data[26][1] .= html_print_input_hidden_extended('active_snmp_v3', 0, 'active_snmp_v3_mmen', true); + +$table->data[27][0] ="". __('Privacy method'); +$table->data[27][1] = html_print_select(array('DES' => __('DES'), 'AES' => __('AES')), 'snmp_privacy_method', $snmp3_privacy_method, '', '', '', true, false, false, '', ''); +$table->data[28][0] ="". __('Privacy pass') . ui_print_help_tip(__("The pass length must be eight character minimum."), true); +$table->data[28][1] = html_print_input_password ('snmp_privacy_pass', $snmp3_privacy_pass, '', 15, 60, true, '', + false, ''); +$table->data[29][0] ="". __('Auth method'); +$table->data[29][1] = html_print_select(array('MD5' => __('MD5'), 'SHA' => __('SHA')), 'snmp_auth_method', $snmp3_auth_method, '', '', '', true, false, false, '', ''); +$table->data[30][0] ="". __('Security level'); +$table->data[30][1] = html_print_select(array('noAuthNoPriv' => __('Not auth and not privacy method'), + 'authNoPriv' => __('Auth and not privacy method'), 'authPriv' => __('Auth and privacy method')), 'snmp_security_level', $snmp3_security_level, '', '', '', true, false, false, '', ''); + // Explanation $explanation = db_get_value('description', 'trecon_script', 'id_recon_script', $id_recon_script); @@ -461,9 +510,21 @@ $('select#id_recon_script').change(function() { get_explanation_recon_script($(this).val()); }); +$('select#snmp_version').change(function () { + if (this.value == "3") { + $(".recon_v3").show(); + $("input[name=active_snmp_v3]").val(1); + $("input[name=snmp_community]").attr("disabled", true); + } + else { + $(".recon_v3").hide(); + $("input[name=active_snmp_v3]").val(0); + $("input[name=snmp_community]").removeAttr('disabled'); + } +}); + $('select#mode').change(function() { var type = $(this).val(); - if (type == 'recon_script') { $(".recon_script").show(); $(".network_sweep").hide(); @@ -474,6 +535,7 @@ $('select#mode').change(function() { $(".recon_script").hide(); $(".network_sweep").show(); $('.macro_field').remove(); + $('select#snmp_version').trigger('change'); } }).change(); @@ -543,5 +605,5 @@ function get_explanation_recon_script (id) { }); taskManager.addTask(xhr); } -/* ]]> */ +