Skip to content

Using ALPC Security Features to Compromise RPC Services

Wanjunjie ZhangYisheng He

Abusing Advanced Local Procedure Call (ALPC) security mechanisms to bypass isolation and compromise Windows RPC services.

Summary

ALPC and RPC Vulnerability Trends

Advanced Local Procedure Call (ALPC) is an Inter Process Communication method in the Windows kernel. In the past few years, Windows ALPC and RPC vulnerabilities have emerged in an endless stream. These vulnerabilities are mainly based on TOCTOU file operations, memory corruption vulnerabilities in RPC services and ALPC syscalls in ntoskrnl.

Flaws in Security Callbacks and Impersonation

Windows kernel provides a variety of security measures to ensure that the data and context accepted by the ALPC and RPC servers are safe. We noticed the attack surface in the security mechanism of the ALPC kernel, and we found a security flaw in this mechanism (magic) and successfully obtained the system privilege from unauthorized users (defeating magic by magic).

Exploiting Kernel IPC for Privilege Escalation

In this talk, we will first overview the communication mechanism of ALPC and RPC services. We will discuss the details of ALPC and RPC in the marshal/unmarshal process that has not been disclosed before. We'll also talk about the kernel security mechanism in ALPC syscalls. Then we will analyze some historical bugs in ALPC and RPC, and disclose the details of the vulnerability we found, discussing how we bypassed the security mechanism through a small security flaw in security mechanisms. Later we'll discuss the exploitation, you will learn about the multiple ways. Finally, We'll make conclusions and share our opinions on this attack surface, including some tips and opinions on how to find these kinds of bugs.

A view into ALPC-RPC by Clement Rouault and Thomas Imbert Hack.lu 2017 Exploiting Errors in Windows Error Reporting - Gal De Leon Windows Internals, Part 2, 7th Edition

Related talks