- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
安全界一直在讨论一种称为“原子轰炸”的新代码注入(inject)技术(参见 Injection Attack Description 和 Information Security Stack Exchange Question)。简单地说,攻击者可以使用原子表来存储可执行代码。
一个问题是全局原子表功能存在于所有版本的 Windows 中,并且是一个有意的功能,而不是一个错误。目前尚不清楚如何通过更改 Windows 来减轻威胁。
Windows 原子表的用途是什么?如果微软只是说“就是这样,没有更多的原子表”,会有什么影响?
最佳答案
TL;DR:我个人认为微软不会对全局原子表进行任何更改,因为这只是一个次要的安全问题。
原子表可让您将字符串与 16 位数字相关联。你给 Windows 你的字符串,它给你一个数字。然后,您只需知道分配的编号即可再次检索该字符串。
每个正常进程都有自己的本地原子表,但它通常是空的,不是安全问题。
有多个“全局”原子表由同一 window station 中的所有进程共享。 .其中 1 个被记录在案,称为全局原子表。 MSDN 也足够好 tell us那个RegisterClipboardFormat
和 RegisterClass
在他们当前的实现中也在内部使用他们自己的原子表。其他功能如 SetProp
也使用原子,但我们只对漏洞利用使用的原子表感兴趣,原子被添加到该表中,并带有 GlobalAddAtom
功能。
这个原子表的主要目的是充当一个简单的存储位置,以便不同的进程可以在一个名为 DDE 的协议(protocol)中相互通信。 .当一个进程想要向不同进程中的窗口发送消息时,您发送的消息不能超过 8 个字节(2 个参数,每个 4 个字节),这不足以传输文件系统路径或 URL。
为了解决这个限制,应用程序通过调用 GlobalAddAtom
将字符串/路径/URL 存储在公共(public)全局原子表中。 . GlobalAddAtom
返回一个应用程序可以发送给另一个进程的数字。当另一个进程收到 DDE 消息时,它只是将数字传递给 GlobalGetAtomName
函数来检索字符串。
这是一个安全问题吗?事实证明,这个过度炒作(恕我直言)漏洞利用 uses全局原子表完全完成该表的设计目的;将字符串从一个进程传输到另一个进程。
要将代码注入(inject)另一个进程,您通常会调用 OpenProcess
获得所需进程的句柄,VirtalAllocEx
在这个进程中分配一些内存,WriteProcessMemory
用您的代码填充这个新分配的内存,最后 CreateRemoteThread
开始执行此代码。
该漏洞利用基本上调用 GlobalGetAtomName
以一种复杂的方式 (NtQueueApcThread) 避免使用 WriteProcessMemory
.更令人印象深刻的是它如何构建 ROP 链并使用 NtQueueApcThread
执行它但这与原子表并没有真正的关系,原子表只是一种不寻常/聪明的内存传输方式。
该漏洞利用不允许恶意代码提升或以其他方式获得源进程尚未拥有的权限,因为 NtQueueApcThread
不能用于任何随机进程,您仍然需要适当的权限才能访问所需的目标进程。 NtQueueApcThread
当漏洞利用出来时,可能会让一些反病毒公司措手不及,但作为一个独立的代码,首先必须由某人执行,它本身不能造成太大的破坏,它必须与其他代码结合使用是可怕的。
微软可以删除原子表吗?不,不是真的,其他表太重要了。
他们可以删除全局原子表吗?不,不是真的,它是一个文档化的 API,并且已经存在 20 多年,而且 Microsoft 不喜欢破坏兼容性。
然而,他们可以稍微中和全局原子表。他们可以通过基于 integrity level 将其划分为多个隔间来降低其全局性。调用过程。这不会改变有问题的漏洞利用,因为它首先无法访问具有更高完整性级别的进程。
如果我们假设 Microsoft 更改了全局原子表,使其充当每个进程的表,会发生什么?
微软开始在 Windows XP 中摆脱 DDE,但在 Vista/7 中更加认真地对待它。在这台 Windows 8.1 机器上,Internet Explorer 仍将 DDE 用于“在同一窗口中打开”命令,但这不是 .html 文件的默认谓词。在注册表中搜索 ddeexec
查找所有使用 DDE 处理其文件关联的应用程序。从好的方面来说,文件关联 DDE 仅在应用程序实例已打开时使用。最坏的情况;在双击新文件之前关闭应用程序。
DDE 也可用于做其他事情,但很难说哪些应用程序和/或功能会损坏以及它们会损坏的程度。
全局原子表可用于除 DDE 之外的其他事情,但很难说这样做有多普遍。
如果全局原子表被限制为仅与具有相同文件名的进程共享其字符串,那么许多这些问题就会消失,因为它通常仅用于与同一应用程序的其他实例进行通信。
关于windows - 那么,Windows Atom 表的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40553686/
我有一台计算机在一个非常严格的代理服务器后面,它只允许我上网和下载程序它不允许像 Atom 文本编辑器这样的程序下载它的包。 我的问题是如何仅使用基于浏览器的下载来安装它们? 最佳答案 这当然是可能的
我的 keymap.cson 文件中有这个: 'body': 'ctrl-alt-left': 'editor:select-to-first-character-of-line' 但是不行(没有
如何获取 Atom 中所有已安装和已激活插件的列表? 我可以用 apm list --installed --bare获取所有已安装的软件包,但我不想包含禁用的软件包。而且我有很多禁用的包。 最佳答案
我在 OSX 上,在 Atom 中打开了一个我没有命名的文件。我不得不重新启动计算机,当它再次出现时,我点击了错误的东西,它忘记了所有旧文件名,并且未命名的文件似乎消失得无影无踪。如果我使用 Time
当我搜索某个字符串(“在目录中搜索”)时,atom 允许做两件事:指定目录或文件扩展名(但它会在项目中的所有目录中搜索)。是否可以同时进行?例如。我想在 'src' 目录中进行递归搜索,但只使用 *.
我将 OSX 更新为 High Sierra,我的 Atom 停止从命令行工作。 $ atom . FSPathMakeRef(/Applications/Atom.app) failed with
下面屏幕截图中第 95 行和第 96 行之间的红色箭头在 GitHub 的 Atom 编辑器上意味着什么? 谢谢! 最佳答案 如果您当前打开的项目使用 Git 作为修订系统,装订线中的箭头表示您删除了
某些代码编辑器(例如 WebStorm)可以选择在编辑器失去焦点时自动保存。我在 Atom 编辑器中搜索了类似的选项,但尚未找到任何内容。 Atom 编辑器是否有一个设置,允许在失去焦点时自动保存已编
有没有办法(插件或其他东西)在 Atom 编辑器中使用分屏? 我查看了菜单,但找不到任何相关选项。 最佳答案 使用命令面板 使用 cmd + shift + p (OSX) 或 ctrl + 打开命令
我在 Atom 中安装了一个有缺陷的软件包,它导致编辑器反复崩溃。因此,我进入 Atom 设置将其删除,但出于好奇,我事先单击了“打开配置文件夹”按钮,这打开了一个空窗口和开发工具: Atom 随后崩
我已经使用atom.io有一段时间了并且非常喜欢它。我只缺少一件事。我以前使用过bracket和sublime,它们都有一个功能,你只需输入html就可以创建html文档的基本结构。 这只会设置 ht
我尝试在 Atom 编辑器中安装软件包,但总是失败,就像我无法连接到服务器一样。 例如,apm install split-diff 返回请求包信息失败:getaddrinfo ENOTFOUNDat
我使用的是 OSX El Capitan 和 Atom 1.2.4。而且我还安装了“tabs-to-spaces”包。 我正在尝试将编辑器设置为缩进并使制表符为 2 个空格。但我无法完成这项工作,这是
我使用的是 Atom 1.0.15。启动时,Atom 每次都会尝试打开 MTP 设备上的文件,这非常烦人。即使关闭引用 MTP 设备上的文件的选项卡后,Atom 也会尝试在下次启动时重新打开它。 修复
我在 Atom 中安装了一个有缺陷的软件包,它导致编辑器反复崩溃。因此,我进入 Atom 设置将其删除,但出于好奇,我事先单击了“打开配置文件夹”按钮,这打开了一个空窗口和开发工具: Atom 随后崩
我尝试在 Atom 编辑器中安装软件包,但总是失败,就像我无法连接到服务器一样。 例如,apm install split-diff 返回请求包信息失败:getaddrinfo ENOTFOUNDat
在 Atom 文本编辑器上,不同的文件树颜色代表什么。我的文件有 3 种不同的颜色:黑色、绿色和橙色。黑色文件无法正常运行,而绿色文件运行良好。如果有人知道颜色的具体含义,请告诉我。 最佳答案 颜色指
我正在尝试通过 Atom 进行完整搜索,寻找特定的文本。嗯,这听起来很简单,使用 Command + Shift + F ,但是,不会跟踪 node_modules ,并且不会扫描这些目录内的内容。我
以下是我在snippets.cson 文件中编写的两个片段: '.source.python': 'print statement': 'prefix': 'pr' 'body'
我试过在这里查看其他有类似问题的问题,但不幸的是我没能解决这个问题。 关于一些基本背景信息,我目前在实验室中使用 PC,并且实验室在机构的某个地方有 GPU 服务器。我正在尝试将 Atom 编辑器连接
我是一名优秀的程序员,十分优秀!