问题
面向公网开了个远程桌面端口,无论用多少号端口,都会被爆破!
虽然稣的密码很安全,几乎爆破不了,但会在系统日志里留下大量记录,实在很不雅观!
分析
改端口是没用的,因为只有 65535 个,只要机器 IP 被发现,扫描端口很快就能完成。
封 IP 是有用的,虽然爆破者(攻击者)有很多 IP,但一定是有限的,有多少封多少!
解决
- 从系统日志里分析爆破者 IP
打算使用 PowerShell 7 来编写脚本,首先学习 Get-WinEvent 命令:
1 | Get-Help Get-WinEvent -Online |
日志的过滤条件可以用“事件查看器”来协助生成:


当然,以上全部 XML 是 -FilterXml 的参数,比较长,可以用 -FilterXPath 来简化,只需要中间一部分。
条件还可以再加上 LogonType,以缩小范围,其中 3 表示“网络登录”:
1 | Get-WinEvent -LogName 'Security' -FilterXPath '*[System[EventID=4625] and EventData[Data[@Name="LogonType"]=3]]' -MaxEvents 1 | Format-List Message |
以下是完整代码,它会打印出 IP,和这个 IP 的登录失败次数:
1 | $ips = @{} |
- 把爆破者 IP 加入防火墙,阻止它们
目前收集到这些:
1 | 112.184.96.197 |
打开 wf.msc,新建一个阻止型的防火墙策略,然后加入到“作用域”的“远程 IP 地址”里。

加防火墙也可以用 PowerShell 搞定,这次先偷个懒,下次再说吧!




