HackTool.Win32.APT-GANG8220

شرح کلی

نوع: HackTool

درجه تخریب: بالا

میزان شیوع: کم

اسامی بدافزار

🔹 Padvish

  • HackTool.Win32.APT-GANG8220
  • Backdoor.Linux.Tsunami
  • Trojan.Linux.Miner

🔹Kaspersky

  • HEUR:Backdoor.Linux.Tsunami.bj
  • HEUR:RiskTool.Linux.Miner

🔹Eset

  • A Variant Of Linux/Tsunami.NAL
  • A Variant Of Linux/CoinMiner.AV

🔹Microsoft

  • Backdoor:Linux/Tsunami.C!MTB
  • Trojan:Linux/CoinMiner.C12

HackTool چیست؟

Hacktoolها ابزارهایی هستند که جهت کمک به نفوذ طراحی شده‌اند. این ابزارها می‌توانند توسط نفوذگر برای دریافت برخی اطلاعات از شبکه سازمان قربانی استفاده شوند. معمولا از این ابزارها به منظور بازیابی اطلاعات اعتبارسنجی سرورهای حساس قربانی استفاده می‌شود. به عنوان مثال نفوذگر می‌تواند برای حدس زدن کلمات عبور از ابزارهای Hacktool مبتنی بر حملات Brute Force استفاده کند. در برخی موارد نیز برای بالا بردن سطح دسترسی و سوءاستفاده از آسیب‌پذیری‌های موجود، از HackToolها استفاده می‌شود. به طور کلی ابزارهای هک برنامه‌هایی هستند که می‌توانند با شکستن سدهای امنیتی رایانه و شبکه، قابلیت‌های مختلفی برای نفوذ به سیستم‌ها مهیا کنند.

گروه هکری 8220 GANG

گروه هکری GANG 8220 که با نام «گروه استخراج 8220» نیز شناخته می‌شود و این نام برگرفته از استفاده آنها از پورت 8220 برای تبادل ارتباطات فرماندهی و کنترل یا C&C است، از سال 2017 فعال بوده و همچنان به اسکن برنامه‌های آسیب‌پذیر در محیط‌های ابری و کانتینر ادامه می‌دهد. محققان، این گروه را با هدف قرار دادن آسیب‌پذیری‌های Oracle WebLogic، Apache Log4j، Atlassian Confluence و پیکربندی نادرست کانتینرهای Docker برای استقرار ماینر رمز ارز در میزبان‌های لینوکس و مایکروسافت ویندوز مستند کرده‌اند. بر اساس اسناد، این گروه از بدافزارهای Tsunami، XMRIG cryptominer، masscan و spirit و سایر ابزارها در کمپین‌های خود استفاده کرده است.
در این گزارش به تحلیل اجمالی یک نمونه بات‌نت و ماینر این گروه هکری پرداخته شده است.

توضیحات فنی

علائم آلودگی

با توجه به دستورهای دریافتی از مهاجم، علائم آلودگی این بدافزار می‌تواند متغیر باشد اما با تکیه به یکی از رفتارهای شاخص این بدافزار که استخراج رمز ارز است می‌توان به کندی سرورها و مشاهده ترافیک مشکوک بر روی شبکه سازمان اشاره کرد.

شرح عملکرد

🔴 بات‌نت Tsunami

این بدافزار یک بات‌ مبتنی بر IRC (Internet Relay Chat) است که پس از اجرا به سرور مهاجم وصل می‌شود و منتظر دریافت دستورات او می‌ماند. در نسخه مورد بررسی پردازه بدافزار یک سوکت TCP در بستر IPv4 ایجاد می‌کند و آن را در حالت nonblocking قرار می‌دهد. سپس به‌ طور متوالی تلاش می‌کند به میزبان خود روی مجموعه‌ای از پورت‌های رایج متصل شود.

این تلاش‌ها شامل پورت‌های (80) خدمات وب HTTP، (443) خدمات وب‌امن HTTPS، (6667 و 6668) پورت‌های معمول در سرویس‌های IRC و شبکه‌های بات‌نت، (7000) پورت مرتبط با برخی پیاده‌سازی‌های IRC و (8080) پورت وب/پروکسی است.

 

ارتباط با سرور مهاجم

تصویر 1- ارتباط با سرور مهاجم

 

در ادامه پردازه‌ی مورد نظر با ارسال دستورات NICK و USER تلاش می‌کند تا خود را به‌عنوان یک کاربر معتبر در سرور IRC معرفی کند. سرور با پیام NOTICE AUTH پاسخ می‌دهد. این مرحله معمولاً به‌ منزله‌ آغاز فرآیند احراز هویت و خوشامدگویی است. در پروتکل IRC، سرور به‌طور دوره‌ای پیام‌های PING ارسال می‌کند تا از فعال بودن کلاینت اطمینان یابد.

در پاسخ، کلاینت موظف است PONG بازگرداند. در غیر این صورت، اتصال قطع خواهد شد. مکانیزم تبادل پیام‌های PING/PONG نشان‌دهنده‌ی حفظ اتصال پایدار میان سیستم و سرور می‌باشد. این چرخه به‌طور متناوب تکرار می‌شود تا ارتباط با سرور IRC پایدار باقی بماند.

recvfrom(4, “:pwn.irc 001 JSXVBS :Welcome to …”)

پیام با کد عددی 001 نشان‌دهنده‌ موفقیت فرآیند ثبت‌نام و خوشامدگویی رسمی سرور به کلاینت است. در این نقطه، ارتباط به‌طور کامل برقرار شده است و دستورات زیر بعد از ارتباط اجرا می شود.

 

لیست دستورات اجرا شده در نمونه بات نت

تصویر 2- لیست دستورات اجرا شده در نمونه بات‌نت

 

  • دستور MODE تغییر وضعیت کاربر را انجام می‌دهد.
  • دستور JOIN نشان می‌دهد کلاینت وارد کانالی با نام #. :ssh شده است.
  • دستور WHO برای دریافت اطلاعات مربوط به کاربران (در اینجا خود کلاینت) استفاده می‌شود.

🔴 بدافزار ماینر

مهاجم در نسخه مورد بررسی از یک نمونه سفارشی‌شده از XMRig استفاده می‌کند که آن را “PwnRig” نامیده است. PwnRig نسخه‌ای توسعه‌یافته از XMRig است که قابلیت‌های سفارشی جدیدی برای نحوه اجرای فایل اجرایی (binary) به آن افزوده شده است. این قابلیت‌ها با استفاده از آرگومان‌های خط فرمان موجود در آن قابل بهره‌برداری است.

این بدافزار تعدادی آرگومان خط فرمان دارد که در جدول زیر آمده است.

عملکرد

آرگومان

آدرس سرور استخراج o, –url=URL-
الگوریتم استخراج https://xmrig.com/docs/algorithms a, –algo=ALGO-
مشخص کردن نوع coin به جای الگوریتم coin=COIN–
نام کاربری سرور استخراج -u, –user=USERNAME
رمز عبور سرور استخراج -p, –pass=PASSWORD
جفت نام‌کاربری: رمز عبور برای استخراج O, –userpass=U:P-
اتصال از طریق پراکسی SOCKS5 -x, –proxy=HOST:PORT
ارسال بسته نگهدارنده برای جلوگیری از قطع شدن (نیازمند پشتیبانی استخر) k, –keepalive-
فعال‌سازی پشتیبانی nicehash.com nicehash–
شناسه rig برای نمایش آمار سمت استخر (نیاز به پشتیبانی استخر دارد) rig-id=ID–
فعال‌سازی SSL/TLS (نیازمند پشتیبانی استخر) tls–
اثر انگشت گواهی TLS tls-fingerprint=HEX–
اولویت به IPv6 در DNS dns-ipv6–
مدت کش DNS داخلی (پیش‌فرض: ۳۰ ثانیه) dns-ttl=N–
استخراج انفرادی با استفاده از RPC Daemon daemon–
فاصله بین پرس‌وجو از Daemon (ms) –daemon-poll-interval=N
بارگیری الگوهای بلاک از URL مشخص self-select=URL–
ارسال نتایج به همان URL بلاک submit-to-origin–
تعداد تلاش‌ها پیش از رفتن به سرور جایگزین -r, –retries=N
زمان توقف بین تلاش‌ها (ثانیه) -R, –retry-pause=N
رشته کاربر سفارشی برای اتصال –user-agent
درصد کمک به توسعه‌دهنده (پیش‌فرض ۱٪) –donate-level=N
کنترل کمک از طریق پراکسی –donate-over-proxy=N
غیرفعال‌سازی استخراج با CPU –no-cpu
تعداد threadهای CPU -t, –threads=N
تعیین وابستگی پردازش به هسته‌های CPU –cpu-affinity=N
تنوع الگوریتم (۰ = خودکار) -v, –av=N
اولویت اجرای فرآیند (۰ تا ۵) –cpu-priority=N
تعیین حداکثر درصد استفاده از CPU –cpu-max-threads-hint=N
تخصیص حافظه برای استخراج MB2 –cpu-memory-pool=N
تمرکز روی توان هش بیشتر –cpu-no-yield
غیرفعال‌سازی پشتیبانی huge pages –no-huge-pages
تعیین اندازه huge pages حافظه –hugepage-size=N

نوع بهینه‌سازی ASM ،مقادیر احتمالی:

auto, none, intel, ryzen, bulldozer

–asm=ASM

پیاده‌سازی argon2:

x86_64 ،SSE2، SSSE3، XOP، AVX2، AVX-512F

–argon2-impl=IMPL
شمارش نخ‌ها برای مقداردهی اولیه دیتاست RandomX –randomx-init=N
غیرفعال‌سازی پشتیبانی NUMA برای RandomX –randomx-no-numa
مود RandomX: خودکار، سریع، سبک –randomx-mode=MODE
استفاده از صفحات بزرگ ۱ گیگابایتی برای مجموعه داده RandomX –randomx-1gb-pages
نوشتن مقادیر دلخواه در رجیسترهای MSR یا غیرفعال کردن حالت MSR (-1) –randomx-wrmsr=N
غیرفعال‌سازی بازگرداندن مقادیر اولیه MSR در هنگام خروج –randomx-no-rdmsr
فعال‌سازی QoS کش –randomx-cache-qos

از هش‌های با اندازه بزرگ stage2 صرف نظر کنید، پیش‌فرض: ۵۵۰،

حداقل: ۴۰۰، حداکثر: ۱۲۰۰

–astrobwt-max-size=N
فعال کردن بهینه‌سازی‌های AVX2 برای الگوریتم AstroBWT –astrobwt-avx2
تعیین یک شناسه‌ سفارشی برای worker در API –api-worker-id=ID
شناسه نمونه سفارشی برای API –api-id=ID
اتصال میزبان برای HTTP API (پیش‌فرض: ۱۲۷.۰.۰.۱) –http-host=HOST
پورت مشخصی را برای در دسترس قرار دادن API از طریق HTTP اختصاص بده –http-port=N
توکن دسترسی برای HTTP API –http-access-token=T
فعال‌سازی دسترسی کامل از راه دور به HTTP API (فقط در صورت تنظیم توکن دسترسی) –http-no-restricted
تولید گواهی TLS برای نام میزبان خاص –tls-gen=HOSTNAME
بارگذاری زنجیره گواهی TLS از یک فایل با فرمت PEM –tls-cert=FILE
بارگذاری کلید خصوصی گواهی TLS از یک فایل با فرمت PEM –tls-cert-key=FILE
بارگذاری پارامترهای DH برای رمزگذاری های DHE از یک فایل با فرمت PEM –tls-dhparam=FILE
فعال‌سازی پروتکل‌های TLS مشخص شده به عنوان مثال: \”TLSv1 TLSv1.1 TLSv1.2 TLSv1.3\” –tls-protocols=N
تنظیم فهرست رمزگذاری موجود (TLSv1.2 و پایین‌تر) –tls-ciphers=S
تنظیم فهرست مجموعه‌رمزگذاری‌های TLSv1.3 موجود –tls-ciphersuites=S
استفاده از گزارش سیستم برای پیام‌های خروجی -S, –syslog
ثبت تمام خروجی‌ها در یک فایل مشخص -l, –log-file=FILE
چاپ گزارش هش‌ریت درهر N ثانیه –print-time=N
غیرفعال‌سازی خروجی رنگی –no-color
نمایش جزئیات بیشتر –verbose
بارگذاری یک فایل پیکربندی با فرمت JSON -c, –config=FILE
اجرای ماینر در پس‌زمینه -B, –background
نمایش نسخه و خروج -V, –version
نمایش راهنما و خروج -h, –help
آزمایش پیکربندی و خروج –dry-run
اکسپورت توپولوژی hwloc به یک فایل XML و خروج –export-topology
توقف استخراج هنگام استفاده از باتری –pause-on-battery
وقتی کاربر فعال است،توقف استخراج (بعد از N ثانیه از آخرین فعالیت، ادامه بده) –pause-on-active=N
اجرای تست استرس مداوم برای بررسی پایداری سیستم –stress
اجرای benchmark ، N می‌تواند بین ۱ تا ۱۰ میلیون باشد –bench=N
انجام یک benchmark آنلاین و ارسال نتیجه برای اشتراک‌گذاری –submit
تأیید نتیجه benchmark با ID –verify=ID
استفاده از seed دلخواه RandomX سفارشی برای benchmark –seed=SEED
مقایسه نتیجه benchmark با هش مشخص شده –hash=HASH
غیرفعال‌سازی خواندن DMI/SMBIOS –no-dmi

روش مقابله و پاک‌سازی سیستم

آنتی‌ویروس پادویش این بدافزارها را شناسایی و از سیستم حذف می‌کند. جهت پیشگیری از ورود این نوع از بدافزارها به سیستم پیشنهاد می‌شود:

  • آنتی‌ویروس، سیستم‌عامل و سرویس‌دهنده‌های حیاتی خود را همواره به روز کنید.
  • دسترسی به پورت‌های مهم را محدود کنید.
  • به صورت دوره‌ای رمز عبور حساب‌های کاربری مهم خود را تغییر دهید.