مدیریت پروسه ها در لینوکس (لینوکس برای هکرها – قسمت 8)

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

معمولا سیستم شما به‌طور هم‌زمان صدها پروسه را اجرا می‌کند. لینوکسی‌ها از پروسه‌های سیستم به عنوان دیمون‌ها (demons) یا شیاطین نام می‌برند، زیرا تقریبا در انتهای نام پروسه‌ها کلمه «d» وجود دارد. مانند httpd، که پروسه سرویس http هست.

قبل از مطالعه این قسمت، مطمئن شوید که قسمت‌های قبلی سری آموزش لینوکس برای هکرهای اخلاقی را خوانده اید.

ابزار HTOP

HTOP ابزاری برای نمایش پروسه های باز سیستم است، البته به طور پیش فرض شما در لینوکس با دستور top میتوانید پروسس های سیستم را ببینید ولی ابزار HTOP این پروسس ها رو با جزییات بیشتری به شما نمایش میدهد. این ابزار برترین ابزار به منظور مدیریت process ها در لینوکس می باشد که با دستور زیر نصب می‌توانید آن را نصب کنید.

sudo apt install htop -y
htop

ابزار htop - مدیریت پروسه ها در لینوکس

این ابزار لیست برنامه های شما را نشان می دهد و شما می‌تواند با کلید f9 برنامه مورد نظرتان را متوقف کنید.

1- مشاهده کنید چه پروسه‌هایی اجرا می‌شوند

ما می‌توانیم تمام پروسه‌های موجود در سیستم را با دستور زیر ببینیم:

ps aux

دستور ps - مدیریت پروسه ها در لینوکس

این سوئیچ‌ها تمام پروسه‌ها (a)، کاربر (u) و پروسه‌هایی که با ترمینال (x) مرتبط نیستند را لیست می‌کند. این مجموعه سوئیچ موردعلاقه من برای استفاده از دستور ps است زیرا من را قادر به دیدن کاربری می‌کند که پروسه‌ای را اجرا کرده و مقدار زیادی از منابع را استفاده می‌کند.

توجه داشته باشید که هر پروسه لیست شده موارد زیر را نشان می‌دهد.

  • user – کاربر
  • PID (process identifier) – شماره پروسه
  • ‎%CPU
  • ‎%MEM – حافظه

اگر ما فقط می‌خواستیم همه پروسه‌ها را با اطلاعات کمتری ببینیم، می‌توانیم تایپ کنیم:

ps -A

دستور ps aux - مدیریت پروسه ها در لینوکس

شما می‌توانید تمام پروسه‌های در حال اجرا را ببینید، اما بدون اطلاعاتی مانند درصد CPU و درصد حافظه. توجه داشته باشید که airbase-ng با PID 3368 ذکرشده است و آخرین پروسه، دستور ps است.

شماره پروسه یا PID ها برای کار در لینوکس حیاتی هستند، زیرا شما اغلب برای مدیریت پروسه‌ها نیاز به PID دارید. همان‌طور که در برخی از آموزش‌های Metasploit من دیده می‌شود که اغلب PID در هک کردن سیستم‌های هدف دارای اهمیت می‌شود.

همچنین با استفاده از دستور به همراه grep و نام پروسه، می‌توانید پروسه موردنظر را پیدا کنید.

ps -A | grep firefox

2- دستور Top

دستور top نیز همانند دستور ps است، با این تفاوت که top تنها پروسه‌هایی که بیش‌ترین منابع را در آن زمان استفاده می‌کند نشان می‌دهد.

top

دستور top - مدیریت پروسه ها در لینوکس

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

مطالعه کنید  معرفی دسکتاپ های لینوکس

3- توقف پروسه‌ها

در مدیریت پروسه ها در لینوکس گاهی اوقات ما باید پروسه‌ها را متوقف کنیم. دستوری که ما استفاده می‌کنیم kill هست. این دستور خصوصاً زمانی مهم می‌شود که پروسه‌ای همچنان به اجرا و استفاده از منابع سیستم ادامه دهد حتی بعد از تلاش برای متوقف کردنش. این پروسه‌ها اغلب به عنوان “زامبی” شناخته می‌شوند.

به‌سادگی می‌توانیم با تایپ کردن kill به همراه PID پروسه، آن را متوقف کنیم. بنابراین برای پروسه airbase-ng می‌توانم به‌سادگی تایپ کنم:

kill 3368

دستور kill - مدیریت پروسه ها در لینوکس

می‌توانیم در تصویر بالا ببینیم که پروسه airbase-ng دیگر اجرا نمی‌شود.

انواع مختلفی از “kill” وجود دارد. kill پیش‌فرض (دستور kill بدون هیچ سوئیچی) که اجازه می‌دهد پروسه به‌آرامی متوقف شود.

گاهی اوقات پروسه‌ها همچنان حتی زمانی که از دستور kill پیش‌فرض استفاده شود، متوقف نمی‌شوند. در این مورد ما باید جدی‌تر شویم و از توقف قطعی برای انجام کار استفاده کنیم. برای این کار از سوئیچ kill -9 استفاده می‌کنیم.

kill درواقع یک سیگنال را به پروسه می‌فرستد. kill -l تمام سیگنال‌های موجود را نشان می‌دهد. شما خواهید دید که سیگنال 9 نیز SIGKILL نامیده می‌شود. بنابراین، این دو دستور معادل هم هستند:

kill -9 PID
kill -SIGKILL PID

علاوه بر kill شما همچنین می‌توانید از دستورات pgrep و pkill برای به سرعت پیدا کردن pid و یا متوقف کردن یک پروسه استفاده کنید. برای مثال، فرض کنید که telegram در پس‌زمینه در حال اجرا است، شما می‌توانید با pgrep telegram برای به دست آوردن pid آن یا pkill telegram برای توقف آن استفاده کنید.

pkill و pgrep ممکن است در سیستم‌های روتر، دستگاه‌های IoT یا تلفن‌های Android موجود نباشند.

یکی دیگر از ابزار جالب pstree است که خروجی را مثل یک درخت نشان می‌دهد که چه پروسه‌ای چه چیزی را ایجاد می‌کند.

4- تغییر اولویت پروسه

هر پروسه‌ای در لینوکس دارای شماره اولویت است. همان‌طور که احتمالاً حدس زده‌اید، این شماره اولویت هست که تعیین می‌کند کدام پروسه‌ بیشترین اهمیت از لحاظ استفاده از منابع سیستم را دارد. رنج شماره‌های اولویت از 0 تا 127 هست که 0 بالاترین اولویت و 127 کمترین هست.

مطالعه کنید  دستورات شبکه در لینوکس (لینوکس برای هکرها – قسمت 6)

به عنوان کاربر root یا مدیر سیستم، ما نمی‌توانیم اولویت یک پروسه را تعیین کنیم، این کار هسته است، اما ما می‌توانیم به هسته اشاره‌کنیم که ما می‌خواهیم یک پروسه با اولویت بالاتری اجرا شود. این کار را از طریق دستور nice انجام می‌دهیم. مقدار nice از ‎-20 تا ‎+19 هست که مقادیر پایین‌تر نشان‌دهنده اولویت بالاتر هستند.

ما می‌توانیم به ترتیب با استفاده از دستور nice، سوئیچ ‎-n، مقدار nice و سپس دستوری که می‌خواهیم اجرا کنیم، یک مقدار nice را برای پروسه‌ها را تعیین کنیم. بنابراین، اگر بخواهیم پروسه airbase-ng را از آموزش Evil Twin با بالاترین اولویت اجرا کنیم، می‌توانیم تایپ کنیم:

nice -n -20 airbase-ng -a AC:C1:EE:4E:F4:31 --essid "Redmi" -c 11 wlan0mon

بعدها، اگر ما احساس کردیم که می‌خواهیم اولویت دستور airbase-ng را کم کنیم، می‌توانیم آن را renice کنیم. به‌سادگی با تایپ دستور renice، سطح اولویت و PID پروسه این کار انجام می‌شود، مانند:

renice 15 3368

ما می‌توانیم ببینیم که با renice کردن airbase-ng اولویت آن را از ‎-20 (بالاترین) به 15 (نسبتاً کم) کاهش داده‌ می‌شود.

5- یک پروسه را در پس‌زمینه قرار دهید

احتمالاً در بعضی از آموزش‌های هک متوجه شده‌اید که هنگام اجرای دستورات در شل، آن پروسه کنترل شل را دربرمی گیرد تا زمانی که تکمیل شود. اگر این یک پروسه مداوم باشد، مانند airbase-ng، ترمینال را تا زمانی که ما آن را متوقف کنیم، مشغول می‌کند و تا آن زمان، ما نمی‌توانیم از این شل استفاده کنیم.

اگر ما بخواهیم از این شل استفاده کنیم، می‌توانیم این پروسه را به پس‌زمینه بفرستیم و سپس دوباره کنترل شل را به دست بگیریم. برای اجرای یک دستور در پس‌زمینه (background)، ما فقط باید دستور را با & تمام کنیم. بنابراین، برای اجرای airbase-ng در پس‌زمینه، ما به‌سادگی تایپ می‌کنیم:

airbase-ng -a AC:C1:EE:4E:F4:31 --essid "Redmi" -c 11 wlan0mon &

اگر بخواهیم کاری که به پس‌زمینه فرستادیم را به پیش‌زمینه (foreground) بیاوریم، به‌سادگی fg را تایپ می‌کنیم. برای فرستادن پروسه‌های پیش‌زمینه به پس‌زمینه، ما می‌توانیم Control+Z را بزنیم تا آن را متوقف کنیم و سپس با استفاده از دستور bg با PID آن را به پس‌زمینه بفرستیم.

امیدوارم این آموزش به شما در مدیریت پروسه ها در لینوکس کمک کند. مطمئن شوید که قسمت‌های قبلی سری آموزش لینوکس برای هکرهای اخلاقی را نگاه کردید و اگر سؤالی دارید، در نظرات زیر بپرسید.

برچسب‌ها:
معین کاردانی

در دنیای تست نفوذ می‌تونید به هرچیزی که فکرش را بکنید نفوذ کنید، فراموش نکنید تست نفوذ هک غیر قانونی نیست بلکه دانشی برای افزایش امنیت هست. پس قبل از هرچیز تکامل را اولویت قرار میدیم.

نوشته‌های مرتبط

قوانین ارسال دیدگاه

  • لطفا قبل از ارسال کامنت، از قسمت سرچ سوالتان را جستجو کنید شاید قبلا پاسخ داده شده باشد.
دیدگاه‌ها

*
*