首页 > 系统相关 >【PowerShell】PowerShell 脚本批量检测公司服务器是否存在 WannaCry 漏洞

【PowerShell】PowerShell 脚本批量检测公司服务器是否存在 WannaCry 漏洞

时间:2023-12-29 11:05:11浏览次数:42  
标签:计算机 Get KB4012598 WannaCry 漏洞 服务器 PowerShell

本文前提

被检测的计算机启用的powershell远程管理的功能;这是另外的课题,我之前的文章有专门介绍过,如果对这部分不太清楚的话可以翻翻我之前的博客文章。

【PowerShell】PowerShell 脚本批量检测公司服务器是否存在 WannaCry 漏洞_漏洞扫描

关于本文

要使用 PowerShell 脚本检查计算机是否存在 WannaCry 漏洞,可以执行以下步骤:

  1. 检查操作系统补丁:WannaCry 漏洞主要影响未安装最新安全补丁的 Windows 系统。您可以使用 PowerShell 命令 Get-Hotfix -Id KB4012598 来检查是否安装了 MS17-010 安全补丁。如果返回结果为空,则表示未安装该补丁。
  2. 检查 SMBv1 协议状态:WannaCry 利用 SMBv1 协议进行传播。您可以使用 PowerShell 命令 Get-SmbServerConfiguration | Select EnableSMB1Protocol 来检查 SMBv1 协议的启用状态。如果返回结果为 True,则表示 SMBv1 协议已启用。
  3. 更新操作系统和软件:确保您的操作系统和安装的软件都是最新版本。及时安装操作系统和软件的安全更新和补丁可以修复已知的漏洞,并提高系统的安全性。
  4. 启用防火墙和安全软件:确保您的计算机上的防火墙已启用,并配置为阻止不必要的入站和出站连接。同时,安装并定期更新一款可靠的防病毒软件。

这里特别提醒下哦,这些步骤可以帮助您检查 WannaCry 漏洞的存在,并采取相应的措施来提高计算机的安全性。然而,最佳实践是综合使用多种安全措施,并定期进行安全性评估和更新。


实际上借助这个原理,可以扩展为任意想要检测的漏洞,只要您能确定漏洞特征;本文只是以疯狂肆虐的WannaCry为例


脚本原理


Get-Hotfix -Id KB4012598  # 有没有安装修复补丁


Get-SmbServerConfiguration | Select EnableSMB1Protocol     # 可以被利用的协议是否再使用中?


域环境下的漏洞扫描

此脚本将遍历计算机列表,并在每台计算机上执行检查 MS17-010 漏洞的命令。如果计算机已安装 KB4012598 补丁,则显示已修补;否则,显示存在漏洞。

$computers = Get-ADComputer -Filter * | Select-Object -ExpandProperty Name

foreach ($computer in $computers) {
    $result = Invoke-Command -ComputerName $computer -ScriptBlock {
        $hotfix = Get-HotFix -Id KB4012598 -ErrorAction SilentlyContinue
        if ($hotfix) {
            Write-Output "$env:COMPUTERNAME is patched"
        } else {
            Write-Output "$env:COMPUTERNAME is vulnerable"
        }
    }
    Write-Output $result
}


工作组环境下的漏洞扫描

这个脚本假设您已经将要扫描的计算机名称或IP地址列表保存在 C:\path\to\computerlist.txt 文件中。您可以将此文件路径更改为您实际使用的路径。

此脚本将遍历计算机列表,并在每台计算机上执行检查 MS17-010 漏洞的命令。如果计算机已安装 KB4012598 补丁,则显示已修补;否则,显示存在漏洞。

再三提醒:在执行此脚本之前,您需要确保已在每台计算机上启用 PowerShell 远程执行功能,并且已在防火墙中允许远程 PowerShell 连接。如果您使用的是 Windows 7 或 Windows Server 2008 R2 等旧操作系统,则还需要安装适当的 PowerShell 版本和更新。

$computers = Get-Content -Path "C:\path\to\computerlist.txt"

foreach ($computer in $computers) {
    $result = Invoke-Command -ComputerName $computer -ScriptBlock {
        $hotfix = Get-HotFix -Id KB4012598 -ErrorAction SilentlyContinue
        if ($hotfix) {
            Write-Output "$env:COMPUTERNAME is patched"
        } else {
            Write-Output "$env:COMPUTERNAME is vulnerable"
        }
    }
    Write-Output $result
}


【PowerShell】PowerShell 脚本批量检测公司服务器是否存在 WannaCry 漏洞_夏明亮_02

聪明的小伙伴们肯定可以按照这样的思路创造各种奇妙的脚本。



标签:计算机,Get,KB4012598,WannaCry,漏洞,服务器,PowerShell
From: https://blog.51cto.com/mlxia/9024435

相关文章

  • 未将服务器‘XXX’ 配置为用于 RPC
    关于PRC和PRCout的问题:执行下面两行代码即可:execsp_serveroption@server='TB_DATA',@optname='rpc',@optvalue='TRUE'execsp_serveroption@server='TB_DATA',@optname='rpcout',@optvalue='TRUE'只因你没......
  • Steam自建服务器教程之SteamCMD的下载和安装
     一、SteamCMD是干嘛的?SteamCMD 是 Steam 客户端的命令行版本。方便开发者管理Steam游戏服务器和下载游戏文件、更新游戏内容等。如果是你想要在Steam自建服务器,进行二次开发,SteamCMD是必需工具。今天飞飞将和你分享不同系统下载和安装SteamCMD的方法,希望可以帮助到你~ ......
  • 恒创科技:如何合理配置云服务器的CPU和内存?
    ​提到云服务器性能,大抵有两个主要影响因素,CPU核心数量和内存容量,它们决定了云服务器的速度和可靠性。日常运用中,我们如何判断网站需要需要更多或更少?如何扩大或缩小它们以优化网站的性能?一般来说,您拥有的RAM和CPU核心越多,可以同时运行的进程就越多,您的网站对访问......
  • 极兔面试:一台服务器,支持的TCP连接数最大是多少?
    文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完成职业升级,薪......
  • 要让你的Django网站可以供内网和外网访问,你需要进行以下设置: 1. **启动开发服务器**:
    要让你的Django网站可以供内网和外网访问,你需要进行以下设置:1.**启动开发服务器**:使用命令`./manage.pyrunserver0.0.0.0:8000`启动开发服务器。命令中需指定IP与监听端口,IP为0.0.0.0表示允许所有连接,端口8000必须未被占用¹。2.**修改settings.py**:编辑此开发服务器的set......
  • chrony服务与时间服务器同步
    一,chrony服务同步时间1,实验一:第一台机器从阿里云同步时间第二台机器从第一台机器同步时间下载所需要的yum源,并启动服务 yum-yinstallchronysystemctlenablechronydsystemctlstartchronyd 我这里用的是麒麟服务器V0SP3自带有所以不用再次下载[root@serv......
  • 云服务器接入高防IP无法访问的原因以及处理方式
    云服务器,也称为ElasticComputeService(ECS),是一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务。它是一种虚拟化的服务器,运行公共的操作系统和软件,并允许用户通过网络进行访问。用户无需提前购买硬件,即可迅速创建或释放任意多台云服务器。云服务器帮助用户快速构建更稳定、安......
  • Linux 服务器 Java 进程消失问题怎么解决
    当您在使用NginxWebUI进行反向代理时遇到504错误,这通常是由于Nginx无法在合理的时间内完成请求处理。504错误是Nginx的通用错误,表示"网关超时"。以下是可能导致此问题的原因以及相应的解决方案:1.后端服务器问题原因:后端服务器可能由于各种原因无法及时响应。解决方案:检查后端服务......
  • 【北亚服务器数据恢复】服务器RAIDZ多块磁盘离线导致RAIDZ崩溃崩溃导致ZPOOL下线的数
    服务器数据恢复环境:服务器中有32块硬盘,组建了3组RAIDZ,部分磁盘作为热备盘。zfs文件系统。服务器故障:服务器运行中突然崩溃,排除断电、进水、异常操作等外部因素。工作人员将服务器重启后发现无法进入操作系统。将故障服务器中所有硬盘编号后取出,经过硬件工程师检测没有发现有硬......
  • 游戏服务器选择高防服务器的好处
    游戏服务器选择高防服务器的好处1.保障游戏的正常运行 目前游戏行业深受很多用户的喜爱,但也存在众多的恶意网络,游戏服务商深受其害。一旦遭受了网络,轻者游戏体验感变差,重者游戏玩家无法访问,对游戏服务商的危害是巨大的。如果游戏服务商采用了高防服务器,就能对网络进行防御和流量清......