当前位置: 首页 > 科技观察

运维说:Nessus和Powershell比较合适

时间:2023-03-22 13:26:54 科技观察

在日常的安全评估工作中,经常会对内部主机进行验证扫描,以发现由于错过补丁时间或错误配置导致的漏洞。为此,我经常使用Nessus,它就像一个经验丰富的系统管理员。渗透测试人员可能正在寻找特定的Java或Flash漏洞。与系统管理员相比,他们不想知道某个设备上存在多少漏洞。他们最需要的是这个设备需要Java更新,以及更新不更新对业务的影响。总而言之,在中型网络上,您可以相信Nessus扫描可以捕获数以万计的结果。在过去的一年里,我写了一些有趣的sed/cut脚本来切割这些数据或者将这些数据导入到数据库中供我们分析。今天我就用PowerShell(免费、好用、应用广泛)来向大家证明Nessus和Powershell的结合是多么的棒!示例演示首先导入从Nessus获取的CSV文件,查看总人数统计结果。是惊:接下来看数据结构:接下来寻找FlashPlayer问题,我们正在寻找所有非零风险结果哪些主机受到影响?几台主机有几十个不连续的Flash漏洞,对于维护者来说拿到修复列表已经成为第一要务,第二就是如何防止以后出现这样的事情。那我们来解决Java的问题,注意“|”不是or运算符,匹配(match)运算符是不区分大小写的,而字段名显然是区分大小写的。如果您不注意,那么您很可能正在查询一个空变量并且没有得到任何结果。对于Java,此示例将调查结果从大约50,000缩短到222Areyoulookingforthem?如果你正在寻找其他问题,请自己尝试AdobeReader(我保证这里不会计算Flash问题)$adobe=$all|Where-Object{$_.Description-match"AdobeReader"-And$_.Description-notmatch“Flash”-and$_.Risk-notmatch“None”}.NETFramework:$dotnet=$all|Where-Object{$_.Description-match“NetFramework”-and$_.Risk-notmatch“None”"}Silverlight:$silverlight=$all|Where-Object{$_.Description-match"Silverlight"-and$_.Description-notmatch".Net"-and$_.Risk-notmatch"None"}Office:$msoffice=$all|Where-Object{$_.Synopsis-match'(Office|Word|Powerpoint|Excel|Outlook)'-and$_.Risk-notmatch"None"}Microsoft补丁、安全警告和服务包:$misc_microsoft=$whatsleft|Where-Object{$_.Name-match'(MS[0-9][0-9]-[0-9][0-9][0-9]|MSKB|MSSecurityAdvisory|WindowsServicePack)'}快速生成报告即使是2015年,仍然有很多店铺,无论大小,你总时不时能发现一两台主机没有打过补丁,也没有安装过ser副包。差点忘了,注意把查询分解,这样方便阅读:$whatsleft=$all|Where-Object{$_.Description-notmatch'(Flash|Adobe|JRE|JAVA|Java|jre|jse)'}|Where-Object{$_.Name-notmatch'(Silverlight|NetFramework|Office|Word|Powerpoint|Excel|Outlook|Explorer)'}|Where-Object{$_.Name-notmatch'(MS[0-9][0-9]-[0-9][0-9][0-9]|MSKB|MSSecurityAdvisory|WindowsServicePack)'}|Where-Object{$_.Risk-notmatch"None"}最终问题总结:$final_summary=$whatsleft2|select'PluginID',Name|Group-Object'PluginID'|Sort-Object-DescendingCountView问题:$final_summary|Out-GridView回到需要一个运维人员的问题列表,我们还需要处理逐个主机的问题导入CSV文件Excel,制作一个数据透视表,这样你就有了一个漂亮的报告!