我运行了几个 IIS Web 服务器,一个在 Win Server 2008 R2 上,另一个在 2003 上。两个服务器都已完全修补并更新,并安装了 AV。运行在无 NAT 连接上,有 8 个 WAN IP
2003 年的机器似乎突然使用了大量带宽(ITRO 每天 1-2GB)上游带宽。这很愚蠢,因为它仅托管 3 个带宽非常低的站点(每天最多 100 个页面请求)
查看资源监视器,我看到似乎有一个几乎不间断的连接指向一个未知 IP 地址(外部),所以我在 Windows 防火墙中阻止了它。2 小时后,我看到另一个不相关的 IP 占用了大量带宽……(甚至一点也不相似)
我如何才能准确追踪哪个进程正在“提供”此连接?它指的是一个通用的 svchost,运行大约 6 个进程(但不是 IIS),但这就是我能缩小的范围。
已编辑-附加:我刚刚重新启动了服务器,现在注意到 CPU 和网络使用率呈锯齿状,与 Winlogon 和 csrss 相对应......
答案1
首先,网络状态监测将显示您的计算机正在连接的端口/IP 地址,以及执行此操作的进程的进程 ID (PID),例如:
TCP 10.16.69.103:49316 192.0.2.18:443 ESTABLISHED 6396
TCP 10.16.69.103:49318 192.0.2.18:443 ESTABLISHED 6396
TCP 10.16.69.103:49363 192.0.2.18:443 ESTABLISHED 6396
TCP 10.16.69.103:49398 192.0.2.18:443 ESTABLISHED 6396
TCP 10.16.69.103:49402 192.0.2.18:443 ESTABLISHED 6396
最后一列是 PID(6396)。
您可以运行任务列表/svc找出哪个进程正在运行哪些服务,例如:
svchost.exe 828 Dhcp, Dnscache
svchost.exe 864 Alerter, LmHosts, W32Time
svchost.exe 880 AeLookupSvc, AudioSrv, BITS, Browser,
CryptSvc, dmserver, EventSystem, helpsvc,
lanmanserver, lanmanworkstation, Netman,
Nla, RasMan, Schedule, seclogon, SENS,
ShellHWDetection, TrkWks, winmgmt,
wuauserv, WZCSVC
OUTLOOK.EXE 6396 N/A
因此,我们在这里可以看到打开与 192.0.2.18 的连接的过程是外部应用程序.
如果这是一个进程管理器进程,它正在运行的服务将显示在 PID 旁边。例如 - 我们可以看到 PID 为 828 的 svchost 正在运行 DHCP 客户端 (dhcp) 和 DNS 客户端 (Dnscache) 服务。
如果您的 svchost.exe 进程没有运行服务,并且没有以系统帐户(例如 NetworkService 或 LocalService)运行,则它很可能是恶意软件。使用进程探索器确定此文件在磁盘上的位置。
如果出现问题的 svchost 实例正在运行多个服务,而您需要找出导致问题的服务,则可以分离服务使用它们自己的 svchost 进程。因此,如果你有问题的 svchost 进程正在运行DHCP和域名缓存,你会运行sc 配置 dhcp 类型=own和sc 配置 dnscache 类型=own,然后重新启动,看看哪一个导致了流量。
我在这里仅使用 Dhcp 和 Dnscache 作为示例。
如果导致问题的 svchost 实例移动很多,您可能希望检查AppInit_DLLS 注册表项,以防恶意 DLL 以这种方式被进程加载。