Yaakov's Group | Ciberseguridad

Informe de análisis de malware (AR20-216A)

Comparte este post en tus redes sociales

MAR-10292089-1.v1 – Troyano de acceso remoto chino: TAIDOOR

Detección y respuesta

Notificación

Este informe se proporciona «tal cual» con fines informativos únicamente. El Departamento de Seguridad Nacional (DHS) no ofrece garantías de ningún tipo con respecto a la información contenida en este documento. El DHS no respalda ningún producto o servicio comercial al que se haga referencia en este boletín o de otro modo.

Este documento está marcado TLP: BLANCO – La divulgación no está limitada. Las fuentes pueden usar TLP: BLANCO cuando la información conlleva un riesgo mínimo o nulo de mal uso, de acuerdo con las normas y procedimientos aplicables para la divulgación pública. Sujeto a las normas estándar de derechos de autor, TLP: la información BLANCA se puede distribuir sin restricciones. Para obtener más información sobre el Protocolo de semáforos (TLP), consulte http://www.us-cert.gov/tlp.

Resumen
Descripción

Este Informe de Análisis de Malware (MAR) es el resultado de los esfuerzos analíticos entre la Agencia de Seguridad de Ciberseguridad e Infraestructura (CISA), la Oficina Federal de Investigaciones (FBI) y el Departamento de Defensa (DoD). Trabajando con socios del gobierno de EE. UU., CISA, FBI y DoD identificaron una variante de malware utilizada por los ciber actores del gobierno chino, que se conoce como TAIDOOR. Para obtener más información sobre la actividad cibernética maliciosa china, visite https [:] // www [.] Us-cert.gov/china.

El FBI confía en que los actores del gobierno chino estén utilizando variantes de malware junto con servidores proxy para mantener una presencia en las redes de víctimas y para seguir explotando la red. CISA, FBI y DoD están distribuyendo este MAR para permitir la defensa de la red y reducir la exposición a la actividad cibernética maliciosa del gobierno chino.

Este MAR incluye acciones de respuesta sugeridas y técnicas de mitigación recomendadas. Los usuarios o administradores deben marcar la actividad asociada con el malware e informar la actividad a la Agencia de Seguridad de Infraestructura y Ciberseguridad (CISA) o al Cyber ​​Watch del FBI (CyWatch), y dar a la actividad la máxima prioridad para una mitigación mejorada.

Los binarios maliciosos identificados como una versión x86 y x64 de Taidoor se enviaron para su análisis. Taidoor se instala en el sistema de destino como una biblioteca de enlaces dinámicos (DLL) de servicio y se compone de dos archivos. El primer archivo es un cargador, que se inicia como un servicio. El cargador descifra el segundo archivo y lo ejecuta en la memoria, que es el troyano de acceso remoto (RAT) principal.

Para obtener una copia descargable de los COI, vea MAR-10292089-1.v1.stix.

Archivos enviados (4)

0d0ccfe7cd476e2e2498b854cef2e6f959df817e52924b3a8bcdae7a8faaa686 (svchost.dll)

363ea096a3f6d06d56dc97ff1618607d462f366139df70c88310bbf77b9f9f90 (svchost.dll)

4a0688baf9661d3737ee82f8992a0a665732c91704f28688f643115648c107d4 (ml.dll)

6e6d3a831c03b09d9e4a54859329fbfd428083f8f5bc5f27abbfdd9c47ec0e57 (rasautoex.dll)

Dominios (1)
cnaweb.mrslove.com

IPs (1)
210.68.69.82

Recomendaciones

4a0688baf9661d3737ee82f8992a0a665732c91704f28688f643115648c107d4

Tags

loader

Detalles
Name ml.dll
Size 43520 bytes
Type PE32 executable (DLL) (GUI) Intel 80386, for MS Windows
MD5 6aa08fed32263c052006d977a124ed7b
SHA1 9a6795333e3352b56a8fd506e463ef634b7636d2
SHA256 4a0688baf9661d3737ee82f8992a0a665732c91704f28688f643115648c107d4
SHA512 179e9d9ccbc268cc94a7f6d31f29cf0f7a163db829a4557865f3c1f98614f94ceb7b90273d33eb49ef569cfc9013b76c7de32d7511639a7ab2c352f3137d51b6
ssdeep 768:uGRVnBnwS5kBKsl4anxKFhx3W3kGmifmUED7Bn5f6dBywFmZb:fDeSnbx3okvxVwFI
Entropy 5.864467

Antivirus
No se encontraron coincidencias.

Reglas de YARA
No se encontraron coincidencias.

Partidos ssdeep
No se encontraron coincidencias.

Metadatos de PE
Fecha de compilación 2019-01-03 07: 16: 12-05: 00
Importar hash dbb469cb14550e6085a14b4b2d41ede9
Secciones de PE
Nombre MD5 Tamaño bruto Entropía
62ab3bae7859f6f6dc68366d283ad53e encabezado 1024 2.511204
63550f7c47453c2809834382e228637d .text 23040 6.442964
a30bb3ac9b6694a8980c39c0267c9a83 .rdata 11264 4.926331
ad5814673b8579de78be5b6b929d2405 .data 3072 2.629944
619ecca9c8d1073a0b90f5fffac42ec8 .rsrc 512 5.105029
0f292021853e7ca76c4196bcbe9afdaf .reloc 4608 3.712197
Packers / Compiladores / Cryptors
Microsoft Visual C ++ DLL * firmar por CodeRipper
Relaciones
4a0688baf9 … Usado 363ea096a3f6d06d56dc97ff1618607d462f366139df70c88310bbf77b9f9f90

 

Descripción
Este archivo es un archivo DLL de Windows de 32 bits. El archivo «ml.dll» es un cargador Taidoor. El archivo utiliza la función de exportación llamada «MyStart» para descifrar y cargar «svchost.dll» (8CF683B7D181591B91E145985F32664C), que se identificó como malware Taidoor. Taidoor es una rata tradicional.

La función «MyStart» busca el nombre de archivo «svchost.dll» en su directorio en ejecución. Si se encuentra ese archivo, la DLL leerá «svchost.dll» en la memoria. Después de que el archivo se lee en la memoria, la DLL utiliza un algoritmo de cifrado RC4 para descifrar el contenido del archivo. La clave RC4 utilizada para el descifrado es «ar1z7d6556sAyAXtUQc2».

Una vez que el cargador ha terminado de descifrar «svchost.dll», el cargador ahora tiene una versión descifrada de Taidoor, que es una DLL. El cargador luego usa las llamadas API GetProcessHeap, GetProcAddress y LoadLibrary para cargar las siguientes DLL, KERNEL32.dll, ADVAPI32.dll y WS2_32.dll, que Taidoor utilizará.

A continuación, el cargador busca la exportación «Inicio» en la DLL de Taidoor y ejecuta esa función.

363ea096a3f6d06d56dc97ff1618607d462f366139df70c88310bbf77b9f9f90
Etiquetas
troyano de acceso remoto

Detalles
Nombre svchost.dll
Tamaño 158208 bytes
Escribir datos
MD5 8cf683b7d181591b91e145985f32664c
SHA1 f0a20aaf4d2598be043469b69075c00236b7a89a
SHA256 363ea096a3f6d06d56dc97ff1618607d462f366139df70c88310bbf77b9f9f90
SHA512 b75401d591caee812c5c1a669ce03c47f78f1c40a2fa31cf58a0318ffbfc032b82cb1b6d2a599ce1b3547be5a404f55212156640b095f895a9aac3c58ec4bad8
ssdeep 3072: fRxYk0d5 + 6 / kdGyfitoxNsUZE2XZ + 4Duz6fCKmjjwF5PaT: JqkoiGiZxE4qRKqgIT
Entropía 7.998691
Antivirus
No se encontraron coincidencias.

Reglas YARA
  • rule CISA_10292089_01 : rat loader TAIDOOR
    {
    meta:
    Author = «CISA Code & Media Analysis»
    Incident = «10292089»
    Date = «2020-06-18»
    Last_Modified = «20200616_1530»
    Actor = «n/a»
    Category = «Trojan Loader Rat»
    Family = «TAIDOOR»
    Description = «Detects Taidoor Rat Loader samples»
    MD5_1 = «8cf683b7d181591b91e145985f32664c»
    SHA256_1 = «363ea096a3f6d06d56dc97ff1618607d462f366139df70c88310bbf77b9f9f90»
    MD5_2 = «6627918d989bd7d15ef0724362b67edd»
    SHA256_2 = «0d0ccfe7cd476e2e2498b854cef2e6f959df817e52924b3a8bcdae7a8faaa686»
    strings:
    $s0 = { 8A 46 01 88 86 00 01 00 00 8A 46 03 88 86 01 01 00 00 8A 46 05 88 86 02 01 00 00 8A 46 07 88 86 03 01 00 00 }
    $s1 = { 88 04 30 40 3D 00 01 00 00 7C F5 }
    $s2 = { 0F BE 04 31 0F BE 4C 31 01 2B C3 2B CB C1 E0 04 0B C1 }
    $s3 = { 8A 43 01 48 8B 6C 24 60 88 83 00 01 00 00 8A 43 03 }
    $s4 = { 88 83 01 01 00 00 8A 43 05 88 83 02 01 00 00 8A 43 07 88 83 03 01 00 00 }
    $s5 = { 41 0F BE 14 7C 83 C2 80 41 0F BE 44 7C 01 83 C0 80 C1 E2 04 0B D0 }
    $s6 = { 5A 05 B2 CB E7 45 9D C2 1D 60 F0 4C 04 01 43 85 3B F9 8B 7E }
    condition:
    ($s0 and $s1 and $s2) or ($s3 and $s4 and $s5) or ($s6)
    }

Partidos ssdeep
No se encontraron coincidencias.

Relaciones
363ea096a3 … Used_By 4a0688baf9661d3737ee82f8992a0a665732c91704f28688f643115648c107d4
363ea096a3 … Connected_To cnaweb.mrslove.com
363ea096a3 … Connected_To 210.68.69.82

Descripción
Este archivo encriptado se ha identificado como el Taidoor RAT cargado por «ml.dll» (6AA08FED32263C052006D977A124ED7B). Una vez que el cargador ha terminado de descifrar este archivo, tiene una versión descifrada de Taidoor, que es una DLL. El cargador luego usa las llamadas API GetProcessHeap, GetProcAddress y LoadLibrary para cargar las siguientes DLL, KERNEL32.dll, ADVAPI32.dll y WS2_32.dll, que este archivo utilizará.

A continuación, el cargador «ml.dll» (6AA08FED32263C052006D977A124ED7B) busca la exportación «Inicio» en el Taidoor DLL y ejecuta esa función. La función «Inicio» de Taidoor comienza descifrando una multitud de cadenas de importación que usará para importar dinámicamente funciones de las DLL que se han cargado. Se utiliza un cifrado de flujo complejo para descifrar las cadenas cifradas utilizadas por este malware. Las 85 cadenas incluyen API y cadenas utilizadas por otras estructuras, como una estructura capaz de permitir que el malware cargue cargas de complementos externos. El malware utiliza la siguiente clave de 7 bytes para generar un valor de cifrado de flujo inicial de 256 bytes: «19 34 F4 D2 E9 B3 0F».

A continuación, el algoritmo rellena el valor de cifrado inicial de 256 a 260 bytes utilizando 4 bytes ya contenidos dentro del bloque de 256 bytes (Figura 2). El algoritmo realiza el cifrado de 2 bytes a la vez desde los bloques de cadenas cifrados. Comprime los 2 bytes en 1 byte antes del proceso de descifrado restando el primer byte y el segundo byte en 0x80h. El resultado de realizar la resta en el primer byte se desplaza a la izquierda por cuatro. Ambos valores se suman luego usando la suma booleana (OR), lo que da como resultado un solo byte que el cifrado descifra.

Usando una operación simple OR (XOR) simple, el bloque de 260 bytes se baraja y modifica para producir el byte que se utiliza para descifrar el byte recién comprimido. El byte que se descifra se vuelve a colocar en el búfer de bloque de cifrado de 260 bytes. Esto produce efectivamente un efecto de desplazamiento de bloque recurrente donde el valor del bloque de cifrado de 260 bytes cambia como resultado de la secuencia de bytes que recibe. Este es un método efectivo para frustrar los ataques heurísticos o de fuerza bruta.

Taidoor también utiliza el algoritmo AES para descifrar un archivo de configuración «1616 byte». Este archivo de configuración contiene los servidores de comando y control (C2) y posiblemente otra clave de cifrado utilizada más adelante. La clave AES utilizada en hexadecimal es «2B 7E 15 16 28 AE D2 A6 AB F7 15 88 09 CF 4F 3C» IV: «00».

–Comience C2–
cnaweb.mrslove.com
210.68.69.82
–Fin C2–

Después de completar esta función de descifrado, Taidoor recorre el registro de eventos del sistema. Buscando específicamente los identificadores de evento 6005 (servicio de evento iniciado) y 6006 (servicio de evento detenido). Después de completar sus funciones de descifrado, Taidoor intenta conectarse a su servidor C2. Una vez que Taidoor y el servidor C2 finalizan el protocolo de enlace TCP, Taidoor espera a que se envíe al menos un byte de datos desde el servidor C2. Taidoo no verifica este byte o bytes, se puede enviar cualquier cosa.

Después de que Taidoor haya confirmado que ha recibido al menos un byte de datos del servidor, Taidoor envía un paquete formateado personalizado a través del puerto 443. Nota: este paquete no sigue el protocolo TLS y es fácilmente identificable. El paquete inicial enviado desde Taidoor al servidor C2 en este caso siempre comienza con «F ::» seguido de la clave de cifrado que Taidoor y el servidor C2 utilizarán para cifrar todas las comunicaciones siguientes.

Después de enviar la clave de cifrado al servidor C2, Taidoor espera que el servidor responda con «200 OK \ r \ n \ r \ n». Nota: Esta respuesta se encuentra en el puerto 443, pero no está encriptada, se envía en texto claro.

Después de que Taidoor se haya conectado con éxito a su C2, crea un archivo de configuración INI de Windows y copia cmd.exe en la carpeta temporal del sistema.

-Begin Windows INI file created–
C:\ProgramData\Microsoft\~svc_.TMp
–End Windows INI file created–

–Begin contents of INI file–
[Micros]
source=c:\temp\cmd.exe
–End contents of INI file–

Nota: Taidoor no tiene una función integrada que le permita persistir más allá de un reinicio del sistema. Aparece del volcado de memoria del sistema infectado, se instaló como un servicio DLL por algún otro medio.

El autor del malware nunca eliminó el archivo de símbolos para la compilación «ml.dll». Este artefacto proporciona información adicional que el autor del malware pretendía que este binario hiciera, «DllHijackPlushInject».

–Begin symbol file artifact–
c:\Users\user\Desktop\DllHijackPlushInject\version\Release\MemoryLoad.pdb
–End symbol file artifact–

El siguiente script IDA se puede usar para descifrar todas las cadenas encriptadas y demostrar cómo se encripta una secuencia de bytes utilizando el bloque de cifrado inicial de 260 bytes generado a partir del valor clave «19 34 F4 D2 E9 B3 0F»:

–Begin IDA script–
import os
import sys
import idaapi
cwd = os.getcwd()
cwd = ‘/Users/terminator/PycharmProjects/rc4_test//’
cipherblock = []
pb_fname = cwd + «//» + ‘pristine_block.bin’
es_fname = cwd + «//» + ‘encrypted_strings.bin’
secure_strings_func = 0x10003cb7
encrypted_strings_block = 0x1001c434
enc_string_size = 2875
global_decrypted_stringz = []
try:
fh = open(pb_fname, ‘rb’)
read_bitez = fh.read()
fh.close()
except Exception as e:
print(«Couldnt read filename. Reading from code (Attempt)»)
print(«Cipher Block len: » + str(len(cipherblock)))
for idx in read_bitez: # convert them to ords to do the math!
idx = ord(idx)
cipherblock.append(idx)
def decrypt(encrypted_string, cipherblock): # **CALL THIS FUNC to decrypt stuff!
string_len = len(encrypted_string)
string_len = string_len / 2
throttle = 0
da_string = «»
while True:
cipherblock, decoded_byte = decrypt_it(cipherblock, encrypted_string, throttle)
try:
charr = chr(decoded_byte)
if throttle:
da_string += charr
except Exception as e:
pass
throttle += 1 # INCREMENT before doing the compare
if throttle == string_len:
global_decrypted_stringz.append(da_string)
return da_string
def decrypt_it(cipherblock, encoded_data, throttle):
ebx = 128 # *0x80
ecx = throttle
ecx = ecx + ecx
eax = encoded_data[ecx]
ecx = encoded_data[ecx + 1]
eax = eax – ebx
ecx = ecx – ebx
eax = eax << 4
eax = eax | ecx
cipherblock, decoded_byte = outter_shuffle_func(cipherblock, eax)
return cipherblock, decoded_byte
def outter_shuffle_func(cipherblock, encoded_bite):
# before inner func
cipherblock = inner_shuffle_func(cipherblock)
# after inner func
eax = cipherblock[258]
ecx = cipherblock[eax]
eax = cipherblock[260]
eax = cipherblock[eax]
edx = cipherblock[257]
edi = cipherblock[256]
edx = cipherblock[edx]
edi = cipherblock[edi]
ecx = eax + ecx
eax = cipherblock[259]
eax = cipherblock[eax]
ecx = eax + ecx
eax = 255
ecx = ecx & eax
ecx = cipherblock[ecx]
cl = cipherblock[ecx]
edx = edx + edi
edx = edx & eax
cl = cipherblock[edx] ^ cl # **actual manipulation here
al = encoded_bite
cl = cl ^ al
cipherblock[260] = al
cipherblock[259] = cl
al = cl
decoded_byte = al
return cipherblock, decoded_byte
def wrap_around_strip(da_byte):
da_byte_str = str(hex(da_byte))
da_byte_str = da_byte_str.split(«x»)
da_byte_str = da_byte_str[1]
str_length = len(da_byte_str)
if str_length > 2:
got_em = «0x»
got_em += da_byte_str[str_length – 2]
got_em += da_byte_str[str_length – 1]
got_em = int(got_em, 16)
return got_em
return da_byte
def add_bites(a, b):
for_return = a + b
for_return = wrap_around_strip(for_return)
return for_return
def inner_shuffle_func(cipherblock_orig): # *SHUFFLE The cipher block here!
cipherblock = []
for idx in cipherblock_orig: # lets make a copy!
cipherblock.append(idx)
al = cipherblock[256]
esi = cipherblock[260]
dl = cipherblock[esi]
al = al & 0xffffff
edi = al
bl = cipherblock[edi]
da_byte = cipherblock[257]
da_byte = add_bites(da_byte, bl)
cipherblock[257] = da_byte
al += 1
cipherblock[256] = al
eax = cipherblock[257]
al = cipherblock[eax]
cipherblock[esi] = al
esi = cipherblock[259]
bl = cipherblock[esi]
edi = cipherblock[257]
cipherblock[edi] = bl
esi = cipherblock[256]
eax = cipherblock[259]
bl = cipherblock[esi]
cipherblock[eax] = bl
eax = cipherblock[256]
cipherblock[eax] = dl
eax = dl
al = cipherblock[eax]
temp_byte = cipherblock[258]
temp_byte = add_bites(temp_byte, al)
cipherblock[258] = temp_byte
return cipherblock
def decode_from_addr(target_addr, label_loc, pointer_addr, label_them):
init_bitez = []
ord_bitez = []
while True:
temp_bite = idaapi.get_byte(target_addr)
if not temp_bite:
break
init_bitez.append(temp_bite)
target_addr += 1
for idx in init_bitez:
ord_bitez.append(idx)
cipher_block_copy = []
for idx in cipherblock:
cipher_block_copy.append(idx)
dec_string = decrypt(ord_bitez, cipher_block_copy)
if label_them:
SetColor(label_loc, CIC_ITEM, 0xc7c7ff)
MakeComm(label_loc, dec_string)
SetColor(pointer_addr, CIC_ITEM, 0xc7c7ff)
MakeComm(pointer_addr, dec_string)
print(dec_string)
def find_initial_loc(target_addr):
addr = target_addr
give_up = 5
attempts = 0
while True:
addr = idc.PrevHead(addr)
if GetMnem(addr) == «push» and «off_» in GetOpnd(addr, 0):
string_addr = GetOperandValue(addr, 0)
print(«Found String Loc: » + str(hex(string_addr)))
pointer_addr = idaapi.get_dword(string_addr)
print(hex(pointer_addr))
decode_from_addr(pointer_addr, addr, string_addr, 1)
return string_addr
attempts += 1
if attempts == give_up:
return 0
enc_stringz_data = []
try:
fh = open(es_fname)
da_data = fh.read()
fh.close()
for idx in da_data:
x = ord(idx)
enc_stringz_data.append(x)
except Exception as e:
print(«Couldnt read encrypted strings file. Reading from Malware!»)
addr_throttle = encrypted_strings_block
while len(enc_stringz_data) < enc_string_size:
x = idaapi.get_byte(addr_throttle)
enc_stringz_data.append(x)
encrypted_stringz = [] # *list of lists
temp_string = []
for idx in enc_stringz_data:
if idx:
temp_string.append(idx)
if not idx:
if len(temp_string):
encrypted_stringz.append(temp_string)
temp_string = []
decrypted_stringz = []
debug_it = False
if debug_it:
for enc_string in encrypted_stringz:
cipher_block_copy = []
for idx in cipherblock:
cipher_block_copy.append(idx)
dec_string = decrypt(enc_string, cipher_block_copy)
decrypted_stringz.append(dec_string)
print(«———————-«)
for idx in decrypted_stringz:
print(idx)
print(«Complete»)
addresses_to = []
for addr in XrefsTo(secure_strings_func):
print(«———«)
print(hex(addr.frm))
find_initial_loc(addr.frm)
print(«———«)
print(«\n»)
addresses_to.append(addr.frm)
print(«IDA IDB Labeled. Decrypted Strings Below:»)
print(«—————————–«)
for idx in global_decrypted_stringz:
print idx
–End IDA script–

Las cadenas descifradas por el script IDA se muestran a continuación:

–Begin decrypted strings–
kernel32.dll
InitializeCriticalSection
GetLocalTime
LeaveCriticalSection
GetModuleFileNameA
Sleep
ExpandEnvironmentStringsA
GetSystemTime
SystemTimeToFileTime
GetTickCount
CreatePipe
DuplicateHandle
GetCurrentProcess
DisconnectNamedPipe
TerminateProcess
PeekNamedPipe
ReadFile
CreateFileA
SetFileTime
OpenProcess
GetFileTime
WaitForSingleObject
WriteFile
DeleteFileA
GetCurrentProcessId
GetAdaptersInfo
advapi32.dll
RegOpenKeyExA
RegQueryValueExA
RegCloseKey
OpenEventLogA
ReadEventLogA
CloseEventLog
RegDeleteValueA
RegCreateKeyExA
RegNotifyChangeKeyValue
Can’t open update file.
File too small.
SOFTWARE\Microsoft\Windows NT\CurrentVersion
RValue
SOFTWARE\Microsoft\Windows NT\CurrentVersion
RValue
%temp%\~lpz.zp
Can’t find plug file
Can’t find plug file
Can’t load more plug
Load Dll Plug Failed
%s\uaq*.dll
\services.exe
Create File Failed
Create File Failed
rundll32.exe
SOFTWARE\Microsoft\Windows NT\CurrentVersion
RValue
RValue
%SystemRoot%\system32\cmd.exe
source
Micros
CmdPage
InfoPage
cmd.exe
source
Micros
avp.exe
shell process Terminated
ReadShellThread closed
Create result file failed
Create result file failed
CreateProcess Error: %d
CreateProcess Error: %d
CreateProcess succ
Open file Failed
File Size is 0
Open file Failed
Create File Failed
Create File Failed
no shell
\services.exe
200
F::
200 OK
–End decrypted strings–

cnaweb.mrslove.com

Tags

command-and-control

Puertos
  • 443 TCP
Whois

Queried whois.publicdomainregistry.com with «mrslove.com»…

Domain Name: MRSLOVE.COM
Registry Domain ID: 70192241_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.publicdomainregistry.com
Registrar URL: www.publicdomainregistry.com
Updated Date: 2020-02-26T08:01:27Z
Creation Date: 2001-05-02T02:10:12Z
Registrar Registration Expiration Date: 2021-05-02T02:10:12Z
Registrar: PDR Ltd. d/b/a PublicDomainRegistry.com
Registrar IANA ID: 303
Domain Status: OK https://icann.org/epp#OK
Registry Registrant ID: Not Available From Registry
Registrant Name: changeip operations
Registrant Organization: changeip.com
Registrant Street: 1200 brickell ave
Registrant City: miami
Registrant State/Province: florida
Registrant Postal Code: 33131
Registrant Country: US
Registrant Phone: +1.800791337
Registrant Phone Ext:
Registrant Fax:
Registrant Fax Ext:
Registrant Email: noc@changeip.com
Registry Admin ID: Not Available From Registry
Admin Name: changeip operations
Admin Organization: changeip.com
Admin Street: 1200 brickell ave
Admin City: miami
Admin State/Province: florida
Admin Postal Code: 33131
Admin Country: US
Admin Phone: +1.800791337
Admin Phone Ext:
Admin Fax:
Admin Fax Ext:
Admin Email: noc@changeip.com
Registry Tech ID: Not Available From Registry
Tech Name: changeip operations
Tech Organization: changeip.com
Tech Street: 1200 brickell ave
Tech City: miami
Tech State/Province: florida
Tech Postal Code: 33131
Tech Country: US
Tech Phone: +1.800791337
Tech Phone Ext:
Tech Fax:
Tech Fax Ext:
Tech Email: noc@changeip.com
Name Server: ns1.changeip.com
Name Server: ns2.changeip.com
Name Server: ns3.changeip.com
Name Server: ns4.changeip.com
Name Server: ns5.changeip.com
DNSSEC: Unsigned
Registrar Abuse Contact Email: abuse-contact@publicdomainregistry.com
Registrar Abuse Contact Phone: +1.2013775952
URL of the ICANN WHOIS Data Problem Reporting System: http://wdprs.internic.net/

Relaciones
cnaweb.mrslove.com Connected_From 363ea096a3f6d06d56dc97ff1618607d462f366139df70c88310bbf77b9f9f90
Descripción
svchost.dll (8cf683b7d181591b91e145985f32664c) intenta conectarse al siguiente dominio.

210.68.69.82

Tags

command-and-control

Puertos
  • 443 TCP
Whois

Queried whois.apnic.net with «210.68.69.82»…

% Information related to ‘210.68.0.0 – 210.68.255.255’

% Abuse contact for ‘210.68.0.0 – 210.68.255.255’ is ‘hostmaster@twnic.net.tw’

inetnum:        210.68.0.0 – 210.68.255.255
netname:        SEEDNET
descr:         Digital United Inc.
descr:         9F, No. 125, Song Jiang Road
descr:         Taipei, Taiwan
country:        TW
admin-c:        JC256-AP
tech-c:         JC256-AP
mnt-by:         MAINT-TW-TWNIC
mnt-irt:        IRT-TWNIC-AP
status:         ALLOCATED PORTABLE
last-modified: 2018-12-12T06:04:02Z
source:         APNIC

irt:            IRT-TWNIC-AP
address:        Taipei, Taiwan, 100
e-mail:         hostmaster@twnic.net.tw
abuse-mailbox: hostmaster@twnic.net.tw
admin-c:        TWA2-AP
tech-c:         TWA2-AP
auth:         # Filtered
remarks:        Please note that TWNIC is not an ISP and is not empowered
remarks:        to investigate complaints of network abuse.
mnt-by:         MAINT-TW-TWNIC
last-modified: 2015-10-08T07:58:24Z
source:         APNIC

person:         Jonas Chou
nic-hdl:        JC256-AP
e-mail:         Jonaschou@fareastone.com.tw
address:        2F, No.218, Rueiguang Road
address:        Taipei, 114, R.O.C
phone:         +886-2-7700-8888
fax-no:         +886-2-7700-8888
country:        TW
mnt-by:         MAINT-TW-TWNIC
last-modified: 2012-12-18T10:10:01Z
source:         APNIC

% Information related to ‘210.68.69.80 – 210.68.69.87’

inetnum:        210.68.69.80 – 210.68.69.87
netname:        42888423-TW
descr:         Taipei Taiwan
country:        TW
admin-c:        NN3251-TW
tech-c:         NN3251-TW
mnt-by:         MAINT-TW-TWNIC
remarks:        This information has been partially mirrored by APNIC from
remarks:        TWNIC. To obtain more specific information, please use the
remarks:        TWNIC whois server at whois.twnic.net.
changed:        DavidLin1@fareastone.com.tw 20180330
status:         ASSIGNED NON-PORTABLE
source:         TWNIC

person:         NULL
address:        N/A Taiwan
country:        TW
e-mail:         joy25488@gmail.com
nic-hdl:        NN3251-TW
changed:        hostmaster@twnic.net.tw 20180331
source:         TWNIC

% Esta consulta fue atendida por APNIC Whois Service versión 1.88.15-SNAPSHOT (WHOIS-US4)

Relaciones
210.68.69.82 Conectado_desde 363ea096a3f6d06d56dc97ff1618607d462f366139df70c88310bbf77b9f9f90
Descripción
svchost.dll (8cf683b7d181591b91e145985f32664c) intenta conectarse a la siguiente dirección IP.

6e6d3a831c03b09d9e4a54859329fbfd428083f8f5bc5f27abbfdd9c47ec0e57

Tags

loader

Detailles
Name rasautoex.dll
Size 50176 bytes
Type PE32+ executable (DLL) (GUI) x86-64, for MS Windows
MD5 4ec8e16d426a4aaa57c454c58f447c1e
SHA1 5c89629e5873072a9ca3956b67cf7b5080312c80
SHA256 6e6d3a831c03b09d9e4a54859329fbfd428083f8f5bc5f27abbfdd9c47ec0e57
SHA512 284e0dff33f4ffb6d55f2fdb1de81d5644fb2671aa358dfb72b34a50632f708b7b071202202efec0b48bc0f622c6947f8ccf0818ebaff7277eda854cee67eeaa
ssdeep 768:DN5oCkAI3effi5djegTXLzAl78S3ge0eYUi3EaQkDdXptOKeosAmMotwEX1:DN5oCk1eyTXn+qXUi3pptJMwE
Entropy 5.681253

Antivirus
No se encontraron coincidencias.

Reglas de YARA
No se encontraron coincidencias.

Partidos ssdeep
No se encontraron coincidencias.

PE Metadata
Compile Date 2019-01-04 02:11:55-05:00
Import Hash 956b48719c7be61f48572c8fa464e00c
Secciones PE
MD5 Name Raw Size Entropy
a9b389fc8171131551c6570d2395de57 header 1024 2.619293
8dabe7bfc2ee6b9819f554b2694c98eb .text 26624 6.217867
8e63e6b885c3d270ccfb7607b9662601 .rdata 14848 4.618383
d44f2a519c2649244a8c87581872b483 .data 4096 2.280898
0aa4114597794059e1d4a2c246c7d7a5 .pdata 2048 4.331432
7197f896bddfd6e434b1d5703bf0c5a2 .rsrc 512 5.097979
54bb45b94c64d3717b1be8194fb4a6a7 .reloc 1024 3.689756

Descripción
Este archivo es un archivo DLL de Windows de 64 bits. El archivo «rasautoex.dll» es un cargador de Taidoor y descifrará y ejecutará la versión de 64 bits de Taidoor «svchost.dll» (6627918d989bd7d15ef0724362b67edd) en la memoria.

0d0ccfe7cd476e2e2498b854cef2e6f959df817e52924b3a8bcdae7a8faaa686

Tags

remote-access-trojan

Detalles
Name svchost.dll
Size 183808 bytes
Type data
MD5 6627918d989bd7d15ef0724362b67edd
SHA1 21e29034538bb4e3bc922149ef4312b90b6b4ea3
SHA256 0d0ccfe7cd476e2e2498b854cef2e6f959df817e52924b3a8bcdae7a8faaa686
SHA512 83ee751b15d8fd8477b8ecf8d33a4faf30b75aceb90c0e58ebf9dbbfc1d354f7e772f126b8462fd5897a4015a6f5e324d34900ff7319e8cc791fb239ca603ddc
ssdeep 3072:7PR4kaQOrd41zdruwiAyr/Ta1XxKH3zVrWvcfWslmOLdXFKY8SIMjUPpF5:3aQLgwiAyr/TiXxMsvcrxbnjUPP5
Entropy 7.999011

Antivirus
No se encontraron coincidencias.

Reglas ARA
  • rule CISA_10292089_01 : rat loader TAIDOOR
    {
    meta:
    Author = «CISA Code & Media Analysis»
    Incident = «10292089»
    Date = «2020-06-18»
    Last_Modified = «20200616_1530»
    Actor = «n/a»
    Category = «Trojan Loader Rat»
    Family = «TAIDOOR»
    Description = «Detects Taidoor Rat Loader samples»
    MD5_1 = «8cf683b7d181591b91e145985f32664c»
    SHA256_1 = «363ea096a3f6d06d56dc97ff1618607d462f366139df70c88310bbf77b9f9f90»
    MD5_2 = «6627918d989bd7d15ef0724362b67edd»
    SHA256_2 = «0d0ccfe7cd476e2e2498b854cef2e6f959df817e52924b3a8bcdae7a8faaa686»
    strings:
    $s0 = { 8A 46 01 88 86 00 01 00 00 8A 46 03 88 86 01 01 00 00 8A 46 05 88 86 02 01 00 00 8A 46 07 88 86 03 01 00 00 }
    $s1 = { 88 04 30 40 3D 00 01 00 00 7C F5 }
    $s2 = { 0F BE 04 31 0F BE 4C 31 01 2B C3 2B CB C1 E0 04 0B C1 }
    $s3 = { 8A 43 01 48 8B 6C 24 60 88 83 00 01 00 00 8A 43 03 }
    $s4 = { 88 83 01 01 00 00 8A 43 05 88 83 02 01 00 00 8A 43 07 88 83 03 01 00 00 }
    $s5 = { 41 0F BE 14 7C 83 C2 80 41 0F BE 44 7C 01 83 C0 80 C1 E2 04 0B D0 }
    $s6 = { 5A 05 B2 CB E7 45 9D C2 1D 60 F0 4C 04 01 43 85 3B F9 8B 7E }
    condition:
    ($s0 and $s1 and $s2) or ($s3 and $s4 and $s5) or ($s6)
    }

Partidos ssdeep
No se encontraron coincidencias.

Descripción
Este archivo encriptado ha sido identificado como el Taidoor RAT cargado por “rasautoex.dll» (4ec8e16d426a4aaa57c454c58f447c1e). Este archivo contiene la misma funcionalidad y claves de encriptación que la versión de 32 bits “svchost.dll” (8CF683B7D181591B91E145985F32664C).

Este archivo llama a un C2 diferente. Este C2 también se observó en la memoria del sistema infectado proporcionado para el análisis.

–Begin C2–
infonew.dubya.net
–End C2–

El autor de malware nunca eliminó el archivo de símbolo para «rasautoex.dll» como con la versión de 32 bits. Sin embargo, este artefacto proporciona información adicional que el autor del malware pretendía que este binario hiciera, «MemLoad (pass symantec)».

–Begin symbol file artifact–
C:\Users\user\Desktop\MemLoad(pass symantec)\version\x64\Release\MemoryLoad.pdb
–End symbol file artifact–

Resumen de Relaciones

4a0688baf9… Used 363ea096a3f6d06d56dc97ff1618607d462f366139df70c88310bbf77b9f9f90
363ea096a3… Used_By 4a0688baf9661d3737ee82f8992a0a665732c91704f28688f643115648c107d4
363ea096a3… Connected_To cnaweb.mrslove.com
363ea096a3… Connected_To 210.68.69.82
cnaweb.mrslove.com Connected_From 363ea096a3f6d06d56dc97ff1618607d462f366139df70c88310bbf77b9f9f90
210.68.69.82 Connected_From 363ea096a3f6d06d56dc97ff1618607d462f366139df70c88310bbf77b9f9f90

Mitigatoción

alert tcp 210.68.69.82 any <> $HOME_NET any (msg:» Malicious traffic «; sid:#########;
rev:1; classtype:tcp‐event;)

alert tcp 156.238.3.162 any <> $HOME_NET any (msg:»Malicious traffic»; sid:#########;
rev:1; classtype:tcp‐event;)

alert udp any any 53 <> $HOME_Net any (msg:”Attempt to connect to malicious domain”;
content: “www.infonew.dubya.net”; sid #########; rev:1;)

alert udp any any 53 <> $HOME_Net any (msg:”Attempt to connect to malicious domain”;
content: “www.cnaweb.mrslove.com”; sid#########; rev:1;)

Recomendaciones
CISA recomienda que los usuarios y administradores consideren usar las siguientes mejores prácticas para fortalecer la postura de seguridad de los sistemas de su organización. Cualquier cambio de configuración debe ser revisado por los propietarios y administradores del sistema antes de la implementación para evitar impactos no deseados.

Mantener firmas y motores antivirus actualizados.
Mantenga los parches del sistema operativo actualizados.
Deshabilite los servicios para compartir archivos e impresoras. Si se requieren estos servicios, use contraseñas seguras o autenticación de Active Directory.
Restrinja la capacidad de los usuarios (permisos) para instalar y ejecutar aplicaciones de software no deseadas. No agregue usuarios al grupo de administradores locales a menos que sea necesario.
Haga cumplir una política de contraseña segura e implemente cambios regulares de contraseña.
Tenga cuidado al abrir archivos adjuntos de correo electrónico, incluso si se espera el archivo adjunto y el remitente parece ser conocido.
Habilite un firewall personal en estaciones de trabajo de la agencia, configurado para denegar solicitudes de conexión no solicitadas.
Deshabilite servicios innecesarios en estaciones de trabajo y servidores de agencias.
Buscar y eliminar archivos adjuntos sospechosos de correo electrónico; asegúrese de que el archivo adjunto escaneado sea su «tipo de archivo verdadero» (es decir, la extensión coincide con el encabezado del archivo).
Monitorear los hábitos de navegación web de los usuarios; restringir el acceso a sitios con contenido desfavorable.
Tenga cuidado al usar medios extraíbles (por ejemplo, unidades de memoria USB, unidades externas, CD, etc.).
Escanee todo el software descargado de Internet antes de ejecutarlo.
Mantener una conciencia situacional de las últimas amenazas e implementar listas de control de acceso (ACL) apropiadas.
Se puede encontrar información adicional sobre prevención y manejo de incidentes de malware en la publicación especial 800-83 del Instituto Nacional de Estándares y Tecnología (NIST), «Guía para la prevención y manejo de incidentes de malware para computadoras de escritorio y portátiles».

Fuente: CISA

Deja un comentario