0

گام های تشخیص نفوذ در ویندوز (قسمت دوم)

 
mosadegh
mosadegh
کاربر طلایی3
تاریخ عضویت : بهمن 1388 
تعداد پست ها : 1778
محل سکونت : ایران

گام های تشخیص نفوذ در ویندوز (قسمت دوم)
شنبه 23 خرداد 1394  7:33 PM

آیا سیستم ویندوز شما مورد سوء استفاده هکرها قرار گرفته است؟

این مقاله گامهایی را برای تشخیص این موضوع بیان می کند. مدیران سیستم می توانند از این اطلاعات برای تشخیص انواع مختلفی از نفوذها استفاده کنند.

در قسمت قبل 7 گام اولیه برای تشخیص نفوذ در سیستمهای ویندوز مطرح شد، در این قسمت نیز 9 گام تکمیلی برای تشخیص نفوذ در ویندوز به تفصیل بیان می گردد.

  • تنظیمات شبکه خود را در مورد ورودیهای غیر مجاز چک کنید. در تنظیماتی مانند  WINS، DNS ،

IP forwarding  و غیره مراقب ورودیهای غیر مجاز باشید.

این تنظیمات را می توان با استفاده از ابزار Network Properties یا با استفاده از دستور

 ipconfig/all در محیط command prompt چک کرد.

به عنوان یک معیار دیگر، ابزار Port Reporter که محصول مایکروسافت است، برای نظارت بر برنامه هایی که پورتها را برای اتصالات داخلی و خارجی باز می کنند کاملا مناسب است.

 ابزار Port Reporter و یک تجزیه گر گزارشات در سایت شرکت مایکروسافت قابل دسترسی هستند. اطمینان حاصل کنید که فقط آن دسته از سرویسهای شبکه که شما می خواهید روی سیستم خود اجرا کنید در تنظیمات Network Services فهرست شده باشند.

بعلاوه فایلهای  hostهای خود را که در محل %systemroots%system32driversetchosts  قرار دارند، در مورد ورودیهای غیر مجاز چک کنید.

با استفاده از دستور  netstat –an، پورتهای غیرعادی را که به اتصالاتی از hostهای دیگر گوش می دهند چک کنید.

فایلهای دسته ای زیر، پورتهایی را که در وضعیت گوش دادن یا اتصال قرار دارند پیمایش و تجزیه می کنند. Fport محصول شرکت Foundstone سعی می کند که پورتها را بهسرویسهایی که به آنها گوش می دهند نگاشت کند.

@echo off
netstat –an > gports
find “LISTENING” < gports > oports.txt
find “ESTABLISHED” < gports >> oports.txt
del gports

ویندوز XP شما را قادر می سازد که پردازه ای را که پورت خاصی را در اختیار دارد با استفاده از دستور netstat –ao مشاهده کنید. توجه داشته باشید که این دستور فقط شناسه پردازه (Process ID) مذکور را نشان می دهد.

برای تبدیل این شناسه به نام پردازه، از دستور زیر استفاده کنید:

wmic process where ProcessId=’x’ get caption

نکته:

در این مثال x برای نشان دادن هر شناسه پردازه معتبری است که در گام قبلی معرفی شده است.
اسناد زیر را در مورد فهرستی از شماره پورتهای معمول مشاهده کنید:

تخصیص پورت IANA
پورتهای لازم برای سیستم Windows Server
پیکربندی پورتهای ایستا برای outlook 2003 و 2007
پورتهایی که System Management Server 2003 به سرویسها تخصیص می دهد تا از طریق فایروال یا سرور پروکسی ارتباط برقرار کنند

  • اشتراکات غیر مجاز را چک کنید.
    شما می توانید با استفاده از دستور net share در محیط command prompt یا با استفاده از ابزار

 Server Manager تمامی اشتراکات روی سیستم را فهرست کنید. سیستمهای ویندوز با افزودن یک علامت $ به آخر نام فایلهای اشتراکی، راهی برای پنهان کردن این فایلها فراهم می کنند.

تعداد محدودی نام پیش فرض هستند که ویندوز از آنها استفاده می کند (برای مثال PRINT$)، ولی اگر خود شما یک پرینتر را با سایر کاربران به اشتراک نگذاشته اید، حتما چک کنید که چرا چنین اشتراکی ایجاد شده است. بطور پیش فرض، ریشه هر درایو (مثلا C$) به عنوان “Administrative Share”  به اشتراک گذاشته می شود.

این امکان معمولا توسط مدیران دامنه برای مدیریت سیستمهای راه دور مورد استفاده قرار می گیرد.

برای مشاهده فایلهای اشتراکی روی یک سیستم محلی یا راه دور، از

 Shared Folders Management یا(fsmgmt.msc)  استفاده کنید. اگر به نام اشتراک غیر معمولی برخوردید، ابزار مذکور محل حقیقی این اشتراک و اینکه دقیقا در کدام محل و روی چه سیستمی قرار دارد را به شما نشان می دهد. یک درایو یا یک فولدر می تواند چندین نام اشتراک داشته باشد که برای هریک از این نامها مجوزهای مختلفی صادر شده باشد.

  • هر کاری را که برای اجرا برنامه ریزی شده است بررسی کنید.
    افراد نفوذگر می توانند در فایلهایی که برای اجرا در آینده برنامه ریزی شده اند در پشتی (backdoor) قرار دهند. این تکنیک می تواند به فرد نفوذگر اجازه دهد که بعدا به سیستم شما برگردد (حتی اگر شما تصور کنید که آسیب اصلی را رفع کرده اید). همچنین تمامی فایلها و برنامه هایی را که بطور مستقیم یا غیر مستقیم توسط scheduler و job fileها مورد اشاره قرار گرفته اند بررسی کنید تا قابل نوشتن نباشند. برای بررسی jobهایی که در وضعیت معلق به سر می برند، از دستور at یا Windows Task Scheduler استفاده کنید.
  • پردازه های غیر مجاز را بررسی کنید.
    می توانید با استفاده از ابزار Task Manager یا دستورات pulist.exe و tlist.exe  در محیط command prompt اطلاعاتی را درباره پردازه های در حال اجرا در سیستم خود بدست آورید. تعدادی از برنامه های shareware/freeware  مانند Filemon محصول شرکت sysinternals نیز وجود دارند که نشان می دهند چه فایلهایی در حال استفاده هستند. با استفاده از دستور pulist.exe می توانید مشاهده کنید که هر پردازه را چه کسی آغاز کرده است. سرویسها معمولا با حساب کاربری SYSTEM مرتبط هستند. دستور tlist.exe با علامت –t به شما نشان می دهد که پردازه های فرزند توسط کدام پردازه ها آغاز شده اند. بعلاوه ویندوز XP و Server 2003 دستور tasklist.exe را نیز دارا هستند که اگر با /svc استفاده شود، اجازه می دهد پردازه هایی را که تحت svchost.exe اجرا می شوند مشاهده نمایید و زمانی که با /m استفاده شود، اجازه می دهد که تمامی ماژولهای بارگذاری شده را ببینید. علاوه بر اینها، مایکروسافت ابزار System Information را نیز ارائه کرده است که اطلاعات مربوط به بخشهای مختلف را فراهم می کند مانند:
  1. Running Tasks
  2. Loaded Modules
  3. Services
  4. Startup Programs
  5. Drivers

ابزار System Information می تواند با اجرای msinfo32.msc از محیط command prompt فعال گردد.

  • در سیستم به دنبال فایلهای غیر معمول یا پنهان بگردید.
    این کار می تواند برای پنهان کردن ابزارها و اطلاعات مورد استفاده قرار بگیرد (برنامه های باز کردن رمز عبور، فایلهای رمز عبور از سیستمهای دیگر و غیره). فایلهای پنهان را اغلب می توان بوسیله Explorer مشاهده کرد. از منوی Tools وارد Folder Options و سپس View شده و بخش Show hidden files and folders را انتخاب نمایید و تیک مربوط به بخشهای

 Hide file extensions for known file types

و

 Hide protected operating system files را حذف کنید.

برای مشاهده فایلهای پنهان در محیط command prompt دستور dir/ah را تایپ نمایید.

نکته:

اجرا بعنوان LocalSystem یا بالا آمدن سیستم از یک سیستم عامل مبتنی بر CD مانند Knoppix یا BartPE/WinPE، مشاهده فایلها در فولدرهای محافظت شده را ممکن می سازد و می تواند این فایلهای پنهان را بوسیله rootkit نمایش دهد.

  • مجوزهای تغییر یافته روی فایلها یا کلیدهای رجیستری را پیدا کنید.
    بخشی از امن کردن یک سیستم ویندوز به این مساله برمی گردد که مجوزهای فایلها و کلیدهای رجیستری را محدود کنید، بطوریکه کاربران غیر مجاز نتوانند برنامه غیر مجازی (مانند درهای پشتی یا ثبت کننده های صفحه کلید) را اجرا کنند یا فایلهای سیستم را تغییر دهند. برای اینکه تعداد زیادی فایل را در درخت فولدرهای خود بررسی کنید، می توانید از برنامه های xcacls.exe یا  showacls.exe که بخشی از Resource Kit هستند استفاده کنید.
  • کنسول Local Security Settings  یا(secpol.msc)  نیز می تواند برای تحلیل سیستم شما در مقابل تنظیماتی که قبلا تعریف کرده اید مورد استفاده قرار بگیرد. این کار می تواند به تشخیص اینکه چه چیزی ممکن است تغییر کرده باشد کمک کند.
  • به دنبال تغییراتی در سیاستهای کاربر یا کامپیوتر بگردید.
    سیاستها در سیستمهای ویندوز برای تعریف گستره وسیعی از تنظیمات مورد استفاده قرار می گیرند و می توانند برای کنترل کردن اینکه کاربران چه کاری را می توانند انجام دهند و چه کاری را حق ندارند انجام دهند استفاده گردند. برای سیستمهای منفرد یا workgroup، این سیاستها از طریق Local Computer Policy تعیین می گردند. در یک دامنه Active Directory، این سیاستها از طریق Group Policy در یک Domain Controller تعیین شده و سپس با Organizational Unit  مرتبط می گردند. پیشنهاد می شود که یک کپی از سیاستهای خود داشته باشید تا اگر توسط سیاست دیگری جایگزین شدند، بدانید چه چیزهایی تغییر کرده است.
  • اطمینان حاصل کنید که سیستم به دامنه متفاوتی متصل نشده است.
    ممکن است یک فرد نفوذگر سعی کند که از طریق تغییر دامنه فعلی و تبدیل آن به دامنه ای که خودش روی آن کنترل دارد، به یک ایستگاه کاری دسترسی Domain Administrator پیدا کند.
  • بررسی نفوذ
    برای فعال کردن عملیات ثبت اطلاعات روی یک سیستم منفرد یا workgroup از طریق خط دستور، دستور gpedit.msc  را اجرا نمایید. در یک محیط دامنه، می توانید از Active Directory Users and Computer  (dsa.msc)  یا GPMC.msc یا(Group Policy Management Console)  استفاده کنید.

جدول زیر وقایع موجود برای ثبت اطلاعات، معنای آنها و نیز تنظیمات پیشنهادی را فهرست می کند:

هدف

تنظیمات

وقایع ثبت شده

وقایع زمانی ثبت می شوند که یک کاربر یا پردازه وضعیت محیط کامپیوتر مانند startup/shutdown را تغییر دهد.

Success/Failure

System Events

ورودهای موفق و ناموفق کاربر محلی و کامپیوتر را ثبت می کند. برای مثال شناسه رخداد 528 نشان دهنده یک ورود موفق به کامپیوتر است. شناسه رخداد 529 نشان می دهد که یک درخواست ورود رد شده است.

Success/Failure

Logon Events

ورودهای کاربران و کامپیوترهای دامنه را ثبت می کند. توجه داشته باشید که زمانی که یک کاربر سعی می کند وارد دامنه شود، این رخداد فقط توسط سرور ورودی که این درخواست را مدیریت کرده است ثبت می شود.

Success/Failure

Account Logon Events

اضافه شدنها، حذفها و تغییرات کاربران و گروههای محلی یا کاربران و گروههای دامنه را ثبت می کند.

Success/Failure

Account Management

فعالیتها و تغییرات در هر شیئی مانند فولدرها، فایلها، پرینترها، کلیدهای رجیستری و غیره با یک SACL (System Access Control) را ثبت می کند.

Success/Failure

Object Access

 


جدول زیر وقایعی را که معمولا مانیتور می شوند و ممکن است نشان دهنده حملات در حال انجام و یا موفق روی سیستم شما باشند فهرست کرده است. هر یک از این وقایع در لاگ وقایع امنیتی ثبت می گردد.

Audit Policy Required

وقایع

شناسه وقایع (Event ID)

Audit Logon Events )success)

ورود موفق کاربر

528

Audit Logon Events )Failure)

ورود ناموفق - کاربر ناشناس یا کلمه عبور نادرست

529

Audit Logon Events)Failure)

ورود ناموفق - تلاش برای ورود در ساعات غیر مجاز

530

Audit Logon Events )Failure)

ورود ناموفق - حساب کاربری غیر فعال شده

531

Audit Logon Events )Failure)

ورود ناموفق - حساب کاربری خاصی منقضی شده است

532

Audit Logon Events)Failure)

ورود ناموفق - کاربر اجازه ورود به این کامپیوتر را ندارد

533

Audit Logon Events )Failure)

ورود ناموفق - این کاربر خاص مجوز ورود به این شکل خاص را به این کامپیوتر نداشته است

534

Audit Logon Events)Failure)

ورود ناموفق - خطای غیر منتظره در ورود

537

Audit Logon Events)Failure)

ورود ناموفق - حساب کاربری مسدود شده

539

Audit Logon Events )Success)

ورود موفق به شبکه

540

Audit Object Access )Success)

دسترسی به یک شیء موجود تایید شده است

560

Audit Object Access)Success)

تلاش برای باز کردن یک شیء به منظور حذف آن

563

Audit Object Access )Success)

یک شیء محافظت شده حذف شده است

564

Audit Privilege Use

یک کاربر تلاش داشته یک کار دارای privilege انجام دهد

577

Audit Privilege Use

تلاش برای خاموش کردن یک سیستم

577 (SeShutdownPrivilege)

Audit Privilege Use

فعالیت بعنوان بخشی از سیستم عامل (این حق نباید به هیچ کاربری اختصاص داده شود)

577/578 (SeTcbPrivilege)

Audit Privilege Use

تلاش برای تغییر ساعت سیستم

577/578 (SeSystemtimePrivilege)

Audit Privilege Use

تلاش برای load/unload یک درایور

577/578 (SeLoadDrivePrivilege

Audit Privilege Use

تلاش برای حذف یک گزارش رویداد یا نوشتن رویدادهای privilege use

577/578 (SeSecurityPrivilege)

Audit Privilege Use

تلاش یک کاربر برای بدست آوردن مالکیت یک شیء

577/578 (SeTakeOwnershipPrivilege)

Audit Account Management (Success)

حساب کاربری ایجاد شده است

624

Audit Account Management (Success)

نوع حساب کاربری تغییر کرده است

625

Audit Account Management (Success)

حساب کاربری فعال شده است

626

Audit Account Management (Failure)

تلاش برای تغییر کلمه عبور

627

Audit Account Management (Success)

اضافه شدن عضو به گروه سراسری امن

632

Audit Account Management (Success)

حذف شدن عضو از گروه سراسری امن

633

Audit Account Management (Success)

اضافه شدن عضو به گروه محلی امن

636

Audit Account Management (Failure)

حساب کاربر مسدود شده است.

644

Audit Account Logon Events (Failure)

Kerberos pre-authentication failed

675

Audit Account Logon Events (Failure)

یک TGS ticket قبول نشده است. (نشان دهنده تلاش ناموفق برای ورود به دامنه)

677

Audit Logon Events )Success)

کاربر یک terminal services session را دوباره متصل کرده است.

982

 


رخدادهایی را که در شناسایی و پاسخ دهی به تلاشهای نفوذ روی شبکه شما کمک می کنند مانیتور کنید.

برای مثال، یک حمله جدی بر روی یک حساب، نوعا تعداد زیادی رخداد "نام کاربری ناشناخته یا کلمه عبور اشتباه" (رخداد 529) تولید می کند. این مساله مهم است که توجه داشته باشید که عملیات ثبت گزارشها ممکن است روی تمامی سیستمهای یک دامنه اتفاق نیفتد. برای مثال، یک تلاش برای ورود فقط روی logon سروری ثبت می گردد که درخواست را پردازش کرده است نه روی تمامی logon سرورهای یک دامنه. بنابراین جمع آوری گزارشهای رویدادها امری ضروری است . تعداد زیادی ابزار freeware و تجاری وجود دارند که می توانند برای این کار مورد استفاده قرار گیرند:

  1. EventCombMT  ابزاری برای تحلیل گزارشهای رویدادها در چندین سیستم مختلف بطور همزمان
  2. اسکریپتها نیز می توانند برای بازیابی رویدادها از گزارشهای ثبت شده مورد استفاده قرار گیرند. مایکروسافت تعدادی اسکریپت نمونه نیز پیشنهاد داده است که می توانید آنها را متناسب با کار خود تغییر داده و استفاده نمایید.

شما همچنین باید بصورت متناوب تمامی فایلهای گزارشی را که در     %systemroot%system32logfiles 

قرار گرفته اند بازبینی کنید.

بطور پیش فرض IIS و سایر برنامه ها در این دایرکتوری گزارش ثبت می کنند.
منبع:
http://www.auscert.org.au

مطالب مرتبط:

گام های تشخیص نفوذ در ویندوز (قسمت اول)

فسا-پسا

.تفکر از تخصص مهمتر است📌

تشکرات از این پست
1332214
دسترسی سریع به انجمن ها