امتیاز کاربران

ستاره فعالستاره فعالستاره فعالستاره فعالستاره فعال
 


آشنایی با "دوکو2"


محصول جدید تیم توسعه دهنده "استاکس‌نت"


جزئیات فنی

خلاصه
اوایل سال جاری میلادی، در یک عملیات پاکسازی امنیتی، کسپرسکی یک نفوذ سایبری موثر بر سیستم های داخلی خود را مشاهده کرد.
پس از این یافته ها، تحقیقات وسیعی آغاز شد که منجر به کشف یک پلتفرم جدید که مربوط به یکی از پیچیده‌ترین، مرموزترین و قدرتمندترین گروههای هکری جهان "دوکو" است. تهدیدات این گروه از سال 2012 تاکنون کمرنگ شده بود و باور بر این بود که آنها پروژه های خود را متوقف کرده اند، اما تجزیه و تحلیل‌های کسپرسکی نشان می‌دهد موج جدیدی از حملات شامل نسخه به روز شده 2011 نرم افزار معروف و مخرب این گروه است که گاهی به عنوان برادر Stuxnet نیز شناخته می‌شود. محققان کسپرسکی این بدافزار جدید و پلتفرم های آن را "دوکو 2" نامگذاری کرده اند.
قربانیان دوکو 2 از مکان های مختلفی از جمله کشورهای غربی، خاورمیانه و آسیا هستند. این بدافزار اهداف خود را به صورت هوشمند و هدفمند انتخاب می‌کند که نشان دهنده‌ی بهبود توانمندی سایبری آنهاست.
مهمترین موارد نفوذ آنها مربوط به اجلاس گروه 5+1 در مورد مذاکرات مسائل هسته‌ای ایران است. به نظر می‌رسد آنها حملاتی را برای شنود مکالمات سطح بالا در سالن اصلی این اجلاس انجام داده اند. علاوه بر اجلاس گروه 5+1 گروه دوکو 2 حمله‌ای مشابه به رویداد سیصد و هفتادمین سالگرد آشویتس-بیرکناو  انجام داده‌اند.
در مورد آزمایشگاه کسپرسکی، این حمله با استفاده از آسیب پذیری zero-day (CVE-2015-2360) که در تاریخ 9 ژوئن 2015 توسط مایکروسافت برطرف شد، و دو آسیب پذیری دیگر که آنها نیز در حال حاضر برطرف شده اند صورت گرفته است.


آسیب پذیری zero-day چیست؟


يكي از اصطلاحات حفره‌هاي امنيتي، آسيب پذيري روز صفرم يا zero-day مي‌باشد. در واقع اين نوع آسيب‌پذيري، روشي از حمله يا نفوذ از طريق يكي از حفره‌هاي موجود در نرم‌افزارها يا برنامه‌هاي كاربردي مي‌باشد كه از ديد طراحان و توسعه‌دهندگان آن مخفي مانده است. مهاجمان بدون اعلام به شرکت سازنده نرم افزار و پيش از شناسايي اين آسيب‌پذيري و مشكل امنيتي توسط برنامه نويسان، آن را كشف كرده و براي حمله و يا نفوذ به سيستم‌هاي كاربران از آن استفاده مي‌كنند و یا روش‌های استفاده از این حفره توسط نفوذگران در سطح عمومی منتشر می شود.
به اين خاطر به آن آسيب پذيري روز صفرم مي‌گويند زيرا يك روز قبل از دانستن حفره توسط برنامه‌نويسان و توسعه‌دهندگان، هكرها از آن باخبر شده و از آن سوء استفاده مي‌كنند. يعني برنامه‌نويسان هيچ فرصتي براي ارسال تعمير و ابزار اصلاحي نمي‌يابند!


حمله اولیه


حمله اولیه علیه آزمایشگاه کسپرسکی با هدف قرار دادن یک کارمند در یکی از دفاتر کوچک در کنفرانس فعالیت‌های آسیا و اقیانوسیه آغاز شد. روش اصلی عملکرد دوکو 2 هنوز ناشناخته است، اگرچه گمان می‌شود فیشینگ ایمیل ها نقش مهمی در این آلودگی‌ها دارد زیرا با بررسی های بعمل آمده از سیستم یکی از قربانیان مشخص شد صندوق ایمیل ها و تاریخچه مرورگر وب برای پاکسازی آثار حمله از بین می‌روند. از آنجایی که سیستم‌های مربوطه کاملا با آخرین نرم‌افزارهای امنیتی به روز بودند به اعتقاد ما این نفوذ از طریق آسیب‌پذیری‌های zero-day صورت گرفته است.
در سال 2011 حملاتی را از دوکو شناسایی شد که در آنها اسناد Word حاوی یک آسیب پذیری zero-day بودند و در قالب TTF (فایل فونت) تعبیه شده بودند. این آسیب پذیری به حمله کننده اجازه می‌دهد به طور مستقیم از طریق فایل Word به Kernel Mode وارد شود که تکنیکی بسیار قدرتمند و نادر است و در ماه ژوئن سال 2014 برای حمله به یک سازمان بین المللی بسیار برجسته دوباره از آن استفاده شده است. سرور C&C مورد استفاده در این حمله مشابه دوکو و دوکو 2 است. با این حال این بدافزار با دوکو و دوکو 2 متفاوت است و گمان می‌شود که یک پروژه موازی از همان گروه دوکو باشد زیرا از همان روشهایی که برای نصب دوکو 2 استفاده شده بود در آن استفاده می‌شود.
هنگامی که مهاجمین یک حمله را با موفقیت اجرا کردند، وارد مراحل بعدی می‌شوند.

حرکات جانبی


به طور کلی هنگامی که مهاجم دسترسی به یک شبکه را بدست می‌آورد، دو مرحله زیر را دنبال کنید:
1- شناسایی توپولوژی شبکه
2- حرکات جانبی
در مورد دوکو 2 به نظر می‌رسد حرکات جانبی با استفاده از دیگر از آسیب پذیری‌های zero-day (CVE-2014-6324) که در نوامبر 2014 اصلاح شده، انجام شده است. این آسیب پذیری به کاربران با دسترسی پایین در شبکه دسترسی administrator می‌داد. اگرچه امکان بازیابی نسخه‌ای از این آسیب پذیری وجود ندارد، اما گزارشات مایکروسافت نشان دهنده‌ی استفاده از همین آسیب پذیری است. ماژول‌های مخربی که از حمله pass the hash در داخل شبکه استفاده می‌کنند نیز مشاهده شده اند که باعث دسترسی به حرکات جانبی متنوعی توسط مهاجم می‌شود.
هنگامی که مهاجم دسترسی به کاربر administrator شبکه را بدست آورد، با استفاده از آن می‌تواند کلیه سیستم‌های شبکه را نیز مورد حمله قرار دهد.
برای آلوده کردن سیستم‌های تحت Domain مهاجمان از تکنیک‌های مختلفی استفاده می‌کنند. در اغلب موارد آنها یک پکیج MSI را آماده کرده و به صورت Remote بر روی سیستم کاربران نصب می‌کنند. برای اجرای آن مهاجمین یک Service را با استفاده از دستور زیر ایجاد می‌کنند:
msiexec.exe /i “C:\\[…]\tmp8585e3d6.tmp” /q PROP=9c3c7076-d79f-4c
مقدار متغیر PROP در دستور بالا یک کلید تصادفی 56 بیتی است که برای رمزگشایی محموله اصلی از پکیج انتقالی تنظیم شده است.
نام‌های شناخته شده دیگر برای این پارامتر “CKEY” یا “HASHVA” است. با توجه به اینکه مهاجمان می‌توانند بر روی دستگاه از راه دور کنترل داشته باشند پوشه‌ای که بسته در آن مستقر می‌شود می‌تواند برای هر سیستم متفاوت باشد.
علاوه بر ساختن سرویس برای آلوده کردن رایانه‌های دیگر در شبکه، مهاجمان می‌توانند با استفاده از Task Scheduler سرویس msiexec.exe را از راه دور اجرا کنند. استفاده از Task Scheduler در آلودگی‌هایی که به وسیله دوکو ایجاد شده در نسخه 2011 مشاهده شده است که Symantec در تجزیه و تحلیل فنی خود آن را شرح داده است.

01“msiexec.exe” - Task Scheduler trace in the logs
 

فایل‌های MSI مورد استفاده در حملات حاوی یک ریشه مخرب است که به عنوان Loader عمل می‌کند. این ریشه نرم‌افزارهای مخرب دیگر را از فایل MSI رمزگشایی و در RAM بارگذاری می‌کند.

02Malicious stub with query to load the other resources from the MSI file highlighted
 

الگوریتم‌های رمزنگاری که برای این بسته‌ها استفاده می‌شود در هر مورد متفاوت است. این نکته بسیار مهمی است که مهاجمین به طور دقیق مراقب بودند تا از روش‌ها، الگوریتم‌های رمزنگاری و نام‌های یکسان در هر حمله استفاده نکنند تا توسط نرم‌افزارهای امنیتی شناسایی نشوند و یا در صورت شناسایی یک حمله، حملات دیگر آنها همچنان مخفی باقی بماند.
ما تا کنون الگوریتم‌های زیر را که توسط مهاجمان برای رمزنگاری استفاده می‌شوند مشاهده کرده‌ایم:
•    Camellia
•    AES
•    XTEA
•    RC4
•    Different multibyte XOR-based encryption
در مورد فشرده‌سازی، الگوریتم‌های زیر مشاهده شده است:
•    LZJB
•    LZF
•    FastLZ
•    LZO
در واقع، هر حمله با استفاده از ترکیی منحصربفرد از الگوریتم‌های فوق صورت می‌گیرد که همین امر تشخیص آن را بسیار دشوار کرده است.
مهاجمان می‌توانند با استفاده از دو نوع بسته سیستم‌های قربانیان خود را کنترل کنند:
•    “Basic”, in-memory remote backdoor (~500K)
•    Fully featured, C&C-capable, in-memory espionage platform (18MB)
به شکل زیر که یک ساختار مشابه را نشان می‌دهد نگاه کنید:
 03

Malicious Duqu 2.0 MSI package


در تصویر بالا می‌توان Loader را که ActionDll نام دارد و 17,920 bytes حجم دارد را به همراه ActionData0 که بسته اصلی می‌باشد و 476,736 bytes حجم دارد را مشاهده کرد. پس از اجرا، ActionDll بارگذاری می‌شود و کنترل را به دست می‌گیرد.
در روش The “basic” in-memory remote backdoor کامپیوتر داخل Domain از طریق Domain Controller به صورت منظم تحت تاثیر قرار می‌گیرد. روشی کاملا مشابه آلودگی های worm. این کار باعث می‌شود مهاجمان به اکثر کامپیوترهای تحت Domain دسترسی پیدا کنند و در مواردی که دسترسی بیشتری نیاز است، فایل‌های MSI پیچیده تری که ده ها پلاگین مختلف در آن وجود دارد را بارگذاری می‌کنند.
توضیحات کامل در مورد مکانیسم بارگذاری نرم‌افزارهای مخرب که بر پایه‌ی Basic remove backdoor MSI است در ادامه آمده است.
تجزیه و تحلیل یک بسته MSI دوکو 2
نام فایل: متفاوت در هر مورد
حجم: 503.296 بایت
خصوصیات فایل


یک فایل MSI دارای خصوصیات کلی زیر است:
• Composite Document File V2 Document
• Little Endian
• OS: Windows, Version 6.1
• Code page: 1252
• Title: {7080A304-67F9-4363-BBEB-4CD7DB43E19D} (randomly generated GUIDs)
• Subject: {7080A304-67F9-4363-BBEB-4CD7DB43E19D}
• Author: {7080A304-67F9-4363-BBEB-4CD7DB43E19D}
• Keywords: {7080A304-67F9-4363-BBEB-4CD7DB43E19D}
• Comments: {7080A304-67F9-4363-BBEB-4CD7DB43E19D}
• Template: Intel;1033
• Last Saved By: {7080A304-67F9-4363-BBEB-4CD7DB43E19D}
• Revision Number: {4ADA4205-2E5B-45B8-AAC2-D11CFD1B7266}
• Number of Pages: 100
• Number of Words: 8
• Name of Creating Application: Windows Installer XML (3.0.5419.0)
• Security: 4


قابل ذکر است که خصوصیات فایل‌های MSI مورد استفاده در هر حمله می‌تواند متفاوت باشد. برای مثال موارد دیگری نیز مشاهده شده است که در ادامه آمده است:

• Vendor: Microsoft or InstallShield
• Version: 1.0.0.0 or 1.1.2.0 or 2.0.0.0

برخی از این ویژگی‌ها از طریق Windows Explorer File Propertise قابل مشاهده است.


 04

داخل این بسته MSI دو بلاک باینری وجود دارد:

05

 
اولین بلاک باینری ActionDLL نام دارد، که در واقع یک فایل Windows PE DLL است در حالی که بلاک دیگر یک بسته رمزگذاری شده از نوع Camellia و LZJB است (الگوریتم رمزنگاری و فشرده‌سازی در هر مورد متفاوت است). در واقع چند لایه کد اجرایی به صورت فشرده شده و رمزنگاری شده در این بلوک‌ها جاسازی شده‌اند.

در اینجا نگاهی به یک بسته MSI دوکو2 با تمام خصوصیات داخلی آن می‌اندازیم:

06
 
تمامی مؤلفه‌های بالا با جزئیات بیشتری در زیر توضیح داده خواهند شد:
لایه اول: ActionDLL (msi.dll)
نام اصلی: msi.dll
MD5: e8eaec1f021a564b82b824af1dbe6c4d
حجم: 17.920 بایت
زمان لینک: 2004.02.12 02:04:50 (GMT)
نوع: 64-bit PE32+ executable DLL for MS Windows
این فایل dll تنها با یک فایل تولید می‌شود که StartAction نام دارد که پیش نیاز اجرای فایل msiexec.exe است. زمانی که این تابع صدا زده می‌شود، خصوصیات فایل MSI که PROP نامیده می‌شود صدا زده می‌شود و از آن به عنوان یک کلید رمزگشایی برای بسته ActionData0 استفاه می‌شود.
 

07


در ادامه، این کد برای 12 payload ممکن برای رمزگشایی و آغاز به کار سرویس اجرا می‌شود. Payload هایی که بخشی از بسته MSI است ممکن است نام‌های زیر را داشته باشند:
ActionData0, ActionData1, ActionData2
بسته‌ای که در اینجا توضیح داده می‌شود فقط شامل ActionData0 می‌باشد.
لایه دوم:ActionData0

08

 
 این تکه‌های باینری شامل کد اصلی به صورت فشرده شده و رمزنگاری شده هستند. این نشان دهنده یک ترکیب اجرایی مستقل از موقعیت بلاک کد است که با داده ها ترکیب شده اند. به نظر می‌رسد این کدها براساس یک Framework بنا شده اند و از ساختارهای کمکی حاوی اشاره‌گر به مجموعه‌ای از API های سیستمی و بلاک‌های داده داخلی استفاده می‌کنند.
این ساختار قطعا نشانه‌ای از علامت تجاری متعلق به توسعه دهنده است. هنگامی که یک بخش مقداردهی اولیه می‌شود (معمولا 4 بایت اول) حاوی یک مقدار خاص است که حالت و نوع ساختار را شناسایی می‌کند.
علامت تجاری دیگری که رمزگذار با استفاده از آن API را به سیستم وارد می‌کند، ماژول و صدور نام رشته هش است.  الگوریتم‌های هش در این لایه و تمامی لایه‌های دیگر کد اجرایی به وفور مشاهده شده‌اند که به راحتی توسط دو ثابت 0x67F84FC6 و 0x8A20C27 از نوع DWORD قابل تشخیص هستند.
در واقع کد درون ActionData0 با مراجعه به نام داخلی خود که klif.dll است، فایل جاسازی شده را اجرا می‌کند. پس از اجرا بخش دوم عملیات موجود در جدول به فایل dll مربوطه export می‌شود. این کدها نام فایل export شده را نادیده می‌گیرد و فقط به ترتیب عملیات جدول متکی است. هنگامی که تابع export صدا زده می‌شود، بخش کمکی ساختار  اشاره شده بعدی بررسی می‌شود، پس در این صورت می‌تواند مقادیر را از لایه‌های بالاتر استفاده کند.
با این وجود، قبل از اجرای klif.dll کد، مسیرهای جایگزین را امتحان می‌کند. اول تلاش می‌کند تا نامی مشابه فرمت زیر پیدا کند: api-ms-win-shell-XXXX.dll که در این فرمت X می‌تواند هر عددی در مبنای decimal باشد.
اگر هیچ ماژولی با نام فایل بارگذاری شده در عملیات جاری وجود نداشته باشد، نام مورد نظر صحیح است. کد به صورت مکرر تلاش می‌کند تا نامی مشابه نام‌های مقابل را به ترتیب پیدا کند: api-ms-win-shell-0000.dll و api-ms-win-shell-0001.dll و ... این رفتار ممکن است به پلتفرم دوکو وابسته باشد که هنوز کشف نشده‌اند.
پس از این، اگر نام پیدا شود، کد تلاش می‌کند تا بخش Kernel object را با نام مربوطه مرتبط کند که این عمل بر پایه الگوریتم PRNG انجام می‌شود. نام بخش از الگوری زیر تبعیت می‌کند:
“\BaseNameObject\{XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXX}” که در این الگو X می‌تواند هر عددی از نوع Hexadecimal باشد که بر اساس زمان بوت شدن فعلی سیستم تولید می‌شود.
پس تاکنون مشخص شد که نام بخش به زمان بوت شدن ماشین وابسته است که منحصربفرد است اما به ماژول‌های پردازشی دیگر اجازه می‌دهد تا محل یک بخش را در صورتی که از یک الگوریتم تولید نام استفاده کنند، پیدا کنند.
این بخش به قسمتهای مختلف کد و ماژول دسترسی دارد. برای مثال بخش OSBoot-section را بررسی می‌کنیم. وقتی نام بخش تولید شد، کد تلاش می‌کند تا چنین بخشی را باز کند، اگر این بخش یافت شود، مقادیری از آن را می‌گیرد و تلاش می‌کند تا به درایور یک دستگاه مشخص کد IOCTL را صادر کند. نام درایور دستگاه مانند کدهای IOCTL در بخشKernel mode درایور KMART.dll قرار گرفته است که در ادامه به توضیح آن خواهیم پرداخت.
 توسعه دهنده‌ی کد، برای دسترسی به داده ها از طریق Section اولویت بیشتری نسبت به سایر روش‌ها قائل شده است. به نظر می‌رسد یکی دیگر از استفاده‌‌های Section ها در ترسیم قسمتی از کد یا داده در klif.dll است و با استفاده از عدد خاص QWORD که 0xA1B5F8FC0C2E1064 است انجام می‌شود. یکبار که Section در مسیر پردازش جاری پیدا شود، کد برای اجرای آن تلاش می‌کند. مسیر جایگزین برای اجرا قابل اعمال به بسته فعلی MSI نمی‌باشد اما وجود آن در کد ممکن است به خاطر ساخت قالب کد بسته فعلی MSI باشد. همچنین ممکن است شاخصی برای یکی دیگر از پلتفرم‌های دوکو باشد که در این حملات از آن استفاده نمی‌شود.
لایه سوم: klif.dll
نام اصلی فایل: klif.dll
MD5: 3fde1bbf3330e0bd0952077a390cef72
حجم: 196.096 بایت
زمان لینک: 2014.07.06 08:36:50 (GMT)
نوع: 64-bit PE32+ executable DLL for MS Windows

ظاهرا این فایل تلاشی برای تقلید از نام فایل‌های محصولات کسپرسکی مانند klif.sys است، اما هیچ شباهتی نه در کد و نه در خصوصیات این فایل با فایل‌های کسپرسکی مشاهده نمی‌شود. با استفاده از ماژول آزمایشگاهی کسپرسکی مشخص شد که نام اصلی آن KLInit و KLDone است.
هنگامی که این فایل dll در یک پردازش جدید بارگذاری می‌شود. به سادگی ساختار داخلی را مانند یک اشاره‌گر API سیستمی مقداردهی اولیه می‌کند. Payload واقعی این ماژول در تابع export واقع در KLDone وجود دارد که ردیف دوم در جدول export واقع شده است. این تابع از لایه قبلی کد صدا زده می‌شود.
اول مطمئن می‌شود که ساختار عمومی برنامه با توابع ضروری مانند user32.dll و ntdll.dll و kernel32.dll مقداردهی شده است. تابع System API با استفاده از رشته‌ی هش export name وارد می‌شود. الگوریتم هش با موردی که در لایه‌ی بالاتر توضیح داده شد یکسان است و از همان مقادیر ثابت 0x67F84FC6 و 0x8A20C27 استفاده می‌کند.
سپس کد از طریق لیست پردازش‌های در حال اجرا تکرار شده و نام هر پردازش با حروف کوچک هش می‌شود. مقدار هش با کد 0x3E3021CB که یک رشته هش برای avp.exe است مقایسه می‌شود.

حملهAVP.EXE

اگر پردازش avp.exe در حال اجرا باشد، قبل از تلاش برای حمله به avp.exe ماژول برای باز کردن OSBoot-section تلاش می‌کند. هنگامی که مسیر دقیق نصب محصولات کسپرسکی که در زیر آمده است توسط آرایه‌ها و کدها شناسایی شود، حمله آغاز می‌شود:


KES12            AVP15            AVP10            AVP8
KES11            AVP14.0.0        KES9            AVP7
KES10            AVP14            KES8            AVP6
AVP16.0.0        AVP13            AVP80
AVP16            AVP12            AVP90
AVP15.0.0        AVP11            AVP9

 

مقدار کوئری مربوطه در رجیستری ویندوز حاوی مسیر پوشه root محصول کسپرسکی است. به عنوان مثال:


C:\Program Files\Kaspersky Lab\Kaspersky Internet Security 15.0.0

هنگامی که متغیر رجیستری و مقدار آن مشخص شد، ماژول avp.exe را در پوشه مربوطه ذخیره کرده و وضعیت فعال بودن آن را چک می‌کند. اطمینان حاصل می‌کند که متغیر قابل اجرا بوده و جهت خواندن اطلاعات می‌تواند باز شود.
پس از آن، ماژول یک Section جدید ایجاد کرده و avp.exe را به صورت یک فایل قابل نمایش به این Section نسبت می‌دهد. برای اجازه اجرای کد، ویژگی‌های این بخش از حافظه براساس آن تغییر می‌کند. این عمل به ماژول اجاره می‌دهد که بایت ها را در حافظه تغییر دهد. ماژول از یک روش کاملا غیرمعمول با استفاده از پسوند SSE2 که مختص CPU است avp.exe را تایید هویت می‌کند. درست پس از این ماژول تلاش می‌کند یک رشته جدید با استفاده از یک محل patched شده ایجاد کند. به نظر می‌رسد رشته‌ی جدید با یک فراخوانی توسط avp.exe که فراخوانی‌های دیگری هم می‌تواند داشته باشد آغاز می‌شود. به عنوان مثال پرش به klif.dll که ظاهرا از همین روش استفاده می‌کند. این حمله برای فریب پردازش avp.exe استفاده می‌شود تا این پردازش تصور کند این فراخوانی مانند دیگر فراخوانی‌های معمول کاملا امن و قابل اعتماد است. مورد زیر چیزی است که ما بیشتر در کدها مشاهده می‌کنیم:
یک رشته جدید فورا از avp.exe به klif.dll پرش کرده و برای برقراری ارتباط با محصولات کسپرسکی تلاش می‌کند. مشابه klif.sys در حقیقت، درست قبل از برقراری ارتباط با klif.sys، OSBoot-section را باز کرده و کد IOCTL که معرف driver و نام device است را گرفته و آن را به بخش IOCTL‌ در کد می‌فرستد. بخش مربوط به Driver که همان KMART.dll است پشتیبانی خاصی برای ماژول ارائه می‌دهد. کد نام پردازش جاری را هش کرده و در صورتی که با هش یکی از سه رشته زیر مطابقت کند آن را تایید می‌کند:


0x3E3021CB (avp.exe), 0xDE6D4DA0 (msiexec.exe), 0xB915B2D8 (rundll32.exe)

اگر هش نام پردازش جاری شناسایی شود، ماژول با klif.sys از طریق باز کردن \klifComm ارتباط برقرار کرده و سری پیام‌های ارتباطی را از طریق پورت ارتباطی  ارسال می‌کند. باتوجه به تجزیه و تحلیل پیام‌ها، این تکنیک باعث پنهان ماندن عملیات پردازشی و رشته‌ای از دید klif می‌شود. چنین ماهیتی قابل اعتماد در نظر گرفته می‌شود و از روند نظارتی AV-Scanning، Firewall و دیگر سیستم‌های حفاظتی حذف می‌شود. علاوه بر این، ماژول درخواست ویژگی Self-defence محصولات کسپرسکی را ارسال می‌کند که این ویژگی برای محافظت نرم‌افزارها از تهاجم‌های مخربی که باعث متوقف کردن پردازش سیستم‌های امنیتی است مورد استفاده قرار می‌گیرد که با استفاده از برخی ویژگی‌های سیستم عامل انجام می‌شود. با تایید این درخواست حتی کاربر administrator هم توانایی متوقف کردن پردازش این ماژول را نخواهد داشت.
باتوجه به اینکه به نظر می‌رسد حمله علیه محصولات کسپرسکی صورت می‌گیرد، با بررسی های بیشتر مشخص شد که این روش فقط بر روی محصولات قدیمی تر از نسخه KIS2010 که در سال 2009 منتشر شد‌ه‌اند موثر است و در نسخه‌های جدیدتر کسپرسکی با شکست مواجه خواهد شد.

09 
اما منطقی به نظر نمی‌رسد که مهاجمان ترفندهایی را استفاده کنند که استفاده از آنها در محصولات بعد از سال 2009 کسپرسکی غیرممکن شده است. بنابراین باید توضیح منطقی دیگری وجود داشته باشد که به نظر می‌رسد همینطور است.
چنین حمله‌ای به طور معمول علیه محصولات کسپرسکی موثر نیست، چرا که فرآیند فراخوانی پردازش مشروع به چک کردن custom digital signature است که آن هم در محصولات بعد از سال 2009 کسپرسکی قابل دستیابی توسط ماژول نیست. برای دور زدن این مورد، دوکو 2 با استفاده از کامپوننت KMART.dll فایل klif.sys را در حافظه اصلی وصله می‌کند تا مانع از چک شدن آن شود. این حمله همچنان عملی است زیرا به دلیل یک آسیب پذیری در هسته ویندوز KMART.dll در حالت kernel mode قابل اجرا است. پس از ارسال کد، نتایج حاصل به مرحله بعدی می‌رود که در ادامه توضیح داده خواهد شد.

CTwoPENC.dll zero-day و KMART.dll

لایه سوم klif.dll بسیاری از توابعی که به منظور اطمینان از بقای این بدافزار در حافظه اصلی و دور زدن سیستم‌های تشخیص موتورهای امنیتی مورد نیاز است را اجرا می‌کند.
یکی از مهمترین گامها، دستیابی به دسترسی در سطح هسته است. در سیستم‌های 64 بیتی نمی‌توان بدون Signed Driver به سادگی kernel mode را بارگذاری و اجرا کرد. در حالی که مهاجمان دیگر مانند Equation یا Turla تصمیم به به دوش کشیدن بار دور زدن Signed Driver گرفته اند، دوکو 2 از یک ترفند بسیار زیرکانه تر استفاده می‌کند.
یکی از بسته‌هایی که با klif.dll به صورت bundle تجمیع می‌شود CTwoPENC.dll است. این یک آسیب پذیری هسته ویندوز است (CVE-2015-2360) که اجازه اجرای آنها را در بالاترین حد دسترسی سیستم بدهد که بر روی سیستم‌های 32 بیتی و 64 بیتی  با برچسب‌های زمانی زیر قابل اجرا است:

•    2014.08.25 01:20:04 (GMT)
•    2014.08.25 01:19:03 (GMT)
•    2014.07.06 09:17:03 (GMT)

برخلاف دیگر ماژول‌های دوکو 2، این ماژول‌های برچسب زمانی به نظر می‌رسد که قابل تایید هستند! دلیل این موضوع همچنان ناشناخته است، اما گمان می‌شود توسعه دهندگان دوکو 2 این ماژول را از شخصی دیگر گرفته باشند و فراموش کرده‌اند اصلاحیه آن را تدوین کنند.
CTwoPENC.dll یک آسیب پذیری از نوع zero-day در win32k.sys است که دسترسی کرنل برای کاربرانی با دسترسی غیرمجاز را فراهم می‌کند.
 

10
هدف اصلی این exploit‌ بارگذاری درایور KMART.dll است. اگر با موفقیت انجام شود KMART.dll را decompress کرده و از کنترل آن در حالی که در kernel mode در حال اجرا است عبور می‌کند. KMART.dll هم در سیستم عامل‌های 32 بیتی و هم 64 بیتی وجود دارد. این درایور یک حمله در سطح kernel mode علیه محصولات کسپرسکی (klif.sys) را پیاده سازی می‌کند.
در حین آزمایش، این آسیب پذیری بر روی کلیه نسخه‌های ویندوز (XP, Vista, 7, 8, 8.1 نسخه های 32bit و 64bit) عمل می‌کند که البته در تاریخ 9 ژوئن 2015 توسط مایکروسافت برطرف شده است.

 

PAYLOAD CONTAINERS AND MIGRATION

ماژول از تعداد مختلفی payload در قالب container های klif.dll در حافظه اصلی پشتیبانی می‌کند.
یک payload container شامل یک هدر کوتاه است که معماری CPU مورد نظر، نوع payload و نام پردازش مورد نظر و هش آن را توصیف می‌کند. هنگامی که ماژول از تعدادی کد جاسازی شده و یا فایل‌ استفاده می‌کند، به صورت عادی دو نوع کد در آن وجود دارد که 32bit و 64bit هستند. هر payload با یک کاراکتر شناسایی مشخص و اجرا می‌شود. ماژول مورد بحث از 5 نوع payload پشتیبانی می‌کند: j, i, k, l, q. به نظر می‌رسد توسعه دهندگان از ترتیب الفبایی استفاده کرده‌اند، که ممکن است payload های دیگری نیز وجود داشته اند که از کد حذف شده اند.


Payload نوع L:


اول اینکه به نظر می‌رسد کد به دیگر پردازش‌ها دسترسی دارد و می‌تواند دیگر پردازش‌های در حال اجرا را ببیند، نام آنها را هش کند و با دیگر هش ها مقایسه کند. ماژول از رشته‌های هش شده زیر استفاده می‌کند:


0x31283314 (services.exe), 0x1026D1BA (lsass.exe), 0x3BD2498C (svchost.exe)

اگر هریک از این پردازش‌ها یافت شود، ماژول آن را باز کرده و وجود دسترسی های زیر را تایید می‌کند:


•    SeDebugPrivilege
•    SeTcbPrivilege
•    SeAssignPrimaryTokenPrivilege
•    SeIncreaseQuotaPrivilege
•    SeImpersonatePrivilege
•    SeRestorePrivilege

اگر آنها در ماژول وجود داشته باشند، یک نسخه از آن را در ساختار داخلی خود برای استفاده‌‌های آتی ذخیره می‌کند.
ماژول به دنبال مجموعه‌های امنیتی که بر روی سیستم نصب شده‌اند و همچنین پردازش‌های آنها می‌گردد. فایل‌‌های اجرایی و مجموعه‌های امنیتی که مورد بررسی قرار می‌دهد به شرح زیر است:

More than 20 different Kaspersky Lab products
McAfee VSCore, SystemCore, HIP
Symantec Internet Security
Bitdefender
ESET
H+BEDV
TrendMicro Network Security Component
Rising AV
Avast
AVG 2012/2013/2014/2015
F-Secure
Qihoo 360 Security
Generic Windows Processes
%ProgramFiles(x86)%\Windows Defender\MsMpEng.exe
%SystemRoot%\syswow64\svchost.exe
%SystemRoot%\system32\lsass.exe
%SystemRoot%\system32\svchost.exe

وقتی یکی از آنها یافت شود، (حداقل svchost.exe یا lsass.exe قطعا یافت می‌شود) یک پردازش جدید از محل پیدا شده ایجاد و اجرا می‌کند، و کد قابل اجرای آن را با کد خود جای‌گذاری کرده و آن را رمزنگاری و فشرده می‌کند. اگر کد موفق به پیدا کردن نشانه‌ای از محصولات امنیتی از لیست پردازش‌ها با دسترسی امنیتی مورد نیاز شود، تلاش می‌کند با token های موجود CreateProccesAsUser API‌ یک پردازش جدید ایجاد کند. در غیر این صورت به سادگی یک پردازش جدید ایجاد می‌کند.
پردازش جدید در حالت suspended و debugged اجرا می‌شود. درست قبل از اجرای پردازش جدید DEP یا Data Execution Prevention  را غیر فعال می‌کند، تا بتواند کد و داده ها را دستکاری کند. تا اینجا از دید خارجی تنها یک نرم افزار امنیتی اجرا شده است، در حالی که در داخل، کداجرا شده کاملا با ماژول مورد تایید متفاوت است.


Payload نوع G:
این payload تقریبا با payload L که در بالا توضیح داده شد یکسان است اما بخش loader آن ساده‌تر است و ایجاد دسترسی‌ها را نادیده می‌گیرد. کد هدف به صورت اتوماتیک در صورتی که پردازش مورد نظر در دسترس باشد انتخاب می‌شود.


Payload از نوع I:
این payload بسیار شبیه به نوع G عمل می‌کند، اما بخش هدر آن کمی متفاوت است:
به جای نام پردازش، از یک رشته 4 بایتی که هش نام پردازش است استفاده می‌شود. به نظر می‌رسد این راه برای مخفی کردن نام پردازش به کار می‌رود، با این وجود این payload به طور کامل در ماژول ما تجزیه و تحلیل نشده است.


Payload از نوع K:
این payload طراحی شده است تا در داخل پردازش جاری اجرا شود. کد مخرب به سادگی درون کد در حال اجرا در یک حافظه مجزا کپی شده و آن را با یک رشته مجزا اجرا می‌کند. تا زمانی که رشته جدید که ایجاد شده است تمام شود اجرای کد اصلی بلاک می‌شود.


Payload از نوع Q:
این payload با نوع K که در بالا توضیح داده شد یکسان است، اما هنگامی که رشته جدید ایجاد می‌شود اجرای کد اصلی بلاک نمی‌شود و کد جدید به صورت غیر همزمان اجرا می‌شود.
پس از آن که payload container باز شد و کد به پردازش دیگری اختصاص یافت، از نرم‌افزارهای امنیتی در امان خواهد ماند در حالی که کد مخرب اصلی فعال شده است.
در موارد خاص، در سیستم‌های انتخاب شده، ماژولی که با command و control server ارتباط برقرار می‌کند می‌تواند به عنوان یک پروکسی دو طرفه با بسته بزرگی از پلاگین عمل کند.

پلتفرم ماژول‌های افزونه
علاوه بر راه‌های عمومی backdoor، مهاجمین بسته‌های پیچیده تری را به Domain Controller و از طریق آن به سیستم قربانیان در داخل شبکه ارسال می‌کنند. این بسته‌های MSI می‌توانند شامل ده‌ها ماژول مختلف که برای عملکردهای مختلف جاسوسی طراحی شده اند همراه باشند.
حجم بسته کامل که تمام ماژول‌ها را داشته باشد بزرگتر از بسته پایه است، 18 مگابایت در برابر 500 کیلوبایت. هر دوی آنها از الگوهای مشابهی استفاده می‌کنند، همرا با ActionDll و مکانیزم های loader به غیر از اینکه بسته حجیم تر تعداد زیادی افزونه برای بارگذاری و اجرا است.
در بررسی‌های کسپرسکی بیش از 100 نوع مختلف افزونه شناخته شد. توضیحات این پلاگین‌ها در ادامه شرح داد شده است. برای جداسازی آنها از یک Virtual Identifire بر پایه هش MD5 دو بایت اول استفاده شده است.

03B7 – ماژول اصلی دوکو 2، ارکستراسیون
پیاده سازی پروتکل‌های کنترل کننده متعدد برای ارتباطات C&C می‌تواند یک پروکسی سرور C&C با Certificate شخصی را اجرا کند. استارت کردن plugin framework، کلیه Additional Plugins ها را بارگذاری و اجرا می‌کند. این ماژول با HTTP، HTTPS، SMB Networks و یا TCP Connection با استفاده از پروتکل رمزنگاری سفارسی کار می‌کند. تعامل با HTTP مانند نسخه سال 2011 دوکو در یک فایل JPEG یا GIF مخفی شده است. نام‌های درخواستی، آدرس‌های اینترنتی و User-Agent Strings ممکن است در هر حمله متفاوت باشد.
موارد شناخته شده دیگر: 3026,4F11

0682– جمع‌آوری اطلاعات پایه
•    فهرست پردازش‌های در حال اجرا
•    دسکتاپ و session های فعال
اطلاعات جمع‌آوری شده توسط فراخواننده به named pipe provider انتقال خواهد یافت.
موارد شناخته شده دیگر: C0B7

073C – پیاده‌سازی مبتنی بر Windows socket-based transport 

در هر دو سمت کلاینت و سرور یک class factory برای کپسوله کردن توابع مختلف شبکه ایجاد می‌کند.

0872 – کتابخانه MSI CustomAction

 هنگامی که بسته نصبی مخرب توسط Windows Installer اجرا می‌شود فعال می‌شود. سپس بخش‌های باینری رمزنگاری شده را که شامل payload های مخرب واقعی است را در حافظه‌ی اصلی رمزگشایی و اجرا می‌کند.
 نام آنها در نسخه‌های مختلف متفاوت است: svcmsi_32.dll, msi3_32.dll, MSI.dll, msi4_32.dll
الگوریتم‌های رمزنگاری نیز متفاوت است: Camellia 256, AES, XXTEA
کلید رمزگشایی از یک پارامتر MSI استخراج می‌شود که نام آن ممکن است PROP, HASHVA, CKEY باشد.
بخش‌های رمزگذاری شده با پیشوند جستجو (موارد متفاوت): ActionData, CryptHashs, CAData
این موارد در هر دو نسخه 32 یتی و 64 بیتی شناخته شده‌اند.
موارد شناخته شده دیگر: 8D7C, 16EF, E6E5, 434C, 44BD, F708.


Exfiltrates file contents-09A0 های 64 بیتی

- خصوصا جستجوی فایل‌ها برای تطبیق با قوانین زیر:
•    *.inuse, *.hml
•    filename contains “data.hmi” or “val.dat”
•    files from the /Int/HMI/ or /LG/HM/ folders
 

11

File and directory names of interest for the 09A0 plugin

موارد شناخته شده دیگر: 8858

 25-0AB8 تابع برای دستکاری فایل و فولدرها ارائه می‌دهد:
•    لیست فایل‌ها در دایرکتوری‌ها
•    آپلود و دانلود فایل‌های دلخواه
•    خواندن و نوشتن محتویات فایل‌ها
در چند مورد، ماژول به طور خاص دایرکتوری‌هایی با نام‌های “\int”, “\lg”, “\ of\md”, “\tl”, “\ak” و فایل‌هایی با پسوند “.part”, “.manual”, “.inuse” را جست و جو می‌کرد.

 

12
File and directory names of interest for the 0AB8 plugin

 

موارد شناخته شده دیگر: A69E

0B97 – شبکه حمل و نقل

– پیاده‌سازی API برای اتصال socket و pipes provided توسط فراخواننده.
موارد شناخته شده دیگر: 56A2

152B – اکتشاف دامنه و شبکه
•    شمارش تمامی سرورها در Domain
•    تلاش برای اتصال به remote registries‌ و شمارش تمامی کاربران در “HKEY_USERS”
در این بخش نام‌های کاربری که به SID تبدیل شده‌اند خوانده می‌شود.
•    شمارش تمامی شبکه‌های به اشتراک گذاشته شده که قابل مشاهده باشند.


موارد شناخته شده دیگر: A987

1C71 – ذخیره سازی در حافظه

- دریافت و ذخیره رشته‌ی داده در نگاشت فایل.


2125 – ماژول شبکه آلوده

– تلاش می‌کند اعتبارنامه‌های اجرایی را از پردازش‌های در حال اجرا بدست آورد و سپس با استفاده از بخش sharing ویندوز به سیستم هدف متصل شود. دستگاه با یک فایل مخرب dll با استفاده از backdoor آلوده شده است. دایرکتوری مورد نظر ممکن است متفاوت باشد مانند: UPDROOT$، ADMIN$، C$. با استفاده از بسته‌های SMB سفارشی نسخه سیستم‌عامل سیستم هدف به دست می‌آید. فایل dll مورد نظر با استفاده از یک سرویس جدید به نام svcmsi_32@ اجرا می‌شود. ارتباطات ماژول با استفاده از backdoor های ویندوز برقرار می‌شود.
موارد شناخته شده دیگر: DB65 – به جای استفاده از فایل dll مخرب، یک بسته MSI را بارگذاری کرده، سپس با استفاده از MSIEXEC.EXE بسته MSI را اجرا کرده که این عمل با ساختن سرویس msisvc_32@ صورت می‌گیرد. فایل MSI نهایی نیز از یک نام تصادفی با استفاده از الگوی tmp%x.tmp استفاده می‌کند.

13

Example of a Windows event log (System) entry created
at the moment of infection

 

اعتبارنامه‌ی اجرایی با دزدیدن یک نشانه از هر یک از پردازش‌های در حال اجرا که با  نام کاربریadministrator  اجرا شده‌اند بدست می‌آید.

14

Remote locations used by the network infection module
 

 
24B7 – مدیریت Remote Desktop

– یک عکس از صفحه دسکتاپ بدست می‌آورد و همچنین می‌تواند عمل ورودی به دسکتاپ داشته باشد و یا حتی نشانگر موس را حرکت دهد. در هر دو سیستم‌های 32 و 64 بیتی پشتیبانی می‌شود.
موارد شناخته شده دیگر: 65BE، 7795، BDC8، DEE2

26D6 – نرم‌افزارهای sniffer را پیدا می‌کند

– مانند (Wireshark, tcpview, netstat, dumpcap, perfmon) و یک TCP Server راه‌اندازی کرده و از طریق network pipe ارتباطات خود را برقرار می‌کند. نام داخلی آن P.dll‌ است.

2829 – جمع آوری اطلاعات سیستم
•    زیر نظر گرفتن USB های متصل
•    جمع‌آوری تاریخچه USB های متصل
•    شمارش شبکه‌های به اشتراک گذاشته شده، windows captions و جداول مسیریابی سیستم
•    خواندن و نوشتن فایل‌های رمزنگاری شده


2913 – WMI data Collection
•    شمارش پروفایل‌ها با SID آنها
•    برای هر پروفایل، استخراج داده‌ها از فایل‌های lnk در دایرکتوری پروفایل
و    شمارش پردازش‌ها با WMI (CIMV2)، که شامل پردازش‌های پایان یافته هم می‌شود.
•    استخراج اطلاعات کاربر از remote registries فعال.
موارد شناخته شده دیگر: C776

29D4 – سرویس msisvc_32@

- که یک DLL Backdoor است برای شبکه‌هایی که با ماژول 2125 آلوده شده‌اند استفاده می‌شود. دستورات را با named pipe “Global\{B54E3268-DE1E-4c1e-A667-2596751403AD}”  می‌پذیرد. در هر دو سیستم‌های 32 و 64 بیتی پشتیبانی می‌شود.
موارد شناخته شده دیگر: 6F92, A505, D242

2B46 – مجوعه گسترده‌ای از اطلاعات سیستم و کاربر

•    Domain controller’s name
•    List of users in the domain
•    Administrators of the domain
•    Enumerates domain trusts
•    TCP tables
•    UDP tables
•    SNMP discovery (OS, parse all replies)
•    USB drive history, mounted devices
•    Installed programs
•    Time zone
•    OS install date
•    ODBC.ini, SQL Server instance info, Oracle ALL_HOMES, SyBase, DB2, MS SQL,
MySQL last connections
•    DHCP/routing
•    Network profiles
•    Zero Config parameters
•    Connected printers
•    MRU list for WinRAR, WinZip, Office, IE typed URLs, mapped network drives, Visual
Studio MRU
•    Terminal Service Client default username hint
•    User Assist history
•    PuTTY host keys and sessions
•    Logged on users
•    Network adapter configuration
•    VNC clients passwords
•    Scan the network and identify OS using SMB packet

 

14
Some of the registry locations harvested by the module

 

موارد شناخته شده دیگر: A7F8

2BF7 – ابزار dll – یک API عمومی برای ساخت و بارگذاری پکیج MSI و inject کردن ماژول PE را فراهم می‌کند. همچنین مسئول بارگذاری سطح اول VFS در فایل MSI مخرب است که در سیستم‌های 32 و 64 بیتی پشتیبانی می‌شود.
نام‌های شناخته شده: ntdll.dll، klif.dll، apiset.dll.
موارد شناخته شده دیگر: 6DA1، 32DB، 8304، 9931، 9E60، A2D4، ABA9، B3BB، DC5F، DD32، F7BB.


3395 – ماژول MS SQL Discovery – این ماژول می‌تواند بسته‌های ARP در شبکه ارسال کند و پورت MS SQL Server را بیابد. عملکردهای دیگر این ماژول اتصال و خواندن محتویات remote registery است.

35E9 – یافتن File System
•    شمارش شبکه‌های به اشتراک گذاشته شده
•    شمارش هارد دیسک های local
•    گذشتن از سلسله مراتب فایل سیستم و شمارش فایل‌ها


 pipe backdoor-3F45

بازکردن یک name pipe عمومی قابل مشاهده، دریافت و اجرای دستورات رمزنگاری شده. رشته جادویی که پروتکل‌های رمزنگاری شده را شناسایی می‌کند “tttttttt” است !
•    شمارش پردازش‌های در حال اجرا
•    بارگذاری و اجرای فایل‌های PE دلخواه
در  هر دو سیستم‌های 32 و 64 بیتی پشتیبانی می‌شود.
Pipe name های شناخته شده:


\\.\pipe\{AAFFC4F0-E04B-4C7C-B40A-B45DE971E81E} \\.\pipe\{AB6172ED-8105-
4996-9D2A-597B5F827501}
\\.\pipe\{0710880F-3A55-4A2D-AA67-1123384FD859} \\.\pipe\{6C51A4DB-E3DE-
4FEB-86A4-32F7F8E73B99}
\\.\pipe\{7F9BCFC0-B36B-45EC-B377-D88597BE5D78}, \\.\pipe\{57D2DE92-CE17-
4A57-BFD7-CD3C6E965C6A}

موارد شناخته شده دیگر: 6364، 3F8B، 5926، A90A، DDF0، A717، A36F، 8816، E85E، E927


4160 -  Password stealer
•    استخراج داده‌های ورود به سایت ها در Google Chrome و Firefox
•    سرقت LSA Credentials
 

16Data used to locate Chrome saved logins

موارد شناخته شده دیگر : B656


  41E2

Password stealer ماژول 64 بیتی

– موارد زیر را استخراج می‌کند:
•    IE IntelliForms history
•    POP3/HTTP/IMAP passwords
•    TightVNC, RealVNC, WinVNC3/4 passwords
•    Outlook settings
•    SAM, LSASS cache
•    Windows Live, .Net Passport passwords
 

17
References to information collected by the module

موارد شناخته شده دیگر: 992E، AF68، D49F


482F – ذخیره اطلاعات سیستم
•    شمارش هارد دیسک ها
•    گرفتن لیست پردازش‌های در حال اجرا
•    اطلاعات گسترده پردازش‌ها از جمله زمان ایجاد آنها
•    اطلاعات حافظه اصلی
•    اطلاعات SID

موارد شناخته شده دیگر:F3F4


559B – بررسی Active Directory
•    اتصال به Active Directory Global Catalog (“GC:”) با استفاده از ADSI
•    شمارش تمامی object ها در Active Directory
•    ارائه‌ی هر ورودی در یک فرمت قابل خواندن

18Active Directory enumeration routine
 

580C – ذخیره اطلاعات سیستم و شبکه
•    بازیابی domain controller name
•    شمارش تمامی کاربران و گروه‌ها در domain
•    جمع‌آوری لاگ های Task Scheduler
•    جمع‌آوری اطلاعات هارد دیسک‌ها، تاریخچه USB ها
•    بازیابی Policy های Firewall
•    شمارش تمامی object های نامگذاری شده
•    شمارش تمامی Service های سیستم


5B78 – ذخیره اطلاعات سیستم و Utilities

– یکی از دو عملگر استخراج شده “GetReport” نام دارد.
•    شمارش پردازش‌های در حال اجرا، استخراج token ها و SID ها، جمع‌آوری اطلاعات زمانی
•    ورود با استفاده از کاربرانی که قبلا به سیستم وارد شده بودند از طریق explicit credentials
•    جعل هویت کاربرانی که پردازش در حال اجرا دارند.
•    ساخت shellcode stubs 32 و 64 بیتی با استفاده از hardcoded template
در  هر دو سیستم‌های 32 و 64 بیتی پشتیبانی می‌شود.
موارد شناخته شده دیگر: E8C7، EE6E

5C66 - Encrypted file I/O, utilities
•    عملکردهای I/O در فایل مانند: باز کردن، دنبال کردن، خواندن و نوشتن
•    مدیریت temporary files های رمزنگاری شده و فشرده سازی شده

622B – تولید گزارش درباره استفاده سیستم از unique schema در قالب XML
•    Computer name
•    Windows directory
•    Enumerates all logical drives
•    Lists all files
•    OS serial number
•    Domain name
•    Network adapter configuration: IP addresses, MAC, MTU, adapter list
 

19
XML tags used to generate the system report

6302 – Utilities – از نام داخلی d3dx9_27.dll استفاده می‌کند و رویدادهای بر پایه‌ی زمان را اجرا می‌کند.
موارد شناخته شده دیگر: FA84

669D – Utilities – گرفتن لیست نام فایل‌ها و دایرکتوری‌ها و چک کردن اینکه آیا موجود هستند یا خیر.
موارد شناخته شده دیگر: 880B

6914 – حمله‌های sniffer-based به شبکه – با استفاده از درایور مشروع WinPcap با نام “npf.sys”‌ پروتکل NBNS (NetBIOS protocol) را شناسایی کرده موارد مورد نیاز خود را درخواست کرده و پاسخ‌های خود را ارسال می‌کند
•    پاسخ به درخواست WPAD (“FHFAEBE” in NBNS packets)
•    ارسال پاسخ‌ها به درخواست های HTTP GET
فیلتر شبکه بر اساس BPF library انجام می‌شود. پاسخ Payload های HTTP و WPAD  از خارج ارائه می‌شود.
 

20
Fake HTTP response and related status messages

6FAC – File API
•    گرفتن سایز و ویژگی‌های فایل
•    حذف ایمن فایل
•    بازکردن، بستن، خواندن، نوشتن محتوای فایل
موارد شناخته شده دیگر: A7EE

7BDA – جمع‌آوری اطلاعات سیستم
•    وضعیت فعلی ضدویروس و Firewall با استفاده از wscapi.dll API
•    شناسایی در حال اجرا بودن sqlservr.exe
•    Computer Name
•    Workgroup Info
•    نام Domain controller
•    تنظیمات کارت شبکه
•    اطلاعات زمان و تاریخ سیستم
•    فرکانس CPU
موارد شناخته شده دیگر: EF2E

7C23 – استخراج metadata از اسناد و جمع آوری اطلاعات سیستم
•    Computer name
•    System volume serial
•    Complete file API as in 6FAC
جستجو در اسناد، آرشیوها و روال ها برای استخراج تمامی اطلاعات ارزشمند از آنها:
•    E-mail messages: eml, msg
•    Image files: jpg, jpe, jpeg, tif, tiff, bmp, png
•    Multimedia files: wmv, avi, mpeg, mpg, m4a, mp4, mkv, wav, aac, ac3, dv, flac,
flv, h264, mov, 3gp, 3g2, mj2, mp3, mpegts, ogg, asf. These are re-encoded with
libffmpeg.
•    Microsoft Office: doc, docx, xlsx, pptx. Dedicated routines are called accordingly
“OfficeRipDoc”, “OfficeRipDocx”, “OfficeRipXlsx”, “OfficeRipPptx”. PPT slides are
extracted and converted to a HTML digest of the presentation.
•    Archives: gz, gzip, gzX3, zip, rar
•    ساخت temporary files  با پسوند .fg4
موارد شناخته شده دیگر: EB18، C091

21Part of the list of file extensions of interest and corresponding status messages

8172 - حمله‌های sniffer-based به شبکه – اجرای پروتکل NBNS (NetBIOS protocol) برای:
•    درخواست‌های WPAD
•    نام‌هایی که با “SHR” آغاز می‌شوند
•   نام‌هایی که با “3142” آغار می‌شوند (فقط برای فایل‌های لاگ)

 22Status messages related to the attack


ویژگی‌های دیگر: ماژول می‌تواند shellcode جدید از طریق hardcoded templates بسازد.
81B7 – مدیریت درایور
•    نوشتن درایور در دیسک
•    اجرا و توقف درایور
•    Safely remove فایل درایور از دیسک
 موارد شناخته شده دیگر: C1B9

8446 - Oracle DB and ADOdb client
•    استفاده از oci.dll API برای دسترسی به پایگاه داده اوراکل
•    استخراج تمامی اطلاعات موجود از پایگاه داده
•    همچنین اتصال به ADOdb providers
 23

SQL queries and related data


8912 – دستکاری فایل رمزنگاری شده و جمع‌آوری اطلاعات سیستم
•    ارتباطات file mapping به اشتراک گذاشته شده
•    نوشتن داده‌های رمزنگاری شده در فایل
•    شمارش پنجره‌ها
•    شمارش شبکه‌های به اشتراک گذاشته شده و local disk ها
•    بازیابی تاریخچه‌ی USB های متصل شده
•    جمع‌آوری routing table های شبکه

Mutex و Mapping Name های شناخته شده:
•    Global\{DD0FF599-FA1B-4DED-AC70-C0451F4B98F0} Global\{B12F87CA-1EBA-
4365-B90C-E2A1D8911CA9},
•    Global\{B03A79AD-BA3A-4BF1-9A59-A9A1C57A3034} Global\{6D2104E6-7310-
4A65-9EDD-F06E91747790},
•    Global\{DD0FF599-FA1B-4DED-AC70-C0451F4B98F0} Global\{B12F87CA-1EBA-
4365-B90C-E2A1D8911CA9}

موارد شناخته شده دیگر: D19F، D2EE

9224 – اجرای برنامه‌های کنسول – ساختن پردازش‌های جدید با استفاده از desktop default، حمله به کنسول و تغییر مسیر ورودی و خروجی اطلاعات

92DB – cmd.exe اصلاح شده

24Several CMD commands processed by the shell

 

 

9F0D (64-bit)، D1A3 (32-bit) – درایور مشروع NPF.SYS توزیع شده درون VFS با استفاده از افزونه که برای حمله‌های sniffer-based شبکه‌ها استفاده می‌شود.
A4B0 – بررسی شبکه
•    استفاده از DHCP Server Management API (DHCPSAPI.DLL) برای شمارش تمامی DHCP سرورها
•    کوئری‌های تمامی DHCP های شناخته شده Sub-Network ها
•    شمارش تمامی سرورهای شبکه
•    شمارش تمامی شبکه‌های به اشتراک گذاشته شده
•    تلاش برای اتصال به remote registries جهت شمارش تمامی کاربران در HKEY_USERS و تبدیل آنها به SID
B6C1 – Wnet API – یک پوشش برای WnetAddConnection2 و WNetOpenEnum ایجاد می‌کند.  
موارد شناخته شده دیگر: BC4A

C25B - حمله‌های sniffer-based به شبکه – پیاده سازی یک SMB Server جعلی برای فریب دیگر سیستم‌ها برای تصدیق هویت با NTML
•    دستورات پیاده سازی پایه SMB v1
 

25SMB commands handled by the module

 


•    وانمود کردن برای به اشتراک داشتن IPC$ و A:
•    پذیرش درخواست‌های user authentication
•    همچنین مدیریت درخواست‌های HTTP GET
 

26

NTLM challenge and SMB server data

ED92 – بررسی فایل سیستم
•    شمارش همه‌ی local disk ها و شبکه‌های به اشتراک گذاشته شده متصل
•    لیست فایل‌ها

EF97 – Filesystem Utilities
•    شمارش فایل‌ها
•    ساختن و پاک کردن دایرکتوری‌ها
•    کپی، جا‌به‌جایی، پاک کردن فایل‌ها و دایرکتوری ها
•    استخراج اطلاعات نسخه ها از فایل
•    محاسبه هش فایل
موارد شناخته شده دیگر: F71E

 


به امید موفقیت
امور پشتیبانی مشترکین      
 
شرکت مهندسی و ایمنی شبکه دژپاد
تهران –  شهرک غرب، خیابان ارغوان غربی، خیابان پرتو، نبش خیابان پامچال 2، پلاک 19، واحد 1
تلفن : 26654823(21)  ,  22137612(21)
نمابر :115- 22137612(21)  
پست الکترونیک : support [at] dejpaad.com  
وب سایت : www.dejpaad.com