मेरे पास विंडोज़ फ़ायरवॉल में आईपी पते को स्वचालित रूप से ब्लॉक (ब्लैकलिस्ट) करने के लिए एक साधारण पावरशेल स्क्रिप्ट लिखने का विचार है, जिस पर आरडीपी ब्रूट-फोर्स प्रयास या निरंतर आरडीपी हमलों का पता चला है। विचार इस प्रकार है:पावरशेल स्क्रिप्ट सिस्टम इवेंट लॉग का विश्लेषण करती है और यदि पिछले तीन घंटों में उसी आईपी पते से आरडीपी के माध्यम से प्रमाणित करने के 5 से अधिक असफल प्रयास हुए हैं, तो आईपी पता स्वचालित रूप से विंडोज फ़ायरवॉल ब्लॉकिंग नियम में जोड़ा जाता है। .
तो, एक छोटा कार्यालय नेटवर्क है। इसे एक्सेस करने के लिए, एक आरडीपी पोर्ट को एनएटी के माध्यम से इंटरनेट गेटवे चलाने वाले लिनक्स के माध्यम से कार्यालय कंप्यूटरों में से एक में भेजा जाता है (टीसीपी 15221 बाहर से जवाब दे रहा है, और डिफ़ॉल्ट आरडीपी पोर्ट 3389 अंदर अग्रेषित किया गया है)। RDP के माध्यम से कंप्यूटर पर प्रमाणित करने के असफल प्रयासों के कारण समय-समय पर, ज्ञात उपयोगकर्ता खाते डोमेन पासवर्ड नीति द्वारा लॉक कर दिए जाते हैं। हमारा काम हमारे RDP सर्वर को ज़बरदस्ती करने के लिए उपयोग किए जाने वाले IP पतों को स्वचालित रूप से ब्लॉक करना है।
सबसे पहले, निर्दिष्ट आईपी पते से इनबाउंड आरडीपी कनेक्शन को ब्लॉक करने के लिए कंप्यूटर पर फ़ायरवॉल नियम बनाएं:
New-NetFirewallRule -DisplayName "BlockRDPBruteForce" –RemoteAddress 1.1.1.1 -Direction Inbound -Protocol TCP –LocalPort 3389 -Action Block
हम इस नियम फ़ायरवॉल में आगे आईपी पते जोड़ेंगे, जिन पर आरडीपी ब्रूट-फोर्स प्रयासों का पता चला है।
आप एक अतिरिक्त अनुमति नियम लिख सकते हैं ताकि पावरशेल स्क्रिप्ट आपके लिए आवश्यक आईपी पते या सबनेट को ब्लॉक न करे।फिर आपको उन IP पतों की सूची एकत्र करनी होगी, जिन पर पिछले 3 घंटों में 5 से अधिक विफल प्रमाणीकरण प्रयासों का पता लगाया गया है, Windows ईवेंट लॉग से। ऐसा करने के लिए, EventID के साथ ईवेंट खोजें 4625 (पहुँच का असफल प्रयास — एक खाता लॉग ऑन करने में विफल रहा और लॉगऑनटाइप =3 , सुरक्षा लॉग में लेख आरडीपी इवेंट लॉग फोरेंसिक) देखें। आपको मिले ईवेंट में, कनेक्ट करने का प्रयास करने वाले उपयोगकर्ता का IP पता ढूंढें और सुनिश्चित करें कि यह ईवेंट लॉग में 5 से अधिक बार दिखाई दिया है।
मैं पिछले 3 घंटों की घटनाओं की सूची से हमलावरों के आईपी पते का चयन करने के लिए निम्नलिखित पावरशेल कोड का उपयोग कर रहा हूं (आप समय अवधि बदल सकते हैं):
$Last_n_Hours = [DateTime]::Now.AddHours(-3)
$badRDPlogons = Get-EventLog -LogName 'Security' -after $Last_n_Hours -InstanceId 4625 | ?{$_.Message -match 'logon type:\s+(3)\s'} | Select-Object @{n='IpAddress';e={$_.ReplacementStrings[-2]} }
$getip = $badRDPlogons | group-object -property IpAddress | where {$_.Count -gt 5} | Select -property Name
$getip
अब पहले बनाए गए फ़ायरवॉल नियम BlockRDPBruteForce में हमलावरों के सभी पाए गए IP पते जोड़ें। Windows फ़ायरवॉल को प्रबंधित करने के लिए, हम अंतर्निहित PowerShell मॉड्यूल NetSecurity का उपयोग करेंगे। सबसे पहले, वर्तमान में अवरुद्ध IP पतों की सूची प्राप्त करें और इसमें नए जोड़ें।
$log = "C:\ps\rdp_blocked_ip.txt"
$current_ips = (Get-NetFirewallRule -DisplayName "BlockRDPBruteForce" | Get-NetFirewallAddressFilter ).RemoteAddress
foreach ($ip in $getip)
{
$current_ips += $ip.name
(Get-Date).ToString() + ' ' + $ip.name + ' The IP address has been blocked due to ' + ($badRDPlogons | where {$_.IpAddress -eq $ip.name}).count + ' attempts for 2 hours'>> $log # writing the IP blocking event to the log file
}
Set-NetFirewallRule -DisplayName "BlockRDPBruteForce" -RemoteAddress $current_ips
सुनिश्चित करें कि विंडोज डिफेंडर फ़ायरवॉल में ब्लॉकिंग नियम में नए आईपी पते जोड़े गए हैं।
अब आपको बस इस पॉवरशेल कोड को फाइल में कॉपी करना है c:\ps\block_rdp_attack.ps1
और उदाहरण के लिए, इसे हर 2 घंटे में चलाने के लिए अपने टास्क शेड्यूलर में जोड़ें।
आप पावरशेल स्क्रिप्ट या मैन्युअल रूप से शेड्यूलर कार्य बना सकते हैं:
$repeat = (New-TimeSpan -Hours 2)
$duration = ([timeSpan]::maxvalue)
$Trigger= New-ScheduledTaskTrigger -Once -At (Get-Date).Date -RepetitionInterval $repeat -RepetitionDuration $duration
$User= "NT AUTHORITY\SYSTEM"
$Action= New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "C:\PS\block_rdp_attack.ps1"
Register-ScheduledTask -TaskName "BlockRDPBruteForce_PS" -Trigger $Trigger -User $User -Action $Action -RunLevel Highest –Force
या आप अपनी PowerShell स्क्रिप्ट चला सकते हैं यदि EventID 4625 लॉग में दिखाई देता है (ब्लॉगपोस्ट Windows Event Triggers देखें), तो आप RDP ब्रूट-फोर्स अटैक का अधिक तेज़ी से जवाब देंगे।
आप इस स्क्रिप्ट को अपनी आवश्यकताओं के अनुसार संशोधित कर सकते हैं और RDP हमलों को रोकने के लिए उपयोग कर सकते हैं।