شمارش معکوس کاربران لینوکس
نقابها رو بردار؛ ببین کی تو سیستم قایم شده!
🕵️♀️امروز میخوایم بریم سراغ یکی از بحثهای جذاب توی دنیای لینوکس و تست نفوذ، یعنی Linux User Enumeration. به زبون ساده، این کار یعنی اینکه آمار بگیریم ببینیم چه کسانی توی سیستم یا شبکه وجود دارن، اسمشون چیه، عضو چه گروههایی هستن و کلاً چه خبره. این اطلاعات برای یک ادمین شبکه حیاتیه و برای یک هکر (کلاه سفید البته!)، حکم طلا رو داره.
بریم ببینیم چطور میتونیم ته و توی یوزرهای لینوکس رو دربیاریم.
😈۱. کلید اول: فایلهای سیستمی (گنجینهی اطلاعات)
اولین جایی که باید چک کنیم، خودِ فایلهای اصلی لینوکسه. لینوکس خیلی رو بازی میکنه و اطلاعات کاربری رو توی فایلهای متنی نگه میداره.
🔖فایل etc/passwd/ (دفترچه تلفن عمومی)
این فایل اطلاعات کلی کاربرها رو داره و معمولاً همه میتونن بخوننش. با دستور cat یا less بازش کنید:
cat /etc/passwd
چی میبینیم؟ هر خط مال یه کاربره و شامل نام کاربری، شناسه کاربر (UID)، شناسه گروه (GID) و مسیر دایرکتوری خانگی (Home Directory) میشه.
🔖فایل etc/shadow/ (گاوصندوق رمزها)
اینجا جای حساس ماجراست! هش پسوردها اینجاست و فقط یوزر root (مدیر کل) میتونه بازش کنه.
sudo cat /etc/shadow
چی میبینیم؟ نامهای کاربری به همراه هش رمز عبورشون. اگه دسترسی روت داشتید و این فایل رو خوندید، یعنی نصف راه نفوذ رو رفتید!
۲. دستورات لینوکسی: استخراج تمیز اطلاعات
خوندن فایلهای متنی شلوغ شاید سخت باشه، پس بیاید با دستورات لینوکس اطلاعات رو شسته و رفته بکشیم بیرون.
🔖دستور cut (قیچی کردن نامها)
اگه فقط لیست نامهای کاربری رو میخواید و بقیه اطلاعات اضافه رو نمیخواید، از cut استفاده کنید تا ستون اول فایل پسورد رو براتون جدا کنه:
cut -d: -f1 /etc/passwd
🔖دستور getent (پرسوجو از دیتابیس)
این دستور خیلی حرفهایتره و لیست کاربران رو مستقیماً از دیتابیس سیستم میگیره:
getent passwd
😈۳. گروهبندیها: کی با کیه؟
دونستن اینکه کی عضو چه گروهیه خیلی مهمه (مثلاً کی عضو گروه sudo یا admin هست).
🔖فایل etc/group/
لیست تمام گروهها و اعضاشون اینجاست:
cat /etc/group
🔖دستور getent group
مشابه قبلی، اینم لیست گروهها رو بهتون میده:
getent group
😈۴. ابزارهای خودکار Enumeration
گاهی وقتا حال و حوصله دستور دستی نداریم یا میخوایم یه اسکن عمیقتر انجام بدیم. اینجا ابزارها به دادمون میرسن.
🔖ابزار enum4linux
اگه هدفتون یه سرور Samba هست، این ابزار عالیه. قشنگ میره یوزرها و گروهها رو میکشه بیرون:
enum4linux -u target_ip
ابزار linPEAS
این یه اسکریپت فوقالعادهست که نه فقط یوزرها، بلکه کلی اطلاعات دیگه برای ارتقاء سطح دسترسی (Privilege Escalation) بهتون میده. اسمش رو همیشه یادتون باشه.
😈۵. کارآگاهبازی: بررسی دسترسیها و لاگها
🔖چک کردن Home Directory
با دیدن اینکه چه کسایی پوشه خانگی دارن، میتونید بفهمید چه یوزرهای واقعیای توی سیستم هستن:
ls -l /home
🔖لاگهای سیستم (ردپای دیجیتال)
همیشه لاگها رو بخونید! فایلهای لاگ معمولاً توی /var/log/ هستن. مثلاً فایل auth.log نشون میده کی سعی کرده لاگین کنه:
cat /var/log/auth.log
۶. دستورات شبکهای و قدیمی (Old School)
این بخش خیلی جذابه. یه سری دستورات هستن که نشون میدن کی الان آنلاینه یا تو شبکه فعاله.
🔖دستور rusers (کیا آنلاینن؟)
این دستور لیست یوزرهای متصل به سیستمهای شبکه رو نشون میده. (حواستون باشه که به سرویس RPC نیاز داره و شاید پیشفرض نصب نباشه).
حالت ساده:
rusers
آپشنها:
- نمایش با جزئیات بیشتر (زمان ورود و نام هاست):
rusers -l
نمایش IP به جای اسم هاست (خیلی به درد بخوره):
rusers -n
زورکی! (Force – حتی اگه شبکه مشکل داشته باشه تلاشش رو میکنه):
rusers -f
🔖دستور rwho (کی کجاست؟)
اینم مشابه قبلیه و اطلاعاتی مثل نام کاربر، نام میزبان و زمان ورود رو میده. اینم به RPC وابسته است.
حالت ساده:
rwho
آپشن:
نمایش همه (حتی کاربرای غیرفعال که مدتیه کاری نکردن):
rwho -a
🔖دستور finger (انگشتنگاری کامل!)
این دستور کلاسیکه و جزئیات خیلی دقیقی از کاربر میده (البته اگه نصب باشه و ادمین نبسته باشه).
حالت ساده (همه کاربرها):
bash
finger
برای یک کاربر خاص:
bash
finger username
آپشنها:
- فرمت طولانی و کامل (Long):
finger -l
فرمت کوتاه (Short – فقط نام و زمان ورود):
finger -s
بدون توجه به حروف بزرگ و کوچک (Modify):
finger -m username
بدون نمایش فایلهای برنامه یا پیام شخصی (No Plan):
finger -p