در توسینسو تدریس کنید

و

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

معرفی Share های پیشفرض ویندوز و روش غیرفعال کردن آنها

Administrative Share ها در واقع Share های پیشفرض سیستم عامل ویندوز هستند که توسط بیشتر ویندوزهای مبتنی بر پایه NT (مانند NT, 2000,XP,2003, Vista, Windows 7 Windows 8) به وجود می آیند. این Share های پیشفرض، هر پارتیشن موجود در سیستم را به اشتراک می گذارند.

Share های پیشفرض ویندوز

این Share ها به هر کسی که به عنوان عضو گروه Local Administrators (گروه Administrators متعلق به همان کامپیوتر) احراز هویت کرده باشد، اجازه دسترسی به دایرکتوری اصلی هر هارد درایو موجود روی سیستم را می دهند. این Share ها عموما در خارج ار محیط Enterprise استفاده نمی شوند و به صورت پیشفرض روی نسخه های خانگی XP، Vista ، Windows 7 و Windows 8 قابل دسترسی نمی باشند. در اصل وجود این Share ها برای اهداف مدیریتی می باشد. این Share ها به منظور پشتیبانی از راه دور توسط مدیرهای شبکه به وجود آمده اند.


نام های Share ها

Administrative Shares عبارتی است که توسط Microsoft برای مجموعه ای از منابع به-صورت-پیش-فرض-به-اشتراک-گذاشته-شده تعیین شد که به شرح زیر هستند:

  • هر Drive Letter به اضافه علامت $ (فقط پارتیشن های مربوط به همان کامپیوتر، نه هر دستگاه جداشدنی از سیستم مانند CD/DVD، درایو های ذخیره USB)
  • $admin (برای به اشتراک گذاری دسترسی به %SYSTEMROOT% که معمولا C:\WINDOWS یا C:\WINNT می باشد)

علامت $ اضافه شده به انتهای این اسم ها به معنی مخفی بودن این Share ها می باشد. ویندوز این چنین Share هایی را در میان Share هایی که در طی پرس و جو های عادی (Typical Queries) توسط کاربران انجام می شود را لیست نمی کند. این بدان معنا است که برای دسترسی به Administrative Share، باید نام آن Share را بدانیم.عموما بر این عقیده هستند که هر Share که اسم آن به $ خاتمه یابد، یک Administrative Share می باشد. به موجب تعریف مایکروسافت از عبارت Administrative Share، این برداشت اشتباه می باشد. با وجود این که هر Share (حتی Non-Administrative Shares) می توانند $ در انتهای اسم خود داشته باشند، اما فقط آن Share های پیش فرض که توسط ویندوز به وجود آمده و دارای $ در انتهای اسم خود هستند، به عنوان Administrative Share در نظر گرفته می شوند.آدرس UNC کلی برای یک Administrative Share به صورت زیر است:
\\NetworkComputerName\(Drive letter)$
برای مثال:
\\ComputerName\C$

این نمایانگر Administrative Share مربوط به پارتیشن "C" روی کامپیوتر "MyComputer" می باشد. این ساختار برای هر درایو متعلق به کامپیوتر درست می باشد. مانند \\MyComputer\d$ ، \\MyComputer\e$ (با درنظر گرفتن اینکه D و E ، درایو متعلق به کامپیوتر بوده و دستگاه جداشدنی نیستند)
\\MyComputer\ADMIN$

این نمایانگر Administrative Share مربوط به %SYSTEMROOT% در کامپیوتر "MyComputer" می باشد.


طریقه Hide کردن Administrative Share ها

این Administrative Share ها می توانند توسط فردی با سطح دسترسی Administrator حذف شوند. ولی پس از Restart کردن کامپیوتر مجددا به صورت خودکار ایجاد خواهند شد. با اعمال تغییراتی در Registry که در زیر آمده اند، می توانید تمامی Administrative Share ها را مخفی (حذف( نمایید. اگر این تنظیمات موجود نیستند، آنها را باید ایجاد کنید:

برای Server ها


Windows NT 4.0 Server، Windows 2000 Server، Windows Server 2003، Windows Server 2008
  1. ابتدا Run را بازکرده، Regedit را تایپ کرده و Enter را فشار دهید.
  2. به شاخه HKEY__LOCAL__MACHINE بروید.
  3. به زیرشاخه SYSTEM\CurrentControlSet\Services\LanManServer\Parameters بروید.
  4. یک کلید از نوع REG__DWORD با نام AutoShareServer ایجاد کنید.
  5. برای مخفی کردن Administrative Share ها، مقدار کلید ایجاد شده را به 0 و برای نمایان شدن آنها، مقدار کلید را به 1 تغییر دهید.

برای Client ها


Windows NT 4.0 Workstation، Windows 2000 Professional، Windows XP، Windows 7، Windows 8
  1. ابتدا Run را بازکرده، Regedit را تایپ کرده و Enter را فشار دهید.
  2. به شاخه HKEY__LOCAL__MACHINE بروید.
  3. به زیرشاخه SYSTEM\CurrentControlSet\Services\LanManServer\Parameters بروید.
  4. یک کلید از نوع REG__DWORD با نام AutoShareWks ایجاد کنید.
  5. برای مخفی کردن Administrative Share ها، مقدار کلید ایجاد شده را به 0 و برای نمایان شدن آنها، مقدار کلید را به 1 تغییر دهید.


طریقه Disable کردن Administrative Share ها

مایکروسافت جزییات زیادی را در مورد شیوه Disable کردن Administrative Share ها بیان نکرده است. دستور:
NET SHARE C$ /delete
را می توان برای Disable کردن Root Share در یک کامپیوتر تحت شبکه اجرا کرد. مشکل اینجاست که پس از Restart کردن کامپیوتر، این Share به صورت خوذکار ایجاد خواهد شد.یک راه حل معمول، ایجاد یک Batch File است که حاوی دستورهایی برای غیر فعال کردن Administrative Share ها میباشد. (این Share ها توسط دستور "NET SHARE" قابل مشاهده می باشند) و سپس می بایست این فایل Batch را توسط Windows Task Scheduler در بخش Startup قرارداد که با هر بار روشن شدن سیستم، اجرا شود. معمولا دستورات زیر در قالب یه فایل Batch می توانند Administrative Share های Windows XP یا Windows Vista را غیرفعال نمایند:
NET SHARE C$ /delete
NET SHARE D$ /delete
NET SHARE admin$ /delete
همچنین از طریق بخش Shared Folders در Computer Management نیز می توان نسبت به غیر فعال کردن این share ها اقدام کرد. بدین گونه که
  1. روی Icon مربوط به My Computer راست کلیک کرده و گزینه Manage را انتخاب کنید. (و یا درRun، عبارت compmgmt.msc را تایپ کرده و Enter را فشار دهید)
  2. در سمت چپ به قسمت Shared Folders و سپس به قسمت Shares بروید.
  3. همان گونه که مشاهده میکنید، تمامی Share ها (چه آنهایی که توسط کاربر ایجاد شده اند و چه Administrative Share ها) قابل مشاهده هستند. روی Administrative Share مورد نظر راست کلیک کرده و گزینه Stop Sharing را انتخاب کنید.
  4. پنجره هشداری با مضمون اینکه "این Share برای اهداف مدیریتی ایجاد شده است و پس از Restart شدن سرویس Server، مجددا ایجاد خواهد شد" ظاهر میگردد. روی Yes کلیک کنید.


طریقه فعال کردن Administrative Share در Windows Vista و Windows 7


به صورت پیش فرض، Windows Vista و نسخه های جدیدتر ویندوز مانع از دسترسی حساب های کاربری Local به Administrative Share ها تحت شبکه می شوند.
برای فعال کردن Administrative Share ها، می بایست تغییری در Registry اعمال کنید. برای این منظور، وارد Registry شوید:
  1. به شاخه HKEY__LOCAL__MACHINE بروید.
  2. به زیرشاخه Software\Microsoft\Windows\CurrentVersion\Policies\System بروید.
  3. یک کلید از نوع REG__DWORD با نام LocalAccountTokenFilterPolicy ایجاد نمایید.
  4. مقدار آن را به 1 تغییر دهید.
پس از Restart، Hidden Share از کامپیوترهای دیگر قابل دسترسی می باشد. توجه کنید که این تغییر در Registry، محدودیت های ویندوز روی User Account Control از راه دور را حذف می کند ، به جای Restart کردن ، شما احتمالا قادر به اجرای 'net stop server' و 'net start server' از یک Command Prompt با دسترسی مدیر هستید.

طریقه فعال کردن Administrative Share در Windows XP Service Pack 1,2,3


به صورت پیش فرض، Windows XP SP3 مانع از دسترسی به Administrative Share تحت شبکه می شود.برای فعال کردن Administrative Share شما می بایست:
  • Explorer را باز کرده و به منوی Tools رفته و Folder Options را انتخاب کنید.
  • به تب View رفته و تا پایین صفحه تا آخر قسمت Advanced Settings بروید.
  • اطمینان حاصل کنید که "User simple file sharing (Recommended)" انتخاب نشده است.
این راه می بایست بدون نیاز به Restart، کار کند. توجه نمایید که نسخه Windows XP Home این گزینه را نداشته و بنابراین نمی تواند Administrative Share را نشان دهد.

امنیت و ممانعت از دسترسی


غیر فعال کردن Administrative Share ها خیلی از خطرهای امنیتی شناخته شده را خنثی می کند. برای مثال، ویروسی مانند کرم Conficker، حمله هایی موسوم به Dictionary Attack را روی Administrative Share انجام می دهد.روش های گوناگون برای ممانعت از دسترسی از راه دور روی محتویات کامپیوترعبارتند از:

  • "Administrators" را از تب Security مربوط به پارتیشن مذکور حذف نمایید. این باعث ممانعت از دسترسی Administrator های خارج از کامپیوتر به پارتیشن مذکور می شود، در عین حال Administrator های داخلی کامپیوتر کماکان میتوانند به پارتیشن دسترسی داشته باشند.
  • سرویس File and Printer Sharing را متوقف کنید. (و یا پروتوکل NetBT را غیر فعال کنید)
  • سرویس Workstation را متوقف و یا غیر فعال کنید.
  • قوانینی روی IPSec برای ممانعت از ارتباطات داخلی (Inbound Connections) روی 445tcp و 445udp وضع نمایید.
  • آن دسته از افرادی که نمی خواهید دسترسی داشته باشند را از گروه Administrators حذف نمایید.
  • فایل های محرمانه خود از از طریق فناوری هایی مانند EFS و RMS، کد گذاری (Encrypt) کنید.


امن کردن Share ها


DACL های موجود روی Administrative Share ها حتی توسط مدیر داخلی کامپیوتر نیز قابل ویرایش نیست. (Discretionary Access Control List) با شروع Windows XP Home Edition و نسخه های ویندوزی کلاینتی پس از آن، ویندوز ویژگی "ForceGuest" را وقتی که مدیر داخلی بدون گذرواژه باشد، استفاده می کند. وقتی یک کاربر از راه دور به کامپیوتر Windows XP (و ویندوزهای پس از آن) که دارای حساب کاربری مدیر بدون Password میباشد، احراز هویت (Authenticate) می کند (مثل Map کردن به یکی از Administrative Share ها)، ویندوز به Session آنها یک ژتون دسترسی مهمان (Guest Access Token) اعمال می کند (و نه ژتون دسترسی مدیر). این کار به طور قابل بحث دارای امنیت بیشتری در مقابل حمله های از راه دور میباشد (در مقایسه با Password های ضعیف یا Password هایی که حدس زدنشان راحت میباشد.)

  • $Print: این Share برای مدیریت Printer ها به صورت Remote استفاده میشود.
  • $Fax : این Share توسط کلاینت ها برای ارسال Fax استفاده میشود.
  • $IPC : این هم یکی از Hidden Share ها یا همون Administrative Share ها می باشد که توسط سرویس Server کنترل میشود. با متوقف کردن این سرویس، IPC$ هم پاک میشود. IPC$ که مخفف Inter-Process Communication است، با استفاده از سرویس RPC یا همون Remote Procedure Call، به Client اجازه میدهد که دستورها را به Server بفرستد. دستورهایی مانند:
  • لیست کردن همه Share ها
  • لیست کردن همه کاربران
  • لیست کردن فایل های داخل یک Share
  • Stop و Start کردن سرویس ها
  • ...

معرفی Share های پیشفرض ویندوز یا  Administrative Shares و روش غیرفعال کردن آنها


از طریق یک Session خالی (Null Session)، برخی دستورها میتوانند به صورت مستعار و بدون نیاز به احراز هویت، اجرا شوند که این بستگی به تنظیمات Server دارد. اگر دستوری نتواند به صورت مستعار اجرا شود، آنگاه کلاینت باید احراز هویت کند. اجازه دسترسی زمانی به کلاینت داده میشود که بتواند هویت خود را با استفاده از نام کاربری و گذرواژه ای که روی Server وجود داشته باشند، تایید کند. اگر نتواند هویت خود را تایید کند، با یکی از خطاهای زیر مواجه خواهد شد:

IPC$, The domain password you supplied is not correct
You must supply a password to make this connection:
Incorrect password or unknown username for:

به این نکته توجه کنید که برای دسترسی به IPC$ روی یک Server، میتوان از حساب کاربری دیگری، جدای از آن حساب کاربری که به کلاینت Login کرده ایم، استفاده کرد. با استفاده از دستور زیر میتوان حساب کاربری و گذرواژه را فراهم کرد:
net use q: \\10.0.0.2\c$ [password] /user:[domain\]username
IPC$ معمولا با ارتباط های موقتی بین کلاینت ها و Server ها با استفاده از Named Pipe و برای ارتباط بین برنامه های تحت شبکه استفاده میشود. IPC$ در اصل برای مدیریت کردن سرورهای شبکه از راه دور استفاده میشود.

Pipeline چیست؟

در مهندسی نرم افزار، Pipeline تشکیل شده از زنجیره ای از عنصرهای پردازشی (پردازش ها، رشته ها، دستورالعمل های اتصال مجموعه ای از ورودی ها به مجموعه ای از خروجی ها و ...) که به شیوه ای مرتب شده اند که خروجی هر عنصر، ورودی عنصر بعدی می باشد. یک Pipeline سنتی و معمولی، بدون اسم است که به آن، Unnamed Pipe گفته میشود.Unnamed Pipe به این دلیل که فقط تا پایان پردازش ها باقی میماند، به صورت مستعار و بدون اسم باقی میماند. در نقطه مقابل، Named Pipe روی سیستم پایداراست و پس از پایان پردازش هم باقی میماند و زمانی که دیگر به آن احتیاجی نیست، باید حذف بشود. پردازش ها معمولا به Named Pipe ها (که عموما به صورت فایل روی سیستم ظاهر میشوند) برای ارتباطات-درون-پردازشی یا همون IPC اتکا میکنند.
گفتن این نکته هم خالی از لطف نیست که مبحث Pipe و Pipeline به سیستم عامل Unix برمی گردد. اگر IPC$ را Disable کنید، ویندوز پس از Restart آن را مجددا ایجاد خواهد کرد. میتوانید با استفاده از دستور زیر، آن را به صورت موقت Stop کنید:
net share ipc$ /delete
IPC یا همان InterProcess Communication (ارتباط-درون-پردازشی) روی سیستم عامل های دیگری غیر از ویندوز نیز یافت میشود. در حقیقت IPC برای شروع یک Session ارتباطی استفاده میشود ، بدین طریق که نام کاربری و گذرواژه را قبل از اتصال به Share، تصویب میکند. IPC همچنین برای نرم افزارهای Server/Client استفاده میشود. برای نرم افزار کوچکی که روی کامپیوتر اجرا میشود، میتواند به Server وسل شود، بدون آنکه هر کاربر نیاز به User Account و Password روی Server داشته باشد. در حقیقت IPC برای راحتی ارتباطات بین پردازش ها و کامپیوترها استفاده میشود که اغلب برای رد و بدل کردن اطلاعات مربوط به احراز هویت (Authentication) بین کامپیوتر ها به کار گرفته میشود.



نویسنده : سعید خلیفی
منبع: جزیره سرویس های شبکه مایکروسافت وب سایت توسینسو
هرگونه نشر و کپی برداری بدون ذکر منبع دارای اشکال اخلاقی می باشد
#حذف_Share_های_پیشفرض #Share_های_پیشفرض_ویندوز #حملات_Null_Session
11 نظر
محمد نصیری

مقاله مفیدی بود و کلی استفاده کردم ، فقط یک نکته ای اینجا هست که یک Share داریم به نام $IPC در موردش اطلاعی ندارم ، امکانش هست توضیحاتی در خصوص این مورد هم ارائه بدید ممنون میشم .

سعید خلیفی

این هم یکی از Hidden Share ها یا همون Administrative Share ها هستش که توسط سرویس Server کنترل میشه. با متوقف کردن این سرویس، IPC$ هم پاک میشه. IPC$ که مخفف Inter-Process Communication هستش، با استفاده از سرویس RPC یا همون Remote Procedure Call، به Client اجازه میده که دستورها را به Server بفرستد. دستورهایی مانند:

• لیست کردن همه Share ها

• لیست کردن همه کاربران

• لیست کردن فایل های داخل یک Share

• Stop و Start کردن سرویس ها

• ...

در Computer Management، جلوی توضیحات مربوط به $IPC نوشته Remote IPC که دخیل بودن سرویس RPC را تایید میکنه.

توضیخات کامل تر در مورد $IPC و همین طور $Print و $Fax رو بالا به مقاله اضاقه کردم.

محمد نصیری

یعنی ما اگر $IPC رو غیرفعال کنیم نه میتونیم چیزی Share کنیم و نه کسی می تونه از Share های ما استفاده کنه و از جهتی از بروز حملاتی مثل Null Session Enumeration هم جلوگیری میشه درسته ؟

سعید خلیفی

بله دقیقا باعث میشه کسی نتونه به Share های ما وصل بشه و ما هم نمیتونیم چیزی Share کنیم .

Null Session ها از ویژگی هایی در (SMB (Server Message Block و (CIFS (Common Internet File System استفاده میکنند.

اما برای جلوگیری از Null Session Enumeration، شرکت ها معمولا از فایروال های خارجی استفاده می کنند. همینطور میشه با استقاده از Registry، جلوی Anonymous Login توی Session رو گرفت.

یه Key به اسم RestrictAnonymous که تو شاخه پایین پیدا میشه:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa

همینطور میشه با استفاده از Local Security Policy توی MMC، تمهیداتی واسه امنیت بیشتر Null Session انجام داد.

محمد نصیری

خوب شما دارین میگین برای اینکه بتونیم $IPC رو غیرفعال کنیم بایستی سرویس Server رو غیرفعال کنیم ، خوب یکی از Dependency های سرویس Server همین SMB هست که با غیرفعال کردن سرویس Server اون هم از کار میافته ، بنابراین اگر ما سرویس Server رو غیرفعال کنیم و همچنین $IPC رو حذف کنیم رسما این سیستم در شبکه فقط میتونه کلاینت باشه و به هیچ درخواستی جواب نمیده ، ممنونم از راهنماییت.

Hamed Montahaeey

سعید نمیشه جزئیات کار رو هم بزاری نکات ریزی که به چشم نمیاد

حجت رستمی

بسیار عالی و کاربردی بود ممنون از زحمتی که کشیدین.

ABOZAR PRO

من مسیر زیر را برای ایجاد مخفی کردن درایور اشتراکی تنظیم کردم اما نتیجه نداد چرا؟آیا نیاز به حرکتی دیگه بود که انجام ندادم؟

Windows Server 2003، Windows Server 2008

ابتدا Run را بازکرده، Regedit را تایپ کرده و Enter را فشار دهید.

به شاخه HKEYLOCALMACHINE بروید.

به زیرشاخه SYSTEM\CurrentControlSet\Services\LanManServer\Parameters بروید.

یک کلید از نوع REG_DWORD با نام AutoShareServer ایجاد کنید.

برای مخفی کردن Administrative Share ها، مقدار کلید ایجاد شده را به 0 و برای نمایان شدن آنها، مقدار کلید را به 1 تغییر دهید.

عاشق یادگیری

با سلام و احترام ؛ و با تشکر از مطالب آموزنده

راههایی که فرمودین را انجام دادم ولی در ویندوز سرور2008 جواب نمیده و همچنان درایوها به صورت اشتراک وجود دارند ، لطفا بیشتر راهنمایی بفرمایید ، با تشکر

محمد نصیری

در ویندوز سرور فقط باید به جای AutoShareWks در رجیستری از AutoShareServer استفاده کنید. فقط همین و بعد دستی Share ها رو Disable کنید.

حسن ضرابی

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

از آموزش خیلی خوب شما بسیار ممنونم برای من که خیلی مفید بود بازم ممنونم

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

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