سعید خلیفی
متخصص سرویس های مایکروسافت

معرفی 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) بین کامپیوتر ها به کار گرفته میشود.


نظرات