پاورشل یا PowerShell یک فریمورک در ویندوز است که بوسیله آن هم میتوانیم تنظیمات سیستم را مدیریت کنیم و هم میتوانیم بسیاری از کارهایی که میخواهیم با سیستم انجام دهیم را، اتوماتیک کنیم!
به همین خاطر پاورشل، یک زبان اسکریپتی و یک خط فرمان در اختیار کاربر میگذارد تا بتواند کارهای بالا را انجام دهد.
CMD تنها یک خط فرمان برای سیستم شماست. یعنی بوسیله آن میتوانید دستوراتی را به سیستم بدهید و برای شما انجام دهد. اما پاورشل فراتر از یک خط فرمان است. بوسیله پاورشل میتوانید تنظیمات بیشتر و پیکربندی گستردهتری در سیستم انجام دهید. برای مثال تنظیمات مربوط به رجیستری ویندوز و یا WMI از طریق پاورشل براحتی قابل انجام اسCMD تنها یک خط فرمان برای سیستم شماست. یعنی به وسیله آن میتوانید دستوراتی را به سیستم بدهید و برای شما انجام دهد. اما پاورشل فراتر از یک خط فرمان است. بوسیله پاورشل میتوانید تنظیمات بیشتر و پیکربندی گستردهتری در سیستم انجام دهید. برای مثال تنظیمات مربوط به رجیستری ویندوز و یا WMI از طریق پاورشل براحتی قابل انجام است.
از جمله این قابلیتها میتوان به خروجیهای مبتنی بر شی اشاره کرد. یعنی خروجی عملیات درون پاورشل، همیشه یک عبارت نیست. بلکه میتواند یک شی باشد که این شی خصوصیاتی دارد و میتوان از آنها استفاده کرد. پاورشل همچنین قابلیت Pipelining که مربوط به اجرای مرتبط و یا همزمان دستورات میشود را نیز ساپورت میکند. و بسیار فراتر از یک خط فرمان ساده است ….
اما از آن جا که بوسیله پاورشل تسلط بیشتر و گستردهتری برروی سیستم ویندوزی وجود دارد، همین مساله باعث میشود در زمینههای دیگر همانند نفوذ و هکینگ، مدیریت سیستم و… قابلیتهای زیادی داشته باشد!
پاورشل را میتوان یکی از بسترهای ویندوزی دانست که در چند سال اخیر شدیدا مورد توجه و علاقه نفوذگران بوده است. در ادامه در رابطه با جایگاه پاورشل در هکینگ بیشتر صحبت خواهیم کرد. با آکادمی ترجنس همراه باشید.
یکی از ابزارهایی که مدیران و تکنسینهای شبکه همواره برای عیبیابی یک شبکه از آن استفاده میکنند، Traceroute میباشد. هر جا که اختلالاتی مثل تاخیر (Latency) و قطعی (Connectivity Issue) درون یک شبکه وجود داشته باشد، Traceroute و Ping دو ابزار ابتدایی ولی کارآمدی هستند که میتوانند در زمینه رفع مشکل به ما کمک کنند.
حتما با ابزار Ping آشنایی دارید. ابزاری که به ما کمک میکند تا متوجه شویم با یک IP ارتباط داریم یا خیر. فرض کنید میخواهیم بفهمیم که آیا دو سیستم با یکدیگر ارتباط دارند یا خیر. کافیست پشت یکی از سیستمها بنشینیم و درون CMD، سیستم دیگر را Ping کنیم. اگر پاسخ پکتهای ارسالی را با موفقیت دریافت کنیم، متوجه میشویم که ارتباط بین این دو سیستم بدون مشکل است. اما اگر پاسخ درستی دریافت نکنیم، تنها میفهمیم که ارتباط مشکل دارد. چگونه تشخیص دهیم که کجای ارتباط مشکل دارد؟ چراکه احتمالا چندین روتر و سوییچ بین این دو سیستم وجود دارد.
اگر در ارتباط بین دو سیستم مشکلی وجود داشته باشد، Traceroute اولا میتواند مشخص کند که یک مشکلی در ارتباط وجود دارد، دوما میتواند مشخص کند که این مشکل از کجاست!
Traceroute عموما از پکتهای Echo (متعلق به پروتکل ICMP) و همچنین مقادیر متفاوت TTL (یا همان Time To Live) استفاده میکند. اما قبل از اینکه بررسی کنیم Traceroute چگونه کار میکند، باید با مفهوم کلی TTL و RTT آشنا باشیم.
به زبان ساده TTL یا همان Time To Live، عمر یک پکت را در شبکه، محدود میکند. این مقدار برای هر بسته توسط فرستنده آن مشخص میشود و با رسیدن به هر HOP در شبکه، یک واحد از آن کاسته میشود. یعنی اگر TTL یک بسته 100 باشد، نهایتا از 100 عدد HOP میتواند عبور کند تا به مقصد موردنظر برسد در غیر ای نصورت بسته ارسالشده، دور انداخته میشود (از بین میرود) و یک پیام خطا از طریق ICMP برای فرستنده ارسال میشود. HOP همان روترهایی هستند که بر سر راه این پکت قرار دارند.
به زبان ساده RTT یا همان Round-Trip Delay، مدت زمانی است که طول میکشد تا یک پکت ارسال شود و پاسخ آن دریافت شود. RTT به ما کمک میکند تا بفهمیم که بهطور میانگین چه فاصله زمانی بین یک فرستنده و گیرنده وجود دارد. RTT به ما کمک میکند تا تاخیرهای موجود در ارتباط بین دو سیستم را ارزیابی کنیم.
Traceroute در ابتدا شروع به ارسال پکتهایی میکند که TTL آنها 1 میباشد. این پکتها بعد از اینکه به اولین HOP رسیدند، از مقدار TTL یک واحد کم میکنند، از این رو، مقدار TTL برای این پکتها به صفر میرسد. همان طور که بالاتر گفتیم، وقتی مقدار TTL به صفر میرسد، اولا پکت DROP میشود. دوما یک پیام خطا به سمت فرستنده ارسال میشود. حالا تا به اینجا RTT نشان دهنده فاصله زمانی بین فرستنده (کسی که پکتها را ارسال کرد و در اصل همان کسی که دستور Traceroute را اجرا کرده است) و اولین HOP میباشد، چرا که TTL را برابر 1 قرار داده بودیم.
در گام بعدی، Traceroute شروع به ارسال پکتهایی میکند که TTL آنها 2 میباشد. هدف از این کار این است که بستههای ما تنها تا HOP دوم حرکت کنند. پس بستهها پس از اینکه شروع به حرکت کردند، ابتدا از HOP اول عبور میکنند و TTL آنها از عدد 2 به عدد 1 کاهش پیدا میکند. سپس با رسیدن پکتها به HOP دوم، TTL آنها از یک به صفر کاهش پیدا میکند و در نتیجه یک پیام خطا به سمت فرستنده ارسال میشود. بدین صورت فرستنده متوجه میشود که وضعیت RTT تا HOP دوم به چه صورت است.
Traceroute این کار مجددا ادامه میدهد و هر بار TTL را یک واحد افزایش میدهد تا وضعیت ارتباط و RTT هر یک از HOP ها را متوجه شود.
برای استفاده از Traceroute کار بسیار سادهای را پیشرو داریم.
در لینوکس:
traceroute 192.168.1.5
و در ویندوز:
tracert 192.168.1.5
که در هر دوی موارد 192.168.1.5 همان IP ای میباشد که میخواهیم مسیر ارتباط با آن مورد بررسی قرار گیرد.
حتی اگر مدت کمی هم باشه که در حوزه فناوری اطلاعات فعالیت میکنید، قطعا متوجه اهمیت یادگیری کار با پوسته "خط فرمان" یا همان Command Line شدهاید. در این مقاله میخواهیم درمورد یکی از مهمترین دستورات CMD به اسم NET USER صحبت کنیم.
در مقاله "کرنل چیست؟" در مورد کرنل و دلیل وجود آن در یک سیستمعامل صحبت کردیم. در این مقاله میخواهیم در رابطه با خط فرمان صحبت کنیم.
همچنین گفتیم که برای ارتباط با یک سیستمعامل دو پوسته با نامهای "پوسته گرافیکی (GUI)" و "پوسته خط فرمان (CLI)" وجود دارد.
در یک تعریف کلی و ساده میتوان گفت که کرنل مغز یک سیستم عامل میباشد.
این مغز با سخت افزارهای موجود برروی سیستم در ارتباط بوده و امکان استفاده از این سخت افزارها را برآورده میکند.