在 Windows 上运行的 Web 服务器上,我每小时都会收到数百次失败的登录尝试。我可以看到,因为我启用了对失败登录尝试的审核。
在 Windows 事件查看器中,日志条目未显示我可以阻止的 IP 地址:
An account failed to log on.
Subject:
Security ID: NULL SID
Account Name: -
Account Domain: -
Logon ID: 0x0
Logon Type: 3
Account For Which Logon Failed:
Security ID: NULL SID
Account Name: administrator
Account Domain:
Failure Information:
Failure Reason: Unknown user name or bad password.
Status: 0xC000006D
Sub Status: 0xC000006A
Process Information:
Caller Process ID: 0x0
Caller Process Name: -
Network Information:
Workstation Name: -
Source Network Address: -
Source Port: -
Detailed Authentication Information:
Logon Process: NtLmSsp
Authentication Package: NTLM
Transited Services: -
Package Name (NTLM only): -
Key Length: 0
This event is generated when a logon request fails. It is generated on the computer where access was attempted.
如何找出试图侵入我的服务器的 IP 地址?如何阻止这些登录尝试?
如果您对服务器具有远程桌面访问权限,则可以使用Wireshark之类的工具来检查该计算机上的网络流量并追踪相关数据。对于这个答案,您将需要 GUI 访问权限。
要准备,在事件查看器中打开“审核失败”部分并双击事件 ID 为 4265 的行。这将带您进入“摘要页面事件”页面。当发生新的失败登录尝试时,它将显示类似“可用的新事件”之类的内容——单击右侧面板中的“刷新”以清除该通知。
然后启动 Wireshark。更成熟的用户可能希望编写一个捕获过滤器;我直接跳进去。蓝色的鱼翅按钮开始抓包。
为了减少显示的信息量,您可以在 Wireshark 的“显示过滤器”中输入:
哪里
a.b.c.d
是被攻击计算机w.x.y.z
的 IP 地址,是你要远程访问的计算机的 IP 地址。当事件查看器显示“新事件可用”时,单击 Wireshark 中的停止按钮。这有助于缩小可能需要筛选的海量数据的范围。如果时间不合适,您始终可以停止捕获,而不是保存它,然后开始新的捕获。
您正在 Wireshark 中寻找这样的一行,其中源 IP 地址是您不期望的,和/或类似“Client Hello”的信息:
选择该行,然后在其下方的窗格中查看有关该框架的更多信息,例如(部分折叠):
注意
Dst Port: 5986
部分。快速搜索使用端口 5986的内容告诉我们,攻击者正试图通过 HTTPS 进入 WinRM 2.0(据我所知,WinRM = Windows 远程管理)。查看AbuseIPDB 之类的服务可以确认已知的攻击来源。已经有一个“具有高级安全性的 Windows 防火墙”规则(名为“WinRM HTTPS”),因此您可以对其进行适当的更改以保护服务器。此时,您可能希望使 Wireshark 显示过滤器更具体,因此您可以将端口添加到其中:
并看到攻击者失败。
重要的一点是保护 WinRM 访问,记住它有合法用途,所以您不想阻止它们。