Підтримка
Цілодобова підтримка | Правила звернення

Зателефонуйте

Глобальна підтримка:
+7 (495) 789-45-86

Поширені запитання |  Форум |  Бот самопідтримки Telegram

Ваші запити

  • Всі: -
  • Незакриті: -
  • Останій: -

Зателефонуйте

Глобальна підтримка:
+7 (495) 789-45-86

Зв'яжіться з нами Незакриті запити: 

Профіль

Профіль

BackDoor.PlugX.93

Добавлен в вирусную базу Dr.Web: 2021-10-22

Описание добавлено:

Packer: absent

Compilation date: 2020-08-13

  • SHA1 hash: a8bff99e1ea76d3de660ffdbd78ad04f81a8c659

Description

The PlugX backdoor module is written in C and is designed to decrypt the shellcode from the registry that loads the main backdoor into memory.

Operating routine

At the beginning of the work, the backdoor receives the address of the VirtualProtect() function by hash, which it uses to change access rights to PAGE_EXECUTE_READWRITE, starting from the function at 0x10001000 and ending with the entire .text section:

#drweb

The function of getting the address of the function by the hash passed as a parameter:

#drweb

#drweb

Script to get a function by hash:


import struct
 
[code]ror = lambda val, r_bits, max_bits: \
    ((val & (2**max_bits-1)) >> r_bits%max_bits) | \
    (val << (max_bits-(r_bits%max_bits)) & (2**max_bits-1))
 
max_bits = 32
 
library_path_list = [...] # absolute path dlls
 
def get_func_addr(hash):
    for library_path in library_path_list:
        library = library_path.split('\\')
        name_dll = library[len(library) - 1].upper() + b'\x00'
 
        hash_name_dll = 0
        for i in name_dll:
            hash_name_dll = ord(i) + ror(hash_name_dll, 0x0D, max_bits)
            hash_name_dll = 0 + ror(hash_name_dll, 0x0D, max_bits)
 
        pe = pefile.PE(library_path)
        for exp in pe.DIRECTORY_ENTRY_EXPORT.symbols:
            func_name = exp.name + b'\x00'
 
            hash_name_func = 0
            for i in func_name:
                hash_name_func = ord(i) + ror(hash_name_func, 0x0D, max_bits)
 
            if (hash_name_dll + hash_name_func == hash):
                print '{}-> 0x{:08x} -> {}'.format(name_dll, hash, exp.name)
                return

Changing the permissions to PAGE_EXECUTE_READWRITE was necessary in order to decrypt the code using the XOR operation:

#drweb

There is also a version of the backdoor with dynamic XOR encryption. With decryption at the beginning of the function:

#drweb

#drweb

And with encryption at the end of the function:

#drweb

#drweb

Facilitating the work of the script for IDAPython:


import idaapi
 
def xor_dec(address, count, key):
    for i in xrange(count):
        idaapi.patch_dword(address, idaapi.get_dword(address) ^ key)   
        key += idaapi.get_dword(address)
        address += 4

Before starting to perform malicious actions, the backdoor, as in the case of VirtualProtect(), receives the addresses of other functions it needs to work:

#drweb

Received features:

Function name Hash
CloseHandle0x528796C6
CreateFileA0x4FDAF6DA
DeleteFileA0x13DD2ED7
ExitProcess0x56A2B5F0
GetAdaptersInfo0x62C9E1BD
GetModuleFileNameA0xFE61445D
GetSystemDirectoryA0x60BCDE05
LoadLibraryA0x726774C
ReadFile0xBB5F9EAD
RegCloseKey0x81C2AC44
RegDeleteValueA0x3846A3A8
RegEnumValueA0x2EC95AA4
RegOpenKeyExA0x3E9E3F88
RegQueryValueExA0x8FF0E305
VirtualAlloc0xE553A458
VirtualFree0x300F2F0B
VirtualProtect0xC38AE110
WinExec0x876F8B31
WriteFile0x5BAE572D

In addition, the backdoor checks if it is executed in a sandbox:

#drweb

After receiving the function addresses and checking for execution in the sandbox, BackDoor.PlugX.93 removes the updatecfgSetup task from the task scheduler:

#drweb

The key for shellcode encryption is MD5 from the following registry key values:

 
HKLM\Software\Microsoft\Windows NT\CurrentVersion\InstallDate
HKLM\System\ControlSet001\Control\ComputerName\ComputerName

#drweb

The shellcode is stored in the following registry keys:


HKLM\Software\BINARY
HKLM\Software\BINARY

#drweb

Before running the shellcode, it will be decrypted in 2 steps - first, using the RC4 algorithm:

#drweb

And then with XOR:

#drweb

Рекомендации по лечению

  1. В случае если операционная система способна загрузиться (в штатном режиме или режиме защиты от сбоев), скачайте лечащую утилиту Dr.Web CureIt! и выполните с ее помощью полную проверку вашего компьютера, а также используемых вами переносных носителей информации.
  2. Если загрузка операционной системы невозможна, измените настройки BIOS вашего компьютера, чтобы обеспечить возможность загрузки ПК с компакт-диска или USB-накопителя. Скачайте образ аварийного диска восстановления системы Dr.Web® LiveDisk или утилиту записи Dr.Web® LiveDisk на USB-накопитель, подготовьте соответствующий носитель. Загрузив компьютер с использованием данного носителя, выполните его полную проверку и лечение обнаруженных угроз.
Скачать Dr.Web

По серийному номеру

Выполните полную проверку системы с использованием Антивируса Dr.Web Light для macOS. Данный продукт можно загрузить с официального сайта Apple App Store.

На загруженной ОС выполните полную проверку всех дисковых разделов с использованием продукта Антивирус Dr.Web для Linux.

Скачать Dr.Web

По серийному номеру

  1. Если мобильное устройство функционирует в штатном режиме, загрузите и установите на него бесплатный антивирусный продукт Dr.Web для Android Light. Выполните полную проверку системы и используйте рекомендации по нейтрализации обнаруженных угроз.
  2. Если мобильное устройство заблокировано троянцем-вымогателем семейства Android.Locker (на экране отображается обвинение в нарушении закона, требование выплаты определенной денежной суммы или иное сообщение, мешающее нормальной работе с устройством), выполните следующие действия:
    • загрузите свой смартфон или планшет в безопасном режиме (в зависимости от версии операционной системы и особенностей конкретного мобильного устройства эта процедура может быть выполнена различными способами; обратитесь за уточнением к инструкции, поставляемой вместе с приобретенным аппаратом, или напрямую к его производителю);
    • после активации безопасного режима установите на зараженное устройство бесплатный антивирусный продукт Dr.Web для Android Light и произведите полную проверку системы, выполнив рекомендации по нейтрализации обнаруженных угроз;
    • выключите устройство и включите его в обычном режиме.

Подробнее о Dr.Web для Android

Демо бесплатно на 14 дней

Выдаётся при установке