باجافزار لینکس بهعنوان یک تهدید جدید و پیشرفته در حوزه بدافزارها از اواسط سال 2024 فعالیت خود را آغاز کرده است. این بدافزار تاکنون بیش از 20 قربانی را در صنایع گوناگون تحت تأثیر قرار داده است. پس از نفوذ به سیستم، اقدام به رمزگذاری فایلهای مهم کرده و پسوند ‘.lynx’ را به آنها اضافه میکند. علاوه بر این، برای جلوگیری از بازیابی اطلاعات، فایلهای پشتیبان، از جمله کپیهای سایه، را نیز حذف میکند.
ویژگی منحصر به فرد این باجافزار، ارسال یادداشت باجخواهی از طریق چاپگرهای موجود در شبکه است که به استراتژی حمله آن بُعدی غیرمنتظره میبخشد.
بررسیها نشان میدهد که این بدافزار شباهتهایی با نسخه پیشین باجافزار INC دارد، که احتمال خرید کد منبع این باجافزار توسط سازندگان آن را مطرح میکند. اولین نمونه این تهدید توسط فردی با نام کاربری ‘rivitna2’ شناسایی شد. بررسی پایگاه داده ویروس توتال (VT) نشان داد که این باجافزار تنها توسط 26 آنتیویروس شناسایی شده است، که نشاندهنده نرخ پایین تشخیص برای یک بدافزار در این سطح است. از این رو، تصمیم به بررسی دقیقتر آن گرفته شد
ترجمه و تحلیل عمیق باجافزار Lynx Ransomware
باجافزار Lynx از روشهای مختلفی برای حمله استفاده میکند، از جمله:
بهطور پیشفرض، هنگام اجرا، این باجافزار تمام فایلهای موجود در سیستم را رمزگذاری میکند. اما مهاجمان میتوانند با استفاده از پرچمهای خط فرمان، رفتار باجافزار را بهصورت سفارشی تنظیم کنند. این پرچمها به مهاجمان اجازه میدهند تا نحوه عملکرد باجافزار را کنترل کنند.
–file | رمزگذاری فایل مشخص شده |
---|---|
–dir | رمزگذاری دایرکتوری مشخص شده |
–help | نمایش لیست تمام آرگومانها و نحوه استفاده از آنها |
–verbose | فعال کردن حالت مفصل (نمایش جزئیات بیشتر) |
–stop-processes | توقف فرآیندها از طریق RestartManager |
–encrypt-network | رمزگذاری اشتراکهای شبکه |
–load-drives | سوار کردن حجمهای موجود |
–hide-cmd | پنهان کردن پنجره کنسول (استفاده نمیشود) |
–no-background | تغییر تصویر پسزمینه را انجام ندهید |
–no-print | یادداشت را روی چاپگرها چاپ نکنید |
–kill | متوقف سازی فرآیندها و سرویسها |
–safe-mod | ورود به حالت ایمن (استفاده نمیشود) |
فهرست کاملی از شاخصهای خطر (Indicators of Compromise – IOCs) در انتهای این مقاله ارائه شده است.
در بخش بعدی، نگاهی دقیقتر به باجافزار لینکس خواهیم داشت و عملکرد داخلی آن را تجزیه و تحلیل خواهیم کرد، از جمله جنبههای کلیدی مانند اجرای رمزنگاری و روشهای پردازش فایل.
تحلیل کامل باجافزار
باجافزار با فراخوانی تابع اصلی (main function) شروع به کار میکند و بر اساس پارامترهای منتقلشده به باجافزار، پرچمها را اختصاص میدهد.
خاتمه فرآیند
با انتقال پرچم kill، بدافزار با شمارش تمام فرآیندهای در حال اجرا آغاز میشود و هر فرآیندی که نام آن شامل هر یک از کلمات زیر باشد را خاتمه میدهد:
ابتدا، CreateToolhelp32Snapshot با پرچم TH32CS_SNAPPROCESS فراخوانی میشود تا یک عکس فوری از تمام فرآیندهای موجود در سیستم گرفته شود. عبور مقدار 0 نشان میدهد که تمام فرآیندها شامل میشوند.
سپس، Process32FirstW اطلاعات مربوط به اولین فرآیند در عکس فوری را بازیابی کرده و آن را در ساختار pe ذخیره میکند.
برای هر فرآیند، کد نام آن (pe.szExeFile) را با آرایه نامهای فرآیندهای هدف با استفاده از یک تابع جستجوی بدون در نظر گرفتن حروف بزرگ و کوچک مقایسه میکند.
اگر نام یک فرآیند با نامهای هدف مطابقت داشته باشد، OpenProcess با پرچم PROCESS_TERMINATE فراخوانی میشود تا یک هندل (handle) برای فرآیند به دست آید.
در نهایت، TerminateProcess برای خاتمه دادن فرآیند مطابقتیافته فراخوانی میشود.
این تابع وظیفه شمارش خدمات سیستم، همراه با خدمات وابسته به آنها، و خاتمه دادن به خدمات هدف را بر عهده دارد. در صورتی که نام نمایشی یا نام سرویس شامل یکی از کلمات کلیدی مشخصشده باشد، فرآیند خاتمه انجام میشود.
این تابع تلاش میکند تا یک سرویس مشخص را به همراه خدمات وابسته آن متوقف کند.
OpenSCManagerW برای به دست آوردن یک هندل به مدیر کنترل سرویس با مجوزهای دسترسی کامل استفاده میشود.
OpenServiceW برای باز کردن سرویس مشخص شده با حقوق دسترسی مورد نیاز (SERVICE_QUERY_STATUS، SERVICE_ENUMERATE_DEPENDENTS و SERVICE_STOP) استفاده میشود. (
QueryServiceStatusEx برای پرسوجو وضعیت فعلی سرویس استفاده میشود. (این تابع برای دریافت اطلاعات مربوط به وضعیت فعلی یک سرویس مانند وضعیت اجرا، وضعیت توقف و … استفاده میشود)
خدمات وابسته شمارش میشوند و با فراخوانی stop_services برای هر سرویس وابسته، به صورت بازگشتی متوقف میشوند.
ControlService برای ارسال دستور توقف به سرویس فراخوانی میشود.
یادداشت باجخواهی ابتدا با استفاده از روش Base64 رمزگشایی میشود و سپس به یک تابع منتقل میشود تا هر رخداد %id% با شناسه قربانی 66a204aee7861ae72f21b4e0 جایگزین شود.
Your data is stolen and encrypted.
Your unique identificator is %id%
Use this TOR site to contact with us:
http://lynxch2k5xi35j7hlbmwl7d6u2oz4vp2wqp6qkwol624cod3d6iqiyqd.onion/login
Use this email to contact with us:
martina.lestariid1898@proton.me
Our blog
~ TOR Network: http://lynxbllrfr5262yvbgtqoyq76s7mpztcqkv6tjjxgpilpma7nyoeohyd.onion/disclosures
~ Mirror #1: http://lynxblog.net/
/fix performance problems
بدافزار با استفاده از مکانیزم I/O Completion Port ویندوز، شروع به ایجاد یک محیط چند رشتهای برای عملیات رمزنگاری میکند.
ابتدا، فراخوانی تابع اطلاعات مربوط به سیستم فعلی، مانند تعداد پردازندهها، را در ساختار SystemInfo پر میکند.
تعداد رشتههایی که باید استفاده شوند، چهار برابر تعداد پردازندههای موجود در سیستم تنظیم میشود. این هدف، بهرهبرداری از چند رشتهای برای سرعت بخشیدن به رمزنگاری دیسک را دنبال میکند.
سپس، یک I/O Completion Port برای مدیریت عملیاتهای ورودی/خروجی ناهمزمان ایجاد میشود.
یک رشته برای هر پردازنده ایجاد میشود تا تکمیل I/O را مدیریت کند.
هر رشته تابع رمزنگاری را اجرا میکند و از CompletionPort برای همگامسازی استفاده میکند.
تابع رمزنگاری در ادامه توضیح داده خواهد شد.
این تابع تلاش میکند تا یک فایل README.txt را در یک دایرکتوری مشخص ایجاد کند. برای یافتن اولین فایل در دایرکتوری، از تابع FindFirstFileW استفاده میکند.
یک حلقه بر روی هر فایل و دایرکتوری تکرار میشود. نمادهای خاص دایرکتوری مانند ‘.’ و ‘..’ و همچنین نقاط بازنویسی (reparse points) نادیده گرفته میشوند.
برای هر فایل، تابع بررسی میکند که آیا آن یک فایل سیستمی است یا دارای پسوندهای خاصی مانند ‘.exe’, ‘.msi’, ‘.dll’, ‘.lynx’ است. اگر فایل با این معیارها مطابقت نداشته باشد و نام آن LYNX یا README.txt نباشد، برای رمزگذاری با ایجاد یک رشته جدید در صف قرار میگیرد.
برای هر زیر دایرکتوری، یک فراخوانی بازگشتی به ‘enum_dir’ انجام میشود.
دایرکتوریهای خاصی مانند ‘windows’, ‘program files’ و سایر موارد نادیده گرفته میشوند تا از پردازش دایرکتوریهای سیستم جلوگیری شود.
این تابع با “Program Files” و “Program Files (x86)” به صورت جداگانه برخورد میکند. برای هر زیر دایرکتوری در داخل آنها، یک فراخوانی بازگشتی به ‘enum_dir’ انجام میشود تا دایرکتوری “microsoft sql server” را برای رمزگذاری جستجو کند.
این تابع وظایف زیر را انجام میدهد:
عدم رمزگذاری در صورت عدم موفقیت: اگر تمام این تلاشها ناموفق باشد، فایل رمزگذاری نخواهد شد.
این تابع اساساً بررسی میکند که آیا بدافزار مجوز نوشتن برای فایلی که قرار است رمزگذاری شود، دارد یا خیر.
برای این کار، 36 بایت از کاراکتر “2” را در انتهای فایل مینویسد.
سپس بررسی میکند که آیا دادههای نوشته شده واقعاً 36 بایت هستند یا خیر.
اگر چنین باشد، به این معنی است که دادهها با موفقیت نوشته شدهاند و بدافزار دسترسی نوشتن به فایل را دارد.
SetFilePointerEx مکاننما فایل را به انتهای فایل منتقل میکند.
پس از نوشتن دادهها، مکاننما فایل به موقعیت اصلی خود بازگردانده میشود.
در نهایت، SetEndOfFile فایل را کوتاه میکند و به طور مؤثر دادههای نوشته شده را حذف میکند
اگر بررسی دسترسی نوشتن با شکست مواجه شود، باجافزار تابع priv_escalation را فراخوانی میکند که تلاش میکند “SeTakeOwnershipPrivilege” را در توکن فرآیند فعلی فعال کند.
این امتیاز به فرآیند اجازه میدهد تا مالکیت یک شیء را بدون اعطای دسترسی اختیاری به آن بگیرد. با این امتیاز، کاربر میتواند مالکیت هر شیء قابل تأمین امنیت در سیستم را به دست آورد و در نتیجه به باجافزار دسترسی نوشتن اعطا کند.
از دیدگاه کد، نحوه اعطای دسترسی نوشتن به شرح زیر است:
این تابع هر فرآیندی که یک هندل باز به فایلی که قرار است رمزگذاری شود دارد را خاتمه میدهد. این تابع از API مدیر راه اندازی مجدد (Restart Manager) برای شناسایی این فرآیندها و سپس خاتمه دادن آنها استفاده میکند، در حالی که از خاتمه دادن “Windows Explorer”، “فرآیندهای حیاتی سیستم” و فرآیندهایی که کاربر فعلی مجوز خاموش کردن آنها را ندارد، اجتناب میکند.
RmStartSession یک جلسه جدید مدیر راه اندازی مجدد را آغاز میکند.
RmRegisterResources فایل مشخص شده را به عنوان یک منبع برای مدیریت در این جلسه ثبت میکند.
RmGetList لیستی از فرآیندهایی که در حال حاضر از فایل مشخص شده استفاده میکنند را بازیابی میکند.
سپس تابع از طریق این لیست فرآیندها تکرار میشود. اطمینان حاصل میکند که از خاتمه دادن Windows Explorer (RmExplorer) و فرآیندهای حیاتی سیستم (RmCritical) اجتناب میکند. برای هر فرآیند، بررسی میکند که آیا آن فرآیند فرآیند فعلی نیست و با دسترسی PROCESS_TERMINATE آن را باز میکند.
سپس TerminateProcess برای خاتمه دادن فرآیند فراخوانی میشود و WaitForSingleObject برای تکمیل خاتمه منتظر میماند.
علاوه بر این، تابع کلید عمومی ECC را رمزگشایی کرده و آن را به تابع generate_aes_key منتقل میکند. از منحنی ECC curve25519 برای ایجاد یک کلید مخفی مشترک استفاده میکند که سپس با استفاده از SHA512 هش میشود. این مقدار هش شده به عنوان کلید AES استفاده میشود و برای تولید کلیدهای دور به AESKeyExpansion منتقل میشود.
مارکر شامل دادههای زیر با مجموع 116 بایت است که در انتهای فایل رمزگذاری شده الحاق میشود:
و مقدار switch_value را برابر با 2 تنظیم میکند.
تنظیمات I/O غیرهمزمان و فراخوانی تابع رمزنگاری
این بخش از کد مربوط به راهاندازی عملیات خواندن غیرهمزمان فایل و فراخوانی تابع رمزنگاری است.
عملکرد رمزنگاری با تنظیم محیط و پارامترهای مورد نیاز برای کار خود آغاز میشود.
انتظار برای بستههای تکمیل I/O:
این تابع به طور مداوم منتظر دریافت بستههای تکمیل I/O از طریق تابع GetQueuedCompletionStatus میماند. هنگامی که یک بسته دریافت میشود، عملیات را بر اساس مقدار switch_value پردازش میکند.
بلوک سوئیچ دارای 4 حالت است:
همانطور که قبلاً ذکر شد، مقدار switch_value روی 2 تنظیم شده است، بنابراین شروع به توضیح مورد case 2 میکنیم.
case 2:
case 0:
case 1:
شرط مورد نظر تعیین میکند که چند بایت خوانده/رمزگذاری شوند.
بیایید با یک مثال آن را بررسی کنیم.
فرض کنیم 6.5 مگابایت داده برای رمزگذاری وجود دارد، به یاد داشته باشید که یک مارکر در انتهای فایل نوشته شده است (مورد 2) بنابراین 6.5 مگابایت + 0x74 بایت خواهد بود. اولین 1 مگابایت به طور معمول رمزگذاری میشود و سپس از 6 مگابایت شروع به رمزگذاری میکند که فقط 0.5 مگابایت است اما بدافزار هر بار 1 مگابایت را میخواند، بنابراین 0.5 مگابایت + 0x74 بایت را میخواند (که ما نمیخواهیم رمزگذاری شود).
شرط در تلاش است تا نحوه دریافت اندازه صحیح دادهها برای نوشتن را تعیین کند.
این کار با یک محاسبه ساده انجام میشود:
lpNumberOfBytesRead + next_enc_block_offset – filesize
که برای مثال داده شده:
بنابراین نتیجه 0x74 است، اگر نتیجه برابر با 0x74 باشد، اساساً اندازه مارکر را از lpNumberOfBytesRead کم میکند و آن را به lpNumberOfBytesWritten اختصاص میدهد، lpNumberOfBytesWritten = 0.5 مگابایت که همان چیزی است که ما میخواهیم.
پس از انجام محاسبات برای تعیین اندازه صحیح دادهها:
این بخشهای نهایی کد، عملیات پس از رمزگذاری دادهها را انجام میدهند. شمارنده خوانده شده به روز میشود تا تعداد کل بلوکهای رمزگذاری شده را نشان دهد، کلیدهای دور برای رمزگذاری آماده میشوند و در نهایت فایل رمزگذاری شده تغییر نام داده شده و هندلهای آن بسته میشوند.
هندل چیست؟ هندل یک شناسه عددی است که به یک منبع سیستم (مانند یک فایل، یک دستگاه یا یک پنجره) اشاره میکند.
در این مرحله، با استفاده از کلیدهای دور تولید شده توسط AES-CTR و عمل XOR، دادههای خوانده شده از فایل رمزگذاری میشوند. سپس، دادههای رمزگذاری شده به جای دادههای اصلی در فایل نوشته میشوند.
در این مرحله، با استفاده از کلیدهای دور تولید شده توسط AES-CTR و عمل XOR، دادههای خوانده شده از فایل رمزگذاری میشوند. سپس، دادههای رمزگذاری شده به جای دادههای اصلی در فایل نوشته میشوند.
کپیهای سایه (Shadow Copies): ویندوز بهطور پیشفرض از فایلها و دایرکتوریها کپیهای سایه ایجاد میکند که به عنوان نقاط بازیابی در صورت خرابی سیستم یا حملات سایبری قابل استفاده هستند.
تابع enc_del_shadow_copies تلاش میکند تا کپیهای سایه را در تمام درایوهای موجود حذف کند و سپس اقدام به شمارش دایرکتوریها و رمزگذاری آنها کند. اگر پرچم encrypt_network_flag تنظیم شده باشد، اشتراکهای شبکه را نیز رمزگذاری میکند.
این تابع بر روی هر حرف درایو ممکن (‘A’ تا ‘Z’) تکرار میشود و از GetDriveTypeW برای تعیین اینکه آیا درایو قابل جابجایی، ثابت یا از راه دور است استفاده میکند. درایوهایی که از این نوع نیستند، مانند درایوهای CD-ROM یا درایوهای غیر موجود، نادیده گرفته میشوند.
CreateFileW با مسیرهایی به فرمت \?\A:\ برای ایجاد هندلهای فایل برای هر درایو فراخوانی میشود.
پیشوند \?\ به API ویندوز دستور میدهد تا مسیر را به عنوان یک رشته تحت اللفظی (literal string) رفتار کند و قوانین تجزیه مسیر عادی را دور بزند و به برنامه اجازه میدهد تا با مسیرهایی طولانیتر از MAX_PATH و شامل کاراکترهای ویژه کار کند.
رشته A: حرف درایو را مشخص میکند و :\ بعد از حرف درایو نشاندهنده دایرکتوری ریشه آن درایو است.
این تابع تلاش میکند تا کپیهای سایه را با استفاده از DeviceIoControl با کد کنترل 0x53C028 (IOCTL_VOLSNAP_SET_MAX_DIFF_AREA_SIZE) حذف کند و حداکثر اندازه را به 1 تنظیم کند.
این تابع هر درایو موجود برای رمزگذاری را شمارش میکند.
این تابع با استفاده از توابع سیستمعامل ویندوز، تلاش میکند تا کپیهای سایه را در تمام درایوهای موجود حذف کند و بدین ترتیب، امکان بازیابی اطلاعات توسط قربانیان را محدود کند.
این تابع به شمارش پوشههای اشتراکی موجود در شبکه پرداخته و برای هر پوشه اشتراکی یافت شده، پردازشهای لازم را انجام میدهد. همچنین، منابع تو در تو را به صورت بازگشتی مدیریت میکند.
در ابتدا، تابع WNetOpenEnumW برای شروع شمارش منابع شبکه فراخوانی میشود. در این فراخوانی، از پارامتر RESOURCE_GLOBALNET برای شمارش تمام منابع شبکه، RESOURCETYPE_ANY برای شامل کردن تمامی انواع منابع، و 0x13u برای تعیین گزینههای اضافی استفاده میشود.
سپس، تابع WNetEnumResourceW در یک حلقه برای شمارش منابع شبکه فراخوانی میشود. این تابع بافر currentResource را با اطلاعات مربوط به منابع پر کرده و مقدار cCount را بهروزرسانی میکند.
برای هر منبع، حلقه روی آرایه currentResource تکرار شده و در صورتی که نوع نمایش منبع RESOURCEDISPLAYTYPE_SHARE باشد، این بدان معناست که منبع یک پوشه اشتراکی است. در این صورت، تابع enum_dir برای پردازش دایرکتوری مربوط به پوشه اشتراکی فراخوانی میشود.
اگر منبع حاوی دامنهای باشد که به عنوان یک ظرف (RESOURCEUSAGE_CONTAINER) شناخته شود، تابع enc_shared_folders به صورت بازگشتی برای شمارش محتوای آن دامنه فراخوانی میشود. در اینجا، RESOURCEUSAGE_CONTAINER به معنای این است که منبع به عنوان یک ظرف عمل میکند و میتوان آن را بهطور مجدد برای شناسایی منابع دیگر درون آن، مانند زیرپوشهها یا دستگاهها، شمارش کرد.
این عملکرد معمولاً در دامنههای شبکه، سرورها یا ساختارهای سلسلهمراتبی در محیطهای شبکه مشاهده میشود.
این تابع به باجافزار امکان میدهد تا به طور خودکار پوشههای اشتراکی موجود در شبکه را شناسایی کرده و اقدامات مورد نظر (مثل رمزگذاری) را بر روی آنها انجام دهد. این قابلیت به باجافزار اجازه میدهد دامنه تأثیر خود را گسترش داده و به دادههای بیشتری در شبکه دسترسی پیدا کند.
Mount Volume یا سوار کردن حجم: در سیستمعامل ویندوز، مفهوم سوار کردن حجم به معنی اتصال یک درایو یا منبع داده به یک حرف درایو در سیستم است. به عنوان مثال، سوار کردن یک درایو شبکه به حرف درایو “Z:” به شما امکان میدهد که به آن درایو از طریق این حرف دسترسی داشته باشید.
این تابع تمام حجمهای موجود را به حروف درایو مشخص سوار میکند و اطمینان حاصل میکند که هیچ حرف درایوی قبلاً اشغال نشده است. این تابع از طریق آرایهای از حروف درایو تکرار میشود و حروف درایوهای خالی را که با وضعیت DRIVE_NO_ROOT_DIR مشخص شدهاند، شناسایی میکند.
با استفاده از FindFirstVolumeW و FindNextVolumeW، تابع از طریق تمام حجمها تکرار میشود.
سپس هر حجم را به یک حرف درایو موجود از آرایه lpszVolumeMountPoint با استفاده از SetVolumeMountPointW سوار میکند.
این فرآیند تضمین میکند که هر درایو سوار شده است و امکان رمزگذاری آنها فراهم میشود.
FindFirstVolumeW و FindNextVolumeW: این توابع API ویندوز برای شمارش و بازیابی اطلاعات مربوط به حجمهای موجود در سیستم استفاده میشوند.
DRIVE_NO_ROOT_DIR: این مقدار نشان میدهد که درایو مورد نظر وجود دارد اما دایرکتوری ریشه ندارد. این به معنی آن است که این حرف درایو در حال حاضر در سیستم استفاده نمیشود و میتواند برای سوار کردن حجم استفاده شود.
lpszVolumeMountPoint: این آرایه حاوی لیستی از حروف درایو است که برای سوار کردن حجمها استفاده خواهد شد.
SetVolumeMountPointW: این تابع برای سوار کردن یک حجم به یک حرف درایو استفاده میشود.
این تابع یک فایل تصویر موقت به نام “background-image.jpg” در پوشه موقت (temp) ایجاد میکند. این فایل حاوی یادداشت باجخواهی به صورت تصویر است و آن را به عنوان تصویر پسزمینه دسکتاپ تنظیم میکند.
این تابع هر چاپگری که به سیستم متصل است را شمارش میکند و یادداشت باجخواهی را برای چاپ ارسال میکند.
EnumPrintersW برای بازیابی لیست چاپگرها فراخوانی میشود.
این تابع از طریق هر چاپگر تکرار میشود و “Microsoft Print to PDF” و “Microsoft XPS Document Writer” را نادیده میگیرد.
برای هر چاپگر باقیمانده، از StartDocPrinterW برای شروع سند و StartPagePrinter برای شروع یک صفحه استفاده میکند.
در نهایت، از WritePrinter برای ارسال یادداشت باجخواهی به چاپگر استفاده میکند.
LYNX hashes:
INC hashes:
README.txt | Ransomware Note Name |
---|---|
.lynx | Extension |
Curve25519 | ECC |
AES_CTR | Encryption |
background-image.jpg | Background image |
rule MAL_RANSOM_INC_Aug24 {
meta:
author = "X__Junior"
description = "Detects INC ransomware and it's variants like Lynx"
reference1 = "https://x.com/rivitna2/status/1817681737251471471"
reference2 = "https://twitter.com/rivitna2/status/1701739812733014313"
date = "2024-08-08"
hash1 = "eaa0e773eb593b0046452f420b6db8a47178c09e6db0fa68f6a2d42c3f48e3bc" // LYNX
hash2 = "1754c9973bac8260412e5ec34bf5156f5bb157aa797f95ff4fc905439b74357a" // INC
score = 80
strings:
$s1 = "tarting full encryption in" wide
$s2 = "oad hidden drives" wide
$s3 = "ending note to printers" ascii
$s4 = "uccessfully delete shadow copies from %c:/" wide
$op1 = { 33 C9 03 C6 83 C0 02 0F 92 C1 F7 D9 0B C8 51 E8 }
$op2 = { 8B 44 24 [1-4] 6A 00 50 FF 35 ?? ?? ?? ?? 50 FF 15}
$op3 = { 57 50 8D 45 ?? C7 45 ?? 00 00 00 00 50 6A 00 6A 00 6A 02 6A 00 6A 02 C7 45 ?? 00 00 00 00 FF D6 FF 75 ?? E8 ?? ?? ?? ?? 83 C4 04 8B F8 8D 45 ?? 50 8D 45 ?? 50 FF 75 ?? 57 6A 02 6A 00 6A 02 FF D6 }
$op4 = { 6A FF 8D 4? ?? 5? 8D 4? ?? 5? 8D 4? ?? 5? 5? FF 15 ?? ?? ?? ?? 85 C0 }
$op5 = { 56 6A 00 68 01 00 10 00 FF 15 ?? ?? ?? ?? 8B F0 83 FE FF 74 ?? 6A 00 56 FF 15 ?? ?? ?? ?? 68 88 13 00 00 56 FF 15 ?? ?? ?? ?? 56 FF 15}
condition:
uint16(0) == 0x5A4D and
(
3 of ($s*)
or 3 of ($op*)
or (2 of ($s*) and 2 of ($op*) )
)
}
Nextron در مواقعی وارد عمل میشود که اقدامات امنیتی سنتی ممکن است نتوانند تهدیدات را شناسایی کنند. ابزارهای forensics دیجیتال ما تجزیه و تحلیلهای جامع و دقیقی را بر روی سیستمهایی که نشانههای رفتار غیرعادی از خود نشان میدهند، انجام میدهند. این ابزارها به طور مؤثری نرمافزارهای خطرناک را شناسایی کرده و تهدیداتی را که ممکن است با روشهای استاندارد نادیده گرفته شوند، آشکار میسازند.
مجموعه امضاهای ما برای تشخیص طیف وسیعی از نگرانیهای امنیتی طراحی شده است. این شامل ابزارهای هکرها، بقایای آنها، فعالیتهای غیرعادی کاربران، تنظیمات پنهان و نرمافزارهای قانونی است که ممکن است برای حملات سوء استفاده شوند. رویکرد ما به ویژه در تشخیص تاکتیکهای استفاده شده در حملات زنجیره تأمین و شناسایی ابزارهایی که از سیستمهای آنتیویروس و EDR (Endpoint Detection and Response) فرار میکنند، مفید است.
در صورتی که این مقاله ( ترجمه و تحلیل عمیق باجافزار Lynx Ransomware ) برای شما مفید و آموزنده بود، پیشنهاد میشود برای اطلاع از سایر مقالات مستر لایسنس به صفحه وبلاگ مستر لایسنس مراجعه نمایید.
تیم مستر لایسنس با بهره گیری از متخصصان مجرب امنیتی قادر به ارائه خدمات و راهکار در زمینه مهندسی معکوس و ایجاد لایسنس نرم افزارهای خارجی با تمامی امکانات کامل می باشد .
تمامی حقوق قانونی این سایت مربوط به MRlicense میباشد