سخن مدیر:

Shell Code چیست ؟

دسته‌بندی: امنیت
۵ دیدگاه

 

Shell Code چیست ؟

شاید این لغت و اصطلاح (Shell code) را بسیار زیاد شنیده باشید، درک کلی از مفهوم آن داشته باشید ولی دقیق نمیدانید که چه هستند، در چه زمینه و چگونه استفاده میشوند.

Exploit کردن یکی از ستون های علم هک میباشد . برنامه ها فقط مجموعه ای از قوانین و دستورات هستند که توسط کامپیوتر اجرا شده و می گویند که چکاری انجام دهد . اکسپلویت ها یا همان کدهای مخرب نیز راههای زیرکانه ای هستند که توسط آنها به کامپیوتر گفته میشود ، خواسته های ما را اجرا کند ، یعنی در واقع ما هیچ قانونی را نقض نمی کنیم بر اساس همان قوانین تعریف شده به خواسته های خودمان که خلاف قوانین است خواهیم رسید. اکسپلویت (Exploit) در معنای لغوی به معنی سود بردن است .

 

Shell Code یک تکه کد ‌می باشد که در اکسپلویت کردن برنامه های آسیب پذیر استفاده میشود. به این خاطر گفته میشود Shell Code که به مهاجم اختیار کنترل سیستم را میدهد ، اما هر قسمتی از کد که کاری را انجام دهد شل کد گویند . شل کد ها معمولا به زبان ماشین یا همان اسمبلی نوشته می شود که از نظر نوع دسترسی دو گونه است :

  1. Local Shell Code
  2. Remote Shell Code

در Local Shell Code ما محدود هستیم چون این شل کد را در درون سیستم خود اجرا میکنیم و قادر نیستند به سیستم های راه دور حمله کنند ، معمولا این شل کد ها به صورت آزمایشی اجرا میگردند که اگر بدرستی اجرا شد و بدون اشکال بود میتوان آن را بر روی سیستم های دیگر انجام داد و بصورت شل کد Remote در آورد . Remote Shell Code میتواند در درون یک شبکه محلی و یا اینترنت بر روی یک سیستم راه دور اجرا گردد، در واقع  Remote Shell Code همان Local Shell Code می باشد ولی با این تفاوت که در آن برای کار بر روی شبکه های محلی و یا اینترنت از برنامه نویسی  TCP/IP socket  استفاده شده است .  شل کد ، انواع مختلفی وجود دارد :

  • Download and execute shellcode : در این نوع شل کد ما میتوانیم یک تروجان و یا کرم را از آدرسی مشخص دانلود و در جایی از سیستم قربانی ذخیره کرده و سپس آن را اجرا کنیم ، این تکنیک هم در روشی به نام Drive-by download استفاده میگردد که این روش بدینگونه است ، وقتی قربانی صفحه اینترنتی را مشاهده میکند در پشت این صفحه کدهایی قرار دارد که فایلی را در سیستم قربانی ذخیره میکند و سر انجام فایل مورد نظر ، که هرچیزی میتواند باشد را اجرا کرده و قربانی را مورد حمله قرار داده و بقولی هک میکند .

 

  • Staged shellcode : به این روش ، روش مرحله ای گویند ، اول یک تکه شل کد کوتاه در درون سیستم مورد نظر اجرا میشود که بعد این شل کد کوتاه ، شل کد بزرگتری را دانلود کرده و در سیستم اجرا میکند .

 

در شکل زیر فایل سورس shellcode نوشته شده مان (connectback.asm) را کامپایل میکنیم. خوب shellcode کامپایل شده و از حالت سورس به حالت باینری تغییر یافته است. مقدارهای بصورت Hexadecimal که بعنوان خروجی دریافت نموده ایم Shellcode مان میشود که بایستی به پروسه هدف تزریق نماییم تا بتوانیم به خواسته خود برسیم.

shellcode-compile

چگونگی اجرا کردن Shell Code:

اکسپلویت ها معمولا شل کد را به درون پروسه هدف تزریق میکنند ، در عین حال اکسپلویت یک آسیب پذیری می باشد که کنترل پروسه هدف را بدست می آورد و شل کد را اجرا میکند . تزریق شل کدها اغلب بدینگونه است که در درون داده های ارسالی قرار گرفته و از طریق شبکه به پروسه آسیب پذیر ارسال میشود .

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

برچسب‌ها:
  • نویسنده
    حمید رضایی
  • تعداد بازدید
    بازدید : 3,422
۵دیدگاه فرستاده شده است.
شما هم دیدگاه خود را بنویسید
  1. shayantech :
    ۱۸ مرداد ۹۱

    Chrome 4.0.221.6 Windows 7

    این shell code ارتباطی با شل محله نداره؟ 😀

  2. محمدباقر پورمنصوری :
    ۱۹ مرداد ۹۱

    MSIE 10.0 Windows

    مگه شک داری که ارتباط داره ۳۰۳۰؟!

  3. صادق :
    ۳۰ مرداد ۹۱

    Chrome 21.0.1180.79 Windows 7

    یا ابرفز! مگه رو ویندوز XP میشه IE10 نصب کرد؟

  4. محمدباقر پورمنصوری :
    ۳۱ مرداد ۹۱

    Firefox 3.5.5 MacIntosh

    با سلام
    افزونه هنوز در آخرین به روزرسانیش ویندوز ۸ رو اضافه نکرده. واسه همین می زنه ویندز اکس بی!




نوشته‌های ویژه
اخبار ویژه