Моя организация недавно обнаружила вредоносное ПО, которое было отправлено некоторым пользователям по электронной почте, и которому удалось обойти нашу систему безопасности электронной почты в результате сложной целевой атаки. Имена файлов варьируются от пользователя к пользователю, но мы собрали список распространенных хэшей 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)"
}
}