دسترسی شل چیست
- کورش سنایی
- ۸ آبان ۱۴۰۳
- زمان مطالعه: 7 دقیقه
به آموزش دسرسی شل چیست خیلی خوش آمدید; در این آموزش به شما توضیح میدیم که شل چیست و چه نوع های مختلفی داره و شما چطور میتونید دسترسی شل بگیرید.مبحث شل خیلی سادست وقتی که به صورت عملی ببینیدش حتی ساده تر هم میشه خیلی ساده بخوام بهتون بگم وقتی یک هکر از دور به سیستمی دسترسی داشته باشه و توانایی اجرای دستورات بر روی اون سیستم رو به صورت ریموت داشته باشه میگیم دسترسی شل داره و این دستورات میتونه دستور ساخت یا حذف فایل و فولدر و … باشه, خواندن و نوشتن بر روی سیتسم, اجرای فایل مورد نظر و … ! حالا بیاید در این آموزش دسترسی شل چیست عمیق تر بشیم .
دسترسی شل چیست ؟
دسترسی شل (Shell Access) وقتی معنا میگیره که یک هکر برای وارد شدن به سیستم هدف از طریق خط فرمان (Command Line Interface) اقدام کنه . این نوع دسترسی به هکر اجازه میدهد که دستورات را به صورت مستقیم وارد کند و کنترل بیشتری بر روی سیستمهای هک شده خود داشته باشد. به عبارت دیگر، شل به عنوان یک واسطه بین کاربر و سیستم عامل عمل میکند و امکان اجرای دستورات، برنامهها و اسکریپتها را برای هکر فراهم میسازد. البته گاهی هم پیش میاد که شما این دستورات رو به صورت گرافیکی به سیستم هدف برای اجرا شدن ارسال میکنید مثلا فرض کنید که دستور ساخت یک فایل جدید رو به سیستم ارسال کنید و اون فایل ساخته بشه .
دسترسی شل چه کاربردی دارد؟
ببینید Shell چه در سیستم عامل لینوکس و چه در ویندوز و … در دسترس هست پاور شل یا CMD ویندوز رو میتونید Shell در نظر بگیرید یا اگر اسم ترمینال لینوکس به گوشتون خورده باشه اون هم یک Shell هست . در واقع شما به صورت عادی هم میتونید با این Shell ها ارتباط بگیرید و هرکاری که میخواین انجام بدین رو به صورت دستورات متنی به سیستم عامل ارسال کنید و این شِل در واقع رابط بین شما و سیستم عامل هست که بتونه دستورات شمارو به گوش سیستم عامل برسونه و سیستم عامل اونارو اجرا کنه . حالا توی دنیای هک وقتی من هکر بیام و سیستم شمارو هک کنم ازش دسترسی شل میگیرم و دستوراتم رو به سیستم هدف به صورت Remote ارسال میکنم ; انگار که من به cmd یا Powershell سیستمت دسترسی دارم یا حتی ترمینالت و دستوراتی که میخوام رو روی اونها اجرا میکنم حله ؟ که خوب این یکی از کاربر هاش هست و دسترسی شل دارای کاربردهای متنوعی است که از جمله آنها میتوان به موارد زیر اشاره کرد:
مدیریت سرور: مدیران سیستمها میتوانند با استفاده از شل به راحتی وظایف مدیریتی را انجام دهند، از جمله نصب و پیکربندی نرمافزارها، مدیریت فایلها و نظارت بر عملکرد سیستم.
خودکارسازی وظایف: با نوشتن اسکریپتهای شل، کاربران میتوانند وظایف تکراری را خودکار کنند و زمان خود را صرفهجویی کنند.
تست و عیبیابی: دسترسی به شل به کاربران امکان میدهد که به سرعت مشکلات را شناسایی و برطرف کنند. با اجرای دستورات مختلف، کاربران میتوانند به جزئیات بیشتری درباره عملکرد سیستم دست یابند.
برقراری ارتباط با سایر سیستمها: شل به کاربران اجازه میدهد تا با استفاده از پروتکلهای مختلف مانند SSH، به سیستمهای دیگر متصل شوند و دستورات را از راه دور اجرا کنند.
انواع دسترسی شل
این که چه نوع شلی بگیرید به چند چیز بستگی داره به Payload, سیستم عامل هدفتون, نرم افزار های نصب شده روی سیستم عامل دسترسی های داده شده به یوزری که شما دسترسی گرفتید, زبان برنامه نویسی برنامه هدف و . . . . مثلا وقتی که شما یک وبسایت رو هک میکنید و به اصطلاح یک Shell آپلود میکنید و میگید از سایت مثلا target.com شل دارم در واقع منظور این هست که میتونم روی اون سرور دستوراتم رو اجرا کنم که حالا این شل میتونه به زبان php باشه به زبان python3 باشه یا حتی asp باشه و چون وبسایت هست میگیم WebShell دارم .
دسترسی شل به طور کلی به چند نوع تقسیم میشود:
دسترسی شل محلی: این نوع دسترسی زمانی است که کاربر به طور مستقیم به کنسول سیستم متصل میشود. این روش برای مدیریت سیستمهای شخصی یا سرورهای محلی مناسب است.
دسترسی شل از راه دور: این نوع دسترسی به کاربران امکان میدهد تا از طریق اینترنت یا شبکه به سیستمهای دیگر متصل شوند. پروتکلهایی مانند SSH (Secure Shell) و Telnet برای این منظور استفاده میشوند.
دسترسی شل محدود: در این حالت، کاربر تنها به دسترسی به برخی از دستورات و منابع محدود شده است. این نوع دسترسی بیشتر برای کاربرانی مناسب است که نیاز به حفاظت از سیستم دارند.
دسترسی شل کامل: در این حالت، کاربر تمامی مجوزها و دسترسیهای لازم برای مدیریت کامل سیستم را دارد. این نوع دسترسی معمولاً برای مدیران سیستم و توسعهدهندگان لازم است.
وب شل چیست ؟
وب شل هم همونه داستانش که خوندید و شما یا به صورت گرافیکی یا متنی با سرور هدف ارتباط بر قرار میکنید و دستوراتتون رو اجرا میکنید و میتونید این شیل هارو رایت یا آپلود کنید روی هدف . برخی از این شل ها رو میتونید از PentestMonkey , revshell و یا از Shellizm دانلود کنید البته برخی معتقدند که این سایت آخری یا شلیزم شل هارو آلوده به بکدور میکنه که بعدا در مقاله بکدور چیست در مورد بکدور توضیح میدم کار با شل هارو هم بعدا توضیح میدم . اگر علاقه به وب هکینگ و کار با شل ها دارید دوره آموزش هک سایت مارو از دست ندید .
تفاوت شل های bind و reverse
اینو واسه اطلاعات عمومیتون میگم میتونید نخونید; در حوزهی تست نفوذ و هک ، متصل کردن سیستم هدف با هکر به دو شیوهی پرکاربرد bind_tcp و reverse_tcp انجام میشود. این دو روش برای ایجاد ارتباط بین دستگاه مهاجم (attacker) و هدف (target) استفاده میشوند، اما در روش و کاربرد تفاوتهایی دارند. در ادامه به مقایسه این دو روش میپردازیم:
مفهوم و نحوهی کارکرد شل ها
Bind_TCP: در این روش، هدف بهعنوان سرور عمل کرده و به درخواستهای ورودی از سمت مهاجم گوش میدهد. مهاجم در نقش کلاینت، اتصال را به پورتی از سیستم هدف برقرار میکند که منتظر اتصال است. ساده بگم ما به هدف وصل میشیم و این به شدت فایروال ها و تدابیر امنیتی رو حساس میکنه .
Reverse_TCP: در این حالت، دستگاه هدف بهعنوان کلاینت به سرور (مهاجم) متصل میشود. مهاجم ابتدا به گوش دادن در پورت مشخصی روی سیستم خود میپردازد و هدف، اتصال خروجی را به سمت آن پورت ایجاد میکند. اینم ساده بگم هدف به ما وصل میشه و خوب فایروال اینجا کمتر سیخ میکنه رومون به طور کلی، در محیطهای تست نفوذ حرفهای، Reverse_TCP به دلیل قابلیت عبور از فایروال و کاهش احتمال شناسایی بیشتر مورد استفاده قرار میگیرد . البته نسبت به تارگت باید انتخاب کنید نوع شلتون رو .
مفهوم دسترسی Meterpreter
Meterpreter یکی از پرکاربردترین و قدرتمندترین ابزارهای Post-Exploitation در مجموعه ابزارهای Metasploit Framework است که توسط شرکت Rapid7 توسعه داده شده است. Meterpreter به (Pentesters) و هکرها اجازه میدهد کنترل کاملی بر روی سیستم هدف پس از به دست آوردن دسترسی اولیه داشته باشند. شما برای گرفتن این دسترسی حتما باید از متا اسپلویت استفاده کنید و با exploit/multi/handler پیلود و … رو تنظیم کنید و دسترسی مِتِرپِرِتِر رو دریافت کنید که همون دسترسی شل هست ولی کاستوم شده, راحت و قوی . البته در هنگام استفاده از این نوع دسترسی میشه بگی دسترسی شل دارم ; ولی فنی بخوای نگاه کنی تفاوت هایی باهم دارند مثلا اگه شما دسترسی مترپرتر داشته باشی میتونی بری توی پاورشل و cmd دستور اجرا کنی و برگردی به مترپرتر ولی اگه شما با مثلا windows/x64/shell_reverse_tcp دسترسی گرفته باشید نمیتونید برید توی مترپرتر بر عکس windows/x64/meterpreter/reverse_tcp
اگر کار با متااسپلویت و ابزار های هکینگ برای گرفتن شل رو بلد نیستید به دوره ابزار های ضروری تست نفوذ ما مراجعه کنید .
نتیجهگیری
من کار با بقیه ندارم و دارم در مورد دنیای هک و تست نفوذ حرف میزنم وقتی میگم دسترسی شل بگیر یعنی کاری کن که بشه از راه دور روی هدف دستور اجرا کرد مثلا حذف و ساختن فایل, نوشتن و خواندن فایل ها و دارکتوری ها, اجرا کردن فایل مورد نظر و یا حتی تغییر در دایرکتوری ها و فایل ها که خوب گفتیم این دسترسی ها میتونه به صورت گرافیکی یا متنی مدیریت بشه تا دستورات رو به سمت هدف ارسال کرد و هم نسبت به شرایط میتونه دسترسی ما محدود باشه مثلا فقط بتونیم فایل هارو بخونیم و دانلود کنیم ولی نتونیم فایلی روی سیستم بنویسیم و اونو اجرا کنیم اینا دیگه بستگی به هدف داره که از چه شلی با چه دسترسی ای استفاده کنیم . البته این رو هم بگم که هکر کارش دور زدن محدودیت هاست و ما میتونیم این محدودیت های موجود رو دور بزنیم ولی اینجا جاش نیست که بگم 🙂