描述
敌人劫持特权执行线程注入恶意代码运行的进程。通过使用privleged线程进行招标,对手可以规避基于流程的检测,将停止攻击,创建一个新的过程。这可能会导致敌人获得进程的内存和权限提升还可以启用。执行这种攻击的最常见的方法是停止现有的线程和操纵内存。
攻击的可能性
典型的严重性
执行流程
探索
确定目标线程:敌人决定了底层系统线程的用户控件
实验
获取线程的句柄:然后对手获得进程线程的句柄。
技术 |
使用“OpenThread”在Windows API调用一个已知的线程。 |
导致一个java异常特权块公共函数和抓住它,或者赶上正常的信号。然后挂和对手的线程可以尝试获得处理。 |
改变进程内存:一旦对手目标线程的处理,他们将暂停的线程和改变内存使用本机操作系统调用。
技术 |
在Windows上,使用“SuspendThread”其次是“VirtualAllocEx”、“WriteProcessMemory”,“SetThreadContext”。 |
利用
恢复线程执行:一旦进程内存被改变执行恶意代码,然后恢复线程。
技术 |
在Windows上,使用“ResumeThread”。 |
先决条件
有问题的应用程序使用一个线程模型的执行线程的操作,或者切换到的能力,更高的特权级别比普通用户 |
为了真正地执行这类攻击,敌人必须能够劫持一个享有特权的线程。这种能力包括,但不限于,修改环境变量影响进程的线程属于,或调用本地操作系统调用,可以暂停和改变进程内存。这并不排除基于网络的攻击,但使它们在概念上更加难以识别和执行。 |
技能要求
(级别:高) 劫持一个线程涉及知识的进程和线程函数在目标平台上,目标应用程序的设计以及能够识别所使用的原语或操纵劫持的线程。 |
所需资源
没有:不需要专门的资源来执行这种类型的攻击。敌人需要能够搭上享有特权的线程。 然而,对手确实需要程序,编译和链接到受害者正在执行的二进制文件,这样它将控制特权线程到对手的恶意代码。是这种情况即使敌人进行远程攻击。 |
后果
这个表指定不同的个体与攻击模式相关的后果。范围确定违反了安全属性,而影响了负面的技术影响,如果敌人成功的攻击。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能有高可能性模式将被用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 |
影响 |
可能性 |
保密
访问控制
授权 |
获得特权 |
|
保密
完整性
可用性 |
执行未经授权的命令 |
|
缓解措施
应用程序架构师必须小心设计回调信号,类似的异步结构,这样他们之前减掉多余的特权将控制移交给用户编写的代码(因此不可信)。 |
应用程序架构师必须小心设计特权代码块,在返回时(成功、失败或出乎意料的)好处是摆脱之前离开块/范围。 |
例子,实例
对手的目标应用程序使用Java编写的AWT 1.2.2时代事件模型。在这种情况下,任何AWTEvent起源于底层操作系统(如鼠标单击)将返回一个特权线程(例如,一个系统调用)。敌人可以选择不返回AWT-generated线程消耗事件,而是利用其特权进行特权操作。 |
分类法映射
CAPEC映射ATT&CK技术利用一个继承模型简化和减少直接CAPEC / ATT&CK映射。继承的映射表示文本说明父CAPEC有相关ATT&CK映射。注意,ATT&CK企业框架不使用一个继承模型的一部分映射到CAPEC。
内容的历史
提交 |
提交日期 |
提交者 |
组织 |
2014-06-23
(版本2.6) |
CAPEC内容团队 |
manbetx客户端首页 |
|
修改 |
修改日期 |
修饰符 |
组织 |
2017-01-09
(版本2.9) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Related_Attack_Patterns |
2017-08-04
(版本2.11) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Attack_Phases Attack_Prerequisites,描述总结,Examples-Instances Probing_Techniques Resources_Required |
2018-07-31
(版本2.12) |
CAPEC内容团队 |
manbetx客户端首页 |
更新描述总结,Examples-Instances Probing_Techniques |
2020-07-30
(版本3.3) |
CAPEC内容团队 |
manbetx客户端首页 |
更新Execution_Flow、Related_Attack_Patterns Taxonomy_Mappings |
2021-10-21
(版本3.6) |
CAPEC内容团队 |
manbetx客户端首页 |
更新描述、Execution_Flow先决条件 |
|