جاسوسِ خاموش شبکه
وقتی شبکه خودش دهنلقه، راضی نیستیم بخدا!
👽ببین رفیق، تو دنیای شبکه یه پروتکل داریم به اسم SNMP (یا همون Simple Network Management Protocol) که روی پورت UDP 161 میشینه. کارش چیه؟ کارش مدیریت و نظارت بر دستگاههای شبکه است؛ از روتر و سوییچ گرفته تا سرور و پرینتر و حتی این دستگاههای IoT جدید.
👀این پروتکل مثل یه مدیر داخلیه که هی میره به کارمندا (دستگاهها) سر میزنه و میگه: “چطوری؟ رم کم نیاوردی؟ سیپییو داغ نکرده؟ کی بهت وصله؟”.
🥸حالا داستان ترسناک کجاست؟ اگه این مدیر داخلی رو درست توجیه نکرده باشن (کانفیگ غلط)، هر غریبهای (هکر) میتونه بیاد ازش سوال بپرسه و اونم صاف و پوستکنده کل اطلاعات محرمانه شبکه رو میذاره کف دستش! این یعنی SNMP Enumeration.
🤐قفلهای شیشهای:
نسخههای SNMP و Community Strings
کلاً ما سه تا نسخه اصلی از SNMP داریم که دونستنشون حیاتیه:
- SNMPv1 و SNMPv2c (پیرمردهای پرحاشیه): اینا خیلی رایجن ولی امنیتشون در حد صفره! چرا؟ چون از یه چیزی به اسم Community String استفاده میکنن که مثل رمز عبور عمل میکنه ولی یه بدی بزرگ داره: اطلاعات رو رمزنگاری نمیکنه (Plaintext).
- معمولاً دو تا رشته معروف داریم:
public: دسترسی فقط خواندنی (Read-only).private: دسترسی خواندن و نوشتن (Read-write) -> این یعنی فاجعه!- اگه ادمین شبکه تنبلی کرده باشه و اینا رو عوض نکرده باشه، هکر با یه “سلام” (public) وارد میشه.
- SNMPv3 (نسخه عاقل): این نسخه امنیت داره، رمزنگاری داره و احراز هویت میکنه. اما متاسفانه هنوز خیلی از شبکهها روی همون نسخههای قدیمی موندن.
🤷♂️چی گیرمون میاد؟ (گنجینه اطلاعات)
اگه بتونیم SNMP رو Enumerate کنیم، عملاً نقشه شبکه رو داریم:
- نام و IP دستگاهها: کی کجاست و اسمش چیه.
- تنظیمات شبکه: جداول مسیریابی (Routing Tables)، اینترفیسها و وضعیت پورتها.
- اطلاعات سیستمعامل: دقیقاً چه ورژنی از ویندوز یا لینوکس نصبه (خوراک پیدا کردن اکسپلویت).
- منابع سیستم: چقدر رم و CPU داره مصرف میشه.
- لیست نرمافزارها: چه سرویسهایی در حال اجرا هستن.
👻جعبهابزار هکرها (دستورات و ابزارهای Enumerate)
خب بریم سراغ اصل مطلب. فرض کن یه IP داریم (<target-IP>) و میخوایم ببینیم روی پورت ۱۶۱ چه خبره.
۱. آچار فرانسه شبکه: Nmap
اول ببینیم پورت بازه یا نه و بعدش اطلاعات بکشیم بیرون. چون UDP هست، سوییچ -sU یادمون نره.
الف) اسکن اولیه پورت:
nmap -sU -p 161 target-IP
ب) استخراج اطلاعات با اسکریپتهای Nmap:
انمپ یه سری اسکریپت آماده داره که عالی عمل میکنن:
nmap -sU -p 161 –script snmp-info,snmp-interfaces,snmp-netstat target-IP
snmp-info: شناسنامه دستگاه (اسم، مکان، نسخه).snmp-interfaces: کارتهای شبکه و وضعیتشون.snmp-netstat: کی به کی وصله (اتصالات شبکه).
۲. قدمزدن در شبکه: snmpwalk
این ابزار کلاسیکترین روش برای خوندن دیتابیس مدیریتی (MIB) دستگاههاست. با فرض اینکه رمز public باشه:
snmpwalk -v 2c -c public target-IP
این دستور کل درخت اطلاعات (OIDs) رو برات لیست میکنه. یه خروجی طولانی ولی پرملات!
۳. چکاپ کامل: snmpcheck
این ابزار خروجی رو خیلی تمیز و دستهبندی شده بهت میده (اطلاعات سیستم، یوزرها، شیرها و…):
snmpcheck -t target-IP -c public
۴. سریع و خشن: onesixtyone
اگه میخوای سریع بفهمی Community String چیه، این ابزار عالیه. یه فایل تکست پر از پسوردهای احتمالی (community-strings-file) بهش میدی و اون تست میکنه:
onesixtyone -c <community-strings-file> target-IP
اگه چیزی پیدا کنه، همون لحظه نشون میده.
۵. فریمورک متاسپلویت (Metasploit)
متاسپلویت هم ماژولهای اختصاصی داره که کار رو راحت میکنه. کنسول msfconsole رو باز کن و بزن:
use auxiliary/scanner/snmp/snmp_enum
set RHOSTS target-IP
set COMMUNITY public
run
این ماژول یه گزارش شسته و رفته از سیستمعامل و اینترفیسها تحویلت میده.
مراحل عملیاتی (از صفر تا صد)
- شناسایی: اول ببینیم پورت ۱۶۱ بازه؟
nmap -sU -p 161 target-IP
۲. شکار رمز (Community String): با ابزاری مثل onesixtyone یا تست دستی با snmpwalk ببینیم رشتههای پیشفرض مثل “public” یا “private” کار میکنن یا نه.
۳. جارو کردن اطلاعات: حالا که رمز رو داریم، با snmpwalk یا snmpcheck کل اطلاعات رو میریزیم بیرون.
snmpwalk -v 2c -c public target-IP
- تحلیل: دنبال نسخههای قدیمی نرمافزار یا کانفیگهای ضعیف میگردیم تا حمله نهایی رو طراحی کنیم.
⚡خطرات و حملات بعدی
- SNMP Brute Force: تست کردن هزاران کلمه برای پیدا کردن Community String.
- SNMP Reflection Attack: استفاده از دستگاه قربانی برای حمله DDoS به بقیه (چون UDP هست و راحت جعل میشه).
- Information Disclosure: افشای اطلاعات حیاتی که مسیر نفوذ رو هموار میکنه.
👅دیوارهای دفاعی (چطور امنش کنیم؟)
- خاموشش کن: اگه بهش نیاز نداری، کلاً سرویس SNMP رو غیرفعال کن. سری که درد نمیکنه دستمال نمیبندن!
- کوچ به ورژن ۳: حتماً از SNMPv3 استفاده کن که رمزنگاری و احراز هویت داره.
- تغییر رمزهای پیشفرض: توروخدا
publicوprivateرو عوض کن! یه چیز سخت بذار. - فایروال: دسترسی به پورت ۱۶۱ رو محدود کن به IP سرور مانیتورینگ خودت. نذار کل دنیا ببیننش.
- مانیتورینگ: لاگها رو چک کن. اگه دیدی یکی داره زیاد از حد درخواست SNMP میفرسته، بلاکش کن.