نویسنده: بابک حسینی نژاد

عضویت در خبرنامه
شبکه های اجتماعی
آخرین نظرات
  • ۲۲ ارديبهشت ۰۲، ۱۴:۵۱ - سردار علائی
    سرور
  • ۲۲ ارديبهشت ۰۲، ۱۴:۴۹ - سردار علائی
    سرور

هر متخصص امنیت شبکه باید نوشتن اسکریپت را یاد بگیرد چراکه Scripting یکی از مهمترین ابزار موجود در جعبه ابزار یک هکر است. در دنیای واقعی هکرها معمولا مجبور هستند تا چندین دستور را بصورت اتوماتیک و همزمان اجرا کنند و جهت انجام این کار از اسکریپت استفاده می کنند. برای تبدیل شدن به یک متخصص تست نفوذ قابل، نه تنها باید بصورت حرفه ای اسکریپت بنویسید بلکه باید به یکی از زبان های معروف اسکریپت نویسی مانند Ruby ،Python و یا Perl مسلط باشید. در ادامه این مطلب با مباحث ابتدایی Shell Scripting آشنا می شویم و سعی می کنیم یک اسکریپت ساده در ترمینال کالی بنویسیم.

 

  • تعریف شل (Shell):

شل یک رابط بین سیستم عامل و کاربر می باشد. با کمک شل می توانیم انواع دستورات و برنامه ها را اجرا و حتی فایل های مختلف را ویرایش کنیم.

 

  • انواع شل:

در سیستم عامل لینوکس می توان از شل های مختلفی استفاده کرد:

  • Korn Shell
  • The Z Shell
  • The C Shell
  • The Born Again Shell (Bash)

از آنجایی که bash روی همه توزیع های سیستم عامل LINUX و UNIX (شامل MAC ،BackTrack و KALI) موجود است، پس ما هم در این مجموعه مقالات از آن استفاده خواهیم کرد.

 

  • مباحث ابتدایی:

برای شروع اسکریپت نویسی باید یک ویرایشگر متنی انتخاب کنیم. قبلا در مطالب مبحث کالی لینوکس به دو نوع از معروف ترین ویرایشگرهای متنی یعنی vi و nano اشاره کردیم (لینک). در این مقاله من از نانو استفاده خواهم کرد ولی شما می توانید از هر نوع ویرایشگری اعمم از متنی و گرافیکی استفاده کنید.

 

  • اولین اسکریپت:

برای شروع یک ترمینال باز کرده و دستور زیر را در آن وارد کنید*: 

 root@kali:~# nano firstscript.sh
*با این کار یک فایل شل با نام firstscript.sh در دایرکتوری home ایجاد می شود.
 
خوب حالا شروع به نوشتن کنید. اولین چیزی که در یک فایل bash اسکریپت می نویسیم #!/bin/bash  است .این عبارت به سیستم عامل می گوید که ما می خواهیم از مترجم بَش (BASH Interprter) برای اجرای این فایل استفاده کنیم.

 

سپس با زدن دکمه Enter به خط بعدی رفته و دستور زیر را وارد می کنیم:

echo "Hello from techlist.blog.ir"

دستور echo هر عبارتی را که بعد از آن در گیومه بیاید در ترمینال نمایش می دهد. در مرحله آخر فایل را با زدن Ctrl+X و سپس Y و Enter ذخیره کنید و از نانو خارج شوید.*

*همونطوری که گفتم این فایل با هر ویرایشگر دیگه ای هم می تونه ساخته بشه. اصلا توی notepad ویندوز بنویسید و بعد توی کالی کپی کنید. هیچ تفاوتی توی نتیجه کار نداره.

 

  • مجوز اجرا برای فایل firstscript:

وقتی یک فایل جدید در سیستم عامل کالی می سازیم، حتی ما که مالک (owner) فایل هستیم نمی توانیم آن را اجرا کنیم. در مقالات قبلی از مبحث کالی لینوکس با کنترل دسترسی به فایل ها آشنا شده ایم (لینک). در اینجا با تایپ دستور ls -l firstscript.sh از دسترسی های فایل جدید خود با خبر می شویم.

همانطور که می بینید سطح دسترسی فایل ما به صورت rw-r--r-- است پس مالک این فایل فقط اجازه خواندن و نوشتن روی این فایل را دارد و نمی تواند آن را اجرا کند و همچنین گروه کاربری و کاربران دیگر هم فقط اجازه خواندن دارند. همانطور که قبلا یاد گرفتیم برای دادن اجازه اجرایی به مالک دستور زیر را وارد می کنیم:

 root@kali:~# chmod 755 firstscript.sh
 

حالا دوباره برای مطمئن شدن از ls -l استفاده می کنیم و می بینیم که اجازه اجرایی به مالک فایل داده شده است.

 

  • اجرای اولین اسکریپت:

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

پس برای اجرای فایل اسکریپت خود دستور زیر را وارد می کنیم:

 root@kali:~# ./firstscript.sh

همانطور که می بینید عبارت مورد نظر در خروجی نمایش داده شده است.

 

*./ به این معنی است که اگر فایل دیگری با نام firstscript.sh در متغییر PATH وجود دارد آن را نادیده بگیر و فایلی را که در دایرکتوری root است اجرا کن.

برای دیدن محتویات دایرکتوری PATH از دستور زیر استفاده می کنیم :

 root@kali:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
 

همانطور که می بینید دایرکتوری root در خروجی نیست و به همین دلیل است که باید از کاراکتر های ./ برای اجرای اسکریپت خود استفاده کنیم*.

*در مقالات بعدی روشی برای ویرایش متغییر PATH ارائه خواهیم کرد.

 

در قسمت بعدی مبحث scripting از bash برای اجرای چندین دستور شبکه بصورت همزمان استفاده می کنیم.

نظرات (۲)

سلام عالیه لطفا بقیه اینو ادامه بدین !
  • کیوان رضازاده اقدم
  • Khoob boood 
    ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
    شما میتوانید از این تگهای html استفاده کنید:
    <b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
    تجدید کد امنیتی