آخرین حملات

Jenkins Into a Cryptomining

Jenkins یک ابزار Open Source است که برنامه‌نویسان از آن به‌عنوان محلی برای  Automation، Test، Build، Deployment Phases استفاده می‌کنند.

 با استفاده از نسخه قدیمی یا پیکربندی‌های نادرست Jenkins به‌عنوان‌ مثال تنظیم نادرست مکانیزم احراز هویت مهاجم با Exploit کردن Jenkins Script Console می‌تواند Script های آلوده خود را به سرور Inject کند که منجر به RCE شود و می‌تواند با دانلود Miner Binary و قراردادن آن توی Cron Jobs و Systemd-Run به Persistence برسد.

به‌صورت پیش‌فرض Jenkins Console برای Administrator و کاربرهای احراز هویت شده است؛ ولی امکان دارد مکانیزم احراز هویت به‌درستی تنظیم نشده باشد؛ مثلاً اگر گزینه Sign Up یا Registration فعال باشد ممکن است دسترسی به Consol ایجاد شود و منجر به RCE شود.

با یک سرچ سریع در Shodan می‌توان تعداد بسیار زیادی سرور Jenkins را پیدا کرد که در اینترنت قابل‌دسترسی هستند و احتمالاً قابل Exploit کردن باشند. در کشورهایی مانند چین آمریکا هند آلمان و…تعداد بسیار زیادی سرور آسیب‌پذیر وجود داد.

پس از برسی سرورهای Compromise شده اطلاعات زیر به‌دست‌آمده:

در ابتدا Script چک می‌کند که آیا BusyBox در حال اجراست یا خیر که اگر BusyBox در حال اجرا بود از اسکریپت خارج می‌شود.

با استفاده از تابعی قابلیت Writable بودن Location ها را چک می‌کند و سپس تابع با گرفتن یک پارامتر ورودی به‌عنوان Path و درست‌کردن یک فایل در آن Location و نوشتن یک کد برای پرینت در آن فایل و دادن Permission به فایل و اجرای آن قابلیت نوشتن در آن لوکیشن را تست می‌کند.

درمرحله بعد با استفاده از اسکریپتی چک می‌کند که سیستم منابع کافی برای انجام Mining را دارد یا خیر و برای این کار ابتدا CPU سیستم را تا 90% مصرف می‌کند و سپس Process را Kill می‌کند.

سپس با استفاده از تکه کدی دیگر و تابعی که برای چک‌کردن قابلیت نوشتن بود Directory هایی که می‌توان در آنها Miner را دانلود کرد چک می‌کند /dev/shm، /proc/sys اگر هیچ یک از Directory های نام‌برده قابل‌استفاده نبود از /tmp استفاده می‌کند و حداکثر Permission را به آن می‌دهد.

در ابتدا سعی می‌کند فایل Miner Binary را با Curl دانلود و اگر به error برخورد با wget سعی می‌کند و اگر دوباره به error برخورد با openssl سعی می‌کند دانلود کند که یک HTTP GET Request به آن URL می‌فرستد و سپس پاسخ سرور را می‌گیرد و 2481008 byte آخر Response سرور را می‌گیرد و در فایلی ذخیره می‌کند.

پس از دانلود و ذخیره‌سازی Miner Binary در فایل موردنظر، مهاجم برای حفظ Persistence خود و اجرای Mining طبق برنامه خود از Cronjob و Systemd-Run استفاده می‌کند.

ابتدا با ساخت یک Cronjob و استفاده از ابزار Flook برای قفل‌کردن فایل و از verl.lock برای اطمینان از اینکه فقط یک نسخه از آن در حال اجراست.

 با دادن پارامترهای دیگر از جمله آدرس Wallet خود که تمام این‌ها را در یک متغیر ذخیره می‌کند و در نهایت پس از گذاشتن از awk ‘! a [$0] ++’  که برای حذف تمام ورودی‌های تکراری استفاده می‌شود که این گامی دیگر برای اطمینان از اجراشدن تنها یک نمونه از Corn است به Crontab اضافه می‌شوند.

مهاجم از Systemd-Run برای اجرای CryptocurrenCy mining Application در ابتدای هر ساعت استفاده می‌کند.

اگر تمام اینها جواب ندهد مهاجم یک Method دیگری استفاده می‌کند که در ابتدا یک سیگنال kill -9 به  برنامه Miner خود می‌فرستد تا مطمئن شود که متوقف شده و سپس به‌صورت دستی ماینر را اجرا می‌کند.

راه هایی برای کاهش این خطر پذیری

  1. عدم اتصال مستقیم Jenkins Server به اینترنت

  2. استفاده از ویژگی‌های تأیید اسکریپت که توسط Jenkins ساخته شده

  3. استفاده از قابلیت Audit Logging ارائه شده توسط Jenkins

روش های تشخیص این حمله

در صورت استفاده از سیستم شناسایی و پاسخ در نقاط پایانی هوپان (EDR) که یکی از اساسی ترین ماژول های راهکار گسترده شناسایی و پاسخ نخجیرپان (XDR) می‌باشد، تحلیل فعالیت های مرتبط و هشدارهای زیر مشاهده می گردد:

  • نظارت بر پروسس‌های مشکوک در حال اجر
  • نظارت بر ترافیک خروجی از شبکه
  • نظارت بر وصل‌شدن به دامنه‌های مخرب

این تهدید از تکنیک های زیر که در جدول مایتر اتک موجود می باشد استفاده نموده است.

شرکت مهندسی امن ارتباط سینداد کلیه IOA و IOC های مرتبط با تشخیص این حمله را به سامانه های خود افزوده است.

Initial Access Persistence Defense Evasion Discovery Command and Control Impact
Content Injection Account Manipulation Abuse Elevation Control Mechanism Account Discovery Application Layer Protocol Account Access Removal
Drive-by Compromise BITS Jobs Access Token Manipulation Application Window Discovery Communication Through Removable Media Data Destruction
Exploit Public-Facing Application Boot or Logon Autostart Execution BITS Jobs Browser Information Discovery Content Injection Data Encrypted for Impact
External Remote Services Boot or Logon Initialization Scripts Build Image on Host Cloud Infrastructure Discovery Data Encoding Data Manipulation
Hardware Additions Browser Extensions Debugger Evasion Cloud Service Dashboard Data Obfuscation Defacement
Phishing Compromise Host Software Binary Deobfuscate/Decode Files or Information Cloud Service Discovery Dynamic Resolution Disk Wipe
Replication Through Removable Media Create Account Deploy Container Cloud Storage Object Discovery Encrypted Channel Endpoint Denial of Service
Supply Chain Compromise Create or Modify System Process Direct Volume Access Container and Resource Discovery Fallback Channels Financial Theft
Trusted Relationship Event Triggered Execution Domain or Tenant Policy Modification Debugger Evasion Hide Infrastructure Firmware Corruption
Valid Accounts External Remote Services Execution Guardrails Device Driver Discovery Ingress Tool Transfer Inhibit System Recovery
Hijack Execution Flow Exploitation for Defense Evasion Domain Trust Discovery Multi-Stage Channels Network Denial of Service
Implant Internal Image File and Directory Permissions Modification File and Directory Discovery Non-Application Layer Protocol Resource Hijacking
Modify Authentication Process Hide Artifacts Group Policy Discovery Non-Standard Port Service Stop
Office Application Startup Hijack Execution Flow Log Enumeration Protocol Tunneling System Shutdown/Reboot
Power Settings Impair Defenses Network Service Discovery Proxy
Pre-OS Boot Impersonation Network Share Discovery Remote Access Software
Scheduled Task/Job Indicator Removal Network Sniffing Traffic Signaling
Server Software Component Indirect Command Execution Password Policy Discovery Web Service
Traffic Signaling Masquerading Peripheral Device Discovery
Valid Accounts Modify Authentication Process Permission Groups Discovery
Modify Cloud Compute Infrastructure Process Discovery
Modify Registry Query Registry
Modify System Image Remote System Discovery
Network Boundary Bridging Software Discovery
Obfuscated Files or Information System Information Discovery
Plist File Modification System Location Discovery
Pre-OS Boot System Network Configuration Discovery
Process Injection System Network Connections Discovery
Reflective Code Loading System Owner/User Discovery
Rogue Domain Controller System Service Discovery
Rootkit System Time Discovery
Subvert Trust Controls Virtualization/Sandbox Evasion
System Binary Proxy Execution
System Script Proxy Execution
Template Injection
Traffic Signaling
Trusted Developer Utilities Proxy Execution
Unused/Unsupported Cloud Regions
Use Alternate Authentication Material
Valid Accounts
Virtualization/Sandbox Evasion
Weaken Encryption
XSL Script Processing

از آشنایی با شما خوشحالیم 👋

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