سلام ، در این آموزش قصد داریم تا شمارو با یک شبیه ساز حمله به شبکه های داخلی اشنا کنیم . شاید برای شماهم پیش اومده باشه که بخواید بعد از اینکه تمام تجهیزات امنیتی خودتون اعم از فایروال، آنتی ویروس، DLP و غیره رو کانفیگ کردید و تو شبکه قرار دادید اون هارو محک بزنید تا ببینید چقدر میتونند جلوی حمله به سازمان شمارو بگیرند. به وسیله این آموزش شما میتوانید از دیدگاه یک نفوذگر کلاه سیاه یا اصطلاحا به صورت Red Teaming شبکه داخلی را تست نفوذ کرده تا از ضعف های موجود در شبکه مطلع بشید. اما به سراغ ادامه ماجرا می رویم ، زمانی که یک حمله سایبری اتفاق می افتد چه اتفاقاتی رخ میدهد و نفوذگر چه پروسه هایی را طی میکند؟
بسیاری از کمپانی ها از نرم افزار های مانیتورینگ، DLP ها و مراکز عملیات امنیت (SOC) استفاده میکنند تا از تجهیزات خودشان محافظت کنند. حالا ابزاری که اینجا خلا آن احساس میشود ابزاری است که بتواند داده های واقعی حمله در دنیای واقعی را تولید کند. ابزاری که در این آموزش به آن پرداخته میشود این فرایند را برای شما انجام میدهد.
Invoke-Adversary یک اسکریپت پاورشل است که رفتارهای یک نفوذگر واقعی در یک شبکه Enterprise را از خود بروز میدهد. به وسیله این اسکریپت شما میتوانید :
نیازمندی ها:
دانلود Invoke-Adversary لینک دانلود
اسکریپت را به وسیله برنامه Powershell ise و با دسترسی ادمین باز میکنیم
سپس دستور زیر را در Powershell ise وارد میکنیم.
Set-ExecutionPolicy -ExecutionPolicy Bypass
و بعد گزینه Yes To All را میزنیم.سپس کلید F5 را میفشاریم. (پس از فشردن کلید باید صفحه زیر نمایش داده شود
سپس با نوشتن Yes وارد محیط اصلی برنامه میشویم.
در اینجا میتوانید شماره دسته بندی های مختلف را انتخاب کنید تا وارد تست های قابل انجام در آن دسته بشوید.برای مثال ما شماره 4 که Discovery هست را انتخاب میکنیم.
همانظور که مشاهده میکنید تست های مختلفی در این مرحله قابل انجام است که با انتخاب هرکدام میتوانیم پروسه آن را استارت بزنیم.خوب تا اینجا با فضای کلی برنامه آشنا شدیم حالا میخوایم ببینیم این برنامه چه کارهایی رو میتونه برای ما انجام بده و هرکدوم رو توضیح بدیم.
همانطور که مشاهده میکنید گزینه اول این برنامه Defense Evasion است. حالا این یعنی چی؟ تو این مرحله چه چیزهایی رو میتونیم تست کنیم؟ خب اینجا کاری که انجام میشه اینه که سعی میکنه بخش های دفاعی سیستم رو مختل کنه و از کار بندازه.بعد از این که این گزینه رو انتخاب کنیم وارد منوی جدید میشیم تا بتونیم مشخص کنیم چه تستی رو برای ما انجام بده.
خب میرسیم به گزینه دوم. این گزینه سعی میکنه تا متدهای مختلف حفظ و ماندگاری دسترسی رو روی سیستم شما تست کنه. میریم سراغ توضیحات این که هرکدوم از اینا چه کاری میکنند.
1- Accessibility Features: به وسیله "Image File Execution Options" میاد و برنامه sethc.exe رو با cmd.exe جایگزین میکنه.
2- AppInit DLLs: به طور اختصار میشه این که هر برنامه ای که بخواد user32.dll رو اجرا کنه میاد و DLL مارو اجرا میکنه. (اگز ویندوز 8 به بالا باشه و Secure boot فعال باشه کار نمیکنه)
3- Application Shimming: یک کلید رجیستری در مسیر زیر درست میکند.
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{842562ef-8d28-411d-a67d-ab75ef611fe8}.sdb
4- Create local user: سعی میکند تا یک یوزرنیم جدید ایجاد کند. (در صورت موفقیت اسم یوزرنیم را support_388945a0 میگذارد)
5- Create local Administrator: سعی میکند یک یوزر جدید ایجاد کند و آن را در دسته ادمین قرار میدهد. (در صورت موفقیت اسم یوزرنیم را Lost337fde6981a9 میگذارد)
6- Create New Service: سعی میکند تا یک سرویس جدید ایجاد کند. (در صورت موفقیت اسم سرویس را WindowsHealth میگذارد)
7- (Create New Service (Unquoted Path: مانند قبلی عمل میکند اما با این فرق که این را با unquoted path میسازد.
8- (Registry Run Keys (HKLM: یک کلید رجیستری در مسیر زیر ایجاد میکند.
HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run
9- (Registry Run Keys (HKCU: یک کلید رجیستری در مسیر زیر ایجاد میکند. تفاوتی که با بالایی دارد این است که هر برنامه ای که در این مسیر گذاشته شود بعد از هر لاگین توسط ((یوزری که کلید را ساخته)) اجرا میشود اما در بالایی (نیاز به دسترسی ادمین دارد) برنامه فوق با هرلاگینی که در سیستم توسط هر یوزری باشد اجرا میشود.
HKCU\Software\Microsoft\Windows\CurrentVersion\Run
10- Scheduled tasks: یک scheduled task ایجاد میکند. (در صورت موفیت اسم task را OfficeUpdaterA میگذارد)
رسیدیم به گزینه سوم! این بخش به نظر من شیرین ترین قسمته. ما تو اینجا سعی میکنیم به وسیله روش های مختلف پسورد ویندوز و هش اون رو به دست بیاریم. فقط لازمه اینجا یه توضیحاتی بدم برای اون دسته از عزیزانی که با ابزار mimikatz آشنا نیستند. این ابزار به وسیله خوندن پروسس LSASS.exe سعی میکنه پسورد ویندوز رو به صورت Clear text نشون بده. البته خیلی کارهای دیگه هم انجام میده و یه جورایی سیستم Authentication ماکروسافت رو به سخره میگیره که توضیحاتش در این مطلب نمیگنجه.
خب بریم سر اصل مطلب
1- Mimikatz - Logonpasswords: برنامه mimikatz را از گیت هاب اصلی اش دانلود کرده، با یک اسم رندوم ذخیره میکند و با پارامترهای زیر آن را اجرا میکند.
"privilege::debug" "sekurlsa::logonpasswords" "exit"
پارامتر اول برای گرفتن دسترسی ادمین از سیستم و پارامتر دوم برای گرفتن پسوردهای سیستم میباشد. در این روش احتمال تشخیص توسط انتی ویروس بسیار بالاست.
2- PowerShell Mimikatz: در این روش mimikatz را به وسیله پاورشل و در مموری اجرا میکند. این روش از دید بسیاری از نرم افزارهای امنیتی مخفی میماند.
3- PowerShell Encoded Mimikatz: در این روش اسکریپت کد شده mimikatz را در مموری اجرا میکند. درحال حاضر امکان تشخیص این روش بسیار پایین است.
4- Capture Lsass Memory Dump: از Windows Error Reporting استفاده میکند تا مموری مربوط به پروسس LSASS را به دامپ کند.
5- (Capture Lsass Memory Dump (Prodump: برنامه Prodump را که محصول Sysinternal است از ماکروسافت دانلود کرده و با یک نام رندوم ذخیره میکند سپس به وسیله این برنامه اقدام به دامپ پروسس LSASS میکند.
procdump.exe -accepteula -64 -ma lsass.exe
اگر خواستید به صورت دستی این کار را انجام دهید میتوانید از دستور بالا استفاده کنید.
6- (Copy Local SAM File (via Invoke-NinjaCopy: به وسیله NinjaCopy فایل SAM که در C:\Windows\System32\config\sam است را برای ما کپی میکند. به دلیل این که فایل SAM در حال اجرا است در حالت معمولی قادر به این کار نیستیم به همین دلیل از NinjaCopy که یک اسکریپت پاورشل است استفاده میکنیم.
خب میریم سراغ گزینه چهارم! در این بخش تمرکز روی فاز شناسایی قرار داده شده و سعی شده که بیشتر اطلاعاتی که یک نفوذگر از سیستم و شبکه شما لازم داره رو بدست بیاره.این اطلاعات میتونه تعداد یوزرهای شبکه، تعداد کامپیوترها، تاریخ اخرین باری که پسورد عوض شده و ... باشه. بریم سر توضیحات!
1- Account Discovery: در این روش به وسیله گروه کامندهای NET مانند net user, net account و ... یوزرها و گروه های دامینی و لوکالی رو بدست میاره.
2- Network Service Scanning: پورت های 1 تا 1024 رو روی هاست نیمی که ما براش تعیین میکنیم اسکن میکنه.
3- System Owner Discovery: یه جورایی همون کامند whoami خودمون رو میزنه.
4- System Time Discovery: کامند net time و w32tm.exe /tz رو میزنه.
5- Service Discovery: لیست تمام سرویس هارو برای شما نمایش میده.
6- Network Connections Discovery: اینم مثل همون netstat خودمونه.
رسیدیم به گزینه پنجم. کاری که تو این مرحله انجام میشه اینه که سعی میکنه با سیستم های دیگه ارتباط برقرار کنه و کامندهای موردنظر خودشو اجرا کنه. خب بریم ببینیم دقیقا هرکدوم از گزینه ها چه کاری انجام میدن
1- Commonly used Ports: تو این روش سعی میکنه تا به وسیله پرت های معمول با سیستمی که ما بهش میدیم ارتباط برقرار کنه. پرت هایی که تست میکنه اینها هستند:
80, 443, 25, 8080, 1433
البته از طریق سورس قابل تغییره.
2- Uncommonly used Ports: اینم مثل بالایی عمل میکنه اما خب اینجا پرتایی که کمتر رواج دارند رو تست میکنه. یعنی این پرت ها:
1913, 81, 8081, 8088, 995, 13000
که البته این ها هم قابل تغییر هستند.
3- Web Service: در این روش یک پست جدید در pastebin ایجاد میکنه و اطلاعات BITS service رو اونجا آپلود میکنه.
4- DNS: آی پی های بلک لیست را از https://www.ip-finder.me/ip-full-list میگیرد.
5- Connect: اینجا میاد به آی پی هایی که تو روش بالایی گرفت وصل میشه. هدف از اینکار اینه که ببینه سیستم های نظارتی و امنیتی شما چه عکس العملی به این ارتباط نشون میدن.
خب میرسیم به مرحله ششم. اینجا ما میایم به روش های مختلف سعی میکنیم دستورات خودمونو تو شبکه اجرا کنیم. یکی از مهم ترین مراحلی که نفوذگران دسترسی خودشونو پخش میکنند همینجاست. پس حسابی حواستونو جمع کنید! خب بریم سراغ شرح گزینه ها.
1- (PSExec (random file name: برنامه psexec را از ماکروسافت دانلود میکند، اسم آن را به یک اسم رندوم تغییر میدهد سپس آن را اجرا میکند.
به وسیله این برنامه مدیران شبکه میتوانند روی سیستم های شبکه خود دستورات مختلف را اجرا کنند و مدیریت آنهارا در دست بگیرند که نفوذگران استفاده زیادی از آن میکنند تا به سیستم های شبکه دسترسی پیدا کنند
2- (PSExec (Remote: در این روش برنامه psexec را دانلود کرده و اجرا میکند اما فرقش با بالایی اینه که به اون سیستمی وصل میشه که ما بهش میدیم.
3- PowerShell API call: در این روش API بومی را از پاورشل فراخوانی میکند.
4- (Self Delete (batch file: تو این مرحله میاد و عمل self deleting batch file رو انجام میده.
5- WMI Process Execution: در این روش به سیستمی که HostName آن را ازما میگیرد، به وسیله پروتکل WMI وصل میشود و دستوراتش را اجرا میکند.
خب کم کم داریم به آخراش نزدیک میشیم. کاری که اینجا انجام میشه گرداوری اطلاعاته که البته این مرحله زیاد گسترده نیست اما میتونیم خودمون بهش ماژول اضافه کنیم.
1- Screen Capture: همونجوری که از اسمش معلومه میاد از سیستم ما عکس میگیره و اونو ذخیره میکنه.
خب رسیدیم به مرحله آخر. کاری که اینجا انجام میشه اینه که سعی میکنه Applocker رو دور بزنه که روش هایی که استفاده میکنه هم زیاد نیست و با یه تست قضیه رو جمع میکنه :-( خب بریم سراغ توضیح همون یه دونه.
1- Regsvr32: در این روش سعی میکنه به وسیله تکنیک Regsvr32 بیاد و Applocker رو دور بزنه. اگر تو این مرحله تست موفقیت امیز باشه میتونه خیلی خطرناک باشه چون امکان اجرای بدافزار رو فراهم میکنه.
خب این آموزش هم به پایان رسید. امیدوارم که از خوندن این مطلب لذت برده باشید و استفاده لازم را برده باشید. هر سوالی بود در ذیل همین پست مطرح کنید در خدمتم ^_^
فقط مواظب باشید این فرایند رو روی یک سیستم تستی انجام بدید که شبکه تون نره رو هوا
بدرود
سلام امیرعلی هستم کارشناس ارشد امنیت شبکه. از سال 82 کار تو زمینه امنیت رو شروع کردم.
زمان پاسخ گویی روز های شنبه الی چهارشنبه ساعت 9 الی 18
فقط به موضوعات مربوط به محصولات آموزشی و فروش پاسخ داده می شود