sagacity/ste/ste_script.min.js
2018-11-16 21:42:57 -05:00

17 lines
12 KiB
JavaScript

var opts={lines:15,length:18,width:9,radius:61,scale:2,corners:1,color:"#000",opacity:0.2,rotate:13,direction:1,speed:0.5,trail:50,fps:20,zIndex:2000000000,className:"spinner",top:"50%",left:"50%",shadow:false,hwaccel:false,position:"absolute"};var sel_tgts=[];$(function(){var target=document.getElementById("loading");var spinner=new Spinner(opts).spin(target);$(".close, .backdrop").click(function(){close_box();});$(".notes").click(function(){$(this).siblings("span").show();});$(".toggler").click(collapse_expand);
$(".target-notes").click(get_target_notes);$("#save-tgt-notes").click(save_target_notes);});function update_tgt_chk(chk){if($(chk).is(":checked")){sel_tgts.push($(chk).val());}else{sel_tgts.splice($.inArray($(chk).val(),sel_tgts),1);}}function open_move_to(){if($("#ste").val()<1){alert("Please select an ST&E");return;}if($(":checkbox:checked").length<1){alert("Please select a device to move");return;}$("#move_to").animate({"opacity":"1.00"},300,"linear");$("#move_to").css("display","block");view_box();}function edit_cat(cat_id){if($("#ste").val()<1){alert("Please select an ST&E");
return;}for(var x in $("#scan_sources option")){$("#scan_sources option").eq(x).attr("selected",false);}var cat_name=$("#cat_name_"+cat_id).text();var matches=cat_name.match(/\s+\(([\d]+)\)\s+\(([^\d][ \w]+)\)|\s+\(([\d]+)\)/i);cat_name=cat_name.replace(/\s+\(([\d]+)\)\s+\(([^\d][ \w]+)\)|\s+\(([\d]+)\)/i,"");cat_name=cat_name.replace(/\s{2,}/g,"");$("#new_cat_name").val(cat_name);$("#selected_cat").val(cat_id);if(matches&&typeof matches[2]!=="undefined"){$("#analyst").val(matches[2]);}else{$("#analyst").val("");
}var srcs=JSON.parse($("#cat_sources_"+cat_id).val());for(var x in srcs){$("#src_"+srcs[x]).attr("selected",true);}$("#edit_cat").animate({"opacity":"1.00"},300,"linear");$("#edit_cat").css("display","block");view_box();}function merge_target(){$("#merge_target").animate({"opacity":"1.00"},300,"linear");$("#merge_target").css("display","block");view_box();}function delete_cat(id){if($("#ste").val()<1){alert("Please select an ST&E");return;}if(!confirm("Are you sure you want to delete this category? Currently assigned targets will be set to the 'Unassigned' category.")){return;
}$.ajax("/ajax.php",{data:{action:"delete-cat",ste_id:$("#ste").val(),cat_id:id},success:function(data){if(data.error){alert(data.error);}else{location.reload();}},error:function(xhr,status,error){console.error(error);},dataType:"json",method:"post",timeout:3000});}function del_target(){if(!confirm("Are you sure you want to delete the target? This will also delete all findings and interfaces for the selected targets and is irreversible")){return;}}function add_cat(){if($("#ste").val()<1){alert("Please select an ST&E");
return;}$("#add_ste").val($("#ste").val());$("#add_cat").animate({"opacity":"1.00"},300,"linear");$("#add_cat").css("display","block");view_box();}function get_category(cat_id){$.ajax("/ajax.php",{data:{action:"get_category_details","cat_id":cat_id},success:function(data){$("#new_cat_name").val(data.name);for(var x in data.sources){$("#src_"+data.sources[x].id).attr("selected",true);}},datatype:"json",method:"post"});}function close_box(){$(".backdrop, .box").animate({"opacity":"0"},300,"linear",function(){$(".backdrop, .box").css("display","none");
});}function view_box(){$(".backdrop").animate({"opacity":".5"},300,"linear");$(".backdrop").css("display","block");}function update_Status(chk){if($(chk).val()<1){return false;}if($(":checkbox:checked").length<1){alert("Please select a device to update");return false;}return true;}function collapse_expand(){var id=$(this).data("id");if(!$(".cat_"+id).length){get_hosts(id);}$(this).toggleClass("fa-minus-square fa-plus-square");$(".cat_"+id).toggle(300);}function select(id){$(".cat_"+id+" input[type=checkbox]").each(function(){this.checked=!this.checked;
update_tgt_chk(this);});}function assign(id){var analyst=prompt('Who do you want to assign this category to?\n\nEnter "none" to clear out assignment');if(analyst){$("#analyst_"+id).val(analyst);$("#assign_"+id).submit();}}function upload_host_list(){if($("#ste").val()<1){alert("Please select an ST&E");return;}$("#import_host_list").animate({"opacity":"1.00"},300,"linear");$("#import_host_list").css("display","block");view_box();}function get_hosts(cat_id){$.ajax("/ajax.php",{data:{action:"get_hosts","cat_id":cat_id},beforeSend:function(){$("#loading,#waiting").show();
$("#waiting").animate({"opacity":"0.5"},300,"linear");},success:function(data){if($("#ops-page").val()=="main"){display_ops_hosts(data);}else{if($("#ops-page").val()=="stats"){display_stats_hosts(data);}else{if($("#ops-page").val()=="task"){display_task_hosts(data);}}}},error:function(xhr,status,error){console.error(error);},complete:function(){$("#loading,#waiting").hide();$("#waiting").animate({"opacity":"0"},300,"linear");},dataType:"json",method:"post"});}function display_ops_hosts(hosts){if(hosts.error){console.error(hosts.error);
}else{var cat_id=hosts.cat_id;var cat=$("#cat_"+cat_id);var odd=true;for(var x in hosts.targets){$(cat).after("<div class='"+(odd?"odd_row":"even_row")+" cat_"+cat_id+"'>"+"<span class='cat-cell' style='width:102px;text-align:left'>"+"<input type='checkbox' class='tgt-sel' value='"+hosts.targets[x].id+"' onclick='javascript:update_tgt_chk(this);' />"+"<a href='target.php?ste="+hosts.targets[x].ste_id+"&tgt="+hosts.targets[x].id+"' class='host' target='_blank'>"+hosts.targets[x].name+"</a>"+"<a href='target.php?ste="+hosts.targets[x].ste_id+"&tgt="+hosts.targets[x].id+"' class='ip' target='_blank'>"+hosts.targets[x].ip+"</a>"+"</span>"+"<span class='cat-cell' style='width:104px;line-height:1.25em;'>"+hosts.targets[x].os+"</span>"+"<span class='cat-cell' style='width:102px;'>"+(hosts.targets[x].location?hosts.targets[x].location:"&nbsp;")+"</span>"+"<span class='cat-cell task-"+hosts.targets[x].auto.toLowerCase()+"' style='width:63px;text-align:center;'>"+hosts.targets[x].auto+"</span>"+"<span class='cat-cell task-"+hosts.targets[x].man.toLowerCase()+"' style='width:63px;text-align:center;'>"+hosts.targets[x].man+"</span>"+"<span class='cat-cell task-"+hosts.targets[x].data.toLowerCase()+"' style='width:63px;text-align:center;'>"+hosts.targets[x].data+"</span>"+"<span class='cat-cell task-"+hosts.targets[x].fp.toLowerCase()+"' style='width:63px;text-align:center;'>"+hosts.targets[x].fp+"</span>"+"<span class='cat-cell' style='width:147px;'>"+(hosts.targets[x].scans?hosts.targets[x].scans:"&nbsp;")+"</span>"+"<span class='cat-cell' style='width:147px;'>"+(hosts.targets[x].chk?hosts.targets[x].chk:"&nbsp;")+"</span>"+"<span class='cat-cell note' id='note_"+hosts.targets[x].id+"' style='width:346px;'>"+(hosts.targets[x].notes?hosts.targets[x].notes:"&nbsp;")+"<i class='fas target-notes fa-pen-square' data-id='"+hosts.targets[x].id+"'> </i>"+"</span>"+"</div>");
odd=!odd;}$("#cat_"+cat_id+"_dl").val(1);$(".target-notes").click(get_target_notes);$(".fa-ellipsis-h").tooltip({classes:{"ui-tooltip":"highlight"}});}}function display_stats_hosts(hosts){if(hosts.error){console.error(hosts.error);}else{var cat_id=hosts.cat_id;var cat=$("#cat_"+cat_id);var odd=true;for(var x in hosts.targets){$(cat).after("<div class='"+(odd?"odd_row":"even_row")+" cat_"+cat_id+"'>"+"<span class='cat-cell name' style='text-align:left'>"+"<input type='checkbox' class='tgt-sel' value='"+hosts.targets[x].id+"' onclick='javascript:update_tgt_chk(this);' />"+"<a href='target.php?ste="+hosts.targets[x].ste_id+"&tgt="+hosts.targets[x].id+"' class='host' target='_blank'>"+hosts.targets[x].name+"</a>"+"<a href='target.php?ste="+hosts.targets[x].ste_id+"&tgt="+hosts.targets[x].id+"' class='ip' target='_blank'>"+hosts.targets[x].ip+"</a>"+"</span>"+"<span class='cat-cell os' style='line-height:1.25em;'>"+hosts.targets[x].os+"</span>"+"<span class='cat-cell cat1 cat_I' title='Cat I Findings' style='text-align:center;'>"+hosts.targets[x].cat_1+"</span>"+"<span class='cat-cell cat2 cat_II' title='Cat II Findings' style='text-align:center;'>"+hosts.targets[x].cat_2+"</span>"+"<span class='cat-cell cat3 cat_III' title='Cat III Findings' style='text-align:center;'>"+hosts.targets[x].cat_3+"</span>"+"<span class='cat-cell nf' title='Not a Finding' style='text-align:center;'>"+hosts.targets[x].nf+"</span>"+"<span class='cat-cell na' title='Not Applicable' style='text-align:center;'>"+hosts.targets[x].na+"</span>"+"<span class='cat-cell nr' title='Not Reviewed' style='text-align:center;'>"+hosts.targets[x].nr+"</span>"+"<span class='cat-cell comp' title='Percentage Compliant' style='text-align:center;background-color: "+getColorForPercentage(hosts.targets[x].comp)+";'>"+(hosts.targets[x].comp.toFixed(2)*100)+"%</span>"+"<span class='cat-cell assessed' title='Percentage Assessed' style='text-align:center;background-color: "+getColorForPercentage(hosts.targets[x].assessed)+";'>"+(hosts.targets[x].assessed.toFixed(2)*100)+"%</span>"+"<span class='cat-cell scans'>"+(hosts.targets[x].scans?hosts.targets[x].scans:"&nbsp;")+"</span>"+"<span class='cat-cell checklists'>"+(hosts.targets[x].chk?hosts.targets[x].chk:"&nbsp;")+"</span>"+"<span class='cat-cell note' id='note_"+hosts.targets[x].id+"'>"+hosts.targets[x].notes+"<i class='fas target-notes fa-pen-square' data-id='"+hosts.targets[x].id+"'> </i>"+"</span>"+"</div>");
odd=!odd;}$("#cat_"+cat_id+"_dl").val(1);$(".target-notes").click(get_target_notes);$(".fa-ellipsis-h").tooltip({classes:{"ui-tooltip":"highlight"}});}}function display_task_hosts(hosts){}function get_target_notes(){var id=$(this).data("id");$("#tgt-id").val(id);$.ajax("/ajax.php",{data:{action:"get-target-notes","tgt-id":id},success:function(data){if(data.error){alert(data.error);}else{$("#notes").val(data.notes);view_box();}$("#tgt-notes").animate({"opacity":"1.00"},300,"linear");$("#tgt-notes").css("display","block");
},error:function(xhr,status,error){console.error(error);},dataType:"json",method:"post"});}function save_target_notes(){$.ajax("/ajax.php",{data:{action:"save-target-notes","tgt-id":$("#tgt-id").val(),"notes":$("#notes").val()},success:function(data){if(data.error){alert(data.error);}else{$("#note_"+$("#tgt-id").val()).html($("#notes").val()+"<i class='fas target-notes fa-pen-square' data-id='"+$("#tgt-id").val()+"'> </i>");$(".target-notes").click(get_target_notes);$(".fa-ellipsis-h").tooltip({classes:{"ui-tooltip":"highlight"}});
close_box();}},error:function(xhr,status,error){console.error(error);},dataType:"json",method:"post"});}function auto_cat(){$.ajax("/ajax.php",{data:{ste:$("#ste").val(),action:"auto-categorize"},beforeSend:function(){$("#loading,#waiting").show();$("#waiting").animate({"opacity":"0.5"},300,"linear");},success:function(data){location.reload();},error:function(xhr,status,error){console.error(error);},complete:function(){$("#loading,#waiting").hide();$("#waiting").animate({"opacity":"0"},300,"linear");},dataType:"json",timeout:5000,method:"post"});
}function export_ckl(cat_id,tgt_id){if(!cat_id){$.ajax("/ajax.php",{data:{ste:$("#ste").val(),tgt:tgt_id,action:"export-ckl"},complete:function(xhr){alert("Exporting target CKL files to document_root/tmp/ckl");},method:"post"});}else{$.ajax("/ajax.php",{data:{ste:$("#ste").val(),cat:cat_id,action:"export-ckl"},complete:function(xhr){alert("Exporting CKL files to document_root/tmp/ckl");},method:"post"});}}var percentColors=[{pct:0,color:{r:255,g:0,b:0}},{pct:0.5,color:{r:255,g:255,b:0}},{pct:1,color:{r:0,g:255,b:0}}];
var getColorForPercentage=function(pct){for(var i=1;i<percentColors.length-1;i++){if(pct<percentColors[i].pct){break;}}var lower=percentColors[i-1];var upper=percentColors[i];var range=upper.pct-lower.pct;var rangePct=(pct-lower.pct)/range;var pctLower=1-rangePct;var pctUpper=rangePct;var color={r:Math.floor(lower.color.r*pctLower+upper.color.r*pctUpper),g:Math.floor(lower.color.g*pctLower+upper.color.g*pctUpper),b:Math.floor(lower.color.b*pctLower+upper.color.b*pctUpper)};return"rgb("+[color.r,color.g,color.b].join(",")+")";
};