Как проверить какие компьютеры в сети уязвимы к WannaCry Wcry?

Есть много способов, wsus, sccm, kaspersky, nod32 и т.д. Но я решил попробовать другой метод, на хабре был скрипт на powershell, который опрашивал сеть и выдавал список уязвимых ПК. Я его немного переделал и попробовал на своей сети. Возможно пригодится и вам.
Список компьютеров нужно поместить в файл comp.csv формата:
name
p1
pc2
...

И сам скрипт
# Powershell
# Скрипт проверки на подверженность атаки Wana decrypt0r 2.0 (WannaCry)
# Не проверяет заражена ли система (мне пока не чем проверить)
# При запуске с клиентского ПК требует установленной RSAT и возможно WMF5
# habrahabr / @sergey-s-kovalev / 15.05.2017 / free for use
cls

$ResultPath = "D:\wannacry\" # Указываем путь до папки, куда складывать отчеты

# Задаем списки для сохранения списков ПК
$SafeHosts = @()
$VulnerabilityHosts = @()
$OfflineHosts = @()
$NotManagedHosts = @()

$SafeDate = Get-Date -Date 11-2-2017 -Hour 0 -Minute 0 -Second 1 # Определяем безопасную дату файла

#имя файла с списком ПК
import-csv d:\wannacry\comp.csv | foreach { 

$ComputerName=$_.name

Write-host "Проверяем",$ComputerName

if ((Test-connection $ComputerName -count 2 -quiet) -eq "True")
  { 
      $Command = {(Get-Item c:\WINDOWS\system32\drivers\srv.sys).LastWriteTime} # Команда которая получает дату файла
     
     $Result = "Empty" # Задаем значение по умолчанию

     # Пробуем запустить команду на удаленном ПК
     Try {$Result = Invoke-Command -ComputerName $ComputerName -ScriptBlock $Command -ErrorAction Stop} Catch {write-host -foreground yellow $ComputerName, "включен, но управление через WinRM недоступно";$NotManagedHosts = $NotManagedHosts + $ComputerName}
     
     
     if ($Result -ne "Empty") { # Если результат не пустой
     # Сравнить дату файла с контрольной датой
        if ($Result -lt $SafeDate) {write-host -foreground red $ComputerName,"уязвим! Дата файла",$Result;$VulnerabilityHosts = $VulnerabilityHosts + $ComputerName} else {write-host -foreground green $ComputerName, "имеет необходимое обновление. Дата файла",$Result;$SafeHosts = $SafeHosts + $ComputerName} 
        }
    # Если результат пинга пустой
  } else {
	write-host -foreground DarkRed $ComputerName, "не в сети, не имеет IP-адреса или фаерволлом запрещен PING";$OfflineHosts = $OfflineHosts + $ComputerName
  } 
}
$LogTime = get-date -format yyyy-MM-dd_HH-mm-ss # Получить текущее время

# Выгрузить списки компьютеров в той или иной категории
$SafeHosts | Out-file -FilePath $ResultPath$LogTime"_-SafeHosts.log" -Encoding utf8 -Force
$VulnerabilityHosts | Out-file -FilePath $ResultPath$LogTime"_-VulnerabilityHosts.log" -Encoding utf8 -Force
$OfflineHosts | Out-file -FilePath $ResultPath$LogTime"_-OfflineHosts.log" -Encoding utf8 -Force
$NotManagedHosts | Out-file -FilePath $ResultPath$LogTime"_-NotManagedHosts.log" -Encoding utf8 -Force

Ссылки на официальные обновления Windows от вируса WannaCry Wcry

Патч MS17-010 для исправления уязвимости Windows от вируса WCry, Petya

Обновление для системы безопасности Windows XP SP3 (KB4012598)
www.microsoft.com/ru-RU/download/details.aspx?id=55245

Windows 8.1 Update for x64-based Systems (KB4012213)
www.catalog.update.microsoft.com/Search.aspx?q=KB4012213

Windows 8.1 Update (KB4012213)
www.catalog.update.microsoft.com/Search.aspx?q=KB4012213

Каталог обновлений для Windows 7 и Windows 2008 R2
www.catalog.update.microsoft.com/Search.aspx?q=KB4012215

Ежемесячный набор исправлений качества системы безопасности для Windows 7 (KB4012215), март 2017 г.
March, 2017 Security Monthly Quality Rollup for Windows 7 (KB4012215)
download.windowsupdate.com/d/msdownload/update/software/secu/2017/03/windows6.1-kb4012215-x86_e5918381cef63f171a74418f12143dabe5561a66.msu

Ежемесячный набор исправлений качества системы безопасности для систем Windows 7 на базе процессоров x64 (KB4012215), март 2017 г.
March, 2017 Security Monthly Quality Rollup for Windows 7 for x64-based Systems (KB4012215)
download.windowsupdate.com/c/msdownload/update/software/secu/2017/03/windows6.1-kb4012215-x64_a777b8c251dcd8378ecdafa81aefbe7f9009c72b.msu

Накопительный пакет обновления для Windows 10 Version 1511 (KB4013198)
Накопительный пакет обновления для Windows 10 Version 1511 для систем на базе процессоров x64 (KB4013198)
www.catalog.update.microsoft.com/Search.aspx?q=KB4013198

Накопительный пакет обновления для Windows 10 Version 1607 (KB4013429)
Накопительный пакет обновления для Windows 10 Version 1607 для систем на базе процессоров x64 (KB4013429)
Накопительный пакет обновления для Windows Server 2016 для систем на базе процессоров x64 (KB4013429)
www.catalog.update.microsoft.com/Search.aspx?q=KB4013429

Как узнать модель материнской платы в Windows

  • Windows
Жмем Win-R, набираем cmd в открывшемся окне командной строки набираем
wmic baseboard get manufacturer, product

Результат например такой
C:\>wmic baseboard get manufacturer, product
Manufacturer  Product
Foxconn       H61MXE

Что мы еще можем собрать этим способом, например вот что:
Посмотреть объём памяти
wmic COMPUTERSYSTEM get TotalPhysicalMemory,caption

Посмотреть физически подключенные диски
wmic diskdrive get name,size,model

Посмотреть логические разделы на дисках
wmic volume WHERE DriveType=3 list brief

Просмотр информации о процессоре
wmic cpu get name, maxclockspeed

Просмотр информации о памяти
wmic MEMORYCHIP get banklabel, capacity, caption, devicelocator, partnumber

Используем PowerShell для получения информации о профиле пользователя

  • Windows
Резюме: Microsoft Scripting Guy, Ed Wilson рассказывает о том, как получить информацию о пользовательском профиле посредством Windows PowerShell.

Получаем информацию о профиле


Для того, чтобы получить информацию о профиле, нам необходимо запросить класс WMI Win32_UserProfile. Для этого я воспользуюсь командлетом Get-WmiObject (gwmi – его алиас).

gwmi win32_userprofile

Команда и ее вывод приведены на рисунке.



Вывод по умолчанию содержит множество ненужной мне в данный момент информации. Что мне сейчас нужно, так это свойства LastUseTime, LocalPath и SID. Слегка измененный запрос приведен ниже.

Читать дальше →

Очистка временных файлов в Windows средствами Python

В целях саморазвития и для пробы пера, так сказать, решил написать небольшой скрипт на языке Python, как на простом, но в тоже время мощном скриптовом языке.
Если вы хотите забыть о переполнении темповых каталогов и кэша браузера (пока только IE) всяким мусором — добро пожаловать под кат.

Читать дальше →

TaskList GUI 1.0

Сегодня написал программу, которая является GUI для консольных команд TaskList, TaskKill в Windows. С ее помощью можно вывести список запущенных процессов на удаленном компьютере и завершить ненужный процесс двойным кликом по нужной строке. Если имя компьютера не вводить, то будет выведен список процессов с локального компьютера.
Скриншот:
TaskList, TaskKill GUI
Скачать программу TaskListGUI
Размер файла: 250 Кб
Статус программы: Бесплатная
Операционка: Windows 7, Vista, XP

Microsoft Windows MultiPoint Server 2011

Microsoft выпустила Windows MultiPoint Server 2011, который в первую очередь предназначен для образовательных учреждений. Windows MultiPoint Server 2011 позволяет нескольким пользователям одновременно работать на одном компьютере. У пользователей свой рабочий стол Windows, при этом ему потребуется свой собственный монитор, клавиатура и мышь непосредственно подключенные к компьютеру. Windows MultiPoint Server 2011 позволяет нескольким пользователям одновременную работу в Windows при более низкой общей стоимости ИТ-инфрастуктуры. Windows MultiPoint Server 2011 предназначен для неопытных пользователей, прост в управлении и использовании. В отличие от других аналогичных решений на рынке, Windows MultiPoint Server 2011 основан на новейшей технологии Microsoft Windows и позволяющие работать с Windows приложениями.

Читать дальше →

Sysinternals - PsShutdown

  • Windows
PsShutdown утилита похожая на утилиту из Windows 2000 Resource Kit, но гораздо функциональнее. Кроме того, что она может выключать компьютер локально или удаленно, PsShutdown может выключать даже заблокированный компьютер не требуя при этом установленного клиента.
Читать дальше →

Sysinternals - PsExec

  • Windows
PsExec удобная замена управления по Telnet, которая позволяет выполнять процессы на других системах без необходимости устанавки клиента. Она позволяет запускать одну команду на списке компьютеров, выбирать приоритет, запускаться от имени администратора и многое другое.
Читать дальше →

Sysinternals - PSFile

  • Windows
PsTools утилита из набора от Sysinternals, чрезвычайно полезная. Эта утилита показывает файлы, которые открыты на удаленной системе. Этот инструмент является хорошим способом для проверки открытых файлов на файловых серверах, когда пользователь не может открыть файл для редактирования из-за того, что он уже открыт другим пользователем.
Для просмотра открытых файлов на удаленной системе, выполните PsFile с ключами:
Psfile \\computername -u username -p password [path]
Sysinternals PSFile

Читать дальше →