1. 执行权限提升
1.1. 有必要授予远程用户管理员访问权限,使他们能够排除故障和解决一些问题
1.2. 人们认为授予用户管理员权限是不好的
-
1.2.1. 恶意用户可以使用这种访问级别来提取口令散列,稍后可以使用这些散列来恢复实际的口令,或者通过传递散列直接进行远程攻击
-
1.2.2. 他们可以使用他们的系统来捕获数据包,还可以安装可能恶意的软件
-
1.2.3. 可能会破坏注册表
1.3. 在该方法的第一阶段,将收集关于目标的一般信息
1.4. 下一阶段会使用迭代方法,将尝试不同的漏洞利用方式,根据它们的成功或失败,再尝试新的攻击媒介以获得成功
-
1.4.1. 目标是尽可能提升到最高权限,所以在垂直权限提升攻击不成功的情况下,可以进行水平权限提升攻击来寻找新的攻击媒介
-
1.4.2. 如果水平权限提升会成功,那么应该从头开始从各个角度验证安全性
1.5. 最后一个阶段是报告阶段,它将向缓解团队提供详细信息,以便在黑客发现之前弥补“漏洞”
2. 利用漏洞攻击未打补丁的操作系统
2.1. 攻击者很可能会找到未打补丁的计算机
2.2. 黑客使用扫描工具找出网络中设备的信息,并发现没有打补丁的设备
2.3. SearchSploit包含相应的漏洞,可用于攻击未打补丁的计算机
2.4. 使用名为PowerUp的工具绕过Windows权限管理,并将易受攻击机器上的用户升级为管理员
2.5. 使用名为wmic的WMI命令行工具来检索已安装的更新列表
2.6. 使用PowerShell命令Get-Hotfix
3. 访问令牌操控
3.1. 在Windows中,所有进程都是由某个用户启动的,系统知道该用户拥有的权利和权限
3.2. Windows通常使用访问令牌来确定所有正在运行的进程的所有者
- 3.2.1. 这种权限提升技术用于使进程看起来好像是由另一个不同的用户启动,而不是由实际启动它们的用户启动
3.3. 操作系统以普通用户的身份登录管理员用户,然后以管理员权限执行进程
- 3.3.1. Windows使用run as administrator命令以管理员权限执行此进程
3.4. 如果攻击者能够欺骗系统,使其相信进程是由管理员启动的,那么这些进程将会不受干扰地以完全级别管理员权限(full-level admin privilege)运行
3.5. 如果被盗令牌在远程系统上具有适当的权限,那么当攻击者使用窃取的令牌对远程系统进程进行身份验证时,也可能发生访问令牌操控
3.6. 访问令牌操控在Metasploit中大量使用
-
3.6.1. Metasploit具有可以执行令牌窃取并使用窃取的令牌提升权限运行进程的Meterpreter有效负载
-
3.6.2. Metasploit还有一个名为CobaltStrike的有效负载,也利用了令牌窃取优势
-
3.6.3. 有效负载能够窃取并创建自己的具有管理员权限的令牌
3.7. 权限提升方法有一种肉眼可见的趋势,即攻击者利用了原本合法的系统
4. 利用辅助功能
4.1. Windows有几个辅助功能,旨在帮助用户更好地与操作系统交互,并且更多地关注可能有视觉障碍的用户
-
4.1.1. 包括放大镜、屏幕键盘、显示开关和旁白
-
4.1.2. 攻击者可以操控这些功能来创建一个后门,通过这个后门,他们可以在没有身份验证的情况下登录到系统
-
4.1.3. 黑客会删除其中的一个或多个,并将其替换为命令提示符或后门
4.2. 显示的命令提示符将以系统访问权限执行,这是Windows计算机的最高权限级
-
4.2.1. 攻击者可以使用命令提示符来完成其他任务
-
4.2.2. 它可以打开浏览器,安装程序,创建具有权限的新用户,甚至安装后门
4.3. 要求攻击者能够对目标计算机进行物理访问
- 4.3.1. 大多是由能进入组织场所的内部威胁或恶意行为者完成
5. 应用程序垫片
5.1. 应用程序垫片(application shimming)是一种Windows应用程序兼容性框架,Windows创建该框架是为了允许程序在最初创建它的操作系统以外的版本上运行
- 5.1.1. 过去在Windows XP上运行的大多数应用程序现在都可以在Windows 10上运行
5.2. 框架的操作步骤
-
5.2.1. 它会创建一个垫片,以便在遗留程序和操作系统之间进行缓冲
-
5.2.2. 在程序执行期间,引用垫片缓存以确定它们是否需要使用垫片数据库
-
5.2.3. 如果是,垫片数据库将使用API来确保程序代码被有效地重定向,从而与操作系统通信
-
5.2.4. 由于垫片与操作系统直接通信,Windows决定增加一个安全特征,使其可以在用户模式下运行
5.3. 如果没有管理员权限,那么垫片就不能修改内核
-
5.3.1. 攻击者已经能够创建自定义垫片,可以绕过用户账户控制、将DLL注入正在运行的进程以及干预内存地址
-
5.3.2. 这些垫片可让攻击者以提升后的权限运行自己的恶意程序
-
5.3.3. 它们还可用于关闭安全软件,特别是Windows Defender
6. 绕过用户账户控制
6.1. Windows有一个结构良好的机制,用于控制网络和本地机器上所有用户的权限
6.2. 它有一个Windows用户账户控制(User Account Control,UAC)功能,作为普通用户和管理员级用户之间的门户
6.3. Windows UAC功能用于向程序授权以提升其权限,并以管理员级的权限运行
- 6.3.1. 只有管理员用户才能允许程序以这些权限运行
6.4. 一些Windows程序被允许提升权限或执行提升权限的COM对象,而无须事先提示用户
-
6.4.1. rundl32.exe用于加载自定义DLL,该DLL加载具有提升了权限的COM对象
-
6.4.1.1. 这甚至可以在受保护的目录中执行文件操作,而这些目录通常需要用户具有更高的访问权限
-
6.4.1.2. 这就使得UAC机制更容易被有经验的攻击者利用
-
6.5. Windows的eventvwr.exe,黑客可以对其进行破坏,它在运行时通常会自动提升权限,因此可以向其注入特定的二进制代码或脚本
6.6. 另一种击败UAC的方法是窃取管理员凭据
-
6.6.1. UAC机制被认为是一种独立的安全系统
-
6.6.2. 在一台计算机上运行的进程的权限对于横向系统来说仍然是未知的
-
6.6.3. 很难抓获滥用管理员凭据启动具有高级权限的进程的攻击者
7. 权限提升与容器逃逸漏洞
7.1. CVE-2022-0492
7.2. 在Linux内核kernel/cgroup/cgroup-v1.c的cgroup_release_agent_write中发现的一个漏洞,它会导致软件供应链攻击
7.3. 这个流程允许攻击者控制一个组织的软件构建过程,以破坏内部操作或在软件中嵌入攻击者控制的代码或后门,从而将下游客户置于风险之中
7.4. 容器是云计算环境中操作系统虚拟化的一种方法
-
7.4.1. 它允许用户使用隔离的资源规则来使用程序及其依赖项
-
7.4.2. 应用程序的代码可以以系统的方式与配置和依赖项捆绑在一起
-
7.4.3. 对于Kubernetes平台来说,容器逃逸是一个潜在的基本问题,在这些平台上,物理计算节点在许多不相关的容器之间共享
7.5. 缓解此漏洞的唯一方法是打补丁
8. DLL注入
8.1. DLL注入是攻击者使用的另一种权限提升方法
8.2. 它还涉及破坏Windows操作系统的合法进程和服务
8.3. DLL注入使用合法进程的上下文运行恶意代码
-
8.3.1. 通过使用被识别为合法的进程的上下文,攻击者可以获得几个优势,特别是获得了访问进程内存和权限的能力
-
8.3.2. 合法进程也掩盖了攻击者的行为
8.4. 反射式DLL注入
- 8.4.1. 这种方式更为有效,因为不必进行通常的Windows API调用即可加载恶意代码,从而绕过了DLL加载监控
8.5. 攻击者利用DLL注入攻击来修改Windows注册表、创建线程和加载DLL
- 8.5.1. 这些都是需要管理员权限的操作,但是攻击者在没有管理员权限的情况下偷偷执行这些操作
8.6. DLL注入不仅仅用于权限提升
8.7. 使用DLL注入技术来危害系统或向其他系统传播
-
8.7.1. Backdoor.Oldrea:将自身注入explore.exe进程
-
8.7.2. BlackEnergy:作为DLL注入svchost.exe进程
-
8.7.3. Duqu:将自身注入多个进程以规避检测
9. DLL搜索顺序劫持
9.1. DLL搜索顺序劫持是另一种用来危害DLL的技术,它允许攻击者提升他们的权限以进行攻击
9.2. 攻击者试图用恶意的DLL替换合法的DLL
9.3. 由于程序存储DLL的位置很容易被发现,因此攻击者可能会将恶意DLL放在遍历路径的最前面,以查找合法的DLL
9.4. 这种类型的攻击发生在将DLL存储在远程位置(如Web共享)的程序中
- 9.4.1. DLL更容易受到攻击,攻击者不再需要物理访问计算机就可以危害硬盘上的文件
9.5. 另一种攻击方式是修改程序加载DLL的方式
-
9.5.1. 攻击者修改manifest或local direction文件,使程序加载不同非预期的DLL
-
9.5.2. 攻击者可能会将程序重定向为始终加载恶意DLL,这将导致持续的权限提升
9.6. 当用户意识到某个应用程序运行不正常时,可以直接卸载它,这样就可以挫败DLL劫持攻击
10. Dylib劫持
10.1. Dylib劫持是一种用来针对苹果计算机的方法
10.2. 装有苹果OS X的计算机使用类似的搜索方法来寻找应该加载到程序中的动态库
10.3. 搜索方法同样基于路径,攻击者可以利用这些路径来提升权限
11. 漏洞探索
11.1. 漏洞探索是目前为数不多的水平权限提升方式之一
11.2. 这种类型的权限提升是在有编程错误的系统和程序上完成的
11.3. Windows中存在一个编程错误,允许攻击者使用常规域用户权限创建他们自己的具有域管理员权限的Kerberos票据,此漏洞称为MS14-068
11.4. 攻击者会利用操作系统的工作原理来利用未知的漏洞
12. 启动守护进程
12.1. 使用启动守护进程是另一种适用于基于苹果的操作系统(尤其是OS X)的权限提升方法
12.2. 当OS X启动时,launchd是系统初始化过程的关键进程
-
12.2.1. 该进程负责从/Library/LaunchDaemons中的plist文件加载守护进程的参数
-
12.2.2. 守护进程具有指向要自动启动的可执行文件的属性列表文件
-
12.2.3. 攻击者可以利用自动启动的进程实现权限提升
- 12.2.3.1. 可以安装自己的启动守护程序,并使用已启动的进程将其配置为在启动过程中启动
-
12.2.4. 启动守护程序以管理员权限创建,但它们却以root权限运行
- 12.2.4.1. 其权限将从admin提升到root
-
12.2.5. 攻击者依靠一个原本合法的进程来执行权限提升
13. Windows目标上的权限提升
13.1. PowerShell和Meterpreter
-
13.1.1. 可以使目标机器的用户在不知情的情况下允许合法程序运行,从而执行权限提升
-
13.1.2. 用户不知不觉地就允许恶意行为者提升了权限
13.2. Meterpreter首先被用于与目标建立会话
-
13.2.1. 攻击者利用这个会话向目标发送命令并有效地控制它
-
13.2.2. 用于请求目标机器上的用户在不知情的情况下提升攻击者的执行权限级
13.3. 攻击者必须将ask技术设置为通过PowerShell运行