RDP-védelem a jelszavak kitalálása ellen, az IP-blokkolással a Windows tűzfalszabályai által

Ötlet volt egy egyszerű PowerShell szkript megírásához, amely automatikusan blokkolja a Windows tűzfala IP-címeit, ahonnan az RDP (vagy a hosszú távú RDP támadások) jelszavakkal való kitalálási kísérletei rögzítésre kerülnek. Az ötlet a következő: a PowerShell szkript elemzi a rendszer eseménynaplóját, és ha az elmúlt 2 órában egy adott IP-címről több mint 5 sikertelen RDP-n keresztüli hitelesítési kísérletet rögzítenek, akkor ez az IP-cím automatikusan hozzáadódik a beépített Windows tűzfal blokkolási szabályához..

Tehát van egy kis hálózat egy domainnel, és egy RDP portot továbbítanak az Internet átjáró egyik számítógépéhez a Linuxon keresztül a NAT-on keresztül (a TCP portra a 13211-re válaszolnak, és a 3389-es szabványt átirányítják belülre). Rendszeres időközönként a számítógépen az ismert fiókokat blokkolja a domain jelszó-házirend, mivel az RDP-n keresztül a számítógépbe való sikertelen bejelentkezés megkísérli. Feladatunk az, hogy automatikusan blokkolja az IP-címeket, amelyeken a jelszavak ki vannak választva az RDP-ben .

Először hozzon létre egy tűzfalszabályt a számítógépen, amely blokkolja a bejövő RDP kapcsolatot a megadott IP címekből:

New-NetFirewallRule -DisplayName "BlockRDPBruteForce" -RemoteAddress 1.1.1.1 - Irányított bejövő -Protocol TCP -LocalPort 3389 -Action Block

A jövőben ehhez a szabályhoz hozzáadunk IP-címeket, amelyekből az RDP jelszavak kitalálására tett kísérletek kerülnek rögzítésre.

Készíthet egy további engedélyezési szabályt, hogy a szkript ne blokkolja a szükséges IP-címeket vagy alhálózatokat.

Most össze kell gyűjtenie a számítógépes naplókból az IP-címek listáját, amelyekből az elmúlt 2 órában több mint 5 sikertelen engedélyezési kísérlet történt. Ehhez a biztonsági naplóban ki kell választania az eseményeket az EventID segítségével 4625 (sikertelen bejelentkezés - A fiókok nem tudtak bejelentkezni, és a LogonType = 3, lásd az RDP naplóelemzés című cikket a Windows rendszerben). A talált eseményekben meg kell találni a csatlakozó felhasználó IP-címét, és ellenőriznie kell, hogy ezt az IP-címet a naplókban több mint öt alkalommal találták-e meg..

Ezt a kódot használom a támadók IP-címeinek kiválasztására az elmúlt 2 óra eseményei alapján (az idő megváltoztatható):

$ Last_n_Hours = [DateTime] :: Now.AddHours (-2)
$ badRDPlogons = Get-EventLog -LogName 'Biztonság' - utána $ Last_n_Hours -InstanceId 4625 | ? $ _. Message -match 'bejelentkezési típus: \ s + (3) \ s' | Select-Object @ n = 'IpAddress'; e = $ _. ReplacementStrings [-2]
$ getip = $ badRDPlogons | group-object -property IpAddress | ahol $ _. gróf -gt 5 | Válassza a -tulajdonság nevét

Felsorolhatja a talált IP címeket: $ getip

Most a támadó összes észlelt IP-címét hozzá kell adni a korábban létrehozott BlockRDPBruteForce tűzfalszabályhoz. A Windows tűzfal kezelésére a beépített modul beépített PowerShell-modulját, a NetSecurity-t fogjuk használni. Először szerezzen egy listát a jelenleg blokkolt IP címekről, és adjon hozzá újakat..

$ log = "C: \ ps \ block_ip.txt"
$ current_ips = (Get-NetFirewallRule -DisplayName "BlockRDPBruteForce" | Get-NetFirewallAddressFilter) .RemoteAddress
foreach ($ ip in $ getip)

$ current_ips + = $ ip.name
(Get-Date) .ToString () + "+ $ ip.name + 'IP le van tiltva a' + számára ($ badRDPlogons | ahol $ _. IpAddress -eq $ ip.name). Számlálás + 'kísérlet 2 órán belül' >> $ log # írja be az IP-címet blokkoló eseményt a naplófájlba

Set-NetFirewallRule -DisplayName "BlockRDPBruteForce" -RemoteAddress $ current_ips

Ellenőrizzük, hogy új IP-címeket adtak-e a Windows Defender tűzfal blokkoló szabályához.

Csak át kell másolnia ezt a PowerShell-kódot a c: \ ps \ didrdp_attack.ps1 fájlba, és hozzá kell adnia az ütemező feladatához az ütemezett futtatáshoz. Például 2 óránként.

Az ütemező feladatot a PowerShell parancsfájl segítségével vagy manuálisan is létrehozhat:

$ repla = = (Új-TimeSpan-2. óra)
$ időtartam = ([timeSpan] :: maximális érték)
$ Trigger = Új-ütemezettTaskTrigger -Once -At (Get-Date) .Dátum -RepetitionInterval $ atkārtolás -RepetitionDuration $ időtartam
$ Felhasználó = "NT HATÓSÁG \ RENDSZER"
$ Action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "C: \ PS \ atnaujrdp_attack.ps1"
Regisztráció-Ütemezett Feladat - Feladatnév "BlockRDPBruteForce_PS" -Trigger $ Trigger -User $ Felhasználó -Action $ Akció -RunLevel Legmagasabb -Force

Vagy futtathatja a PowerShell szkriptet, amikor a 4625 esemény megjelenik a naplóban, így gyorsabban reagálhat az RDP jelszó kitalálási támadására..

Ezt a szkriptet a valósághoz igazíthatja és felhasználhatja az RDP támadások blokkolására.