调试环境: Windows10 + rpc viewer + IDA pro什么是ALPC?
ALPC(高级本地过程调用)是一种内部的,未记录的进程间通信工具,由Microsoft Windows NT内核提供,用于在同一台计算机上的进程之间进行轻量级的通信。
Windows会在以下情况调用ALPC:
1.使用Microsoft RPC API在本地进行通信时,即在同一台机器上的进程之间进行通信
2.使用ALPC实现的Windows API
实际上我对第二点的细节一无所知,所以让我们来谈谈在本地进行通信的RPC API
漏洞分析
CVE-2018-8440是Windows TASK ALPC中的本地提权漏洞,攻击者可以创建他想要获取访问权限的文件的硬链接,然后可以滥用schedsvc.dll中的函数来设置此硬链接的DACL(自由访问控制列表)。
硬链接上的DACL设置将会导致目标文件上的相同操作,攻击者可以重写自动运行的exe或dll,然后获得管理员权限。
让我们看看我们如何以更简单的方式发现它
打开rpc viewer,查看系统中的接口
![b1938ee722f66cb5b8a27bb31b6e2eec.png](https://i-blog.csdnimg.cn/blog_migrate/97fa1f33475d8b259c07fc95d4a5d88f.jpeg)
函数名称会被显示在右侧。
我们使用IDA pro来分析schedsvc.dll,找到SchRpcSetSecurity函数的功能。