-
Notifications
You must be signed in to change notification settings - Fork 0
Linux Basics for Hackers
یک سیستم عامل پل ارتباطی بین سخت افزار کامپیوتر (CPU,حافظه,دیسک,کارت های شبکه,...) و برنامه های کاربردی است. وظایف اصلی آن شامل مدیریت منابع,ارائه سرویس های پایه مثل فایل سیستم عامل, زمان بندی وظایف و ارائه واسطی برای اجرای برنامه های میشود. در دنیای هک, درک نحوه کارکرد سرویس های سیستم عامل(مانند مدیریت کاربران, دسترسی ها و فرآیندها) برای یافتن نقاط ضعف و اجرای حملات ضروری است.
هسته بهخش مرکزی و بحرانی سیستم عامل است که مستقیما با سخت افزار در تعامل است. وظایف کلیدی هسته عبارتند از:
- مدیریت حافظه: تخصص و آزادی سازی صفحات حافظه برای فرآيندها
- زمان بندی پردازش ها: تصمیم گیری دربارع اینکه کدام فرآيند چه زمانی برای سی پی یو اجرا شود
- درایورهای دستگاه: ارائه واسطی عمومی برای درایورهای مختلف مختلف (شبکه, دیسک, کارت گرافیک و...)
- سیستم فایل: پیاده سازی عملیات پایه روی فایل ها و دایرکتوری ها
در لینوکس، هستهٔ monolithic است؛ یعنی اکثر سرویسها (درایورها، سیستمفایلها و ...) داخل فضای هسته اجرا میشوند. این ساختار باعث میشود که یک نقص در هسته یا درایور میتواند دسترسی ریشه (root) را برای مهاجم فراهم کند، بنابراین شناخت ساختار و نقاط گسترشپذیری هسته برای هکرها بسیار مهم است.
نرم افزار مبنع باز به این معناست که کد منبع آن برای عموم در دسترس است و میتوان آن را مطالعه, تغییر و توزیع کرد(معمولا تحت یک مجوز مشخص). لینوکس یک پروژه اوپن سورس است. که ویژگی های زیر را به همراه دارد:
- شفافیت امنیتی: هرکسی میتواند کد را بررسی کند؛ بنابراین باگ ها و آسیب پذیری ها با سرعت بیشتری کشف میشوند.
- قابلیت سفارشی سازی: میتوانید هسته با توزیغ موردنظر را برای اهداف خاص (مثلا تست نفوذ یا ایجاد یک ابزار مخصوص) تغییر دهید.
- جامعه فعال« عزاران توسغه دهنده و محقق امنیتی در سراسر جهان به روز هستند و ابزارها, اسکریپت ها و تکنیک های جدیدی متنشر میکنند برای یک هکر یا متخصص امنیت, دسترسی به کد منیع لینوکس به معنای توانایی , درک دقیق عملکرد هر بخش, ساخت اکسپلولیت های خاص و حتی ایجاد ابزار های سفارشی است.
شب یک برنامه متنی است که نقش واسطه بین کاربر و هسته لینوکس را ایفا میکند. کاربر دستورات را به صورت خطی مینویسد و شل آن را به صورت سیستم-کال (system calls) یه هسته میفرستد. مهم ترین ویژگی های شل برای هکرها:
-
قابلیت اسکریپت نویسی: با نوشتن اسکریپتهای شل (بهخصوص Bash) میتوان عملیات تکراری، جمعآوری اطلاعات، یا اجرای خودکار اکسپلویتها را خودکار کرد.
-
دستورات قدرتمند: ابزارهای متنی مانند grep, sed, find, xargs و کانالگذاری (|) بهسرعت میتوانند داده را فیلتر، پردازش و ترکیب کنند.
-
تخصص مجوزها: با sudo, su یا setuid میتوان سطوح دسترسی را تغییر داد؛ فهم نحوهٔ کار این مکانیزمها برای ارتقای دسترسی بسیار حیاتی است.
-
محیط کاری: متغیرهای محیطی ($PATH, $HOME, $PWD و …) مسیر جستجوی دستورات را تعیین میکنند؛ تغییر آنها میتواند بهسودی یا بهضرر کارکرد برنامهها منجر شود.
در کالی، شل پیشفرض معمولاً Bash است، اما میتوانید از Zsh، Fish یا حتی شلهای خاص امنیتی مانند Dash استفاده کنید.
-
/bin برنامههای اساسی که برای تمام کاربران در زمان بوت لازم است (مثلاً ls, cp).
-
/sbin برنامههای سیستمی (مثل ifconfig, mount) که معمولا برای مدیران سیستم است.
-
/usr نرمافزارهای کاربری؛ زیرمجموعههای مهم: • /usr/bin – برنامههای کاربری عمومی. • /usr/sbin – ابزارهای مدیریتی غیر ضروری برای بوت. • /usr/local – نرمافزارهای نصبشده بهصورت دستی (بدون استفاده از بستهبند).
-
/etc فایلهای پیکربندی سامانه (مثلاً passwd, shadow, hosts).
-
/home پوشهٔ خانهٔ کاربران (مثلاً /home/user).
-
/root خانهٔ کاربر روت (دسترسی بالاترین).
-
/var دادههای متغیر (لاگها، کش، ایمیلها). زیرمجموعههای مهم: • /var/log – لاگهای سیستم (auth.log, syslog). • /var/www – ریشهٔ وبسرور (در صورتی که نصب شود).
-
/tmp فایلهای موقت؛ برای اکثر کاربران نوشتنی است؛ بعد از ریستارت پاک میشود.
-
/dev دستگاههای ویژه (مانند /dev/sda, /dev/null).
-
/proc سیستمفایل مجازی که اطلاعات زمانحقیقی دربارهٔ پردازشها و هسته را نشان میدهد (مثلاً - - /proc/cpuinfo, /proc/).
-
/sys اطلاعات و تنظیمات دستگاهها بهصورت درختی (بهخصوص برای مدیریت سختافزار).
-
/opt نرمافزارهای اختیاری نیافته به مخازن رسمی (مانند بستههای تجاری).
-
/lib /lib64 کتابخانههای مشترک مورد نیاز برنامهها و هسته.
-
/boot فایلهای بوت (کرنل، initrd، grub).
در کالی، بسیاری از ابزارهای تست نفوذ در مسیرهای /usr/share/ (مثلاً /usr/share/metasploit-framework, /usr/share/nmap) قرار دارند.
-
کاربر روت: کاربری با شناسه کابری 0 که بالاترین سطوح دسترسی دارد؛ میتواند هر فایلی را بخواند/بنویسد. هر فرآیندی را احرا یا متوقف و تنظمات سامانه را تفییر دهد.
-
حساب روت در کالی: در نسخههای جدید کالی بهصورت پیشفرض حساب روت غیرفعال است؛ برای دسترسی مدیریتی باید از sudo یا su استفاده کرد.
-
دستورات مرتظ: sudo – اجرای یک فرمان با دسترسیهای روت (اگر کاربر در گروه sudo باشد). su - – تعویض به حساب کاربری روت (در صورتی که رمز عبور روت را میدانید). sudo -i – باز کردن شل تعاملی روت. حفظ امنیت: استفاده مداوم از روت خطرناک است؛ هر خطایی میتواند بهسرعت بهخطر امنیت سامانه منجر شود. در تست نفوذ، معمولاً پس از بهدست آوردن دسترسی روت، ابتدا یک «پیشوندی» (persistency) یا بکدار ایجاد میشود و سپس سعی میشود دسترسیهای دیگر را ارتقا دهند. بهطور خلاصه، شل واسط خطی بین کاربر و هسته است، مسیرهای مهم سیستم نشانگر نقاط حساس برای جمعآوری اطلاعات یا دستکاری تنظیمات هستند، و روت کاربر با بیشترین سطوح دسترسی است که دسترسی به تمام بخشهای سامانه را فراهم میکند. شناخت عمیق این مفاهیم پایهای برای هر هکر یا متخصص امنیت لینوکس است.
- pwd (نمایش مسیر فعلی)
- cd (رفتن به مسیر دلخواه)
- cd .. (برگشت به پوشه قبلی)
- cd ~ (برگشت به home)
- ls لیست فایل ها( در پوشه ی که هستی))
- ls -l (لیست با حزییات کامل)
- ls -la (همه لیست ها + مخفی )
- ls -lh (سایز)
- mkdir (ساخت پوشه)
- mkdir -p a/b/c (ساخت تو در تو)
- rm file.txt (حذف فایل)
- rm -r folder (حذف پوشه)
- rm -rf folder (حذف اجباری)
- cp file1 ()
- cp -r dir1 ()
- mv file1 ()