Назад | Перейти на главную страницу

Windows 2012 R2 - поиск файлов с использованием хеша MD5?

Моя организация недавно обнаружила вредоносное ПО, которое было отправлено некоторым пользователям по электронной почте, и которому удалось обойти нашу систему безопасности электронной почты в результате сложной целевой атаки. Имена файлов варьируются от пользователя к пользователю, но мы собрали список распространенных хэшей MD5 среди файлов вредоносных программ.

Просто снимок в темноте - мне было интересно, есть ли способ найти файлы на основе их хэшей MD5, а не их имен файлов, расширений и т. Д. Через PowerShell .... или любой другой метод. Мы используем Windows 2012 R2 на большинстве серверов в нашем центре обработки данных.

Конечно. Однако вы, вероятно, захотите сделать что-нибудь более полезное, чем следующий пример.

$evilHashes = @(
    '4C51A173404C35B2E95E47F94C638D2D001219A0CE3D1583893E3DE3AFFDAFE0',
    'CA1DEE12FB9E7D1B6F4CC6F09137CE788158BCFBB60DED956D9CC081BE3E18B1'
)

Get-ChildItem -Recurse -Path C:\somepath |
    Get-FileHash |
        Where-Object { $_.Hash -in $evilHashes }

Если у вас есть копия файла, вам следует активировать AppLocker во всем домене и добавить хэш-правило для этого файла, чтобы остановить его выполнение. Это дает дополнительный бонус в виде идентификации компьютеров, которые пытаются запустить программу, поскольку AppLocker по умолчанию регистрирует блокировку и запрет действий.

[String]$BadHash = '5073D1CF59126966F4B0D2B1BEA3BEB5'

Foreach ($File In Get-ChildItem C:\ -file -recurse) 
{
    If ((Get-FileHash $File.Fullname -Algorithm MD5).Hash -EQ $BadHash)
    {
        Write-Warning "Oh no, bad file detected: $($File.Fullname)"
    }
}