据我所知,autorun.inf
问题(插入 USB 记忆棒时自动执行代码的可能性)已通过 XP 的 Windows 更新解决,而在 7 上则根本不可能。
但是,当插入 USB 记忆棒时,仍然会弹出一些自动播放对话框。
这可以被利用吗,是否有可能以某种方式执行代码?
(假定)
资产:包含个人信息、财务记录、网站密码、亲友联系信息的单台家用台式机。
曝光:位于个人住宅中,几乎没有未知的个人交通。
威胁:个人认识非经济动机或有经济动机的服务人员。
据我所知,autorun.inf
问题(插入 USB 记忆棒时自动执行代码的可能性)已通过 XP 的 Windows 更新解决,而在 7 上则根本不可能。
但是,当插入 USB 记忆棒时,仍然会弹出一些自动播放对话框。
这可以被利用吗,是否有可能以某种方式执行代码?
(假定)
资产:包含个人信息、财务记录、网站密码、亲友联系信息的单台家用台式机。
曝光:位于个人住宅中,几乎没有未知的个人交通。
威胁:个人认识非经济动机或有经济动机的服务人员。
当您插入 USB 密钥时,会发生很多事情。操作系统首先与 USB 设备对话以了解它是什么类型的设备以及它可以做什么。然后,如果设备说它是一种磁盘,操作系统将在其上查找文件系统,然后挂载它,并探索一些文件。根据找到的文件及其名称,操作系统会建议用户选择操作(即您看到的弹出窗口)。该过程的任何阶段都可能存在可利用的错误,而且历史上确实发生过许多这样的例子(例如,PS3 越狱 从去年开始是一个 USB 设备,它在内部宣称自己是四个设备的集线器,其中一个设备在 USB 总线上杂乱无章,从而触发了 OS USB 驱动程序中的缓冲区溢出)。
因此,尽管 Windows 上的当前状态是操作系统不会自动运行恶意代码,但它仍然可能会误操作。据我所知,目前还没有发布的漏洞利用可以做到这一点,但所有这些代码都没有错误是难以置信的。
附带说明一下,看起来像普通 USB 记忆棒的东西在内部可能会表现得完全不同,并且(例如)将自己显示为操作系统的键盘——并立即开始“打字”。可能性几乎是无穷无尽的。而且有点吓人。
根据维基百科:
Windows 7的
对于所有驱动器类型,除了 DRIVE_CDROM,[autorun] 部分中唯一可用的键是标签和图标。本节中的任何其他键都将被忽略。因此,只有 CD 和 DVD 媒体类型可以指定自动运行任务或影响双击和右键单击行为。
有一个适用于 Windows XP 及更高版本的补丁 KB971029,它将自动运行功能更改为此行为。
https://secure.wikimedia.org/wikipedia/en/wiki/Autorun.inf
因此,这表明在插入任何可移动媒体autorun.inf
后,Windows 7 仍然确实处理了其中的某些部分。处理多少取决于相关媒体是否在光驱中。
我不知道当前有任何与label
oricon
键相关的漏洞,但这并不意味着永远不会有任何漏洞。您也有可能遇到受感染的 CD/DVD/BD 或其他autorun.inf
将处理更多内容的光学媒体。因此,为了正确保护自己,我仍然建议autorun.inf
完全禁用处理。
Michael Horowitz 前段时间写了一篇关于 Autorun 和 Autoplay 如何工作的精彩博客文章。与 Nick Brown 和 Emin Atac 所做的工作相呼应,这篇文章包括一个注册表黑客来禁用所有autorun.inf
. 我将在下面粘贴注册表黑客详细信息。查看文章链接以获取更多信息。
建议的解决方案涉及更新 Windows 注册表。因此,与往常一样,最好进行备份。该解决方案是为 Windows XP/Vista 编写的,但它也应该在 7 中工作。
修改注册表很简单,您只需要下面显示的 .reg 文件中的三行。然后双击文件。
您可以从该网页复制以下三行,或使用此帖子底部的链接下载文件。文件名并不重要,除了应该以“.reg”结尾。Computerworld 不允许将以“.reg”结尾的文件附加到博客帖子中,因此文件类型为“.txt”,您必须将其重命名为以“.reg”结尾。
REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\Autorun.inf]
@="@SYS:DoesNotExist"
请注意,文件中有三行,中间行在浏览器显示时可能会换行,但在 .reg 文件中必须是单行。
尼克布朗解释了这是做什么的:
此 hack 告诉 Windows 将 AUTORUN.INF 视为来自 Windows 95 之前的应用程序的配置文件......它说“当你必须处理一个名为 AUTORUN.INF 的文件时,不要使用文件中的值. 您可以在 HKEY_LOCAL_MACHINE\SOFTWARE\DoesNotExist 找到替代值。” 并且由于那个键 er 不存在,就好像 AUTORUN.INF 完全是空的,所以没有任何东西自动运行,也没有任何东西添加到资源管理器双击操作中。结果:蠕虫无法进入 - 除非您开始双击可执行文件以查看它们的作用......
第三行中的文本“DoesNotExist”表示注册表中不存在的位置。如果这个 zap 变得非常流行,恶意软件可能会寻找它,所以稍微改变一下也无妨。例如,我可能会在我的计算机上使用类似 @="@SYS:DoesNotExistMichael" 的东西。需要明确的是,这根本不是必需的。如上所示的zap 工作正常。
当然,这对于将自身呈现给系统的 USB 记忆棒实际上并没有太大作用。最好的解决方案是不要插入您不信任的任何设备。并且,不要将您信任的任何设备插入您不信任的系统。
有关自动运行/自动播放及其工作原理的更多信息,请参阅已引用的网站。另外,请查看以下 Wikipedia 链接:
https://secure.wikimedia.org/wikipedia/en/wiki/AutoRun
https://secure.wikimedia.org/wikipedia/en/wiki/AutoPlay
默认行为是显示弹出窗口。弹出窗口会扫描媒体中的文件类型,并对您可能想要做什么做出有根据的猜测。对于默认行为,利用它的唯一方法是通过读取媒体内容的弹出代码中的漏洞,目前 [in the wild] 不存在该漏洞。
你没有受到保护并且非常危险
Autorun.inf 是一种旧式攻击,应该不再有效,但这并不是唯一使用 USB 的攻击媒介。
BadUSB 是在 USB 设备上更改固件以模拟其他设备并扩展其功能的地方。请记住,USB 只是用于连接设备的规范,不同的设备以不同的级别或特权运行,存储与键盘的运行级别不同。借助扩展功能,存储设备在插入机器时看起来就像键盘。
可能的情况是这样的:
你插入一个 USB 记忆棒,接下来你知道代码正在执行。这是可能的,因为该设备模拟键盘 USB 设备并向您的系统提供输入,例如打开 PowerShell 然后运行代码的快捷键。
BadUSB 可以在可以购买的使用此漏洞利用的商业产品中找到,例如Bashbunny和Rubber dady 。
另外还有从头开始创建自己的指南如发现here