Если на сервер идёт брутфорс по RDP, лучше узнать об этом сразу — пока не увели учётку.
Рассказываю, как настроить оповещение о неудачных входах (4625) с Logon Type 10 (то есть RDP) через PowerShell +
Scheduled Task. 📌 Сначала скрипт, который проверяет события и пишет лог/шлёт алерт:
# RDPBruteCheck.ps1
$Events = Get-WinEvent -FilterHashtable @{
LogName = 'Security'
Id = 4625;
StartTime = (Get-Date).AddMinutes(-5)
} | Where-Object {
$_.Properties[10].Value -eq '10' # RDP Logon Type
}
if ($Events.Count -gt 0) {
$msg = "$($Events.Count) неудачных попыток входа по RDP за последние 5 минут!"
# Можно заменить на email, Telegram API, SIEM и т.п.
Add-Content -Path "C:\Scripts\RDPBruteLog.txt" -Value "$(Get-Date): $msg"
}
⚙️ Потом создаём запланированное задание, чтобы скрипт запускался каждые 5 минут:
$action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument "-File C:\Scripts\RDPBruteCheck.ps1"
$trigger = New-ScheduledTaskTrigger -Once -At (Get-Date).AddMinutes(1) -RepetitionInterval (New-TimeSpan -Minutes 5) -RepetitionDuration ([TimeSpan]::MaxValue)
Register-ScheduledTask -TaskName "MonitorRDPBrute" -Action $action -Trigger $trigger -RunLevel Highest -User "SYSTEM"
🛠️ Можно доработать под:
- Email-уведомления (
Send-MailMessage)- Telegram-бота
- Интеграцию с Zabbix/PRTG/ELK
💬 А как вы реагируете на попытки брутфорса? Настраиваете уведомления или полагаетесь на внешние средства защиты?
👉 @win_sysadmin