제2의 비엔지니어 인생관을 꿈꾸며

Posted
Filed under Study

https://blog.watchpointdata.com/rdp-brute-force-attack-detection-and-blacklisting-with-powershell

 

 #######################Beginning of script#########################
#Checks for IP addresses that used incorrect password more than 10 times
#within 1 hours and blocks them using a firewall rule 'Blacklist Block'
 #Global variables
$logfile = "C:\Support\blocked.txt"
 #Check only last 1 hours
$DT = [DateTime]::Now.AddHours(-1)
 #Select Ip addresses that has audit failure $af
$af = Get-EventLog -LogName 'Security' -InstanceId 4625 -After $DT | Select-Object @{n='IpAddress';e={$_.ReplacementStrings[-2]} }
 #Get ip adresses, that have more than 10 wrong logins. Change this number if you’d like.
$getip = $af | group-object -property IpAddress  | where {$_.Count -gt 10} | Select -property Name
 #Get firewall object
$fw = New-Object -ComObject hnetcfg.fwpolicy2
 #Get firewall rule named 'Blacklist Block' (must be created manually)
$ar = $fw.rules | where {$_.name -eq 'Blacklist Block'}
 #Split the existing IPs into an array so we can search it for existing IPs
$arRemote = $ar.RemoteAddresses -split(',')
#Only collect IPs that aren't already in the firewall rule
$w = $getip | where {$_.Name.Length -gt 1 -and !($arRemote -contains $_.Name + '/255.255.255.254') }
#Add the new IPs to firewall rule
$w| %{
  if ($ar.RemoteAddresses -eq '*') {
                                $ar.remoteaddresses = $_.Name
                }else{
                                $ar.remoteaddresses += ',' + $_.Name
                }
}
 #Write to logfile
if ($w.length -gt 1) {
                $w| %{(Get-Date).ToString() + ' ' + $_.Name >> $logfile}
}
Exit
#########################End of script###########################

 

사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지


원격데스크탑 및 터미널을 이용하는데 RD Gateway 처럼 HTTPS 인증절차가 없는 서버나 PC일경우 유용한 파워쉘 스크립트입니다.
비정규포트로 사용하더라도 스캐너를 사용하여 사용하는 포트를 감지당했을때는 바로 해킹 및 접속시도를 하게 되어 감사로그를 주기적으로 모니터링 하지 않으면 언젠가는 탈취당하게 되는 재앙이 발생하게 되어 위와같은 스크립트를 구글에서 찾게 되었습니다.
사용해보니 꽤 좋네요. 자동으로 검색해서 자체방화벽 차단 리스트에 IP를 등록해주니 많이 편해졌습니다. 터미널 포트가 아니여도 SMB나 기타 감사로그 패턴에 실패로 기록되는 서비스는 이쉘을 이용하여 자동으로 차단할수 있게됩니다.

2017/07/12 01:18 2017/07/12 01:18