اموزش به صورت ویدیو:

هر برنامه که اجرا شود تبدیل به یک پراسس در حافظه می شود.

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

 

  1. چه برنامه هایی در حافظه هستند و هر قسمت از ps aux چه معنایی دارد؟

ps

ps aux

USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

RSS is the Resident Set Size and is used to show how much memory is allocated to that process and is in RAM. It does not include memory that is swapped out. It does include memory from shared libraries as long as the pages from those libraries are actually in memory. It does include all stack and heap memory.

VSZ is the Virtual Memory Size. It includes all memory that the process can access, including memory that is swapped out, memory that is allocated, but not used, and memory that is from shared libraries.

ps aux | grep ssh

ps -f –forest -C qterminal

top

  1. وضعیت منابع سیستم چطور چک کنیم؟ چقدر خالی چقدر مصرف شده است ؟

htop

تغییر در الویت مصرف منابع پراسس

nice -n 10 /bin

htop

اگر در htop دیسک ما مصرفش بالا بود چطور دلیل پیدا کنیم؟

وضعیت استفاده پراسس ها از دیسک

iotop

 

وضعیت خواندن و نوشتن پراسس ها روی دیسک

sudo pidstat -dl 20

 

لیست سوکت هایی موجود روی لینوکس

sudo ss -tupn

لیست تمامی فایل های باز روی سیستم عامل

sudo lsof | grep qterminal

همچنین میشه فهمید چه پراسس داره الان از پورت 11 استفاده میکنه

lsof -i :11

 

  1. لیست سرویس هایی که ران هستند ؟ لیست سرویسهایی که اتومات شده اند؟

لیست سرویس ها که enable شده اند روی لینوکس

systemctl list-unit-files | grep enabled

find /etc/systemd/system/ /usr/lib/systemd/system/ -mtime -1

 

  1. لیست سوکت هایی که توسط پراسس ها فعال هستند؟

netstat -vatn

netstat -vaun

lsof -i :11

  1. چطور پراسس متوقف کنم یا اصطلاحا kill کنم؟

Man kill

kill -1

kill -9

SIGHUP 1 This is known as the Hangup (HUP) signal. It stops the designated process and restarts it with the same PID.

 

SIGINT 2 This is the Interrupt (INT) signal. It is a weak kill signal that isn’t guaranteed to work, but it works in most cases.

 

SIGQUIT 3 This is known as the core dump. It terminates the process and saves the process information in memory, and then it saves this information in the current working directory to a file named core. (The reasons for doing this are beyond the scope of this book.)

 

SIGTERM 15 This is the Termination (TERM) signal. It is the kill command’s default kill signal.

 

SIGKILL 9 This is the absolute kill signal. It forces the process to stop by sending the process’s resources to a special device, /dev/null.

 

pkill firefox

pkill -f “Process name”

killall -s KILL firefox

kill -9 $(pgrep -f qterminal)

ps ax | grep qterminal | grep -v grep | awk ‘{print $1}’ | xargs kill

 

 

  1. وقتی به سرورم ssh میزنم برنامه را باز می کنم هنگامی ssh من قطع میشه برنامه kill میشه چطور در حافظه نگه اش دارم bg,fg tmux

در هنگام پن تست یا حتی کار با سرور گاهی پیش می آید که اسکریپت را می خواهیم ران کنیم و حتی اگر ssh قطع شد به کارش ادامه دهد که اصطلاحا می گوییم می خواهیم اسکریپت را در background ران کنیم پس &  و همچنین nohup را بررسی می کنیم.

leafpad &

jobs

fg %1

bg  %1

همچنین یکی از ابزارهای پرکاربرد که شما در پروژه های پن تست به آن نیاز پیدا می کنید ابزار tmux هست ما با استفاده از tmux میخواهیم چندین تا تب ssh در بکگراند داشته باشیم که به صورت موازی یک سری اسکریپت را برای ما ران کنند و با قطع شدن ssh   ما از کار نیافتند.

tmux new -s “scanning”

tmux ls

ctrl + B  – D

tmux attach -t ” scanning ”

 

 

  1. چطور برنامه ها به صورت خودکار اجرا کنم در حافظه؟ crontab و at

Crontab -e

* * * * * every minute run

نحوه برنامه ریزی یا زمان بندی کردن اجرای یک برنامه در حافظه با استفاده از at

at 7:20am at >/root/myscanningscript

 

 

 

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

خیلی شایع هست سرورهای لینوکسی که هک می شند روش بدافزار ماینر باشه ما باید ابتدا پراسس پیدا کنیم بعد بگردیم ببینیم سرویسش چی هست و در اخر سرویس فایل هاش پاک کنیم اما پیدا کردن فایل هاش خیلی سخته چون معمولا هر چند ثانیه میان تو حافظه اگرم ببندیمش اسمش عوض میکنه اسم فایل عوض میشه

اولین کاری که باید بکنیم اینکه ببینیم چه پراسس هی داره فایل میسازه و بعد رانش می کنه

sudo apt-get -y install auditd

sudo auditctl -w /usr/bin/qterminal -p wa

sudo systemctl enable auditd.service

sudo ausearch -f /usr/bin/qterminal

 

 

 

for user in $(cut -f1 -d: /etc/passwd); do sudo crontab -u $user -l 2>/dev/null | grep -v ‘^#’; done

grep ‘*’ –color /etc/anacrontab /var/spool/cron/crontabs/* /var/spool/cron/* /etc/cron.hourly/* /etc/cron.daily/* /etc/cron.weekly/* /etc/cron.monthly/* /etc/cron.d/* /etc/init.d/down 2>/dev/null

 

وقتی هکری از سیستم دسترسی میگیره بکدور میزاره میشه با کامند زیر فهمید چه تغییراتی در فایل ها باینری کامندها کردند:

find /bin/ -mtime -1

find / -mtime 50

find / -atime 50

find / -mtime +50 -mtime -100

 

پیدا کردن فایل هایی که پرمیشن ها تغییر کرده

find / -cmin -60

 

 

وقتی سرویس مشکوک پیدا کردید و بخواین پاک کنید به خاطر اینکه +i زده روش نمی تونید پاک کنید

sudo chattr -ai FILE

systemctl disable malware.service