<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>iamelli0t's blog</title><link>https://iamelli0t.github.io/</link><description>Recent content on iamelli0t's blog</description><generator>Hugo</generator><language>en</language><lastBuildDate>Sun, 15 Aug 2021 00:00:00 +0000</lastBuildDate><atom:link href="https://iamelli0t.github.io/index.xml" rel="self" type="application/rss+xml"/><item><title>Analysis of DirectComposition Binding and Tracker object vulnerability</title><link>https://iamelli0t.github.io/2021/08/15/DirectComposition/</link><pubDate>Sun, 15 Aug 2021 00:00:00 +0000</pubDate><guid>https://iamelli0t.github.io/2021/08/15/DirectComposition/</guid><description>&lt;h2 id="directcomposition-introduction"&gt;DirectComposition introduction&lt;/h2&gt;
&lt;p&gt;Microsoft DirectComposition is a Windows component that enables high-performance bitmap composition with transforms, effects, and animations. Application developers can use the DirectComposition API to create visually engaging user interfaces that feature rich and fluid animated transitions from one visual to another.[1]&lt;br&gt;&lt;/p&gt;
&lt;p&gt;DirectComposition API provides COM interface via dcomp.dll, calls win32kbase.sys through win32u.dll export function, and finally sends data to client program dwm.exe (Desktop Window Manager) through ALPC to complete the graphics rendering operation:&lt;br&gt;
&lt;img alt="avatar" loading="lazy" src="https://iamelli0t.github.io/images/DirectComposition/1.png"&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;</description></item><item><title>Analysis of Chromium issue 1196683, 1195777</title><link>https://iamelli0t.github.io/2021/04/20/Chromium-Issue-1196683-1195777/</link><pubDate>Tue, 20 Apr 2021 00:00:00 +0000</pubDate><guid>https://iamelli0t.github.io/2021/04/20/Chromium-Issue-1196683-1195777/</guid><description>&lt;p&gt;On April 12, a code commit[1] in Chromium get people&amp;rsquo;s attention. This is a bugfix for some vulnerability in Chromium Javascript engine v8. At the same time, the regression test case regress-1196683.js for this bugfix was also submitted. Based on this regression test case, some security researcher published an exploit sample[2]. Due to Chrome release pipeline, the vulnerability wasn&amp;rsquo;t been fixed in Chrome stable update until April 13[3]. &lt;br&gt;&lt;/p&gt;
&lt;p&gt;Coincidentally, on April 15, another code commit[4] of some bugfix in v8 has also included one regression test case regress-1195777.js. Based on this test case, the exploit sample was exposed again[5]. Since the latest Chrome stable version does not pull this bugfix commit, the sample can still exploit in render process of latest Chrome. When the vulnerable Chormium browser accesses a malicious link without enabling the sandbox (&amp;ndash;no-sandbox), the vulnerability will be triggered and caused remote code execution.&lt;br&gt;&lt;/p&gt;</description></item><item><title>Exploiting Windows RPC to bypass CFG mitigation: analysis of CVE-2021-26411 in-the-wild sample</title><link>https://iamelli0t.github.io/2021/04/10/RPC-Bypass-CFG/</link><pubDate>Sat, 10 Apr 2021 00:00:00 +0000</pubDate><guid>https://iamelli0t.github.io/2021/04/10/RPC-Bypass-CFG/</guid><description>&lt;p&gt;The general method of browser render process exploit is: after exploiting the vulnerability to obtain user mode arbitrary memory read/write primitive, the vtable of DOM/js object is tampered to hijack the code execution flow. Then VirtualProtect is called by ROP chain to modify the shellcode memory to PAGE_EXECUTE_READWRITE, and the code execution flow is jumped to shellcode by ROP chain finally. After Windows 8.1, Microsoft introduced CFG (Control Flow Guard)[1] mitigation to verify the indirect function call, which mitigates the exploitation of tampering with vtable to get code execution.&lt;br&gt;&lt;/p&gt;</description></item><item><title>CVE-2021-1732: win32kfull xxxCreateWindowEx callback out-of-bounds</title><link>https://iamelli0t.github.io/2021/03/25/CVE-2021-1732/</link><pubDate>Thu, 25 Mar 2021 00:00:00 +0000</pubDate><guid>https://iamelli0t.github.io/2021/03/25/CVE-2021-1732/</guid><description>&lt;p&gt;CVE-2021-1732 is a 0-Day vulnerability exploited by the BITTER APT organization in one operation which was disclosed in February this year[1][2][3]. This vulnerability exploits a user mode callback opportunity in win32kfull module to break the normal execution flow and set the error flag of window object (tagWND) extra data, which results in kernel-space out-of-bounds memory access violation.&lt;/p&gt;
&lt;h2 id="root-cause-analysis"&gt;Root cause analysis&lt;/h2&gt;
&lt;p&gt;The root cause of CVE-2021-1732 is:&lt;br&gt;
In the process of creating window (CreateWindowEx), when the window object tagWND has extra data (tagWND.cbwndExtra != 0), the function pointer of user32!_xxxClientAllocWindowClassExtraBytes saved in ntdll!_PEB.kernelCallbackTable (offset+0x58) in user mode will be called via the nt!KeUserModeCallback callback mechanism, and the system heap allocator (ntdll!RtlAllocateHeap) is used to allocate the extra data memory in user-space.&lt;br&gt;
By hooking user32!_xxxClientAllocWindowClassExtraBytes function in user mode, and modifying the properties of the window object extra data in the hook function manually, the kernel mode atomic operation of allocating memory for extra data can be broken, then the out-of-bounds read/write ability based on the extra data memory is achieved finally.&lt;br&gt;&lt;br&gt;&lt;/p&gt;</description></item><item><title>CVE-2021-26411: Internet Explorer mshtml use-after-free</title><link>https://iamelli0t.github.io/2021/03/12/CVE-2021-26411/</link><pubDate>Fri, 12 Mar 2021 00:00:00 +0000</pubDate><guid>https://iamelli0t.github.io/2021/03/12/CVE-2021-26411/</guid><description>&lt;p&gt;In January of this year, Google and Microsoft respectively published blogs revealing attacks on security researchers by an APT group from NK[1][2]. A vulnerability in Internet Explorer used in this attack was fixed as CVE-2021-26411 in Microsoft&amp;rsquo;s Patch Tuesday this month[3]. The vulnerability is triggered when users of the affected version of Internet Explorer access a malicious link constructed by attackers, causing remote code execution.&lt;/p&gt;
&lt;h2 id="root-cause-analysis"&gt;Root cause analysis&lt;/h2&gt;
&lt;p&gt;The POC which can trigger the vulnerability is shown below:&lt;/p&gt;</description></item></channel></rss>