Firewall üzerinde yazdığınız RDP ataklarını engelleme kurallını kullanarak, gelen yeni atak IP adreslerini güncelleyebileceğiniz bir kodu sizin ile paylaşmak isterim. Kaynak olarak reukauff.eu  adresinden gördüğüm kodu Türkçe çevirisini ve geliştirerek sizin ile paylaşmak isterim.

 

Kod sayesinde rdp ataklarını engelleyebilir block olarak tanımladığınız scope aralığını güncellyebilirsiniz.

 

 

PowerShell
Edit|Remove
# Firewall uzerinde tanimladiginiz kuralin adini yazınız 
$firewallRuleName = "RDP Atak Engelle" 
  
# Karalisteye eklenmetecek IP adreslerini yada hostnamelerini tanimlayiniz. 
$whiteList = @( 
   [System.Net.Dns]::GetHostAddresses("powershell-ozan, Ozan-WI, 192.168.2.101").IPAddressToString 
   ) 
  
  
### kod ### 
Write-Host "Running at $(Get-Date)" 
$regExIp = "\d\d?\d?.\d\d?\d?.\d\d?\d?.\d\d?\d?" 
  
# RDS icin olusan Event loglardan 140 tanesini incele 
$currentAttackers = Get-Winevent Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational | Where-Object {$_.Id -eq 140} | Select Message -ExpandProperty Message 
  
# Response yok ise saldırı yoktur. 
if ($currentAttackers -eq $null) { 
   Write-Host "No current attackers" 
   return 
} 
  
# Her saldırı mesajını alın ve yukarıdaki regExIP'i kullanarak IP'yi filtreleyin 
for ($i = 0; $i -lt $currentAttackers.Count; $i++) { 
   if ($currentAttackers[$i-match $regExIp){ 
      $currentAttackers[$i] = $Matches[0] 
   } 
} 
  
# Bilinen saldırganları güvenlik duvarı kurallarından alın 
$knownAttackers = (Get-NetFirewallRule -DisplayName $firewallRuleName | Get-NetFirewallAddressFilter).RemoteAddress 
if ($knownAttackers -eq $null){ 
   $knownAttackers = @() 
} 
$knownAttackers = $knownAttackers | Sort-Object -Unique 
  
# Kaydedilen her login kaydını kontrol et ve daha önce saldırgan olarak bilinip bilinmediğini kontrol et 
foreach($newAttacker in $currentAttackers) { 
   if ($knownAttackers.Contains($newAttacker)) { #Bilinen bir IP ise işlem yapma 
      continue 
   } 
   elseif ($whiteList -contains $newAttacker) { #Beyaz Listeye alınmış ise işlem yapma 
      Write-Host "$newAttacker is dynamically whitelisted" 
      continue 
   } 
   else#yeni bir saldırgan kara listeye ekle  
      $knownAttackers +$newAttacker 
      Write-Host "Added $newAttacker" 
   } 
} 
  
# dublicate'leri kaldırın 
$knownAttackers = $knownAttackers | Sort-Object -Unique 
Write-Host "$($knownAttackers.Count) IPs on blacklist" 
  
# Tüm bilinen ve tüm yeni tespit edilen saldırganlarla Firwall kurallarını düzenle 
Set-NetFirewallRule -DisplayName $firewallRuleName "RDP Atak Engelle" -RemoteAddress $knownAttackers 
Write-Host "" 
 

Kaynak: reukauff.eu