خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


SID چیست و کاربرد آن در ویندوز چیست

SID چیست و کاربرد آن در ویندوز چیست
به عنوان یک administrator ویندوز، قطعا واژه SID یا security identifiers را شنید هاید و با آن غریبه نیستید. هر object یا شی ای که در ویندوز بتوانید برای آن security اعمال کنید دارای یک unique SID می باشد. نحوه مشاهده SID را جلوتر به شما خواهم گفت ولی اگر از قبل با SID مواجه شدید و آن را دیده باشید، نیک می دانید که SID شامل یک نام طولانی از اعداد تصادفی است که جلوتر بیشتر در موردش خواهیم گفت.

نرم افزار سامانه مودیان راهکار



اجزای یک SID

یک SID صرفا عددی منحصر به فرد برای شناسایی یک شی است. ویندوز مجوزها یا permissions ها را مستقیما به sid ها تخصیص نمی دهد بلکه به یک SD یا Security Descriptor اختصاص می دهد. SD حاوی مجموعه ای از مجوز های allow یا denials مربوط به SID خاص است. SID ها چیزی مشابه ماهیت UID ها در محیط UNIX هستند، هر چند این دو با هم تفاوت هایی هم دارند. SID ها حتی در بستر شبکه هم منحصر به فرد و unique هستند و این یکی از تفاوت های این دو با هم می باشد. به عنوان مثال، فرض کنید که شما یک شبکه متشکل از دو domain دارید و هر دامین یک کاربر Administrator دارد. خب، حتی اگر برای این دو یوزر administrator پسورد، توضیحات و سایر ویژگی ها را یکسان تعریف کنید و از دیدگاه ویندوز این دو با هم فرق دارند چرا که SID های آنها با هم فرق دارد. پس ویندوز به دلیل تفاوت تفاوت در SID ها ویندوز یک حساب کاربری لوکال را متفاوت از حساب کاربری دامین در نظر می گیرد حتی اگر در ظاهر این دو مشابه هم باشند. دلیلش ممکن است این باشد که ویندوز برای تمایز بین SID ها، حتی در سیستم های مختلف در یک شبکه، شیوه مختلفی برای ساخت SID ها دارد. در یک محیط domain، تمام اشیاء موجود در یک domain دارای SID هایی هستند که بر اساس SID root هستند که domain را شناسایی می کند. حالا فرض کنید که یک domain با نام test دارید که از sid زیر استفاده می کند:

S-1-5-21-186985262-1144665072-74031268

یک user در آن domain دارای یک SID ای هست که که منعکس کننده domain است. به عنوان مثال:

S-1-5-21-186985262-1144665072-74031268-1309

همانطور که می بینید، شماره 1309 به انتهای domain SID افزوده شده که این عدد منحصر به فرد معرف کاربر در این دامین می باشد. آخرین قسمت SID، در این مورد 1309، همان چیزی است که به عنوان یک شناسه نسبی یا RID شناخته می شود. اگر در ویندوزهای موجود در یک شبکه دارای اکانتهای مشابه مانند Administrator را داشته باشند پس این احتمال هست که RID یکسان در این سیستم ها جود داشته باشد. با این حال، هنگامی که RID با SID ترکیب می شود، SID منحصر به فرد خواهد شد و این شی می تواند به صورت منحصر به فرد در سرتاسر شبکه شناسایی شود.

SID number به چه معناست؟

با مثالهایی که بالاتر زدیم تا الان متوجه شده اید که SID شامل اعداد جدا شده با خط تیره است. این اعداد کاملا تصادفی نیستند، بلکه معانی خاصی دارند. اولین رقم SID همیشه S است.حرف S، عدد را به عنوان SID مشخص می کند. که برای تشخیص SID از GUID بسیار هم مفید است. شماره بعدی در این مجموعه شماره نسخه است. همه نسخه های موجود در ویندوز از شماره 1 به عنوان شماره نسخه استفاده می کنند. شماره بعدی شناسه برای top level authority یا اختیارات امنیتی سطح بالا است. اغلب اوقات این عدد 5 است، اما عدد 0 تا 4 نیز استفاده می شود و این بدین دلیل می باشد که پنج اختیاز امنیتی مختلف وجود دارد:

SECURITY_NULL_SID_AUTHORITY: این SID به یک گروه بدون member تعلق دارد، اساسا یک گروه پوچ یا null است. این اختیار با عدد صفر تعیین شده است.

SECURITY_WORLD_SID_AUTHORITY: این SID توسط شماره 1 نشان داده شده است. این authority عهده دار Everyone group است. گروه Everyone SID prefix S-1-1-0 تعیین می شد.

SECURITY_LOCAL_SID_AUTHORITY: این Authority SID کاربران محلی یا local را مدیریت می کند که با شماره 2 مشخص می شوند. هر کسی با مجوز log on locally، عضو گروه با SID prefix of S-1-2-0 خواهد بود.

SECURITY_CREATOR_SID_AUTHORITY: این SID یا شماره 3 مشخص می شود. این sid با Owner ID یا شناسه مالک (S-1-3-0)و همچنین Creator Group یا گروه ایجاد کننده (S-1-3-1) همراه است.

SECURITY_NT_AUTHORITY: این sid با شماره 5 مشخص می شود که قدرتمندین sidاست و مسئول تولید SID ها برای همه user accounts ، global groups و local groups (به عنوان مثال، S-1-5-21) است.

مجموعه بعدی اعداد در مجموعه معانی مختلفی دارد اما معمولا برای نشان دادن گروهها استفاده می شود. به عنوان مثال، گروه Everyone با پیشوند SID S-1-1-0 تعیین می شود. در یک محیط domain، برخی از پیشوندهای معمول SID مورد استفاده قرار می گیرند:

• Everyone—S-1-1-0
• Creator/Owner—S-1-3-0
• Batch Process—S-1-5-3
• Authenticated User—S-1-5-11
• System—S-1-5-18

پیشوند SID یا کمی متفاوت تر برای سیستم های محلی کار می کند. یک پیشوند SID از S-1-5-32 نشان می دهد که این شی بصورت محلی یا لوکال شناخته شده است، برخی از پیشوندهای معمول محلی SID به شرح زیر است:

• Administrators—S-1-5-32-544
• Users—S-1-5-32-545
• Guests—S-1-5-32-546

حالا که مولفه های مختلف SID را توضیح دادیم، به مثال SID که قبلا استفاده کردیم، نگاهی بیندازید. SID در این مثال S-1-5-21-186985262-1144665072-74031268-1309 بود، پس طبق تعاریف بالا اعداد موجود در این SID دارای عملکردهای زیر هستند:

• S—Identifies the number as a SID
• 1—Version number
• 5—Designates the SECURITY_NT_AUTHORITY SID authority.
• 21-186985262-1144665072-74031268—The domain identifier
• 1309—The object’s relative identifier


کار با SID

اکنون که می دانید چگونه شماره SID را بخوانید، بد نیست بدانید که چه کارهایی میتوانید با آن انجم دهید. از نقطه نظر مدیریتی توانایی درک معنای SID به شما کمک می کند تا عملکرد بسیاری از مطالب رجیستری را شناسایی کنید و از یک نقطه نظر تاریک، دستکاری sid میتواند برای هک یک سیستم استفاده شود.

افزایش امتیازات attack
یکی از تکنیک های رایج برای هک مبتنی بر SID افزایش امتیاز نفوذ است. برای یک هکر کار سختی است که به سادگی یک SID را در حوزه محلی یا local تغییر دهد و بدان دسترسی در سطح کامل یا admin پیدا کند. برای این مورد دو دلیل وجود دارد، اول اینکه تغییر SID کار همچین ساده و شسته و رفته ای نیست و پیچیدگی هایی دارد دوم، این فرآیند نیاز به امتیازات Admin دارد.اما یک روش رایج تر این است که از روش هایی که ویندوز در trust بین domain ها استفاده می کند، بهره برد.
در Windows 2000 از Trust پیوندی و منشعب استفاده می شود، این بدان معنی است که اگر Domain A به Domain B تراست داشته باشد و Domain B به Domain C تراست داشته باشد و به خاطر ماهیت این گونه تراست ها، Domain A هم به Domain C تراست خواهد داشت و یک هکر از این از این رابطه برای دسترسی به trusting domain از یک trusted domain استفاده می کند. به طور معمول هنگامی که یک درخواست از یک domain قابل اعتماد به یک domain قابل اعتماد دیگر منتقل می شود، درخواست به domain همراه با SID کاربر ارسال کننده درخواست می شود. از آنجا که درخواست از یک domain قابل اعتماد است، SID براساس root SID دامنه قابل اعتماد است.
در حال حاضر، فرض کنید یک هکر میخواهد دسترسی admin به trusting domain داشته باشد، هکرها می توانند SID را که همراه با درخواست به تصویب رسیده است، به گونه ای تغییر دهند که منعکس کننده عضویت در گروه administrators باشد. این یک SID با شماره S-1-5-domain SID-500 (حساب کاربری ادمین دامین) یا S-1-5-domain SID-512 (Domain Admins group) می باشد.

دسترسي به فهرست كاربران
راه دیگری که SID ها می توانند مورد سوء استفاده قرار بگیرند، استفاده از آنها برای دسترسی به user list است. از IPC$ share برای برقراری یک null session با دستگاهی که قصد دارید آن را هک کنید استفاده کنید. از طریق دستور NET USE می توانید اینکار را انجام دهید. برای اثبات این موضوع من یک ماشین به نام DR-EVIL دارم که این دستور را برای آن اجرا می کنم:

NET USE \\dr-evil\ipc$

هنگامی که session ایجاد شد شما باید از یک ابزار با نام USER2SID استفاده کنید. ابزار USER2SID به شما امکان می دهد SID را برای یک کاربر یا گروه خاص پیدا کنید.
به عنوان مثال، اگر شما می خواهید SID را برای گروه Admin ها در سیستم DR-EVIL پیدا کنید، دستور زیر را وارد کنید:

USER2SID \\dr-evil “Domain Admins”

با اجرای این دستور با توجه سیستم من، اطلاعات زیر برگردانده شد:

S-1-5-21-746137067-764733703-83952215-512
Number of subauthorities is 5
Domain is TEST
Length of SID in memory is 28 bytes
Type of SID is SidTypeGroup

گام بعدی در این فرآیند این است که کمی در مورد چگونگی کار SID بدانیم. قبلا، من توضیح دادم که user و group از domain’s SID و یک RID افزوده استفاده می کنند. اگر شماره RID کمتر از 1000 باشد، آن را به یک کاربر یا گروهی لوکالی منتصب می کند، در حالی که مقادیر 1000 یا بالاتر مربوط به object های غیرقابل پیش بینی هستند. این بدان معنی است که شما می توانید SID های کاربر و گروه را با domain SID و یک RID از 1000 شروع کنید.

قطعه بعدی این اتک، استفاده از ابزار SID2USER همراه با USER2SID است. ین ابزار با USER2SID همراه است و SID Number ها را به user name ها تبدیل می کند. پیشتر، ما مشخص کردیم که گروه Domain Admin دارای SID به شماره S-1-5-21-746137067-764733703-83952215-512 است. این بدان معنی است که ما می توانیم نامهای کاربری این بدان معنی است که ما می توانیم نامهای کاربری domain را از SID S-1-5-21-746137067-764733703-83952215-1000 شروع و S-1-5-21-746137067-764733703-83952215-1001 و S-1-5-21-746137067-764733703-83952215-1002 و همین طور الی آخر ادامه دهیم. شما حتی می توانید اسکریپتی تهیه نمایید که SID را بررسی و چک کند.
اکنون برای بدست آوردن نام کاربری، دستور زیر را وارد کنید:

SID2USER \\ machine_name SID

برای مثال، اگر شما می خواهید کاربران کامپیوتر DR-EVIL را پیدا کنید، از این دستور استفاده می کنید:

SID2USER \\DR-EVIL 5 21 746137067 764733703 83952215 1000

در دستور بالا توجه کنید که خط فاصله(-) با space جایگزین شده است. شما همچنین متوجه خواهید شد که S و 1 در ابتدای SID وجود ندارند و خروجی دستور به شکل زیر خواهد بود:

Name is User1
Domain is Test
Type of SID is SidTypeAlias


SID چیست و کاربرد آن در ویندوز چیست . آموزشگاه رایگان خوش آموز

برای جلوگیری از این نوع اتک ها، همیشه و همراه پسوردهای درست و درمون برای اکانتهایتان انتخاب کنید و در بازهای زمانی مشخصی آنها را تغییر دهید و در ضمن پورت 139 tcp را برای جلوگیری از حمله ها بلاک کنید.
برای بدست آوردن SID تمام کاربران یک ویندوز کافیست Command زیر را در cmd وارد کرده و Enter کنید:
wmic useraccount get name,sid

SID چیست و کاربرد آن در ویندوز چیست . آموزشگاه رایگان خوش آموز

با این دستور SID کلیه کاربران موجود در ویندوز لیست خواهد شد و اگر SID همین کاربری که با آن به ویندوز لاگین کرده اید را بخواهید، از دستور زیر استفاده کنید:

whoami /user


SID چیست و کاربرد آن در ویندوز چیست . آموزشگاه رایگان خوش آموز


نمایش دیدگاه ها (0 دیدگاه)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.


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