تحلیل هشدار - آپلود فایل به مقصد راه دور با Curl

ESCU - Windows Curl Upload to Remote Destination - Rule

چرا این هشدار صادر می‌شود؟

این هشدار زمانی فعال می‌شود که ابزار خط فرمان curl.exe با پارامترهای مربوط به آپلود فایل یا ارسال داده (مانند -T, --upload-file, -d, --data, -F) اجرا شود. ابزار Curl که در نسخه‌های جدید ویندوز به صورت پیش‌فرض وجود دارد، یک ابزار قانونی (LOLBin) است، اما مهاجمان از آن برای استخراج داده‌ها (Exfiltration) و ارسال فایل‌های حساس به سرورهای تحت کنترل خود (C2) استفاده می‌کنند تا از شناسایی توسط راهکارهای امنیتی که به ابزارهای شخص ثالث حساس هستند، جلوگیری کنند.

Detection: Windows Curl Upload to Remote Destination
Technique: T1048 (Exfiltration Over Alternative Protocol) / T1105 (Ingress Tool Transfer)

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

سناریوهای پرخطر

  • آپلود فایل‌های حساس سیستمی (مانند خروجی lsass.exe یا SAM) به یک آدرس IP خارجی و ناشناس.
  • استفاده از سوییچ -T یا --upload-file برای ارسال فایل‌های آرشیو شده (zip/rar) از پوشه‌های کاربری.
  • اجرای دستور توسط اسکریپت‌های مخرب یا شل‌های معکوس (Reverse Shell).

سناریوهای متوسط

  • ارسال داده‌های متنی (مانند اطلاعات شناسایی سیستم) با استفاده از سوییچ -d یا --data به یک وب‌سایت خارجی.
  • استفاده از پروتکل‌های غیرمعمول مانند FTP یا TFTP برای انتقال فایل در شبکه اینترنت.

سناریوهای کم‌خطر (مثبت کاذب)

  • استفاده توسط توسعه‌دهندگان یا مدیران سیستم برای تست APIها یا آپلود فایل به مخازن داخلی و معتبر.
  • اسکریپت‌های اتوماسیون و CI/CD که فایل‌های بیلد را به سرورهای شناخته شده منتقل می‌کنند.

ارزیابی خطر و اولویت‌بندی

برای تحلیل و اعتبارسنجی این هشدار، موارد زیر را بررسی کنید:

نشانه قطعی خطر: اجرای curl -T [file] [Remote IP] برای ارسال یک فایل حساس به یک آدرس IP عمومی که متعلق به سرویس‌های شناخته شده نیست.

الزامات داده و مدل‌ها

اطلاعات مورد نیاز

  • Endpoint Data (Process Creation)
  • Sysmon Event ID 1
  • Windows Security Event 4688

دیتامدل‌های مورد استفاده

  • Endpoint.Processes

فیلدهای کلیدی جهت بررسی

هنگام تحلیل لاگ‌های سیستمی در اسپلانک، این فیلدها حیاتی هستند:

Processes.process (Command Line)
Processes.parent_process_name
Processes.dest
Processes.user
Processes.process_name