Вирус exploit в облаке

Vulnerabilities in modern computers leak passwords and sensitive data.

Meltdown and Spectre work on personal computers, mobile devices, and in the cloud. Depending on the cloud provider's infrastructure, it might be possible to steal data from other customers.

Meltdown breaks the most fundamental isolation between user applications and the operating system. This attack allows a program to access the memory, and thus also the secrets, of other programs and the operating system.

If your computer has a vulnerable processor and runs an unpatched operating system, it is not safe to work with sensitive information without the chance of leaking the information. This applies both to personal computers as well as cloud infrastructure. Luckily, there are software patches against Meltdown.

Spectre breaks the isolation between different applications. It allows an attacker to trick error-free programs, which follow best practices, into leaking their secrets. In fact, the safety checks of said best practices actually increase the attack surface and may make applications more susceptible to Spectre

Who reported Meltdown?

Who reported Spectre?

Questions & Answers

Most certainly, yes.

Probably not. The exploitation does not leave any traces in traditional log files.

While possible in theory, this is unlikely in practice. Unlike usual malware, Meltdown and Spectre are hard to distinguish from regular benign applications. However, your antivirus may detect malware which uses the attacks by comparing binaries after they become known.

If your system is affected, our proof-of-concept exploit can read the memory content of your computer. This may include passwords and sensitive data stored on the system.

There are patches against Meltdown for Linux ( KPTI (formerly KAISER)), Windows, and OS X. There is also work to harden software against future exploitation of Spectre, respectively to patch software after exploitation through Spectre ( LLVM patch, MSVC, ARM speculation barrier header).

Almost every system is affected by Spectre: Desktops, Laptops, Cloud Servers, as well as Smartphones. More specifically, all modern processors capable of keeping many instructions in flight are potentially vulnerable. In particular, we have verified Spectre on Intel, AMD, and ARM processors.

The vulnerability basically melts security boundaries which are normally enforced by the hardware.

The name is based on the root cause, speculative execution. As it is not easy to fix, it will haunt us for quite some time.

Yes, there is an academic paper and a blog post about Meltdown, and an academic paper about Spectre. Furthermore, there is a Google Project Zero blog entry about both attacks.

Logo Logo with text Code illustration
Meltdown PNG / SVG PNG / SVG PNG / SVG
Spectre PNG / SVG PNG / SVG PNG / SVG

Yes, there is a GitHub repository containing test code for Meltdown.

Link
Intel Security Advisory / Newsroom / Whitepaper
ARM Security Update
AMD Security Information
RISC-V Blog
NVIDIA Security Bulletin / Product Security
Microsoft Security Guidance / Information regarding anti-virus software / Azure Blog / Windows (Client) / Windows (Server)
Amazon Security Bulletin
Google Project Zero Blog / Need to know
Android Security Bulletin
Apple Apple Support
Lenovo Security Advisory
IBM Blog
Dell Knowledge Base / Knowledge Base (Server)
Hewlett Packard Enterprise Vulnerability Alert
HP Inc. Security Bulletin
Huawei Security Notice
Synology Security Advisory
Cisco Security Advisory
F5 Security Advisory
Mozilla Security Blog
Red Hat Vulnerability Response / Performance Impacts
Debian Security Tracker
Ubuntu Knowledge Base
SUSE Vulnerability Response
Fedora Kernel update
Qubes Announcement
Fortinet Advisory
NetApp Advisory
LLVM Spectre (Variant #2) Patch / Review __builtin_load_no_speculate / Review llvm.nospeculateload
CERT Vulnerability Note
MITRE CVE-2017-5715 / CVE-2017-5753 / CVE-2017-5754
VMWare Security Advisory / Blog
Citrix Security Bulletin / Security Bulletin (XenServer)
Xen Security Advisory (XSA-254) / FAQ

Acknowledgements

We would like to thank Intel for awarding us with a bug bounty for the responsible disclosure process, and their professional handling of this issue through communicating a clear timeline and connecting all involved researchers. Furthermore, we would also thank ARM for their fast response upon disclosing the issue.

This work was supported in part by the European Research Council (ERC) under the European Union’s Horizon 2020 research and innovation programme (grant agreement No 681402).

This work was supported in part by NSF awards #1514261 and #1652259, financial assistance award 70NANB15H328 from the U.S. Department of Commerce, National Institute of Standards and Technology, the 2017-2018 Rothschild Postdoctoral Fellowship, and the Defense Advanced Research Project Agency (DARPA) under Contract #FA8650-16-C-7622.


Софт делается людьми, а людям свойственно забывать и ошибаться, плюс до сих пор не изобретено абсолютной, идеальной методики программирования. В итоге практически любая программа содержит уязвимости – ошибки в коде, из-за которых атакующий может получить управление над системой, нарушить её работу и т.д. Код, который атакует уязвимости в программах и называется эксплойтом.

Какие программы чаще всего атакуют эксплойты? Наша статистика за 2011г.:


А вот интересные данные по географии источников веб-атак, большинство из которых как раз и используют эксплойты:


Впрочем, вы догадываетесь, что расположение атакующего сайта отнюдь не свидетельствует о национальности автора атаки. У кибер-негодяев всегда есть возможность зарегистрировать сайт на подставную компанию/лицо за рубежом и оттуда уже вести вредоносную деятельность.

Два самых распространённых метода атаки через эксплойты:

В общем, 10% эксплойтов в статистике сетевых угроз на самом деле представляют собой никак не меньшую угрозу, чем 83% троянов. К примеру, самый распространённый на данный момент эксплойт-кит Blackhole по статистике пробивает до 30% систем (в зависимости от трафика, установленного софта и системы защиты). Да никакому трояну такого не снилось!

Но волков бояться – в лес не ходить. С эксплойтами мы тоже боремся давно и тоже успешно. Уже давно в наших продуктах есть выделенная база данных, которая содержит описания известных эксплойтов и вредоносные URLы, с которых эта зараза загружается, а также специальные эвристические и проактивные технологии обнаружения этого вида угроз. В случае обнаружения такого кода программа блокируется, пользователю и сисадмину поступает предупреждение, действия атаки откатываются. Плюс есть сканирование системы на наличие уязвимостей:


А теперь немного инсайда, так сказать по секрету всему свету – спойлер одной очень вкусной фичи грядущей версии KIS/KAV. С релизом новой версии нашего Endpoint Security в 1кв. следующего года она также будет доступной и корпоративным заказчикам. Как вы догадались, фича эта тоже имеет отношение к защите против эксплойтов. Точнее – против неизвестных эксплойтов, т.е. тех самых зеродеев!

Да, разумеется, всегда остаётся вероятность появления какой-то абсолютно новой заразы, которую и предугадать сложно и тем более проактивно защититься. Но в большинстве случаев вредоносы действуют в рамках неких шаблонов поведения и используют определённый инструментарий. И вот за это самое их и можно ловить! И как показывает практика довольно успешно.

Итак, что же будет такого вкусного для защиты против неизвестных эксплойтов в KIS/KAV 2013?


Сейчас AEP проходит тестовые испытания и показывает впечатляющие результаты. Мы прогнали через неё целую кучу эксплойтов для Flash Player, QuickTime, Adobe Reader, Java и других программ – 100% результат детекта! Особенно порадовал успешный детект эксплойта для недавно нашумевшей уязвимости в Windows Media Player — эксплойт позволял заражать компьютер через специально созданный MIDI-файл и работал на всех версиях Windows, начиная с XP. И, что важно, благодаря AEP мы ловим 100% эксплойтов эксплойт-кита Blackhole, при том, что средний показатель среди десятки лучших антивирусов мира – около 94% (sic!).

Разработчики защитных решений часто упоминают эксплойты как одну из самых серьёзных проблем безопасности данных и систем, хотя и не всегда ясно, почему. Попробуем разобраться в этом вопросе



Разработчики защитных решений часто упоминают в своих публикациях эксплойты как одну из самых серьезных проблем безопасности данных и систем, хотя и не всегда ясно, какова разница между эксплойтами и вредоносными программами в целом. Попробуем разобраться с этим вопросом.

Эксплойты — это подвид вредоносных программ. Они содержат данные или исполняемый код, способный воспользоваться одной или несколькими уязвимостями в программном обеспечении на локальном или удаленном компьютере.

Браузеры наряду с Flash, Java и Microsoft Office являются одними из самых подверженных атакам категорий программного обеспечения. Из-за их повсеместности их активно исследуют как эксперты по безопасности, так и хакеры, а разработчики браузеров вынуждены регулярно выпускать патчи для исправления уязвимостей. Лучше всего эти патчи устанавливать сразу, но, к сожалению, так происходит далеко не всегда — ведь при этом придется закрывать все вкладки.

Особую проблему, конечно, представляют собой эксплойты неизвестных уязвимостей, обнаруженных и использованных преступниками, — так называемые уязвимости нулевого дня. Может пройти много времени, прежде чем производители узнают о наличии проблемы и устранят ее.

Следующая часть вполне техническая, так что не стесняйтесь проматывать, если только вам не в самом деле интересно, как это работает. Имейте в виду при этом, что киберпреступники часто предпочитают эксплойты прочим методам заражения, так как, в отличие от социальной инженерии, в которой все делается наудачу, эксплуатация уязвимостей неизменно дает желаемый результат.

Как поясняется в статье Securelist, эксплойты предназначены для атаки конкретных версий программного обеспечения, содержащего уязвимости. Таким образом, если у пользователя нужная версия программного обеспечения при открытии вредоносного объекта или если веб-сайт использует это программное обеспечение для работы, то запускается эксплойт.

После того как он получает доступ посредством уязвимости, эксплойт загружает дополнительные вредоносные программы с сервера преступников, осуществляющие подрывную деятельность, такую как кража личных данных, использование компьютера в качестве элемента ботнета для рассылки спама или выполнения DDoS-атак и так далее.

Эксплойты представляют угрозу даже для осторожных и добросовестных пользователей, которые регулярно обновляют свое программное обеспечение. Причина кроется во временном зазоре между открытием уязвимости и выходом патча для ее исправления.

В этом интервале эксплойты могут свободно функционировать и угрожать безопасности почти всех интернет-пользователей при отсутствии установленных в системе автоматических средств предотвращения атак эксплойтов. Опять же, не будем забывать про синдром открытых вкладок — своевременное обновление программ зачастую требует от пользователя некоторых жертв, на которые не все готовы пойти сразу в момент выхода заплатки.

Перечислим несколько наиболее известных наборов эксплойтов, или, как еще их называют, эксплойт-китов:

Angler — один из самых сложных наборов на черном рынке. Этот набор эксплойтов своим появлением изменил правила игры, после того как начал обнаруживать антивирусы и виртуальные машины (часто используемые экспертами по безопасности как приманки) и задействовать шифрованные файлы для затруднения исследования. Это один из тех наборов эксплойтов, которые быстрее всего включают в свой арсенал недавно открытые уязвимости нулевого дня, а его вредоносные программы работают в памяти, без записи на жестких дисках жертв. С техническим описанием пакета можно ознакомиться здесь.

Nuclear Pack — поражает жертв эксплойтами Java и Adobe PDF, а также подсаживает Caphaw — печально известный банковский троян. Подробнее читайте здесь.

Neutrino — набор от русскоязычных разработчиков, содержащий несколько эксплойтов Java. Neutrino прославился в прошлом году в связи с тем, что владелец выставил его на продажу по очень скромной цене — $34 тыс. Скорее всего, это было сделано после ареста некоего Paunch, создателя следующего набора, о котором мы хотим поговорить.

Как сказано выше, эксплойты — подвид вредоносных программ, но они обнаруживаются не всеми защитными программами. Для успешного обнаружения необходимо, чтобы защитное решение использовало поведенческий анализ — это единственный надежный метод борьбы с эксплойтами. Вредоносные программы могут быть многочисленными и разнообразными, но большинство из них имеют похожие черты поведения.

Что такое эксплойты и почему их все так боятся?

Более подробную информацию о технологии Automatic Exploit Prevention можно найти здесь.

Executive summary

Kaspersky Exploit Prevention is a component part of Kaspersky products that has successfully detected a number of zero-day attacks in the past. Recently, it caught a new unknown exploit for Google’s Chrome browser. We promptly reported this to the Google Chrome security team. After reviewing of the PoC we provided, Google confirmed there was a zero-day vulnerability and assigned it CVE-2019-13720. Google has released Chrome version 78.0.3904.87 for Windows, Mac, and Linux and we recommend all Chrome users to update to this latest version as soon as possible! You can read Google’s bulletin by clicking here.

Kaspersky endpoint products detect the exploit with the help of the exploit prevention component. The verdict for this attack is Exploit.Win32.Generic.

We are calling these attacks Operation WizardOpium. So far, we have been unable to establish a definitive link with any known threat actors. There are certain very weak code similarities with Lazarus attacks, although these could very well be a false flag. The profile of the targeted website is more in line with earlier DarkHotel attacks that have recently deployed similar false flag attacks.

More details about CVE-2019-13720 and recent DarkHotel false flag attacks are available to customers of Kaspersky Intelligence Reporting. For more information, contact: intelreports@kaspersky.com.

Technical details

The attack leverages a waterhole-style injection on a Korean-language news portal. A malicious JavaScript code was inserted in the main page, which in turn, loads a profiling script from a remote site.


Redirect to the exploit landing page

The main index page hosted a small JavaScript tag that loaded a remote script from hxxp://code.jquery.cdn.behindcorona[.]com/.

The script then loads another script named .charlie.XXXXXXXX.js. This JavaScript checks if the victim’s system can be infected by performing a comparison with the browser’s user agent, which should run on a 64-bit version of Windows and not be a WOW64 process; it also tries to get the browser’s name and version. The vulnerability tries to exploit the bug in Google Chrome browser and the script checks if the version is greater or equal to 65 (current Chrome version is 78):


Chrome version checks in the profiling script (.charlie.XXXXXXXX.js)

If the browser version checks out, the script starts performing a number of AJAX requests to the attacker’s controlled server (behindcorona[.]com) where a path name points to the argument that is passed to the script (xxxxxxx.php). The first request is necessary to obtain some important information for further use. This information includes several hex-encoded strings that tell the script how many chunks of the actual exploit code should be downloaded from the server, as well as a URL to the image file that embeds a key for the final payload and RC4 key to decrypt these chunks of the exploit’s code.


Exploitation chain – AJAX requests to xxxxxxx.php

After downloading all the chunks, the RC4 script decrypts and concatenates all the parts together, which gives the attacker a new JavaScript code containing the full browser exploit. To decrypt the parts, the previously retrieved RC4 key is used.


One more version check

The browser exploit script is obfuscated; after de-obfuscation we observed a few peculiar things:

    Another check is made against the user agent’s string – this time it checks that the browser version is 76 or 77. It could mean that the exploit authors have only worked on these versions (a previous exploitation stage checked for version number 65 or newer) or that other exploits have been used in the past for older Chrome versions.


Obfuscated exploit code


Snippet of code to work with 64-bit numbers

The analysis we have provided here is deliberately brief due to vulnerability disclosure principles. The exploit used a race condition bug between two threads due to missing proper synchronization between them. It gives an attacker an a Use-After-Free (UaF) condition that is very dangerous because it can lead to code execution scenarios, which is exactly what happens in our case.

The exploit first tries to trigger UaF to perform an information leak about important 64-bit addresses (as a pointer). This results in a few things: 1) if an address is leaked successfully, it means the exploit is working correctly; 2) a leaked address is used to know where the heap/stack is located and that defeats the address space layout randomization (ASLR) technique; 3) a few other useful pointers for further exploitation could be located by searching near this address.

After that it tries to create a bunch of large objects using a recursive function. This is done to make some deterministic heap layout, which is important for a successful exploitation. At the same time, it attempts to utilize a heap spraying technique that aims to reuse the same pointer that was freed earlier in the UaF part. This trick could be used to cause confusion and give the attacker the ability to operate on two different objects (from a JavaScript code perspective), though in reality they are located in the same memory region.

The exploit attempts to perform numerous operations to allocate/free memory along with other techniques that eventually give the attackers an arbitrary read/write primitive. This is used to craft a special object that can be used with WebAssembly and FileReader together to perform code execution for the embedded shellcode payload.


First stage shellcode

Payload description

The final payload is downloaded as an encrypted binary (worst.jpg) that is decrypted by the shellcode.


Encrypted payload – worst.jpg

After decryption, the malware module is dropped as updata.exe to disk and executed. For persistence the malware installs tasks in Windows Task Scheduler.

The payload ‘installer’ is a RAR SFX archive, with the following information:

File size: 293,403
MD5: 8f3cd9299b2f241daf1f5057ba0b9054
SHA256: 35373d07c2e408838812ff210aa28d90e97e38f2d0132a86085b0d54256cc1cd

The archive contains two files:


File name: iohelper.exe
MD5: 27e941683d09a7405a9e806cc7d156c9
SHA256: 8fb2558765cf648305493e1dfea7a2b26f4fc8f44ff72c95e9165a904a9a6a48

File name: msdisp64.exe
MD5: f614909fbd57ece81d00b01958338ec2
SHA256: cafe8f704095b1f5e0a885f75b1b41a7395a1c62fd893ef44348f9702b3a0deb

Both files were compiled at the same time, which if we are to believe the timestamp, was “Tue Oct 8 01:49:31 2019”.
The main module (msdisp64.exe) tries to download the next stage from a hardcoded C2 server set. The next stages are located on the C2 server in folders with the victim computer names, so the threat actors have information about which machines were infected and place the next stage modules in specific folders on the C2 server.

In November 2019, Kaspersky technologies successfully detected a Google Chrome 0-day exploit that was used in Operation WizardOpium attacks. During our investigation, we discovered that yet another 0-day exploit was used in those attacks. The exploit for Google Chrome embeds a 0-day EoP exploit (CVE-2019-1458) that is used to gain higher privileges on the infected machine as well as escaping the Chrome process sandbox. The exploit is very similar to those developed by the prolific 0-day developer known as ‘Volodya’.

The EoP exploit consists of two stages: a tiny PE loader and the actual exploit. After achieving a read/write primitive in the renderer process of the browser through vulnerable JS code, the PE exploit corrupts some pointers in memory to redirect code execution to the PE loader. This is done to bypass sandbox restrictions because the PE exploit cannot simply start a new process using native WinAPI functions.

The PE loader locates an embedded DLL file with the actual exploit and repeats the same process as the native Windows PE loader – parsing PE headers, handling imports/exports, etc. After that, a code execution is redirected to the entry point of the DLL – the DllEntryPoint function. The PE code then creates a new thread, which is an entry point for the exploit itself, and the main thread simply waits until it stops.


EoP exploit used in the attack

The PE file encapsulating this EoP exploit has the following header:


The compilation timestamp of Wed Jul 10 00:50:48 2019 is different from the other binaries, indicating it has been in use for some time.

Our detailed analysis of the EoP exploit revealed that the vulnerability it used belongs to the win32k.sys driver and that the EoP exploit was the 0-day exploit because it works on the latest (patched) versions of Windows 7 and even on a few builds of Windows 10 (new Windows 10 builds are not affected because they implement measures that prevent the normal usage of the exploitable code).

The vulnerability itself is related to windows switching functionality (for example, the one triggered using the Alt-Tab key combination). That’s why the exploit’s code uses a few WinAPI calls (GetKeyState/SetKeyState) to emulate a key press operation.

At the beginning, the exploit tries to find the operating system version using ntdll.dll’s RtlGetVersion call that’s used to find a dozen offsets needed to set up fake kernel GDI objects in the memory. At the same time, it tries to leak a few kernel pointers using well-known techniques to leak kernel memory addresses (gSharedInfo, PEB’s GdiSharedHandleTable). After that, it tries to create a special memory layout with holes in the heap using many calls to CreateAcceleratorTable/DestroyAcceleratorTable. Then a bunch of calls to CreateBitmap are performed, the addresses to which are leaked using a handle table array.


Triggering exploitable code path

After that, a few pop-up windows are created and an undocumented syscall NtUserMessageCall is called using their window handles. In addition, it creates a special window with the class of a task switch window (#32771) and it’s important to trigger an exploitable code path in the driver. At this step the exploit tries to emulate the Alt key and then using a call to SetBitmapBits it crafts a GDI object which contains a controllable pointer value that is used later in the kernel driver’s code (win32k!DrawSwitchWndHilite) after the exploit issues a second undocumented call to the syscall (NtUserMessageCall). That’s how it gets an arbitrary kernel read/write primitive.


Achieving primitives needed to get arbitrary R/W

This primitive is then used to perform privilege escalation on the target system. It’s done by overwriting a token in the EPROCESS structure of the current process using the token value for an existing system driver process.


Overwriting EPROCESS token structure

Executive summary

Kaspersky Exploit Prevention is a component part of Kaspersky products that has successfully detected a number of zero-day attacks in the past. Recently, it caught a new unknown exploit for Google’s Chrome browser. We promptly reported this to the Google Chrome security team. After reviewing of the PoC we provided, Google confirmed there was a zero-day vulnerability and assigned it CVE-2019-13720. Google has released Chrome version 78.0.3904.87 for Windows, Mac, and Linux and we recommend all Chrome users to update to this latest version as soon as possible! You can read Google’s bulletin by clicking here.

Kaspersky endpoint products detect the exploit with the help of the exploit prevention component. The verdict for this attack is Exploit.Win32.Generic.

We are calling these attacks Operation WizardOpium. So far, we have been unable to establish a definitive link with any known threat actors. There are certain very weak code similarities with Lazarus attacks, although these could very well be a false flag. The profile of the targeted website is more in line with earlier DarkHotel attacks that have recently deployed similar false flag attacks.

More details about CVE-2019-13720 and recent DarkHotel false flag attacks are available to customers of Kaspersky Intelligence Reporting. For more information, contact: intelreports@kaspersky.com.

Technical details

The attack leverages a waterhole-style injection on a Korean-language news portal. A malicious JavaScript code was inserted in the main page, which in turn, loads a profiling script from a remote site.


Redirect to the exploit landing page

The main index page hosted a small JavaScript tag that loaded a remote script from hxxp://code.jquery.cdn.behindcorona[.]com/.

The script then loads another script named .charlie.XXXXXXXX.js. This JavaScript checks if the victim’s system can be infected by performing a comparison with the browser’s user agent, which should run on a 64-bit version of Windows and not be a WOW64 process; it also tries to get the browser’s name and version. The vulnerability tries to exploit the bug in Google Chrome browser and the script checks if the version is greater or equal to 65 (current Chrome version is 78):


Chrome version checks in the profiling script (.charlie.XXXXXXXX.js)

If the browser version checks out, the script starts performing a number of AJAX requests to the attacker’s controlled server (behindcorona[.]com) where a path name points to the argument that is passed to the script (xxxxxxx.php). The first request is necessary to obtain some important information for further use. This information includes several hex-encoded strings that tell the script how many chunks of the actual exploit code should be downloaded from the server, as well as a URL to the image file that embeds a key for the final payload and RC4 key to decrypt these chunks of the exploit’s code.


Exploitation chain – AJAX requests to xxxxxxx.php

After downloading all the chunks, the RC4 script decrypts and concatenates all the parts together, which gives the attacker a new JavaScript code containing the full browser exploit. To decrypt the parts, the previously retrieved RC4 key is used.


One more version check

The browser exploit script is obfuscated; after de-obfuscation we observed a few peculiar things:

    Another check is made against the user agent’s string – this time it checks that the browser version is 76 or 77. It could mean that the exploit authors have only worked on these versions (a previous exploitation stage checked for version number 65 or newer) or that other exploits have been used in the past for older Chrome versions.


Obfuscated exploit code


Snippet of code to work with 64-bit numbers

The analysis we have provided here is deliberately brief due to vulnerability disclosure principles. The exploit used a race condition bug between two threads due to missing proper synchronization between them. It gives an attacker an a Use-After-Free (UaF) condition that is very dangerous because it can lead to code execution scenarios, which is exactly what happens in our case.

The exploit first tries to trigger UaF to perform an information leak about important 64-bit addresses (as a pointer). This results in a few things: 1) if an address is leaked successfully, it means the exploit is working correctly; 2) a leaked address is used to know where the heap/stack is located and that defeats the address space layout randomization (ASLR) technique; 3) a few other useful pointers for further exploitation could be located by searching near this address.

After that it tries to create a bunch of large objects using a recursive function. This is done to make some deterministic heap layout, which is important for a successful exploitation. At the same time, it attempts to utilize a heap spraying technique that aims to reuse the same pointer that was freed earlier in the UaF part. This trick could be used to cause confusion and give the attacker the ability to operate on two different objects (from a JavaScript code perspective), though in reality they are located in the same memory region.

The exploit attempts to perform numerous operations to allocate/free memory along with other techniques that eventually give the attackers an arbitrary read/write primitive. This is used to craft a special object that can be used with WebAssembly and FileReader together to perform code execution for the embedded shellcode payload.


First stage shellcode

Payload description

The final payload is downloaded as an encrypted binary (worst.jpg) that is decrypted by the shellcode.


Encrypted payload – worst.jpg

After decryption, the malware module is dropped as updata.exe to disk and executed. For persistence the malware installs tasks in Windows Task Scheduler.

The payload ‘installer’ is a RAR SFX archive, with the following information:

File size: 293,403
MD5: 8f3cd9299b2f241daf1f5057ba0b9054
SHA256: 35373d07c2e408838812ff210aa28d90e97e38f2d0132a86085b0d54256cc1cd

The archive contains two files:


File name: iohelper.exe
MD5: 27e941683d09a7405a9e806cc7d156c9
SHA256: 8fb2558765cf648305493e1dfea7a2b26f4fc8f44ff72c95e9165a904a9a6a48

File name: msdisp64.exe
MD5: f614909fbd57ece81d00b01958338ec2
SHA256: cafe8f704095b1f5e0a885f75b1b41a7395a1c62fd893ef44348f9702b3a0deb

Both files were compiled at the same time, which if we are to believe the timestamp, was “Tue Oct 8 01:49:31 2019”.
The main module (msdisp64.exe) tries to download the next stage from a hardcoded C2 server set. The next stages are located on the C2 server in folders with the victim computer names, so the threat actors have information about which machines were infected and place the next stage modules in specific folders on the C2 server.

Читайте также:

Пожалуйста, не занимайтесь самолечением!
При симпотмах заболевания - обратитесь к врачу.

Copyright © Иммунитет и инфекции