
در این بخش از دوره آموزشی مقدمات لینوکس شما با سرویس های کاربردی لینوکس که شامل آپاچی، MySQL و OpenSSH می باشد، آشنا خواهید شد.
Using and Abusing Services
در اصطلاحات لینوکس، یک سرویس، برنامه ای است که در پس زمینه اجرا شده و منتظر بوده تا شما از آن استفاده نمایید. لینوکس دارای سرویس های متعددی است که از پیش نصب شده اند.
از این میان، یکی از سرویس های کاربردی لینوکس ، سرویس آپاچی می باشد که برای ایجاد، مدیریت و استقرار سرورهای وب از آن استفاده می شود. در این بخش ما سه سرویس را انتخاب کرده ایم که برای تست نفوذگران از اهمیت ویژه ای برخوردار هستند که عبارتند از Apache، OpenSSH، MySQL
Starting, Stopping, and Restarting Services
پیش از اینکه به توضیح سرویس های مذکور بپردازیم، ابتدا به توضیح در مورد start، stop و restart سرویس ها در لینوکس می پردازیم.
برخی از سرویس ها را می توانید بوسیله محیط گرافیکی در کالی لینوکس، start یا stop نمایید ولی برخی از آن ها نیز باید بوسیله محیط دستوری start یا stop شوند.
ساختار کلی فعال یا غیرفعال کردن سرویس ها به صورت زیر می باشد:
service servicename start|stop|restart
به عنوان مثال برای فعال نمودن سرویس Apache، کافی است دستور زیر را وارد نمایید:
service apache2 start
همچنین برای stop نمودن این سرویس نیز می توانید از عبارت stop بعد از نام سرویس استفاده نمایید.
معمولا زمانی که شما یک سرویس را پیکربندی می کنید و یا پیکربندی آن را تغییر می دهید، باید سرویس را restart نمایید.
Creating an HTTP Web Server With the Apache Web Server
وب سرور آپاچی در واقع رایج ترین سرویس مورد استفاده در سیستم عامل های لینوکس می باشد. وب سرور آپاچی در بیش از 60 درصد از سرورهای وب دنیا یافت می شود، بنابراین یک مدیر سیستم لینوکسی باید با این سرویس آشنایی داشته باشد.
به عنوان یک تست نفوذگر نیز در صورتی که مایل به تست نفوذ وب سایت ها باشید، باید از عملکرد داخلی سرویس آپاچی، وب سایت و پایگاه داده ای که وب سایت با آن کار می کند، آگاهی لازم را داشته باشید.
Starting with Apache
در صورتی که شما از سیستم عامل کالی لینوکس استفاده می کنید، سرویس Apache به صورت پیش فرض بر روی سیستم شما نصب می باشد. در صورتی که این سرویس به هر دلیلی بر روی سیستم عامل شما نصب نشده است می توانید از دستور زیر برای نصب آن استفاده نمایید:
apt-get install apache2
علاوه بر سرویس آپاچی شما برای ایجاد یک وب سایت، شما به یک پایگاه داده MySQL و همچنین برای نوشتن اسکریپت های وب، نیاز به یک زبان برنامه نویسی تحت وب مانند php یا perl نیز نیاز خواهید داشت.
ترکیب لینوکس، Apache، MySQL و PHP یک مجموعه قدرتمند را برای طراحی و توسعه برنامه های تحت وب ایجاد می نماید که در مجموع به عنوان LAMP نیز شناخته می شود. معادل همین مجموعه برای ویندوز با نام WAMP شناخته می شود که حرف W از این عبارت به Windows اشاره دارد.
پس از فعال کردن سرویس آپاچی، در صورتی که شما مرورگر خود را باز نموده و عبارت localhost را در آن وارد نمایید، صفحه ای مشابه تصویر زیر را مشاهده خواهید کرد:

شما می توانید با مراجعه با فایل index.html که در مسیر /var/www/html/ قرار دارد، محتوای این صفحه را ویرایش نمایید.
OpenSSH
SSH که مخفف Secure Shell می باشد، شما را قادر می سازد که به صورت امن یک ارتباط دستوری را از راه دور ایجاد نمایید. در واقع از این سرویس می توان به عنوان یک جایگزین مناسب برای سرویس telnet استفاده نمود که اطلاعات را به صورت Cleartext انتقال می دهد.
مدیران سیستم، اغلب از SSH برای مدیریت سرورها از راه دور استفاده نموده و نفوذگران از این سرویس برای اتصال به سیستمی که آن را در اختیار خود گرفته اند، استفاده می نمایند.
برای فعال کردن OpenSSH که یکی دیگر از سرویس های کاربردی لینوکس می باشد، در سیستم عامل کالی لینوکس از دستور زیر استفاده می شود:
service ssh start
همچنین در صورتی که قصد اتصال به یک سیستم را بوسیله SSH داشته باشید می توانید از دستور زیر استفاده نمایید:
ssh test@192.168.1.100
در مثال بالا به جای test نام کاربری در سیستم مقصد را وارد نموده و پس از علامت @ آدرس IP سیستم مقصد را وارد می نماییم. پس از وارد نمودن دستور بالا، از شما کلمه عبور مربوط به نام کاربری وارد شده، درخواست می شود و پس از وارد نمودن آن، شما به سیستم مورد نظر متصل خواهید شد.
Extracting Information from MySQL
MySQL یکی از رایج ترین برنامه های پایگاه داده می باشد که در برنامه های وب از آن استفاده می شود. پایگاه های داده یکی از بخش های مورد علاقه نفوذگران می باشد. زیرا آن ها حاوی اطلاعات مهمی برای نفوذگران می باشند.
همانند لینوکس، MySQL نیز متن باز بوده و اغلب بر روی سیستم عامل های لینوکس نصب شده است. تعداد زیادی از برنامه های تحت وب و حتی سیستم های مدیریت محتوا (CMS) مانند وروپرس،جوملا و دروپال نیز از این پایگاه داده استفاده می کنند.
Starting MySQL
خوشبختانه MySQL به صورت پیش فرض بر روی کالی لینوکس نصب شده است و در صورتی که شما از توزیع دیگری استفاده می نمایید می توانید به آدرس زیر مراجعه نموده و آن را دانلود نمایید:
https://www.mysql.com/downloads
برای فعال سازی سرویس MySQL که یکی از سرویس های کاربردی لینوکس می باشد، از دستور زیر استفاده می شود:
service mysql start
برای وارد شدن به محیط MySQL از دستور زیر استفاده می شود:
mysql -u root -p

در صورتی که شما برای اولین از این سرویس استفاده می نمایید، نیازی به وارد نمودن کلمه عبور نبوده و هنگام درخواست کلمه عبور، کلید Enter را فشار دهید.
Interacting with MySQL
SQL یک زبان برنامه نویسی تفسیر شده برای ارتباط با پایگاه داده می باشد. پایگاه داده اغلب به صورت رابطه ای بوده و در آن چندین جدول با ارتباطات خاص با یکدیگر ایجاد می شوند. برخی از دستوراتی که در این ساختار استفاده می گردند عبارتند از:
select: برای بازیابی اطلاعات استفاده می شود.
union: برای ترکیب نتایج یک یا تعداد بیشتر دستور select از آن استفاده می شود.
insert: برای اضافه نمودن داده استفاده می شود.
update: برای تغییر در داده های موجود استفاده می شود.
delete: برای حذف داده ها استفاده می شود.
دستور زیر نمونه ای از استفاده select در پایگاه داده می باشد:
select user, password from customers where user=’admin’;
دستور بالا، ستون های نام کاربری و کلمه عبور از جدولی با نام customer در جایی که نام کاربری برابر با admin می باشد را نمایش می دهد.
Setting a MySQL Password
در ابتدا قصد داریم تا کلیه کاربرانی که در mysql وجود دارند را مشاهده نماییم. بدین منظور از دستور زیر استفاده می کنیم:
Select user, host , password from mysql.user;

همانطور که در تصویر بالا مشاهده می کنید، کاربر کلمه عبوری برای کاربر root تنظیم نشده است. در ادامه قصد داریم تا برای این نام کاربری، یک کلمه عبور تنظیم نماییم. بدین منظور ابتندا باید پایگاه داده مورد نظر را انتخاب نماییم.
برای مشاهده لیست پایگاه داده موجود در mysql از دستور زیر استفاده می نماییم:
show database;

به صورت پیش فرض سه پایگاه داده در Mysql تعریف شده است که دو پایگاه داده information_schema و performance_schema برای موارد مدیریت بوده و ما از آن ها استفاده نمی کنیم. در این جا برای تنظیم کلمه عبور می بایست از پایگاه داده mysql استفاده نماییم.
برای این منظور بوسیله دستور زیر، این پایگاه داده را فراخوانی می نماییم:
use mysql;
پس از فراخوانی پایگاه داده mysql و اتصال به آن بوسیله دستور بالا، برای تنظیم کلمه عبور برای آن، از دستور زیر استفاده می نماییم:
update user set password = PASSWORD(“hackers-arise”) where user = ‘root’;
در دستور بالا به جای عبارت hackers-arise، شما می توانید کلمه عبور مورد نظر خود را وارد نمایید.
Accessing a Remote Database
در برخی از موارد شما نیاز دارید که از راه دور به یک پایگاه داده متصل شوید. بدین منظور باید در ادامه دستورات اتصال به پایگاه داده، آدرس IP مقصد را نیز وارد نمایید:
mysql -u root -p 192.168.1.100
توجه داشته باشید که کاربر root در mysql به صورت پیش فرض دارای کلمه عبور نمی باشد و شما باید پیش از هر کاری، با دستوراتی که در بخش پیشین به آن اشاره کردیم، کلمه عبور مناسبی را برای کاربر root تنظیم نمایید.
Database Tables
یکی از مواردی که باید به آن توجه داشته باشید، مشاهده جداول یک پایگاه داده می باشد. برای مشاهده جداول یک پایگاه داده ابتدا باید پایگاه داده مورد نظر را با دستور use انتخاب نموده و با دستور show tables، لیست جداول آن را مشاهده نمایید:

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

در دستور بالا اطلاعات مربوط به جدول host در پایگاه داده mysql نمایش داده شده است.
Examining the Data
به منظور استخراج اطلاعات جداول، از دستور select استفاده می شود. در دستور select شما نیاز به نام جدول مورد نظر و نام ستون های آن دارید. ساختار کلی این دستور به صورت زیر می باشد:
Select columns from table
همچنین شما برای مشاهده کلیه ستون های جدول مورد نظر می توانید به جای نوشتن نام کلیه ستون های آن، از ستاره استفاده نمایید.