我今天在安全演讲中听到(我没有机会提问):
演讲者提到,他观察到(2 年前)给定计算机上可能存在的恶意软件的行为是,当用户通过浏览器访问合法 URL 时,恶意软件会更改需要访问的 URL;所以地址栏中的 URL 保持不变,但访问的页面现在是恶意的。
有人可以告诉恶意软件如何实现这一目标,或者今天这是否可能?恶意软件是否以某种方式拦截了浏览器发送的请求?
我今天在安全演讲中听到(我没有机会提问):
演讲者提到,他观察到(2 年前)给定计算机上可能存在的恶意软件的行为是,当用户通过浏览器访问合法 URL 时,恶意软件会更改需要访问的 URL;所以地址栏中的 URL 保持不变,但访问的页面现在是恶意的。
有人可以告诉恶意软件如何实现这一目标,或者今天这是否可能?恶意软件是否以某种方式拦截了浏览器发送的请求?
有几种方法可以实现这一点:
我还遇到过拦截 DNS 请求并为 nslookup 等实用程序返回正确结果的 rootkit,但对浏览器的 IP 不同。
另一种可能性是恶意软件修改您的 /etc/hosts 文件(或 C:\Windows\System32\Drivers\Etc\Hosts 文件)。我最近没看到那么多,可能是因为它太容易检测和预防了。
当然,它非常常见,并且是所有高级现代商业恶意软件功能集的标准部分,并且自 ZeuS 的第一个版本以来一直很普遍。通过合法 URL 访问的页面通常会部分或完全即时修改。
它通常通过注入浏览器进程和挂钩 WinAPI 系统调用来实现,其中包含原始 HTTP 请求和响应数据。如果您有兴趣,本文包含 ZBot 的挂钩 API 调用的完整列表。
当然,注入进程意味着恶意软件通常应该针对特定的浏览器版本。恶意软件作者通常会列出他们的产品可以注入的浏览器及其版本,并且通常会在目标浏览器更新后立即更新他们的恶意软件(如果他们想保持市场领先地位)。
ZeuS、它的各种修改、SpyEye 和大多数其他具有“浏览器注入”功能的机器人都有一个非常有趣的功能:一个小的内置“解析和替换语言”用于他们的配置文件,允许恶意软件用户轻松配置更改特定页面的 HTTP 响应。
这种语言是基本的文本替换内容:可以为要修改的响应指定 URL 或 URL 掩码,然后给出替换块列表,每个替换块指定要插入的一些数据(“正文”);应在其后插入“正文”的原始响应中的数据和/或应在其前插入“正文”的原始响应中的数据。
用这种“语言”编写的配置,称为“injects”或“webinjects”,是它们自己的实际市场。针对银行或在线支付系统的编写良好的“webinjects”,带有自己编写良好的管理网络面板,可以卖到几百美元。
正如您正确指出的那样,这主要用于网络钓鱼。但是,它与常规网络钓鱼的不同之处在于更难识别。它也经常用于广告和点击欺诈。