🔆آشنایی با مشاغل امنیت سایبری :vCISO
این vCISO (Virtual Chief Information Security Officer) یک متخصص ارشد و ماهر امنیت اطلاعات است که بهصورت قراردادی یا پارهوقت با سازمانها همکاری میکند تا راهبری امنیت سایبری آنها را انجام دهد. این نقش برای شرکتهایی که نیاز به راهبری امنیتی دارند اما نمیخواهند یا نمیتوانند یک CISO تماموقت استخدام کنند، ایدهآل است.
🟣وظایف vCISO
✔️تدوین و اجرای استراتژی امنیتی: طراحی و پیادهسازی برنامههای امنیتی مطابق با نیازهای سازمان.
✔️ارزیابی و مدیریت ریسک: شناسایی تهدیدات و ارائه راهکارهای کاهش ریسک.
✔️انطباق با قوانین و مقررات: اطمینان از رعایت استانداردها و الزامات قانونی مانند شاپرک ؛ NIST, ISO 27001, GDPR, PCI-DSS.
✔️نظارت بر عملیات امنیتی: تحلیل گزارشات امنیتی، بررسی رخدادها و همکاری با تیم SOC.
✔️آموزش و آگاهیبخشی: ارتقای فرهنگ امنیت سایبری در سازمان.
✔️مدیریت کشف نفوذ و پاسخ به حادثه: تدوین و اجرای برنامههای واکنش به رخدادهای امنیتی و نظارت بر آن
✔️نظارت بر تامینکنندگان و شرکای امنیتی: ارزیابی امنیتی پیمانکاران و زنجیره تأمین.
✔️ مشاوره به مدیریت ارشد: ارائه گزارشها و پیشنهادات راهبردی به مدیران سازمان.
❇️حوزه فعالیت vCISO
استارتاپهایی که قصد دارند در بازارهای تنظیمشده فعالیت کنند.
شرکتهای کوچک و متوسط (SMB) که نیروی متخصص داخلی ندارند.
سازمانهای در حال رشد که به راهبری امنیتی نیاز دارند.
شرکتهای در صنایع حساس مانند بانکداری، سلامت، فناوری و دولتی.
🔴اختیارات vCISO
تصمیمگیری در مورد سیاستهای امنیتی.
هدایت تیم امنیتی و تعیین نقشها و وظایف.
پیشنهاد خرید ابزارها و راهکارهای امنیتی.
تعامل مستقیم با مدیرعامل (CEO)، مدیر فناوری (CTO) و هیئتمدیره.
همکاری با تیم حقوقی و انطباق برای مدیریت ریسکهای قانونی.
به دلیل ماهیت قراردادی این نقش، اختیارات vCISO معمولاً محدودتر از یک CISO تماموقت است و نیاز به همکاری نزدیک با مدیران سازمان دارد.
#آکادمی_روزبه
این vCISO (Virtual Chief Information Security Officer) یک متخصص ارشد و ماهر امنیت اطلاعات است که بهصورت قراردادی یا پارهوقت با سازمانها همکاری میکند تا راهبری امنیت سایبری آنها را انجام دهد. این نقش برای شرکتهایی که نیاز به راهبری امنیتی دارند اما نمیخواهند یا نمیتوانند یک CISO تماموقت استخدام کنند، ایدهآل است.
🟣وظایف vCISO
✔️تدوین و اجرای استراتژی امنیتی: طراحی و پیادهسازی برنامههای امنیتی مطابق با نیازهای سازمان.
✔️ارزیابی و مدیریت ریسک: شناسایی تهدیدات و ارائه راهکارهای کاهش ریسک.
✔️انطباق با قوانین و مقررات: اطمینان از رعایت استانداردها و الزامات قانونی مانند شاپرک ؛ NIST, ISO 27001, GDPR, PCI-DSS.
✔️نظارت بر عملیات امنیتی: تحلیل گزارشات امنیتی، بررسی رخدادها و همکاری با تیم SOC.
✔️آموزش و آگاهیبخشی: ارتقای فرهنگ امنیت سایبری در سازمان.
✔️مدیریت کشف نفوذ و پاسخ به حادثه: تدوین و اجرای برنامههای واکنش به رخدادهای امنیتی و نظارت بر آن
✔️نظارت بر تامینکنندگان و شرکای امنیتی: ارزیابی امنیتی پیمانکاران و زنجیره تأمین.
✔️ مشاوره به مدیریت ارشد: ارائه گزارشها و پیشنهادات راهبردی به مدیران سازمان.
❇️حوزه فعالیت vCISO
استارتاپهایی که قصد دارند در بازارهای تنظیمشده فعالیت کنند.
شرکتهای کوچک و متوسط (SMB) که نیروی متخصص داخلی ندارند.
سازمانهای در حال رشد که به راهبری امنیتی نیاز دارند.
شرکتهای در صنایع حساس مانند بانکداری، سلامت، فناوری و دولتی.
🔴اختیارات vCISO
تصمیمگیری در مورد سیاستهای امنیتی.
هدایت تیم امنیتی و تعیین نقشها و وظایف.
پیشنهاد خرید ابزارها و راهکارهای امنیتی.
تعامل مستقیم با مدیرعامل (CEO)، مدیر فناوری (CTO) و هیئتمدیره.
همکاری با تیم حقوقی و انطباق برای مدیریت ریسکهای قانونی.
به دلیل ماهیت قراردادی این نقش، اختیارات vCISO معمولاً محدودتر از یک CISO تماموقت است و نیاز به همکاری نزدیک با مدیران سازمان دارد.
#آکادمی_روزبه
👍3🔥1
مقالهای با عنوان «حالت مخفی: دامپ LSASS بدون ردپا»
این مقاله به تکنیکی پیشرفته برای استخراج حافظه فرآیند LSASS در سیستمهای ویندوزی میپردازد که به مهاجمان امکان میدهد اطلاعات حساس مانند رمزهای عبور و هشها را بهدست آورند، بدون اینکه توسط راهحلهای امنیتی شناسایی شوند.
در این مقاله، نویسنده با استفاده از PowerShell و تکنیکهای خاصی مانند بازتاب حافظه (Memory Reflection)، دسترسی حداقلی به فرآیندها و رمزنگاری دادهها، روشی را برای استخراج حافظه LSASS معرفی میکند. این روش شامل مراحل زیر است:
شناسایی پراسس LSASS:
با استفاده از دستورات PowerShell، فرآیند LSASS بهطور مخفیانه شناسایی میشود.
دسترسی با حداقل مجوزها:
بهجای استفاده از دسترسیهای کامل که ممکن است توسط نرمافزارهای امنیتی شناسایی شود، از مجوزهای محدود برای دسترسی به حافظه فرآیند استفاده میشود.
دامپ حافظه با استفاده از بازتاب درونحافظهای:
با تعریف پویا و درونحافظهای توابع API مورد نیاز، از شناسایی توسط ابزارهای امنیتی جلوگیری میشود.
استخراج و رمزنگاری فایل دامپ:
دادههای استخراجشده قبل از ذخیرهسازی، بهصورت Base64 رمزنگاری میشوند تا از شناسایی توسط نرمافزارهای امنیتی جلوگیری شود.
فشردهسازی، انتقال و حذف آثار:
فایل رمزنگاریشده فشرده شده و پس از انتقال، تمامی ردپاها از سیستم حذف میشوند.
این تکنیکها به مهاجمان امکان میدهند تا بدون شناسایی توسط نرمافزارهای امنیتی، به اطلاعات حساس سیستم دسترسی پیدا کنند.
برای مطالعه دقیقتر و مشاهده جزئیات فنی، میتوانید به مقاله اصلی در لینک زیر مراجعه کنید:
#آکادمی_روزبه
https://mrvar0x.com/2025/02/16/stealth-mode-dumping-lsass-without-a-trace/
این مقاله به تکنیکی پیشرفته برای استخراج حافظه فرآیند LSASS در سیستمهای ویندوزی میپردازد که به مهاجمان امکان میدهد اطلاعات حساس مانند رمزهای عبور و هشها را بهدست آورند، بدون اینکه توسط راهحلهای امنیتی شناسایی شوند.
در این مقاله، نویسنده با استفاده از PowerShell و تکنیکهای خاصی مانند بازتاب حافظه (Memory Reflection)، دسترسی حداقلی به فرآیندها و رمزنگاری دادهها، روشی را برای استخراج حافظه LSASS معرفی میکند. این روش شامل مراحل زیر است:
شناسایی پراسس LSASS:
با استفاده از دستورات PowerShell، فرآیند LSASS بهطور مخفیانه شناسایی میشود.
دسترسی با حداقل مجوزها:
بهجای استفاده از دسترسیهای کامل که ممکن است توسط نرمافزارهای امنیتی شناسایی شود، از مجوزهای محدود برای دسترسی به حافظه فرآیند استفاده میشود.
دامپ حافظه با استفاده از بازتاب درونحافظهای:
با تعریف پویا و درونحافظهای توابع API مورد نیاز، از شناسایی توسط ابزارهای امنیتی جلوگیری میشود.
استخراج و رمزنگاری فایل دامپ:
دادههای استخراجشده قبل از ذخیرهسازی، بهصورت Base64 رمزنگاری میشوند تا از شناسایی توسط نرمافزارهای امنیتی جلوگیری شود.
فشردهسازی، انتقال و حذف آثار:
فایل رمزنگاریشده فشرده شده و پس از انتقال، تمامی ردپاها از سیستم حذف میشوند.
این تکنیکها به مهاجمان امکان میدهند تا بدون شناسایی توسط نرمافزارهای امنیتی، به اطلاعات حساس سیستم دسترسی پیدا کنند.
برای مطالعه دقیقتر و مشاهده جزئیات فنی، میتوانید به مقاله اصلی در لینک زیر مراجعه کنید:
#آکادمی_روزبه
https://mrvar0x.com/2025/02/16/stealth-mode-dumping-lsass-without-a-trace/
👍3👌3
یه متن خوب برای علاقمندان به بررسی پراسس های لینوکس
#آکادمی_روزبه
https://medium.com/@iramjack8/hunting-for-processes-53c541d8cfc2
#آکادمی_روزبه
https://medium.com/@iramjack8/hunting-for-processes-53c541d8cfc2
Medium
Hunting for Processes
Linux Live Analysis
👍2
یه شرح خوب از حملات در حوزه کربروس و روشهای مقابله
#آکادمی_روزبه
https://medium.com/@noah_h/offensive-kerberos-techniques-for-detection-engineering-16a81483f676
#آکادمی_روزبه
https://medium.com/@noah_h/offensive-kerberos-techniques-for-detection-engineering-16a81483f676
Medium
Offensive Kerberos Techniques for Detection Engineering
Hunting for Kerberoasting, forged tickets, delegation-based attacks and more.
🔥4
🔴 کشف در ترافیک رمز شده
✍️روزبه نوروزی
بله ترافیک های بسیاری امروزه رمز شده است
ولی دست شما در تحلیل کامل بسته نیست : JA3 و JA4
این JA3 چیست و چگونه محاسبه میشود؟
عامل JA3 یک تکنیک fingerprinting برای شناسایی کلاینتهای TLS است که توسط John Althouse توسعه داده شده است. این روش برای شناسایی کلاینتهای مختلف بر اساس پارامترهای TLS در Client Hello مورد استفاده قرار میگیرد.
نحوه محاسبه JA3 Hash
این JA3 با استفاده از ترکیب مقادیر مشخصی از بسته Client Hello در TLS یک رشته متنی تولید کرده و سپس از آن یک MD5 Hash ایجاد میکند. این پارامترها عبارتند از:
Version → نسخهی TLS
Accepted Cipher Suites → لیست الگوریتمهای رمزنگاری
List of Extensions → لیست افزونههای TLS
Elliptic Curves → منحنیهای بیضوی قابل قبول
Elliptic Curve Point Formats → فرمتهای نقطهای منحنی بیضوی
پس از استخراج این مقادیر، آنها به صورت عددی (بدون فاصله) در قالب یک رشته به هم متصل شده و از آن MD5 Hash گرفته میشود.
مثال رشتهی JA3:
771,49200-49199-49192-49191-52393,23-65281-10-35,29-23-24,0
MD5 Hash → 4d7a28e74224b2e9b22c206f2d7cbbeb
مزایای JA3
شناسایی بدافزارها و ابزارهای مخرب
تشخیص ترافیک رمزگذاریشده حتی بدون رمزگشایی
مانیتورینگ ارتباطات مشکوک در شبکه
حالا JA4 چیست و چه تفاوتی با JA3 دارد؟
اینJA4 نسخهی بهبودیافتهی JA3 است که نهتنها Client Hello بلکه Server Hello را نیز بررسی میکند.
مزایای JA4 نسبت به JA3:
دقت بیشتر در شناسایی کلاینتهای واقعی و بدافزارها
توانایی fingerprinting سرورها
امکان شناسایی TLS Encrypted Client Hello (ECH)
اگر به تحلیل ترافیک رمزگذاریشده و امنیت شبکه علاقه دارید، بهتر است در کنار JA3، از JA4 نیز استفاده کنید.
کاربرد JA3 و JA4 در کشف نفوذ و حملات سایبری
این JA3 و JA4 بهعنوان TLS Fingerprinting به شناسایی الگوهای خاص در ترافیک رمزگذاریشده کمک میکنند. این روشها بدون نیاز به رمزگشایی (TLS Decryption)، کلاینتها و سرورها را بر اساس ویژگیهای ارتباطی شناسایی کرده و در کشف انواع تهدیدات مؤثر هستند.
حملات و نفوذهایی که JA3 و JA4 قادر به شناسایی آنها هستند
1. بدافزارهایی که از TLS برای ارتباط با C2 استفاده میکنند
JA3 میتواند برای شناسایی بدافزارهایی که از ارتباطات رمزگذاریشده استفاده میکنند، مفید باشد. برخی از مهمترین بدافزارهایی که با JA3 شناسایی شدهاند عبارتاند از:
✅ TrickBot
✅ Emotet
✅ Ursnif (Gozi)
✅ Cobalt Strike
✅ Metasploit Meterpreter
روش کشف:
هر بدافزار معمولاً هنگام برقراری ارتباط با سرور C2، یک JA3 Hash ثابت دارد.
این مقدار میتواند با Threat Intelligence Feeds مقایسه شود تا ارتباطات مشکوک شناسایی شوند.
2. حملات MITM (Man-in-the-Middle)
✅ JA4S میتواند سرورهای مخرب را که در حملات MITM استفاده میشوند، شناسایی کند.
حملاتی که در آنها SSL Proxyهای مخرب برای رهگیری ترافیک رمزگذاریشده استفاده میشوند.
ابزارهایی مانند Bettercap، mitmproxy و Burp Suite که در تحلیل و دستکاری TLS مورد استفاده قرار میگیرند، JA3/JA4 خاصی دارند که قابل شناسایی است.
3. دور زدن مکانیزمهای امنیتی (Evasion Techniques)
✅ شناسایی ابزارهایی که برای دور زدن IDS/IPS یا فایروال استفاده میشوند، مانند:
Tor Browser
Proxies و VPNهای خاص
Malicious TLS Libraries (مانند OpenSSLهای تغییر یافته در بدافزارها)
JA3 میتواند تشخیص دهد که یک ارتباط واقعاً از یک مرورگر عادی مانند Chrome یا Firefox آمده است یا اینکه از طریق ابزارهای تغییر مسیر مثل Proxies و VPNهای ناشناسکننده هدایت شده است.
4. Exploits و حملات RCE در سرورهای TLS
✅ JA4S میتواند رفتار سرورهای آسیبپذیر را شناسایی کند.
برخی سرورهای مخرب یا آلوده به بکدور، JA4 مشخصی دارند که میتواند آنها را از سرورهای عادی متمایز کند.
در حملاتی مانند Heartbleed یا RCEهای جدید در OpenSSL، سرور آلوده معمولاً یک پاسخ خاص در Server Hello دارد که با JA4 قابل شناسایی است.
5. حملات با استفاده از ابزارهای تست نفوذ
✅ بسیاری از ابزارهای تست نفوذ (Red Team و هکرها) دارای JA3 ثابت هستند، از جمله:
Cobalt Strike
Metasploit Framework
Empire
Meterpreter
✅ برخی سرورهای مخرب مانند Cobalt Strike Team Server نیز JA4S ثابت دارند که توسط تیمهای امنیتی شناسایی میشود.
محدودیتهای JA3 و JA4
#من_آموزش_میدهم
#آکادمی_روزبه
✍️روزبه نوروزی
بله ترافیک های بسیاری امروزه رمز شده است
ولی دست شما در تحلیل کامل بسته نیست : JA3 و JA4
این JA3 چیست و چگونه محاسبه میشود؟
عامل JA3 یک تکنیک fingerprinting برای شناسایی کلاینتهای TLS است که توسط John Althouse توسعه داده شده است. این روش برای شناسایی کلاینتهای مختلف بر اساس پارامترهای TLS در Client Hello مورد استفاده قرار میگیرد.
نحوه محاسبه JA3 Hash
این JA3 با استفاده از ترکیب مقادیر مشخصی از بسته Client Hello در TLS یک رشته متنی تولید کرده و سپس از آن یک MD5 Hash ایجاد میکند. این پارامترها عبارتند از:
Version → نسخهی TLS
Accepted Cipher Suites → لیست الگوریتمهای رمزنگاری
List of Extensions → لیست افزونههای TLS
Elliptic Curves → منحنیهای بیضوی قابل قبول
Elliptic Curve Point Formats → فرمتهای نقطهای منحنی بیضوی
پس از استخراج این مقادیر، آنها به صورت عددی (بدون فاصله) در قالب یک رشته به هم متصل شده و از آن MD5 Hash گرفته میشود.
مثال رشتهی JA3:
771,49200-49199-49192-49191-52393,23-65281-10-35,29-23-24,0
MD5 Hash → 4d7a28e74224b2e9b22c206f2d7cbbeb
مزایای JA3
شناسایی بدافزارها و ابزارهای مخرب
تشخیص ترافیک رمزگذاریشده حتی بدون رمزگشایی
مانیتورینگ ارتباطات مشکوک در شبکه
حالا JA4 چیست و چه تفاوتی با JA3 دارد؟
اینJA4 نسخهی بهبودیافتهی JA3 است که نهتنها Client Hello بلکه Server Hello را نیز بررسی میکند.
مزایای JA4 نسبت به JA3:
دقت بیشتر در شناسایی کلاینتهای واقعی و بدافزارها
توانایی fingerprinting سرورها
امکان شناسایی TLS Encrypted Client Hello (ECH)
اگر به تحلیل ترافیک رمزگذاریشده و امنیت شبکه علاقه دارید، بهتر است در کنار JA3، از JA4 نیز استفاده کنید.
کاربرد JA3 و JA4 در کشف نفوذ و حملات سایبری
این JA3 و JA4 بهعنوان TLS Fingerprinting به شناسایی الگوهای خاص در ترافیک رمزگذاریشده کمک میکنند. این روشها بدون نیاز به رمزگشایی (TLS Decryption)، کلاینتها و سرورها را بر اساس ویژگیهای ارتباطی شناسایی کرده و در کشف انواع تهدیدات مؤثر هستند.
حملات و نفوذهایی که JA3 و JA4 قادر به شناسایی آنها هستند
1. بدافزارهایی که از TLS برای ارتباط با C2 استفاده میکنند
JA3 میتواند برای شناسایی بدافزارهایی که از ارتباطات رمزگذاریشده استفاده میکنند، مفید باشد. برخی از مهمترین بدافزارهایی که با JA3 شناسایی شدهاند عبارتاند از:
✅ TrickBot
✅ Emotet
✅ Ursnif (Gozi)
✅ Cobalt Strike
✅ Metasploit Meterpreter
روش کشف:
هر بدافزار معمولاً هنگام برقراری ارتباط با سرور C2، یک JA3 Hash ثابت دارد.
این مقدار میتواند با Threat Intelligence Feeds مقایسه شود تا ارتباطات مشکوک شناسایی شوند.
2. حملات MITM (Man-in-the-Middle)
✅ JA4S میتواند سرورهای مخرب را که در حملات MITM استفاده میشوند، شناسایی کند.
حملاتی که در آنها SSL Proxyهای مخرب برای رهگیری ترافیک رمزگذاریشده استفاده میشوند.
ابزارهایی مانند Bettercap، mitmproxy و Burp Suite که در تحلیل و دستکاری TLS مورد استفاده قرار میگیرند، JA3/JA4 خاصی دارند که قابل شناسایی است.
3. دور زدن مکانیزمهای امنیتی (Evasion Techniques)
✅ شناسایی ابزارهایی که برای دور زدن IDS/IPS یا فایروال استفاده میشوند، مانند:
Tor Browser
Proxies و VPNهای خاص
Malicious TLS Libraries (مانند OpenSSLهای تغییر یافته در بدافزارها)
JA3 میتواند تشخیص دهد که یک ارتباط واقعاً از یک مرورگر عادی مانند Chrome یا Firefox آمده است یا اینکه از طریق ابزارهای تغییر مسیر مثل Proxies و VPNهای ناشناسکننده هدایت شده است.
4. Exploits و حملات RCE در سرورهای TLS
✅ JA4S میتواند رفتار سرورهای آسیبپذیر را شناسایی کند.
برخی سرورهای مخرب یا آلوده به بکدور، JA4 مشخصی دارند که میتواند آنها را از سرورهای عادی متمایز کند.
در حملاتی مانند Heartbleed یا RCEهای جدید در OpenSSL، سرور آلوده معمولاً یک پاسخ خاص در Server Hello دارد که با JA4 قابل شناسایی است.
5. حملات با استفاده از ابزارهای تست نفوذ
✅ بسیاری از ابزارهای تست نفوذ (Red Team و هکرها) دارای JA3 ثابت هستند، از جمله:
Cobalt Strike
Metasploit Framework
Empire
Meterpreter
✅ برخی سرورهای مخرب مانند Cobalt Strike Team Server نیز JA4S ثابت دارند که توسط تیمهای امنیتی شناسایی میشود.
محدودیتهای JA3 و JA4
#من_آموزش_میدهم
#آکادمی_روزبه
👍4🔥2
ادامه از پست قبل
⛔ در حملات TLS 1.3 با Encrypted Client Hello (ECH) → JA3 نمیتواند fingerprinting انجام دهد.
⛔ بدافزارهای جدید میتوانند JA3 خود را تغییر دهند (JA3 Evasion).
⛔ اگر سرورها JA3 را تغییر دهند، روش شناسایی آن سختتر میشود.
✅ راهکار: استفاده از JA4 (شناسایی همزمان Client و Server) و ترکیب آن با تحلیلهای دیگر مانند رفتارشناسی و Threat Intelligence Feeds.
بنابراین JA3 برای شناسایی کلاینتهای مخرب و JA4 برای بررسی کلاینت و سرور بهصورت همزمان کاربرد دارد.
#آکادمی_روزبه
#من_آموزش_میدهم
⛔ در حملات TLS 1.3 با Encrypted Client Hello (ECH) → JA3 نمیتواند fingerprinting انجام دهد.
⛔ بدافزارهای جدید میتوانند JA3 خود را تغییر دهند (JA3 Evasion).
⛔ اگر سرورها JA3 را تغییر دهند، روش شناسایی آن سختتر میشود.
✅ راهکار: استفاده از JA4 (شناسایی همزمان Client و Server) و ترکیب آن با تحلیلهای دیگر مانند رفتارشناسی و Threat Intelligence Feeds.
بنابراین JA3 برای شناسایی کلاینتهای مخرب و JA4 برای بررسی کلاینت و سرور بهصورت همزمان کاربرد دارد.
#آکادمی_روزبه
#من_آموزش_میدهم
👍4🔥1
این مقاله امروزه که براتون انتخاب کردم
#آکادمی_روزبه
https://hunt.io/blog/golang-beacons-vs-code-tunnels-tracking-cobalt-strike
#آکادمی_روزبه
https://hunt.io/blog/golang-beacons-vs-code-tunnels-tracking-cobalt-strike
hunt.io
Golang Beacons and VS Code Tunnels: Tracking a Cobalt Strike Server Leveraging Trusted Infrastructure
Discover how a Cobalt Strike server with a TLS certificate and watermark used a Golang beacon to communicate via Visual Studio Code tunnels. Learn more.
👍3
💫 مقایسه TLSH و ssdeep در تحلیل بدافزار و فیشینگ
✍️روزبه نوروزی
در دنیای امنیت سایبری، شناسایی فایلهای مخرب و حملات فیشینگ یکی از چالشهای مهم است. روشهای سنتی هشینگ مانند MD5 و SHA-256 برای شناسایی دقیق یک فایل خاص مفید هستند، اما در برابر تغییرات جزئی در فایلها کارایی ندارند یعنی هکر با تغییر کوچکی در بدافزار ؛ امضا (هش)آنرا تغییر داده و ما را دور میزند. .
برای حل این مشکل، روشهای هشینگ فازی مانند TLSH (Trend Locality Sensitive Hashing) و ssdeep توسعه یافتهاند. این روشها امکان شناسایی شباهتهای ساختاری بین فایلها را فراهم میکنند، حتی اگر تغییراتی در محتوا رخ داده باشد. در این اینجا ، به بررسی این دو روش و کاربردهای آنها در امنیت سایبری میپردازم.
🟧معرفی ssdeep
این ssdeep یک ابزار هشینگ فازی است که از Context Triggered Piecewise Hashing (CTPH) استفاده میکند. این روش فایل را به بلوکهای کوچکتر تقسیم کرده و برای هر بلوک یک مقدار هش تولید میکند. سپس این هشها ترکیب شده و مقدار نهایی هشینگ فازی را تشکیل میدهند. تفاوت اصلی ssdeep با روشهای هشینگ سنتی این است که امکان مقایسه درصدی دو فایل را فراهم میکند، به طوری که فایلهایی که تغییرات اندکی دارند، همچنان به عنوان فایلهای مشابه شناخته میشوند.
✔️از جمله کاربردهای ssdeep میتوان به موارد زیر اشاره کرد:
تحلیل بدافزارها: شناسایی نمونههای مشابه از بدافزارها، حتی اگر تغییرات جزئی در آنها ایجاد شده باشد.
تشخیص فیشینگ: مقایسه محتوای HTML سایتهای فیشینگ برای یافتن الگوهای مشابه.
مدیریت دادههای بزرگ: شناسایی فایلهای مشابه در حجمهای عظیم داده.
با این حال، ssdeep دارای محدودیتهایی نیز هست. برای مثال، اگر تغییرات در فایل به صورت پراکنده باشد، دقت شناسایی کاهش مییابد.
🔴معرفی TLSH
این TLSH یک روش هشینگ فازی توسعهیافته توسط Trend Micro است که بر خلاف ssdeep، از رویکرد متفاوتی برای شناسایی شباهتها استفاده میکند. TLSH ساختار کلی فایل را با استفاده از تجزیه و تحلیل الگوی بایتی آن بررسی کرده و یک هش خاص تولید میکند. این هشها قابلیت مقایسه عددی دارند، به طوری که امتیازات پایینتر نشاندهنده شباهت بیشتر بین فایلها هستند.
❇️مزایای TLSH عبارتند از:
دقت بالاتر در مقایسه فایلها: برخلاف ssdeep، این روش به تغییرات جزئی حساسیت کمتری دارد.
کارایی بالا در تحلیل بدافزار: قابلیت تشخیص نمونههای تغییر یافته از یک بدافزار با دقت بیشتر.
عدم نیاز به اندازه ثابت فایلها: برخلاف ssdeep که به فایلهای بزرگ وابسته است، TLSH روی فایلهای کوچکتر نیز موثر عمل میکند.
یکی از نقاط ضعف TLSH این است که به اندازه ssdeep در تشخیص تغییرات محلی حساس نیست، زیرا تمرکز آن بر ساختار کلی فایل است.
👌به طور کلی، اگر نیاز به تشخیص تغییرات جزئی در یک فایل باشد، ssdeep انتخاب بهتری است. اما اگر هدف، تحلیل ساختاری کلی فایل باشد، TLSH عملکرد بهتری دارد.
هشینگ فازی یک ابزار قدرتمند برای شناسایی بدافزارها و حملات فیشینگ است. هر دو روش ssdeep و TLSH در امنیت سایبری کاربردهای فراوانی دارند، اما بسته به نیاز، یکی ممکن است بر دیگری برتری داشته باشد. ترکیب این دو روش میتواند به تحلیلگران امنیتی کمک کند تا تهدیدات جدید را سریعتر و دقیقتر شناسایی کنند.
#من_آموزش_میدهم
#آکادمی_روزبه
✍️روزبه نوروزی
در دنیای امنیت سایبری، شناسایی فایلهای مخرب و حملات فیشینگ یکی از چالشهای مهم است. روشهای سنتی هشینگ مانند MD5 و SHA-256 برای شناسایی دقیق یک فایل خاص مفید هستند، اما در برابر تغییرات جزئی در فایلها کارایی ندارند یعنی هکر با تغییر کوچکی در بدافزار ؛ امضا (هش)آنرا تغییر داده و ما را دور میزند. .
برای حل این مشکل، روشهای هشینگ فازی مانند TLSH (Trend Locality Sensitive Hashing) و ssdeep توسعه یافتهاند. این روشها امکان شناسایی شباهتهای ساختاری بین فایلها را فراهم میکنند، حتی اگر تغییراتی در محتوا رخ داده باشد. در این اینجا ، به بررسی این دو روش و کاربردهای آنها در امنیت سایبری میپردازم.
🟧معرفی ssdeep
این ssdeep یک ابزار هشینگ فازی است که از Context Triggered Piecewise Hashing (CTPH) استفاده میکند. این روش فایل را به بلوکهای کوچکتر تقسیم کرده و برای هر بلوک یک مقدار هش تولید میکند. سپس این هشها ترکیب شده و مقدار نهایی هشینگ فازی را تشکیل میدهند. تفاوت اصلی ssdeep با روشهای هشینگ سنتی این است که امکان مقایسه درصدی دو فایل را فراهم میکند، به طوری که فایلهایی که تغییرات اندکی دارند، همچنان به عنوان فایلهای مشابه شناخته میشوند.
✔️از جمله کاربردهای ssdeep میتوان به موارد زیر اشاره کرد:
تحلیل بدافزارها: شناسایی نمونههای مشابه از بدافزارها، حتی اگر تغییرات جزئی در آنها ایجاد شده باشد.
تشخیص فیشینگ: مقایسه محتوای HTML سایتهای فیشینگ برای یافتن الگوهای مشابه.
مدیریت دادههای بزرگ: شناسایی فایلهای مشابه در حجمهای عظیم داده.
با این حال، ssdeep دارای محدودیتهایی نیز هست. برای مثال، اگر تغییرات در فایل به صورت پراکنده باشد، دقت شناسایی کاهش مییابد.
🔴معرفی TLSH
این TLSH یک روش هشینگ فازی توسعهیافته توسط Trend Micro است که بر خلاف ssdeep، از رویکرد متفاوتی برای شناسایی شباهتها استفاده میکند. TLSH ساختار کلی فایل را با استفاده از تجزیه و تحلیل الگوی بایتی آن بررسی کرده و یک هش خاص تولید میکند. این هشها قابلیت مقایسه عددی دارند، به طوری که امتیازات پایینتر نشاندهنده شباهت بیشتر بین فایلها هستند.
❇️مزایای TLSH عبارتند از:
دقت بالاتر در مقایسه فایلها: برخلاف ssdeep، این روش به تغییرات جزئی حساسیت کمتری دارد.
کارایی بالا در تحلیل بدافزار: قابلیت تشخیص نمونههای تغییر یافته از یک بدافزار با دقت بیشتر.
عدم نیاز به اندازه ثابت فایلها: برخلاف ssdeep که به فایلهای بزرگ وابسته است، TLSH روی فایلهای کوچکتر نیز موثر عمل میکند.
یکی از نقاط ضعف TLSH این است که به اندازه ssdeep در تشخیص تغییرات محلی حساس نیست، زیرا تمرکز آن بر ساختار کلی فایل است.
👌به طور کلی، اگر نیاز به تشخیص تغییرات جزئی در یک فایل باشد، ssdeep انتخاب بهتری است. اما اگر هدف، تحلیل ساختاری کلی فایل باشد، TLSH عملکرد بهتری دارد.
هشینگ فازی یک ابزار قدرتمند برای شناسایی بدافزارها و حملات فیشینگ است. هر دو روش ssdeep و TLSH در امنیت سایبری کاربردهای فراوانی دارند، اما بسته به نیاز، یکی ممکن است بر دیگری برتری داشته باشد. ترکیب این دو روش میتواند به تحلیلگران امنیتی کمک کند تا تهدیدات جدید را سریعتر و دقیقتر شناسایی کنند.
#من_آموزش_میدهم
#آکادمی_روزبه
❤3👍1
جلوگیری از شناسایی VM هنگام تحلیل بدافزار
✍️روزبه نوروزی
بدافزار ها را معمولا در یک vm اجرا میکنیم تا رفتار آنرا ببینیم. بدافزارها هم تلاش دارند محیط vm را شناسایی کنند و اقدامات لازم را انجام دهند.
حال ما چه میکنیم ؟
🔆بطور خلاصه یکسری ایده :
✔️استفاده از دیباگر (x64dbg) و تغییر مقدار APIها در حافظه.
✔️ویرایش رجیستری برای حذف نامهای مربوط به VMware و VirtualBox.
✔️انجام Hook کردن APIها در سطح کد (DLL Injection) برای تغییر مقدار برگشتی.
✔️استفاده از ابزارهای آماده مثل ScyllaHide برای مخفی کردن محیط مجازی.
🔴شرح موضوع
برای جلوگیری از شناسایی محیط مجازی، میتوانیم APIهایی که بدافزار برای تشخیص VM استفاده میکند را Patch کنیم یا مقادیر جعلی برگردانیم. این کار را میتوان از طریق Hook کردن APIها، ویرایش کد اسمبلی، یا استفاده از ابزارهای آماده انجام داد.
روش ۱: Hook کردن APIها در دیباگر (x64dbg / OllyDbg)
مثال: Patch کردن NtQuerySystemInformation
یکی از رایجترین روشهای تشخیص VM، استفاده از NtQuerySystemInformation است. این API مقدار SystemFirmwareTableInformation یا SystemManufacturer را بررسی میکند. اگر مقادیر مربوط به VMware یا VirtualBox باشند، بدافزار متوجه محیط مجازی خواهد شد.
مراحل Patch کردن در دیباگر (x64dbg)
بدافزار را در x64dbg اجرا کنید.
به منوی Symbols بروید و ntdll.dll را انتخاب کنید.
تابع NtQuerySystemInformation را پیدا کنید.
روی آن Breakpoint (BP) بگذارید تا ببینید چه مقدار برمیگرداند.
مقدار برگشتی را با مقدار یک سیستم فیزیکی جایگزین کنید. (مثلاً "DELL" یا "HP" برای سازندهی سیستم)
در اسمبلی، مقدار EAX را به عدد 0 تغییر دهید (که یعنی تابع موفق اجرا شده ولی مقدار VM را برنمیگرداند).
mov eax, 0
ret
روش ۲: تغییر مقادیر رجیستری برای جلوگیری از تشخیص VM
اگر بدافزار مستقیماً از رجیستری ویندوز مقدار را میخواند، میتوانیم آن را تغییر دهیم. برخی کلیدهای مهم:
ویرایش مقدار SystemBiosVersion در رجیستری
regedit را باز کنید.
به مسیر زیر بروید:
HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System
مقدار SystemBiosVersion را تغییر دهید و مثلاً "DELL BIOS" را جایگزین کنید.
حذف اطلاعات مربوط به VMware از رجیستری
به مسیرهای زیر بروید و مقدار آنها را پاک کنید:
HKEY_LOCAL_MACHINE\SOFTWARE\VMware, Inc.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VBoxGuest
روش ۳: Hook کردن APIها در سطح کد (با DLL Injection)
✴️میتوان با نوشتن یک DLL و تزریق آن در پروسهی بدافزار، مقدار خروجی API را تغییر داد.
مثال: Hook کردن CPUID برای جلوگیری از شناسایی VMware
۱. کد C++ برای تغییر خروجی CPUID
#include <windows.h>
#include <detours.h>
#include <intrin.h>
typedef void (WINAPI* CPUID_t)(int[4], int);
CPUID_t Real_CPUID = (CPUID_t)__cpuid;
void WINAPI Fake_CPUID(int CPUInfo[4], int InfoType) {
Real_CPUID(CPUInfo, InfoType);
if (InfoType == 0) {
// تغییر مقدار برگشتی برای جلوگیری از شناسایی VM
CPUInfo[1] = 'Genu'; // تغییر به پردازنده Intel
CPUInfo[2] = 'ineI';
CPUInfo[3] = 'ntel';
}
}
void HookAPI() {
DetourTransactionBegin();
DetourUpdateThread(GetCurrentThread());
DetourAttach(&(PVOID&)Real_CPUID, Fake_CPUID);
DetourTransactionCommit();
}
۲. کامپایل کد و تزریق آن در بدافزار
این کد مقدار CPUID را تغییر میدهد تا سیستم بهعنوان Intel واقعی شناسایی شود و نه ماشین مجازی.
برای اجرای آن، باید از DLL Injection استفاده کنید.
روش ۴: استفاده از ابزارهای آماده برای مخفی کردن VM
ScyllaHide (برای دور زدن Anti-Debug و VM Detection)
این ScyllaHide یک پلاگین برای x64dbg است که بهصورت خودکار مقدار APIها را تغییر میدهد تا سیستم، فیزیکی به نظر برسد.
مراحل استفاده از ScyllaHide
پلاگین ScyllaHide را در x64dbg نصب کنید.
به مسیر Plugins > ScyllaHide بروید.
گزینههای VM Detection Bypass و Anti-Debug Protection را فعال کنید.
اجرای بدافزار را تست کنید تا ببینید آیا همچنان محیط را به عنوان VM تشخیص میدهد یا نه.
#آکادمی_روزبه
#من_آموزش_میدهم
🟣 برای پیوستن به گروه مطالعه کتاب Evasive Malware در نوروز ۱۴۰۴ به لینک زیر مراجعه کنید
https://t.me/roozbeh_learning/15130
✍️روزبه نوروزی
بدافزار ها را معمولا در یک vm اجرا میکنیم تا رفتار آنرا ببینیم. بدافزارها هم تلاش دارند محیط vm را شناسایی کنند و اقدامات لازم را انجام دهند.
حال ما چه میکنیم ؟
🔆بطور خلاصه یکسری ایده :
✔️استفاده از دیباگر (x64dbg) و تغییر مقدار APIها در حافظه.
✔️ویرایش رجیستری برای حذف نامهای مربوط به VMware و VirtualBox.
✔️انجام Hook کردن APIها در سطح کد (DLL Injection) برای تغییر مقدار برگشتی.
✔️استفاده از ابزارهای آماده مثل ScyllaHide برای مخفی کردن محیط مجازی.
🔴شرح موضوع
برای جلوگیری از شناسایی محیط مجازی، میتوانیم APIهایی که بدافزار برای تشخیص VM استفاده میکند را Patch کنیم یا مقادیر جعلی برگردانیم. این کار را میتوان از طریق Hook کردن APIها، ویرایش کد اسمبلی، یا استفاده از ابزارهای آماده انجام داد.
روش ۱: Hook کردن APIها در دیباگر (x64dbg / OllyDbg)
مثال: Patch کردن NtQuerySystemInformation
یکی از رایجترین روشهای تشخیص VM، استفاده از NtQuerySystemInformation است. این API مقدار SystemFirmwareTableInformation یا SystemManufacturer را بررسی میکند. اگر مقادیر مربوط به VMware یا VirtualBox باشند، بدافزار متوجه محیط مجازی خواهد شد.
مراحل Patch کردن در دیباگر (x64dbg)
بدافزار را در x64dbg اجرا کنید.
به منوی Symbols بروید و ntdll.dll را انتخاب کنید.
تابع NtQuerySystemInformation را پیدا کنید.
روی آن Breakpoint (BP) بگذارید تا ببینید چه مقدار برمیگرداند.
مقدار برگشتی را با مقدار یک سیستم فیزیکی جایگزین کنید. (مثلاً "DELL" یا "HP" برای سازندهی سیستم)
در اسمبلی، مقدار EAX را به عدد 0 تغییر دهید (که یعنی تابع موفق اجرا شده ولی مقدار VM را برنمیگرداند).
mov eax, 0
ret
روش ۲: تغییر مقادیر رجیستری برای جلوگیری از تشخیص VM
اگر بدافزار مستقیماً از رجیستری ویندوز مقدار را میخواند، میتوانیم آن را تغییر دهیم. برخی کلیدهای مهم:
ویرایش مقدار SystemBiosVersion در رجیستری
regedit را باز کنید.
به مسیر زیر بروید:
HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System
مقدار SystemBiosVersion را تغییر دهید و مثلاً "DELL BIOS" را جایگزین کنید.
حذف اطلاعات مربوط به VMware از رجیستری
به مسیرهای زیر بروید و مقدار آنها را پاک کنید:
HKEY_LOCAL_MACHINE\SOFTWARE\VMware, Inc.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VBoxGuest
روش ۳: Hook کردن APIها در سطح کد (با DLL Injection)
✴️میتوان با نوشتن یک DLL و تزریق آن در پروسهی بدافزار، مقدار خروجی API را تغییر داد.
مثال: Hook کردن CPUID برای جلوگیری از شناسایی VMware
۱. کد C++ برای تغییر خروجی CPUID
#include <windows.h>
#include <detours.h>
#include <intrin.h>
typedef void (WINAPI* CPUID_t)(int[4], int);
CPUID_t Real_CPUID = (CPUID_t)__cpuid;
void WINAPI Fake_CPUID(int CPUInfo[4], int InfoType) {
Real_CPUID(CPUInfo, InfoType);
if (InfoType == 0) {
// تغییر مقدار برگشتی برای جلوگیری از شناسایی VM
CPUInfo[1] = 'Genu'; // تغییر به پردازنده Intel
CPUInfo[2] = 'ineI';
CPUInfo[3] = 'ntel';
}
}
void HookAPI() {
DetourTransactionBegin();
DetourUpdateThread(GetCurrentThread());
DetourAttach(&(PVOID&)Real_CPUID, Fake_CPUID);
DetourTransactionCommit();
}
۲. کامپایل کد و تزریق آن در بدافزار
این کد مقدار CPUID را تغییر میدهد تا سیستم بهعنوان Intel واقعی شناسایی شود و نه ماشین مجازی.
برای اجرای آن، باید از DLL Injection استفاده کنید.
روش ۴: استفاده از ابزارهای آماده برای مخفی کردن VM
ScyllaHide (برای دور زدن Anti-Debug و VM Detection)
این ScyllaHide یک پلاگین برای x64dbg است که بهصورت خودکار مقدار APIها را تغییر میدهد تا سیستم، فیزیکی به نظر برسد.
مراحل استفاده از ScyllaHide
پلاگین ScyllaHide را در x64dbg نصب کنید.
به مسیر Plugins > ScyllaHide بروید.
گزینههای VM Detection Bypass و Anti-Debug Protection را فعال کنید.
اجرای بدافزار را تست کنید تا ببینید آیا همچنان محیط را به عنوان VM تشخیص میدهد یا نه.
#آکادمی_روزبه
#من_آموزش_میدهم
🟣 برای پیوستن به گروه مطالعه کتاب Evasive Malware در نوروز ۱۴۰۴ به لینک زیر مراجعه کنید
https://t.me/roozbeh_learning/15130
Telegram
آکادمی آموزش روزبه 📚
نوروز فرصت خوبی برای بهتر شدن و ارتقای شخصی هست.
بهتره برای اون زمان کتاب، ویدئو ها و کلاسها رو برنامه ریزی کنید.
من خودم قصد دارم کتاب زیر رو شروع کنم تا خرده خوانده ها که تا حالا داشته ام و تجربه ای که در این حوزه اندوخته ام در یک جا از پایه تجمیع بشن…
بهتره برای اون زمان کتاب، ویدئو ها و کلاسها رو برنامه ریزی کنید.
من خودم قصد دارم کتاب زیر رو شروع کنم تا خرده خوانده ها که تا حالا داشته ام و تجربه ای که در این حوزه اندوخته ام در یک جا از پایه تجمیع بشن…
👏6👍2❤1
تکنیک Patch کردن API یعنی چی و چطور انجام میشود؟
✍️روزبه نوروزی
تکنیکPatch کردن API ؛ یعنی تغییر رفتار یک تابع در حافظه یا کد اجرایی بهطوری که هنگام اجرای برنامه، تابع مقدار متفاوتی برگرداند یا اصلاً اجرا نشود.
این تکنیک در مهندسی معکوس، تحلیل بدافزار، و دور زدن محدودیتهای نرمافزاری استفاده میشود.
روشهای مختلف Patch کردن API
برای Patch کردن API میتوان از چندین روش مختلف استفاده کرد:
ویرایش باینری (Binary Patching) در فایل اجرایی
تکنیک Patch کردن در حافظه (Runtime Patching) با دیباگر
انجام Hook کردن API با DLL Injection یا Inline Hooking
۱. ویرایش باینری (Binary Patching) در فایل اجرایی
در این روش، مستقیماً فایل اجرایی (EXE / DLL) را ویرایش میکنیم و کد تابع را تغییر میدهیم.
مثال: حذف یک شرط در Assembly
فرض کنید یک برنامه این شرط را دارد:
cmp eax, 1 ;
مقدار EAX را با 1 مقایسه میکند
jne Exit ;
اگر برابر نبود، به Exit میرود
اگر بخواهیم این شرط را حذف کنیم تا برنامه همیشه مقدار موردنظر ما را بپذیرد، میتوانیم این دو دستور را NOP (No Operation) کنیم:
nop ; هیچ عملی انجام نده
nop ; هیچ عملی انجام نده
ابزارهای مورد نیاز برای این روش
Hiew → برای ویرایش فایلهای باینری
IDA Pro / Ghidra → برای مشاهده و تغییر کد اسمبلی
x64dbg / OllyDbg → برای دیباگ و Patch کردن در حافظه
۲. انجامPatch کردن در حافظه (Runtime Patching) با دیباگر
در این روش، برنامه را اجرا میکنیم و در لحظه (runtime) کد آن را تغییر میدهیم.
مثال: Patch کردن NtQuerySystemInformation در x64dbg
فرض کنید یک بدافزار از این API استفاده میکند تا ببیند سیستم داخل VM است یا نه:
call NtQuerySystemInformation
cmp eax, 0x1 ;
اگر مقدار برگشتی ۱ باشد، یعنی سیستم مجازی است
je Exit ;
اگر مقدار ۱ بود، خروج
مراحل انجام کار در x64dbg:
برنامه را در x64dbg اجرا کنید.
به تابع NtQuerySystemInformation بروید.
روی دستور cmp eax, 0x1 Breakpoint بگذارید.
مقدار eax را به ۰ تغییر دهید تا برنامه فکر کند در سیستم واقعی اجرا میشود.
mov eax, 0
اجرای برنامه را ادامه دهید.
🔹 نتیجه: بدافزار نمیتواند تشخیص دهد که در VM اجرا شده است!
۳. انجام Hook کردن API با DLL Injection یا Inline Hooking
در این روش، یک DLL جدید مینویسیم و آن را به برنامه تزریق میکنیم تا رفتار یک API را تغییر دهد.
مثال: Hook کردن NtQuerySystemInformation با DLL Injection
کد زیر باعث میشود که مقدار برگشتی NtQuerySystemInformation همیشه مقدار جعلی (مثلاً ۰) باشد، بنابراین بدافزار فکر میکند در یک سیستم واقعی اجرا شده است.
#include <windows.h>
#include <detours.h>
#include <winternl.h>
typedef NTSTATUS (WINAPI* NtQuerySystemInformation_t)(SYSTEM_INFORMATION_CLASS, PVOID, ULONG, PULONG);
NtQuerySystemInformation_t OriginalNtQuerySystemInformation;
NTSTATUS WINAPI HookedNtQuerySystemInformation(SYSTEM_INFORMATION_CLASS SystemInformationClass, PVOID SystemInformation, ULONG SystemInformationLength, PULONG ReturnLength) {
if (SystemInformationClass == SystemManufacturer) {
strcpy((char*)SystemInformation, "DELL");
مقدار جعلی برای سیستم فیزیکی
return 0;
}
return OriginalNtQuerySystemInformation(SystemInformationClass, SystemInformation, SystemInformationLength, ReturnLength);
}
void HookAPI() {
OriginalNtQuerySystemInformation = (NtQuerySystemInformation_t)GetProcAddress(GetModuleHandle("ntdll.dll"), "NtQuerySystemInformation");
DetourTransactionBegin();
DetourUpdateThread(GetCurrentThread());
DetourAttach(&(PVOID&)OriginalNtQuerySystemInformation, HookedNtQuerySystemInformation);
DetourTransactionCommit();
}
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) {
if (ul_reason_for_call == DLL_PROCESS_ATTACH) {
HookAPI();
}
return TRUE;
}
مراحل اجرای Hook
این کد را کامپایل کنید و یک DLL بسازید.
این DLL را به بدافزار Inject کنید (مثلاً با Process Hacker یا DLL Injector).
حالا API NtQuerySystemInformation مقدار دلخواه شما را برمیگرداند.
#آکادمی_روزبه
#من_آموزش_میدهم
✍️روزبه نوروزی
تکنیکPatch کردن API ؛ یعنی تغییر رفتار یک تابع در حافظه یا کد اجرایی بهطوری که هنگام اجرای برنامه، تابع مقدار متفاوتی برگرداند یا اصلاً اجرا نشود.
این تکنیک در مهندسی معکوس، تحلیل بدافزار، و دور زدن محدودیتهای نرمافزاری استفاده میشود.
روشهای مختلف Patch کردن API
برای Patch کردن API میتوان از چندین روش مختلف استفاده کرد:
ویرایش باینری (Binary Patching) در فایل اجرایی
تکنیک Patch کردن در حافظه (Runtime Patching) با دیباگر
انجام Hook کردن API با DLL Injection یا Inline Hooking
۱. ویرایش باینری (Binary Patching) در فایل اجرایی
در این روش، مستقیماً فایل اجرایی (EXE / DLL) را ویرایش میکنیم و کد تابع را تغییر میدهیم.
مثال: حذف یک شرط در Assembly
فرض کنید یک برنامه این شرط را دارد:
cmp eax, 1 ;
مقدار EAX را با 1 مقایسه میکند
jne Exit ;
اگر برابر نبود، به Exit میرود
اگر بخواهیم این شرط را حذف کنیم تا برنامه همیشه مقدار موردنظر ما را بپذیرد، میتوانیم این دو دستور را NOP (No Operation) کنیم:
nop ; هیچ عملی انجام نده
nop ; هیچ عملی انجام نده
ابزارهای مورد نیاز برای این روش
Hiew → برای ویرایش فایلهای باینری
IDA Pro / Ghidra → برای مشاهده و تغییر کد اسمبلی
x64dbg / OllyDbg → برای دیباگ و Patch کردن در حافظه
۲. انجامPatch کردن در حافظه (Runtime Patching) با دیباگر
در این روش، برنامه را اجرا میکنیم و در لحظه (runtime) کد آن را تغییر میدهیم.
مثال: Patch کردن NtQuerySystemInformation در x64dbg
فرض کنید یک بدافزار از این API استفاده میکند تا ببیند سیستم داخل VM است یا نه:
call NtQuerySystemInformation
cmp eax, 0x1 ;
اگر مقدار برگشتی ۱ باشد، یعنی سیستم مجازی است
je Exit ;
اگر مقدار ۱ بود، خروج
مراحل انجام کار در x64dbg:
برنامه را در x64dbg اجرا کنید.
به تابع NtQuerySystemInformation بروید.
روی دستور cmp eax, 0x1 Breakpoint بگذارید.
مقدار eax را به ۰ تغییر دهید تا برنامه فکر کند در سیستم واقعی اجرا میشود.
mov eax, 0
اجرای برنامه را ادامه دهید.
🔹 نتیجه: بدافزار نمیتواند تشخیص دهد که در VM اجرا شده است!
۳. انجام Hook کردن API با DLL Injection یا Inline Hooking
در این روش، یک DLL جدید مینویسیم و آن را به برنامه تزریق میکنیم تا رفتار یک API را تغییر دهد.
مثال: Hook کردن NtQuerySystemInformation با DLL Injection
کد زیر باعث میشود که مقدار برگشتی NtQuerySystemInformation همیشه مقدار جعلی (مثلاً ۰) باشد، بنابراین بدافزار فکر میکند در یک سیستم واقعی اجرا شده است.
#include <windows.h>
#include <detours.h>
#include <winternl.h>
typedef NTSTATUS (WINAPI* NtQuerySystemInformation_t)(SYSTEM_INFORMATION_CLASS, PVOID, ULONG, PULONG);
NtQuerySystemInformation_t OriginalNtQuerySystemInformation;
NTSTATUS WINAPI HookedNtQuerySystemInformation(SYSTEM_INFORMATION_CLASS SystemInformationClass, PVOID SystemInformation, ULONG SystemInformationLength, PULONG ReturnLength) {
if (SystemInformationClass == SystemManufacturer) {
strcpy((char*)SystemInformation, "DELL");
مقدار جعلی برای سیستم فیزیکی
return 0;
}
return OriginalNtQuerySystemInformation(SystemInformationClass, SystemInformation, SystemInformationLength, ReturnLength);
}
void HookAPI() {
OriginalNtQuerySystemInformation = (NtQuerySystemInformation_t)GetProcAddress(GetModuleHandle("ntdll.dll"), "NtQuerySystemInformation");
DetourTransactionBegin();
DetourUpdateThread(GetCurrentThread());
DetourAttach(&(PVOID&)OriginalNtQuerySystemInformation, HookedNtQuerySystemInformation);
DetourTransactionCommit();
}
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) {
if (ul_reason_for_call == DLL_PROCESS_ATTACH) {
HookAPI();
}
return TRUE;
}
مراحل اجرای Hook
این کد را کامپایل کنید و یک DLL بسازید.
این DLL را به بدافزار Inject کنید (مثلاً با Process Hacker یا DLL Injector).
حالا API NtQuerySystemInformation مقدار دلخواه شما را برمیگرداند.
#آکادمی_روزبه
#من_آموزش_میدهم
👏3❤1👍1
دستگرمی با یادگیری ماشینی
و اسپلانک Machine Learning and splunk
✍️روزبه نوروزی
☘️تشخیص حمله با Splunk MLTK
یک بانک متوجه شده است که برخی از سیستمهای داخلی در حال برقراری ارتباط با یک سرور خارجی مشکوک هستند. رفتار غیرعادی این سیستمها نشاندهندهی یک حمله است. تیم امنیتی قصد دارد با استفاده از Splunk Machine Learning Toolkit (MLTK) و SOAR، این نوع حملات را بهتر شناسایی و کنترل کند.
از مدل PCA (Principal Component Analysis) برای تحلیل رفتار نرمال و تشخیص انحرافات استفاده میکنیم:
اول
index=network_traffic sourcetype=firewall_logs
| stats count dc(dest_ip) as unique_destinations by src_ip
| where unique_destinations > 50
سیستمهایی که با بیش از ۵۰ دامنهی مختلف در مدت کوتاه ارتباط دارند، ممکن است به سرورهای C2 متصل باشند.
این دادهها برای یادگیری ماشین آماده میشوند.
دوم
| fit PCA unique_destinations into anomaly_model
| where anomaly_model_score > 2.5
مدل PCA دادههای پرت (Outliers) را که از الگوی عادی انحراف دارند، شناسایی میکند.
سیستمهایی که امتیاز anomaly_model_score > 2.5 دارند، بهعنوان ارتباطات مشکوک شناخته میشوند.
☘️تطبیق با IOCها و ایجاد هشدار امنیتی
اگر IP مقصد در Indicator of Compromise (IOC) ها موجود باشد، باید به آن وزن بیشتری داده شود:
| lookup ioc_list.csv dest_ip AS suspicious_ip
| eval risk_score = case(anomaly_model_score > 2.5 AND isnotnull(suspicious_ip), 100, anomaly_model_score > 2.5, 80)
| table src_ip, dest_ip, risk_score
| sendalert "notable"
اگر IP مقصد در IOC لیست سیاه باشد، امتیاز ریسک به ۱۰۰ افزایش پیدا میکند.
اگر ارتباط فقط از مدل یادگیری ماشین مشکوک باشد، امتیاز ۸۰ دریافت میکند.
☘️پاسخ خودکار با Splunk SOAR (Phantom)
با استفاده از Splunk SOAR، اقداماتی خودکار اجرا میشود:
مسدود کردن IP مشکوک در فایروال:
phantom.act("block ip", parameters={"ip": suspicious_ip, "device": "firewall"})
🌷نقش یادگیری ماشین در این سناریو و چرایی استفاده از آن
در این سناریو، هدف ما شناسایی ارتباطات مشکوک بین سیستمهای داخلی بانک و سرورهای خارجی (که احتمالاً سرورهای C2 هستند) است. اما چرا از یادگیری ماشین استفاده کردیم؟
۱. مشکل اصلی: تشخیص ارتباطات غیرعادی در میان حجم بالای ترافیک
در یک سازمان بزرگ، روزانه میلیونها ارتباط شبکهای ثبت میشود. تشخیص حملات APT از طریق روشهای سنتی مانند Signature-based Detection (مبتنی بر قوانین و فیلترها) دشوار است، زیرا:
مهاجمان از IPهای جدید و ناشناخته استفاده میکنند که در لیستهای IOC نیستند.
رفتار C2 ممکن است آهسته و پنهانی باشد (ارتباطات مداوم اما کمحجم).
قوانین ثابت (مثل "اگر بیش از ۵۰ ارتباط داشت، هشدار بده") ممکن است False Positive زیادی تولید کند.
یادگیری ماشین کمک میکند که رفتار عادی کاربران و سرورها را یاد بگیرد و فقط موارد غیرعادی را علامتگذاری کند.
۲. نقش PCA (Principal Component Analysis) در تشخیص ناهنجاریها
ما از PCA (تحلیل مؤلفههای اصلی) استفاده کردیم که یک روش یادگیری ماشین برای کاهش ابعاد دادهها و کشف نقاط پرت است.
چطور کار میکند؟
مدل PCA الگوهای عادی را در ارتباطات کاربران یاد میگیرد (مثلاً کاربران معمولاً با چند سرور مشخص کار میکنند).
وقتی سیستمی رفتار جدید و غیرعادی از خود نشان دهد (مثلاً تعداد زیادی ارتباط به دامنههای ناشناخته)، امتیاز ناهنجاری بالایی میگیرد.
سیستمهایی که امتیازشان از یک حد خاص عبور کند (anomaly_model_score > 2.5)، به عنوان مشکوک علامتگذاری میشوند.
🔆 یادگیری ماشین به ما کمک کرد که فقط روی سیستمهایی تمرکز کنیم که رفتارشان واقعاً متفاوت از رفتار نرمال است، بدون اینکه هزاران هشدار غلط تولید شود.
۳. ترکیب یادگیری ماشین با IOCها برای دقت بالاتر
برخی ارتباطات ناهنجار ممکن است بیخطر باشند (مثلاً یک مهندس شبکه که به سرورهای زیادی متصل میشود).
اما اگر یک سیستم هم رفتار غیرعادی داشته باشد و هم به یک IP مشکوک متصل شود، احتمال حمله بسیار زیاد است.
ترکیب این دو (امتیاز PCA + تطبیق با IOCها) باعث شد که فقط موارد مهم با امتیاز ریسک بالا (مثلاً 100) به تیم امنیتی گزارش شود.
#من_آموزش_میدهم
#آکادمی_روزبه
و اسپلانک Machine Learning and splunk
✍️روزبه نوروزی
☘️تشخیص حمله با Splunk MLTK
یک بانک متوجه شده است که برخی از سیستمهای داخلی در حال برقراری ارتباط با یک سرور خارجی مشکوک هستند. رفتار غیرعادی این سیستمها نشاندهندهی یک حمله است. تیم امنیتی قصد دارد با استفاده از Splunk Machine Learning Toolkit (MLTK) و SOAR، این نوع حملات را بهتر شناسایی و کنترل کند.
از مدل PCA (Principal Component Analysis) برای تحلیل رفتار نرمال و تشخیص انحرافات استفاده میکنیم:
اول
index=network_traffic sourcetype=firewall_logs
| stats count dc(dest_ip) as unique_destinations by src_ip
| where unique_destinations > 50
سیستمهایی که با بیش از ۵۰ دامنهی مختلف در مدت کوتاه ارتباط دارند، ممکن است به سرورهای C2 متصل باشند.
این دادهها برای یادگیری ماشین آماده میشوند.
دوم
| fit PCA unique_destinations into anomaly_model
| where anomaly_model_score > 2.5
مدل PCA دادههای پرت (Outliers) را که از الگوی عادی انحراف دارند، شناسایی میکند.
سیستمهایی که امتیاز anomaly_model_score > 2.5 دارند، بهعنوان ارتباطات مشکوک شناخته میشوند.
☘️تطبیق با IOCها و ایجاد هشدار امنیتی
اگر IP مقصد در Indicator of Compromise (IOC) ها موجود باشد، باید به آن وزن بیشتری داده شود:
| lookup ioc_list.csv dest_ip AS suspicious_ip
| eval risk_score = case(anomaly_model_score > 2.5 AND isnotnull(suspicious_ip), 100, anomaly_model_score > 2.5, 80)
| table src_ip, dest_ip, risk_score
| sendalert "notable"
اگر IP مقصد در IOC لیست سیاه باشد، امتیاز ریسک به ۱۰۰ افزایش پیدا میکند.
اگر ارتباط فقط از مدل یادگیری ماشین مشکوک باشد، امتیاز ۸۰ دریافت میکند.
☘️پاسخ خودکار با Splunk SOAR (Phantom)
با استفاده از Splunk SOAR، اقداماتی خودکار اجرا میشود:
مسدود کردن IP مشکوک در فایروال:
phantom.act("block ip", parameters={"ip": suspicious_ip, "device": "firewall"})
🌷نقش یادگیری ماشین در این سناریو و چرایی استفاده از آن
در این سناریو، هدف ما شناسایی ارتباطات مشکوک بین سیستمهای داخلی بانک و سرورهای خارجی (که احتمالاً سرورهای C2 هستند) است. اما چرا از یادگیری ماشین استفاده کردیم؟
۱. مشکل اصلی: تشخیص ارتباطات غیرعادی در میان حجم بالای ترافیک
در یک سازمان بزرگ، روزانه میلیونها ارتباط شبکهای ثبت میشود. تشخیص حملات APT از طریق روشهای سنتی مانند Signature-based Detection (مبتنی بر قوانین و فیلترها) دشوار است، زیرا:
مهاجمان از IPهای جدید و ناشناخته استفاده میکنند که در لیستهای IOC نیستند.
رفتار C2 ممکن است آهسته و پنهانی باشد (ارتباطات مداوم اما کمحجم).
قوانین ثابت (مثل "اگر بیش از ۵۰ ارتباط داشت، هشدار بده") ممکن است False Positive زیادی تولید کند.
یادگیری ماشین کمک میکند که رفتار عادی کاربران و سرورها را یاد بگیرد و فقط موارد غیرعادی را علامتگذاری کند.
۲. نقش PCA (Principal Component Analysis) در تشخیص ناهنجاریها
ما از PCA (تحلیل مؤلفههای اصلی) استفاده کردیم که یک روش یادگیری ماشین برای کاهش ابعاد دادهها و کشف نقاط پرت است.
چطور کار میکند؟
مدل PCA الگوهای عادی را در ارتباطات کاربران یاد میگیرد (مثلاً کاربران معمولاً با چند سرور مشخص کار میکنند).
وقتی سیستمی رفتار جدید و غیرعادی از خود نشان دهد (مثلاً تعداد زیادی ارتباط به دامنههای ناشناخته)، امتیاز ناهنجاری بالایی میگیرد.
سیستمهایی که امتیازشان از یک حد خاص عبور کند (anomaly_model_score > 2.5)، به عنوان مشکوک علامتگذاری میشوند.
🔆 یادگیری ماشین به ما کمک کرد که فقط روی سیستمهایی تمرکز کنیم که رفتارشان واقعاً متفاوت از رفتار نرمال است، بدون اینکه هزاران هشدار غلط تولید شود.
۳. ترکیب یادگیری ماشین با IOCها برای دقت بالاتر
برخی ارتباطات ناهنجار ممکن است بیخطر باشند (مثلاً یک مهندس شبکه که به سرورهای زیادی متصل میشود).
اما اگر یک سیستم هم رفتار غیرعادی داشته باشد و هم به یک IP مشکوک متصل شود، احتمال حمله بسیار زیاد است.
ترکیب این دو (امتیاز PCA + تطبیق با IOCها) باعث شد که فقط موارد مهم با امتیاز ریسک بالا (مثلاً 100) به تیم امنیتی گزارش شود.
#من_آموزش_میدهم
#آکادمی_روزبه
🔥4❤1👏1
✅️با توجه به پست قبل که در لینکدین منتشر شد دانشجویان از من درمورد مدلهای یادگیری ماشین در اسپلانک سوال داشتند
✍️روزبه نوروزی
۱. مدلهای تشخیص ناهنجاری (Anomaly Detection)
🔹 Density Function
از توزیع دادهها برای شناسایی نقاط پرت (Outliers) استفاده میکند.
کاربرد: تشخیص رفتار غیرعادی در ورود کاربران، تشخیص حجم غیرعادی ترافیک شبکه.
مثال: تشخیص افزایش ناگهانی ورود ناموفق به سیستم (Brute Force).
دستور:
| fit DensityFunction count into anomaly_model
🔹 Local Outlier Factor (LOF)
ارتباط هر نقطه داده را با همسایگانش مقایسه میکند.
کاربرد: تشخیص حملات سایبری با الگوهای جدید، مثل APT.
دستور:
| fit LOF network_activity into lof_model
🔹 Isolation Forest
دادههای پرت را با ساخت درختهای تصادفی شناسایی میکند.
کاربرد: تشخیص بدافزارهای ناشناخته در ترافیک شبکه.
دستور:
| fit IsolationForest dest_ip into if_model
۲. مدلهای پیشبینی (Prediction Models)
🔹 Linear Regression
برای پیشبینی مقدار عددی استفاده میشود.
کاربرد: پیشبینی حجم ترافیک آینده یا رشد لاگهای ناموفق ورود.
دستور:
| fit LinearRegression count from time into prediction_model
🔹 Random Forest Regressor
از چندین درخت تصمیم (Decision Trees) برای پیشبینی استفاده میکند.
کاربرد: پیشبینی تعداد حملات DDoS در روزهای آینده.
دستور:
| fit RandomForestRegressor error_rate from time into rf_model
۳. مدلهای دستهبندی (Classification Models)
🔹 Decision Tree Classifier
دادهها را به گروههای مختلف طبقهبندی میکند.
کاربرد: شناسایی حملات بر اساس نوع (مثلاً Phishing، DDoS، Malware).
دستور:
| fit DecisionTreeClassifier attack_type from features into dt_model
🔹 Support Vector Machine (SVM)
دادهها را با استفاده از مرزهای مشخص شده طبقهبندی میکند.
کاربرد: شناسایی ایمیلهای فیشینگ بر اساس محتوا و فرستنده.
دستور:
| fit SVM email_content into svm_model
🔹 Naïve Bayes Classifier
از احتمالات برای دستهبندی دادهها استفاده میکند.
کاربرد: طبقهبندی رویدادهای امنیتی (مثلاً تمایز بین خطای کاربری و حمله).
دستور:
| fit NaiveBayes attack_type from event_logs into nb_model
۴. مدلهای خوشهبندی (Clustering Models)
🔹 K-Means Clustering
دادهها را به چند گروه مشابه تقسیم میکند.
کاربرد: تشخیص رفتار مشابه بین کاربران مشکوک.
دستور:
| fit KMeans number_of_logins into cluster_model k=3
🔹 DBSCAN (Density-Based Clustering)
خوشههای پرتراکم را پیدا کرده و نقاط پرت را جدا میکند.
کاربرد: تشخیص دستگاههایی که رفتار مشکوک مشابه دارند.
دستور:
| fit DBSCAN network_activity into dbscan_model
۵. مدلهای کاهش ابعاد (Dimensionality Reduction)
🔹 PCA (Principal Component Analysis)
تعداد ویژگیهای داده را کاهش میدهد و به تشخیص ناهنجاریها کمک میکند.
کاربرد: تحلیل دادههای بزرگ برای کشف الگوهای پنهان در حملات APT.
دستور:
| fit PCA network_features into pca_model
جمعبندی
✅ اگر دنبال تشخیص ناهنجاری هستیم: Density Function، Isolation Forest، LOF
✅ اگر نیاز به پیشبینی روند داریم: Linear Regression، Random Forest
✅ اگر باید دادهها را دستهبندی کنیم: Decision Tree، SVM، Naïve Bayes
✅ اگر میخواهیم خوشههای مشکوک را پیدا کنیم: K-Means، DBSCAN
#من_آموزش_میدهم
#آکادمی_روزبه
پی نوشت : این مدلها از حوزه یادگیری ماشین زیر مجموعه هوش مصنوعی هستند
درصورت علاقه به یادگیری خود مدل ؛ باید به کتابهای هوش مصنوعی مراجعه کرد
✍️روزبه نوروزی
۱. مدلهای تشخیص ناهنجاری (Anomaly Detection)
🔹 Density Function
از توزیع دادهها برای شناسایی نقاط پرت (Outliers) استفاده میکند.
کاربرد: تشخیص رفتار غیرعادی در ورود کاربران، تشخیص حجم غیرعادی ترافیک شبکه.
مثال: تشخیص افزایش ناگهانی ورود ناموفق به سیستم (Brute Force).
دستور:
| fit DensityFunction count into anomaly_model
🔹 Local Outlier Factor (LOF)
ارتباط هر نقطه داده را با همسایگانش مقایسه میکند.
کاربرد: تشخیص حملات سایبری با الگوهای جدید، مثل APT.
دستور:
| fit LOF network_activity into lof_model
🔹 Isolation Forest
دادههای پرت را با ساخت درختهای تصادفی شناسایی میکند.
کاربرد: تشخیص بدافزارهای ناشناخته در ترافیک شبکه.
دستور:
| fit IsolationForest dest_ip into if_model
۲. مدلهای پیشبینی (Prediction Models)
🔹 Linear Regression
برای پیشبینی مقدار عددی استفاده میشود.
کاربرد: پیشبینی حجم ترافیک آینده یا رشد لاگهای ناموفق ورود.
دستور:
| fit LinearRegression count from time into prediction_model
🔹 Random Forest Regressor
از چندین درخت تصمیم (Decision Trees) برای پیشبینی استفاده میکند.
کاربرد: پیشبینی تعداد حملات DDoS در روزهای آینده.
دستور:
| fit RandomForestRegressor error_rate from time into rf_model
۳. مدلهای دستهبندی (Classification Models)
🔹 Decision Tree Classifier
دادهها را به گروههای مختلف طبقهبندی میکند.
کاربرد: شناسایی حملات بر اساس نوع (مثلاً Phishing، DDoS، Malware).
دستور:
| fit DecisionTreeClassifier attack_type from features into dt_model
🔹 Support Vector Machine (SVM)
دادهها را با استفاده از مرزهای مشخص شده طبقهبندی میکند.
کاربرد: شناسایی ایمیلهای فیشینگ بر اساس محتوا و فرستنده.
دستور:
| fit SVM email_content into svm_model
🔹 Naïve Bayes Classifier
از احتمالات برای دستهبندی دادهها استفاده میکند.
کاربرد: طبقهبندی رویدادهای امنیتی (مثلاً تمایز بین خطای کاربری و حمله).
دستور:
| fit NaiveBayes attack_type from event_logs into nb_model
۴. مدلهای خوشهبندی (Clustering Models)
🔹 K-Means Clustering
دادهها را به چند گروه مشابه تقسیم میکند.
کاربرد: تشخیص رفتار مشابه بین کاربران مشکوک.
دستور:
| fit KMeans number_of_logins into cluster_model k=3
🔹 DBSCAN (Density-Based Clustering)
خوشههای پرتراکم را پیدا کرده و نقاط پرت را جدا میکند.
کاربرد: تشخیص دستگاههایی که رفتار مشکوک مشابه دارند.
دستور:
| fit DBSCAN network_activity into dbscan_model
۵. مدلهای کاهش ابعاد (Dimensionality Reduction)
🔹 PCA (Principal Component Analysis)
تعداد ویژگیهای داده را کاهش میدهد و به تشخیص ناهنجاریها کمک میکند.
کاربرد: تحلیل دادههای بزرگ برای کشف الگوهای پنهان در حملات APT.
دستور:
| fit PCA network_features into pca_model
جمعبندی
✅ اگر دنبال تشخیص ناهنجاری هستیم: Density Function، Isolation Forest، LOF
✅ اگر نیاز به پیشبینی روند داریم: Linear Regression، Random Forest
✅ اگر باید دادهها را دستهبندی کنیم: Decision Tree، SVM، Naïve Bayes
✅ اگر میخواهیم خوشههای مشکوک را پیدا کنیم: K-Means، DBSCAN
#من_آموزش_میدهم
#آکادمی_روزبه
پی نوشت : این مدلها از حوزه یادگیری ماشین زیر مجموعه هوش مصنوعی هستند
درصورت علاقه به یادگیری خود مدل ؛ باید به کتابهای هوش مصنوعی مراجعه کرد
👏4❤1👍1
شناسایی حمله باجافزاری (Ransomware) با Splunk و یادگیری ماشین (AI)
✍️روزبه نوروزی
حمله باجافزاری معمولاً در چند مرحله اجرا میشود و یادگیری ماشین و هوش مصنوعی میتواند در شناسایی آن از طریق تحلیل رفتار فایلها، پردازشها و ارتباطات شبکهای کمک کند.
در اینجا یک سناریو از کشف باجافزار با استفاده از Splunk Machine Learning Toolkit (MLTK) ارائه شده است.
🔹 مراحل اجرای یک حمله باجافزاری
۱. دسترسی اولیه (Initial Access)
مهاجم از یکی از روشهای زیر استفاده میکند:
فیشینگ (Phishing)
اکسپلویت آسیبپذیریها (مثلاً RDP یا SMB باز)
حمله بروت فورس برای ورود به سیستم
✅ منبع دادهای: SIEM Logs، Email Logs، Authentication Logs
✅ مدل تشخیصی: Naïve Bayes (برای شناسایی ایمیل فیشینگ)
۲. اجرای بدافزار (Execution)
باجافزار معمولاً یک پردازش جدید و غیرمعمول روی سیستم اجرا میکند. این پردازش ممکن است دارای مشخصات زیر باشد:
اجرای پردازش جدید از پوشه Temp یا AppData
اجرای اسکریپتهای PowerShell مشکوک
ایجاد پردازشهای فرزند (مثلاً parent process = powershell.exe)
✅ منبع دادهای: Sysmon Logs، EDR Logs
✅ مدل تشخیصی: Decision Tree (برای شناسایی فرآیندهای مشکوک)
🔹 جستجوی پیشنهادی در Splunk برای پردازشهای مشکوک:
index=endpoint_logs sourcetype=sysmon
| stats count by process_name, parent_process
| where parent_process="powershell.exe" AND count > 3
| fit DecisionTreeClassifier malware_flag from process_name into ransomware_exec_model
۳. رمزگذاری فایلها (Encryption Phase)
هنگامی که باجافزار اجرا شد، شروع به رمزگذاری فایلها میکند:
افزایش ناگهانی تغییرات در فایلها
تغییر پسوند فایلها به مقدار غیرعادی (مثلاً .lock، .encrypted)
حذف فایلهای بکاپ (Volume Shadow Copies)
✅ منبع دادهای: File System Logs (Windows Security Logs, Sysmon Event ID 4663)
✅ مدل تشخیصی: Density Function (برای تشخیص رفتار غیرعادی فایلها)
🔹 جستجوی پیشنهادی در Splunk برای شناسایی تغییرات غیرعادی فایلها:
index=file_logs sourcetype=sysmon event_id=4663
| stats count by file_path, action
| where action="write" AND count > 100
| fit DensityFunction count into ransomware_file_model
۴. برقراری ارتباط با سرور فرماندهی و کنترل (C2 Communication)
در این مرحله، باجافزار به سرورهای خارجی متصل میشود تا کلید رمزگذاری یا دستورات جدید دریافت کند:
ارتباط با دامنههای تازه ثبتشده (Newly Registered Domains)
استفاده از پروتکلهای غیرمعمول (مثلاً DNS tunneling)
ارتباط با IPهای شناختهشده در تهدیدات سایبری
✅ منبع دادهای: Firewall Logs، DNS Logs، Threat Intelligence Feeds
✅ مدل تشخیصی: Isolation Forest (برای تشخیص ارتباطات غیرعادی)
🔹 جستجوی پیشنهادی در Splunk برای شناسایی ارتباط با C2:
index=network_traffic sourcetype=firewall_logs
| stats count by dest_ip, protocol
| where protocol IN ("dns", "http", "https")
| fit IsolationForest count into ransomware_c2_model
| where ransomware_c2_model_score > 2.5
۵. درخواست باج (Ransom Demand)
ایجاد یک فایل متنی روی دسکتاپ کاربر (README.txt)
نمایش یک پیام در صفحه (Popup یا Wallpaper تغییر یافته)
✅ منبع دادهای: Endpoint Logs، Windows Event Logs
✅ مدل تشخیصی: K-Means Clustering (برای تحلیل الگوهای مشترک باجافزارها)
#من_آموزش_میدهم
#آکادمی_روزبه
✍️روزبه نوروزی
حمله باجافزاری معمولاً در چند مرحله اجرا میشود و یادگیری ماشین و هوش مصنوعی میتواند در شناسایی آن از طریق تحلیل رفتار فایلها، پردازشها و ارتباطات شبکهای کمک کند.
در اینجا یک سناریو از کشف باجافزار با استفاده از Splunk Machine Learning Toolkit (MLTK) ارائه شده است.
🔹 مراحل اجرای یک حمله باجافزاری
۱. دسترسی اولیه (Initial Access)
مهاجم از یکی از روشهای زیر استفاده میکند:
فیشینگ (Phishing)
اکسپلویت آسیبپذیریها (مثلاً RDP یا SMB باز)
حمله بروت فورس برای ورود به سیستم
✅ منبع دادهای: SIEM Logs، Email Logs، Authentication Logs
✅ مدل تشخیصی: Naïve Bayes (برای شناسایی ایمیل فیشینگ)
۲. اجرای بدافزار (Execution)
باجافزار معمولاً یک پردازش جدید و غیرمعمول روی سیستم اجرا میکند. این پردازش ممکن است دارای مشخصات زیر باشد:
اجرای پردازش جدید از پوشه Temp یا AppData
اجرای اسکریپتهای PowerShell مشکوک
ایجاد پردازشهای فرزند (مثلاً parent process = powershell.exe)
✅ منبع دادهای: Sysmon Logs، EDR Logs
✅ مدل تشخیصی: Decision Tree (برای شناسایی فرآیندهای مشکوک)
🔹 جستجوی پیشنهادی در Splunk برای پردازشهای مشکوک:
index=endpoint_logs sourcetype=sysmon
| stats count by process_name, parent_process
| where parent_process="powershell.exe" AND count > 3
| fit DecisionTreeClassifier malware_flag from process_name into ransomware_exec_model
۳. رمزگذاری فایلها (Encryption Phase)
هنگامی که باجافزار اجرا شد، شروع به رمزگذاری فایلها میکند:
افزایش ناگهانی تغییرات در فایلها
تغییر پسوند فایلها به مقدار غیرعادی (مثلاً .lock، .encrypted)
حذف فایلهای بکاپ (Volume Shadow Copies)
✅ منبع دادهای: File System Logs (Windows Security Logs, Sysmon Event ID 4663)
✅ مدل تشخیصی: Density Function (برای تشخیص رفتار غیرعادی فایلها)
🔹 جستجوی پیشنهادی در Splunk برای شناسایی تغییرات غیرعادی فایلها:
index=file_logs sourcetype=sysmon event_id=4663
| stats count by file_path, action
| where action="write" AND count > 100
| fit DensityFunction count into ransomware_file_model
۴. برقراری ارتباط با سرور فرماندهی و کنترل (C2 Communication)
در این مرحله، باجافزار به سرورهای خارجی متصل میشود تا کلید رمزگذاری یا دستورات جدید دریافت کند:
ارتباط با دامنههای تازه ثبتشده (Newly Registered Domains)
استفاده از پروتکلهای غیرمعمول (مثلاً DNS tunneling)
ارتباط با IPهای شناختهشده در تهدیدات سایبری
✅ منبع دادهای: Firewall Logs، DNS Logs، Threat Intelligence Feeds
✅ مدل تشخیصی: Isolation Forest (برای تشخیص ارتباطات غیرعادی)
🔹 جستجوی پیشنهادی در Splunk برای شناسایی ارتباط با C2:
index=network_traffic sourcetype=firewall_logs
| stats count by dest_ip, protocol
| where protocol IN ("dns", "http", "https")
| fit IsolationForest count into ransomware_c2_model
| where ransomware_c2_model_score > 2.5
۵. درخواست باج (Ransom Demand)
ایجاد یک فایل متنی روی دسکتاپ کاربر (README.txt)
نمایش یک پیام در صفحه (Popup یا Wallpaper تغییر یافته)
✅ منبع دادهای: Endpoint Logs، Windows Event Logs
✅ مدل تشخیصی: K-Means Clustering (برای تحلیل الگوهای مشترک باجافزارها)
#من_آموزش_میدهم
#آکادمی_روزبه
❤4
آکادمی آموزش روزبه 📚
دستگرمی با یادگیری ماشینی و اسپلانک Machine Learning and splunk ✍️روزبه نوروزی ☘️تشخیص حمله با Splunk MLTK یک بانک متوجه شده است که برخی از سیستمهای داخلی در حال برقراری ارتباط با یک سرور خارجی مشکوک هستند. رفتار غیرعادی این سیستمها نشاندهندهی یک…
⛵️هوش مصنوعی و اسپلانک
استفاده از Splunk App for Data Science and Deep Learning (DSDL) برای تحلیل امنیتی پیشرفته
✍️روزبه نوروزی
این Splunk DSDL یک افزونه برای Splunk MLTK است که به شما امکان میدهد مدلهای یادگیری عمیق (Deep Learning) و پردازش دادههای بزرگ را با استفاده از فریمورکهایی مثل TensorFlow، PyTorch و Scikit-learn اجرا کنید.
این اپلیکیشن به شما اجازه میدهد که مدلهای پیچیدهای برای تحلیل امنیتی بسازید که در Splunk Enterprise Security (ES) یا محیطهای دیگر Splunk اجرا شوند.
🔹 تفاوت DSDL با MLTK چیست؟
✅ این MLTK برای مدلهای یادگیری ماشین کلاسیک مثل تصمیمگیری درختی، K-Means، Isolation Forest
✅ اما DSDL برای یادگیری عمیق و دادههای حجیم، مانند LSTM برای تشخیص ناهنجاری در ترافیک شبکه یا CNN برای تحلیل لاگها
🔹 اجرای مدلهای یادگیری عمیق با DSDL در امنیت سایبری
در ادامه چند سناریوی امنیتی پیچیده با استفاده از DSDL آورده شده است.
📌 سناریو ۱: تشخیص حملات مداوم (APT) با استفاده از LSTM
🛠 چالش:
حملات APT دارای الگوی زمانی خاص هستند و روشهای کلاسیک (مثل Isolation Forest) نمیتوانند تغییرات تدریجی رفتار مهاجمان را تشخیص دهند.
📊 مدل پیشنهادی:
مدل LSTM (Long Short-Term Memory) برای تشخیص ناهنجاری در ارتباطات شبکهای
🔍 جستجوی Splunk برای آموزش مدل:
| inputlookup network_traffic_logs.csv
| table timestamp, src_ip, dest_ip, bytes_sent, bytes_received
| fit LSTM timestamp bytes_sent bytes_received into dsdl_apt_model
✅ مزیت: تشخیص رفتار مخفی مهاجمان از طریق الگوهای زمانی در ارتباطات شبکه
📌 سناریو ۲: تشخیص حمله باجافزاری با CNN و تحلیل فایلها
🛠 چالش:
باجافزارها از روشهای متنوعی برای رمزگذاری فایلها استفاده میکنند، و مدلهای سنتی ممکن است در تشخیص برخی نمونههای جدید ضعیف باشند.
📊 مدل پیشنهادی:
مدل CNN (Convolutional Neural Network) برای تحلیل تغییرات فایلهای سیستمی و تشخیص رفتار رمزگذاری
🔍 جستجوی Splunk برای اجرای مدل:
| inputlookup file_change_logs.csv
| table filename, file_size, entropy, timestamp
| fit CNN filename entropy into dsdl_ransomware_model
✅ مزیت: امکان شناسایی رمزگذاریهای مشکوک حتی در نمونههای جدید باجافزار
📌 سناریو ۳: تحلیل ایمیلهای فیشینگ با Transformer (BERT)
🛠 چالش:
فیشینگ معمولاً با تغییرات جزئی در متن ایمیل انجام میشود که مدلهای ساده مثل Naïve Bayes قادر به تشخیص آنها نیستند.
📊 مدل پیشنهادی:
مدل BERT (Bidirectional Encoder Representations from Transformers) برای پردازش زبان طبیعی (NLP) در تحلیل متن ایمیلها
🔍 جستجوی Splunk برای پردازش ایمیلها:
| inputlookup email_logs.csv
| table email_subject, email_body
| fit BERT email_body into dsdl_phishing_model
✅ مزیت: تحلیل ایمیلهای فیشینگ با دقت بالا و تشخیص تغییرات زیرکانه در متن ایمیل
🔹 نتیجهگیری: چه زمانی از DSDL استفاده کنیم؟
✅ اگر حجم دادههای بالا و نیاز به مدلهای پیچیده یادگیری عمیق دارید.
✅ برای تشخیص الگوهای غیرمعمول و حملات پنهان (مثل APT، باجافزار، فیشینگ پیشرفته).
✅ زمانی که MLTK برای سناریوی موردنظر کافی نیست (مثلاً تحلیلهای توالی زمانی یا NLP).
#آکادمی_روزبه
#من_آموزش_میدهم
استفاده از Splunk App for Data Science and Deep Learning (DSDL) برای تحلیل امنیتی پیشرفته
✍️روزبه نوروزی
این Splunk DSDL یک افزونه برای Splunk MLTK است که به شما امکان میدهد مدلهای یادگیری عمیق (Deep Learning) و پردازش دادههای بزرگ را با استفاده از فریمورکهایی مثل TensorFlow، PyTorch و Scikit-learn اجرا کنید.
این اپلیکیشن به شما اجازه میدهد که مدلهای پیچیدهای برای تحلیل امنیتی بسازید که در Splunk Enterprise Security (ES) یا محیطهای دیگر Splunk اجرا شوند.
🔹 تفاوت DSDL با MLTK چیست؟
✅ این MLTK برای مدلهای یادگیری ماشین کلاسیک مثل تصمیمگیری درختی، K-Means، Isolation Forest
✅ اما DSDL برای یادگیری عمیق و دادههای حجیم، مانند LSTM برای تشخیص ناهنجاری در ترافیک شبکه یا CNN برای تحلیل لاگها
🔹 اجرای مدلهای یادگیری عمیق با DSDL در امنیت سایبری
در ادامه چند سناریوی امنیتی پیچیده با استفاده از DSDL آورده شده است.
📌 سناریو ۱: تشخیص حملات مداوم (APT) با استفاده از LSTM
🛠 چالش:
حملات APT دارای الگوی زمانی خاص هستند و روشهای کلاسیک (مثل Isolation Forest) نمیتوانند تغییرات تدریجی رفتار مهاجمان را تشخیص دهند.
📊 مدل پیشنهادی:
مدل LSTM (Long Short-Term Memory) برای تشخیص ناهنجاری در ارتباطات شبکهای
🔍 جستجوی Splunk برای آموزش مدل:
| inputlookup network_traffic_logs.csv
| table timestamp, src_ip, dest_ip, bytes_sent, bytes_received
| fit LSTM timestamp bytes_sent bytes_received into dsdl_apt_model
✅ مزیت: تشخیص رفتار مخفی مهاجمان از طریق الگوهای زمانی در ارتباطات شبکه
📌 سناریو ۲: تشخیص حمله باجافزاری با CNN و تحلیل فایلها
🛠 چالش:
باجافزارها از روشهای متنوعی برای رمزگذاری فایلها استفاده میکنند، و مدلهای سنتی ممکن است در تشخیص برخی نمونههای جدید ضعیف باشند.
📊 مدل پیشنهادی:
مدل CNN (Convolutional Neural Network) برای تحلیل تغییرات فایلهای سیستمی و تشخیص رفتار رمزگذاری
🔍 جستجوی Splunk برای اجرای مدل:
| inputlookup file_change_logs.csv
| table filename, file_size, entropy, timestamp
| fit CNN filename entropy into dsdl_ransomware_model
✅ مزیت: امکان شناسایی رمزگذاریهای مشکوک حتی در نمونههای جدید باجافزار
📌 سناریو ۳: تحلیل ایمیلهای فیشینگ با Transformer (BERT)
🛠 چالش:
فیشینگ معمولاً با تغییرات جزئی در متن ایمیل انجام میشود که مدلهای ساده مثل Naïve Bayes قادر به تشخیص آنها نیستند.
📊 مدل پیشنهادی:
مدل BERT (Bidirectional Encoder Representations from Transformers) برای پردازش زبان طبیعی (NLP) در تحلیل متن ایمیلها
🔍 جستجوی Splunk برای پردازش ایمیلها:
| inputlookup email_logs.csv
| table email_subject, email_body
| fit BERT email_body into dsdl_phishing_model
✅ مزیت: تحلیل ایمیلهای فیشینگ با دقت بالا و تشخیص تغییرات زیرکانه در متن ایمیل
🔹 نتیجهگیری: چه زمانی از DSDL استفاده کنیم؟
✅ اگر حجم دادههای بالا و نیاز به مدلهای پیچیده یادگیری عمیق دارید.
✅ برای تشخیص الگوهای غیرمعمول و حملات پنهان (مثل APT، باجافزار، فیشینگ پیشرفته).
✅ زمانی که MLTK برای سناریوی موردنظر کافی نیست (مثلاً تحلیلهای توالی زمانی یا NLP).
#آکادمی_روزبه
#من_آموزش_میدهم
👍3👏2🔥1
🥇سناریوی امشب : کشف نفوذ آرام با ماندگاری طولانی
✍️روزبه نوروزی
✅️یک سناریوی پیچیده و جذاب برای کشف نفوذ با کمک از Splunk براتون آماده کردم که ترکیبی از تکنیکهای فرار از شناسایی (Evasion)، حرکت جانبی (Lateral Movement) و دسترسی مداوم (Persistence) است.
🟧یک مهاجم موفق شده است از طریق یک حمله فیشینگ هوشمند و اجرای ماکرو مخرب در Excel، کنترل اولیه را روی یک سیستم کاربر در شبکه به دست بگیرد. سپس با استفاده از Cobalt Strike و تکنیکهای Living off the Land (LOLBins)، در شبکه حرکت جانبی انجام داده و یک حساب کاربری جعلی در اکتیو دایرکتوری ایجاد میکند تا دسترسی دائمی داشته باشد.
🔰جزئیات حمله:
✔️ دریافت شل اولیه:
حمله فیشینگ با ارسال یک فایل Excel حاوی ماکروی مخرب به کاربر.
اجرای ماکرو باعث دانلود و اجرای یک PowerShell reverse shell میشود که به یک C2 Server متصل است.
ارتباط بهصورت Encoded PowerShell ارسال میشود تا از SIEM و آنتیویروس فرار کند.
✔️ حرکت جانبی و افزایش دسترسی:
مهاجم از Mimikatz برای استخراج کردنشیالهای ذخیرهشده استفاده میکند.
از طریق Pass-the-Hash (PtH) به یک سرور داخلی متصل میشود.
با استفاده از PsExec یا WMI روی یک سیستم دیگر کد اجرا میکند.
استفاده از ابزارهای ذاتی ویندوز (LOLBins) برای فرار از شناسایی:
اجرای کدهای مخرب با MSBuild.exe و CertUtil.exe برای دور زدن ابزارهای امنیتی.
استفاده از Rundll32.exe برای اجرای فایل DLL مخرب بدون ایجاد پروسس جدید مشکوک.
✔️ ماندگاری و دسترسی مداوم:
ایجاد یک حساب جعلی در Active Directory با نامی شبیه به ادمینهای واقعی.
تنظیم یک Scheduled Task که در هر ریبوت، یک ریکانکت به C2 برقرار میکند.
ذخیره Web Shell در IIS روی یک سرور حساس برای دسترسی آینده.
🔮 بررسی کامل و انجام تحلیل در Splunk:
بحث کامل تحلیل و حل مساله را در پست های آینده بخوانید
#من_آموزش_میدهم
#آکادمی_روزبه
✍️روزبه نوروزی
✅️یک سناریوی پیچیده و جذاب برای کشف نفوذ با کمک از Splunk براتون آماده کردم که ترکیبی از تکنیکهای فرار از شناسایی (Evasion)، حرکت جانبی (Lateral Movement) و دسترسی مداوم (Persistence) است.
🟧یک مهاجم موفق شده است از طریق یک حمله فیشینگ هوشمند و اجرای ماکرو مخرب در Excel، کنترل اولیه را روی یک سیستم کاربر در شبکه به دست بگیرد. سپس با استفاده از Cobalt Strike و تکنیکهای Living off the Land (LOLBins)، در شبکه حرکت جانبی انجام داده و یک حساب کاربری جعلی در اکتیو دایرکتوری ایجاد میکند تا دسترسی دائمی داشته باشد.
🔰جزئیات حمله:
✔️ دریافت شل اولیه:
حمله فیشینگ با ارسال یک فایل Excel حاوی ماکروی مخرب به کاربر.
اجرای ماکرو باعث دانلود و اجرای یک PowerShell reverse shell میشود که به یک C2 Server متصل است.
ارتباط بهصورت Encoded PowerShell ارسال میشود تا از SIEM و آنتیویروس فرار کند.
✔️ حرکت جانبی و افزایش دسترسی:
مهاجم از Mimikatz برای استخراج کردنشیالهای ذخیرهشده استفاده میکند.
از طریق Pass-the-Hash (PtH) به یک سرور داخلی متصل میشود.
با استفاده از PsExec یا WMI روی یک سیستم دیگر کد اجرا میکند.
استفاده از ابزارهای ذاتی ویندوز (LOLBins) برای فرار از شناسایی:
اجرای کدهای مخرب با MSBuild.exe و CertUtil.exe برای دور زدن ابزارهای امنیتی.
استفاده از Rundll32.exe برای اجرای فایل DLL مخرب بدون ایجاد پروسس جدید مشکوک.
✔️ ماندگاری و دسترسی مداوم:
ایجاد یک حساب جعلی در Active Directory با نامی شبیه به ادمینهای واقعی.
تنظیم یک Scheduled Task که در هر ریبوت، یک ریکانکت به C2 برقرار میکند.
ذخیره Web Shell در IIS روی یک سرور حساس برای دسترسی آینده.
🔮 بررسی کامل و انجام تحلیل در Splunk:
بحث کامل تحلیل و حل مساله را در پست های آینده بخوانید
#من_آموزش_میدهم
#آکادمی_روزبه
❤2🔥2
اگر میخواین سواد هانت تون خوب بشه اینو بخونین
#آکادمی_روزبه
https://trustedsec.com/blog/exploring-ntds-dit-part-1-cracking-the-surface-with-dit-explorer?utm_content=325440325&utm_medium=social&utm_source=linkedin&hss_channel=lcp-9478538
#آکادمی_روزبه
https://trustedsec.com/blog/exploring-ntds-dit-part-1-cracking-the-surface-with-dit-explorer?utm_content=325440325&utm_medium=social&utm_source=linkedin&hss_channel=lcp-9478538
TrustedSec
Exploring NTDS.dit – Part 1: Cracking the Surface with DIT Explorer
👍3
آکادمی آموزش روزبه 📚
🥇سناریوی امشب : کشف نفوذ آرام با ماندگاری طولانی ✍️روزبه نوروزی ✅️یک سناریوی پیچیده و جذاب برای کشف نفوذ با کمک از Splunk براتون آماده کردم که ترکیبی از تکنیکهای فرار از شناسایی (Evasion)، حرکت جانبی (Lateral Movement) و دسترسی مداوم (Persistence) است.…
تحلیل سناریوی فوق در Splunk:
۱. کشف ارتباط اولیه (PowerShell Reverse Shell)
جستجوی دستورات مشکوک در لاگهای PowerShell که ممکن است ارتباط C2 برقرار کند:
index=windows EventCode=4104 ScriptBlockText="*IEX*(New-Object Net.WebClient).DownloadString*"
یا استفاده از Base64 encoded PowerShell:
index=windows EventCode=4104 ScriptBlockText="*FromBase64String*"
۲. کشف حرکت جانبی (Mimikatz و Pass-the-Hash)
index=windows EventCode=4624 LogonType=9 OR LogonType=3 Account_Name!=”Administrator” Account_Name!=”Service”
Logon Type 9: نشاندهنده استفاده از مکانیزمهای احراز هویت غیرمعمول است.
Logon Type 3: اتصال از راه دور، اما بدون نام کاربری ادمین، که مشکوک است.
۳. کشف اجرای ابزارهای LOLBins (مانند MSBuild و CertUtil)
index=windows EventCode=4688 New_Process_Name="*MSBuild.exe" OR New_Process_Name="*CertUtil.exe"
این پردازشها معمولاً در شبکه سازمانی استفاده نمیشوند، مگر در شرایط خاص.
۴. کشف ماندگاری (Scheduled Task و Web Shell در IIS)
index=windows EventCode=4698 OR EventCode=4700 Task_Name="*Update*"
بسیاری از مهاجمان برای فرار از شناسایی، نامهای مشابه آپدیتهای ویندوز برای Scheduled Task میگذارند.
و برای کشف Web Shell در IIS:
index=webserver sourcetype="iis" cs_uri_stem="*.asp" OR cs_uri_stem="*.aspx" cs_method="POST"
درخواستهای POST غیرعادی به صفحات ASPX ممکن است نشاندهنده یک Web Shell باشد.
#من_آموزش_میدهم
#آکادمی_روزبه
۱. کشف ارتباط اولیه (PowerShell Reverse Shell)
جستجوی دستورات مشکوک در لاگهای PowerShell که ممکن است ارتباط C2 برقرار کند:
index=windows EventCode=4104 ScriptBlockText="*IEX*(New-Object Net.WebClient).DownloadString*"
یا استفاده از Base64 encoded PowerShell:
index=windows EventCode=4104 ScriptBlockText="*FromBase64String*"
۲. کشف حرکت جانبی (Mimikatz و Pass-the-Hash)
index=windows EventCode=4624 LogonType=9 OR LogonType=3 Account_Name!=”Administrator” Account_Name!=”Service”
Logon Type 9: نشاندهنده استفاده از مکانیزمهای احراز هویت غیرمعمول است.
Logon Type 3: اتصال از راه دور، اما بدون نام کاربری ادمین، که مشکوک است.
۳. کشف اجرای ابزارهای LOLBins (مانند MSBuild و CertUtil)
index=windows EventCode=4688 New_Process_Name="*MSBuild.exe" OR New_Process_Name="*CertUtil.exe"
این پردازشها معمولاً در شبکه سازمانی استفاده نمیشوند، مگر در شرایط خاص.
۴. کشف ماندگاری (Scheduled Task و Web Shell در IIS)
index=windows EventCode=4698 OR EventCode=4700 Task_Name="*Update*"
بسیاری از مهاجمان برای فرار از شناسایی، نامهای مشابه آپدیتهای ویندوز برای Scheduled Task میگذارند.
و برای کشف Web Shell در IIS:
index=webserver sourcetype="iis" cs_uri_stem="*.asp" OR cs_uri_stem="*.aspx" cs_method="POST"
درخواستهای POST غیرعادی به صفحات ASPX ممکن است نشاندهنده یک Web Shell باشد.
#من_آموزش_میدهم
#آکادمی_روزبه
👍3🔥1