رفتن به مطلب
انجمن تیم امنیتی گارد ایران

ارسال های توصیه شده

بدون هیچ مقدمه ای ، من اینطور فکر میکنم که SNMP یک پروتکل مدیریتی بسیار آسیب پذیر است

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

( این دستگاه ها میتوانند روتر ها ، سوئیچ ها ، پرینت سرور ها و یا سرور های لینوکسی و ویندوزی باشند )

 

هسته اصلی SNMP مجموعه ساده ای از اَعمال است که به مدیران شبکه ها توانایی تغییر
در محدوده ابزارهایی که بر پایه این پروتکل کار می کنند را، فراهم می کند. همچنین امکان
اداره کردن، بازبینی و پشتیبانی از شبکه های کامپیوتری دور یا محلی که بر اساس TCP/IP کار میکنند، میسر می شود

و در واقع راهی به منظور یافتن اطلاعات وضعیت شبکه است.

در این جا مثالی از کارکرد SNMP را به منظور درك بهتر بیان می کنیم:

 

تصور کنید شبکه ای از 100 نوع ماشین داریم که سیستم عامل های مختلفی روی آن اجرا می شوند. برخی از ماشین ها سرور های
ذخیره فایل هستند، تعداد کمی هم پرینت سرور می باشند . یکی دیگر نرم افزاری اجرا می کند که به شرح معاملات کارت اعتباری
رسیدگی می کند و بقیه کارهای پرسنلی انجام می دهند. علاوه بر این چندین سوئیچ و روتر به کارکرد شبکه کمک می کند. یک
مدار به نام T1 شرکت را به اینترنت وصل می کند و یک ارتباط خصوصی برای سیستم تایید کارت اعتباری اجرا می شود. در این جا
اگر سرور های ذخیره فایل در ساعات غیر کاری خراب شوند، مشکلات زیادی را به دنبال خواهد داشت. اگر مشکل سخت افزاری
باشد، مشکل به راحتی رفع خواهد شد. اما میلیون ها تومان از فروش شرکت از دست خواهد رفت. همچنین اگر مدار T1 در اینترنت از
کار بیفتد، مقدار زیادی از درآمد حاصل از فروش سایت شرکت را تحت تاثیر قرار می دهد. اینجاست که SNMP می تواند به ما حتی

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

 

این پروتکل در ویرایش های 1 و 2 خود مشکلات امنیتی زیادی دارد . معمولاْ مدیران شبکه آشنایی زیادی با این ضعف ها ندارند و
نمیتوانند به خوبی آن ها را برطرف کنند. این ضعف در پیکربندی یکی از راه هایی است که ما برای جمع آوری اطلاعات از آن
استفاده میکنیم . این پروتکل در مجموع دارای دو متد بسیار مهم می باشد متد SET و GET . ما با استفاده از متد SET جهت
اعمال تنظیمات و توسط متد GET جهت دریافت اطلاعات استفاده میکنیم .

 

px4Fw.jpg

 

هر Device تحت شبکه که پروتکل SNMP را پشتیبانی می کند ، یک سری شماره OID های مربوط به خود رو دارد

که متشکل از یک سری عدد است که در صورت فراخوانی ، در اصل دستوری را اجرا می کنند ، مثلا زمانی که
به کمک این پروتکل میخواهید یک روتر ( مسیر یاب ) سیسکو را از راه دور ریستارت کنید ، شما بایستی با متد SET
مقدار OID را به (1.3.6.1.4.1.9.9.48.1.1.1.6.1 ) سِت کنید .این اطلاعات در داخل یک پایگاه داده به نام MIB ها قرار دارند.

 

NRmea.jpg

 

مرجع ها یا RFC های مخصوص این پروتکل موجود در 3 نسخه ارائه شده است

که اولین نسخه از آن در RFC1157 معرفی شده است. امنیت در این نسخه از پروتکل پایین است

و با کلمه عبور می توان با آن ارتباط برقرار کرد. فرق اصلی ویرایش 1 تا 3
در برقراری ارتباط و امنیت آن است . در ارتباط با این پروتکل کلمه ارتباطی را در اصطلاح متداولش

( Community String ) یا رشته ارتباطی  می نامند که یکی از چهار نوع دست رسی زیر را برای کنترل تجهیزات به ما میدهند :

 

دسترسی خواندن ( Read ) : با این فرمان NMS56 تجهیزات مدیریت شده را مانیتور میکند

 

دسترسی نوشتن ( Write ) : با این فرمان NMS تجهیزات مدیریت شده را کنترل می کند و میتواند مقادیرذخیره شده در تجهیزات مدیریت شده را تغییر می دهد

 

دسترسی ( Trap ) : با این فرمان تجهیزات کنترل شده به صورت غیر هم زمان رخدادها را برای NMS گزارش میکنند. در
واقع وقتی واقعه ای رخ می دهد به ازاءهر رخداد یک trap از طرف تجهیزات کنترل شده به سمت NMS ارسال می گردد..

 

( Traversal operation ) : با این فرامین پیمایشی ، NMS تصمیم می گیرد کهکدام یک ازمتغییرهای یک تجهیز مدیریت
شده ،پشتیبانی شود. و بصورت متوالی اطلاعات را در داخل جداول متغییرها جمع آوری می کند ( مانند جدول مسیریابی )

 

اینجا پاشنه آشیل پروتکل snmp است . یعنی با استفاده از کلمه های ارتباطی ( رمز ) های پیش فرض به دستگاه های شبکه متصل شده
و اطلاعات مهم را بیرون بکشیم و یا با استفاده یک sniff ساده ، نفوذگر میتواند درخواست های SNMP موجود در شبکه را
Capture ( ذخیره ) کند و با کمی دانش شبکه تنظیمات یک router یا switch را تغییر دهد

 

در این بخش ما SNMP های 1 و 2 و را شرح میدهیم . SNMP مبتنی بر پروتکل UDP است و بدلیل ضعف ذاتی پروتکل UDP
که همانا بدون تایید هویت و عملیات دست تکانی سه مرحله ای است ، همیشه در خطر حملاتی مانند IP Spoofing می باشد.

خوب ، ابتدا توسط ابزار nmap  به دنبال پورت های udp با شماره 161 میگردیم و با استفاده از
بخش اسکریپت های آن در اهدافی که SNMP در آنها فعال است به دنبال community string های پیش فرض میگردیم :

 

در common.txt پرکاربردترین رشته های ارتباطی را قرار داده و به برنامه معرفی نموده ایم . بعد از اسکن یک سرور لینوکسی پیدا
کردیم . حال باید با ابزار هایی که توانایی صحبت با این پروتکل را دارند با آن ارتباط برقرارکنیم . ابزار های موجود در Backtrack
نظیر snmpwalk ، snmpenum و ... ابزار های خوبی هستند ، اما واقعیت آن است که باید از ابزاری برای بیرون کشیدن اطلاعات
استفاده کنیم که خود ابزار مدیریت شبکه باشد ، همانند ابزار نام آشنای toolset Solarwinds ، که بر پایه استفاده از پروتکل
snmp برای مدیریت شبکه تهیه گردیده است این ابزار با سابقه طولانی و پشتیبانی از تمامی پروتکل های SNMP ویرایش 1 و 2 و 3
 تهیه گردیده است ، اما شیطنت نویسندگان آن باعث شده تا یک ابزار حمله واقعا عالی برای نفوذ به این پروتکل و جمع آوری اطلاعات شود

 

SNMP-Dictionary-Attack ، توسط آن میتوانید با استفاده از یک سری دیکشنری هایی که از قبل به برنامه داده شده
است ، همانند قبل کلمه های ارتباط را مورد امتحان و خطا قرار دهید
IP-Network-Browser برای جستجوی سریع snmp ها در یک محدوده IP از لحاظ تست کلمات ارتباط پیشفرض و
نمایش اطلاعات بسیار مفید این پروتکل در دسته بندی های مشخص .

MIB-Browser ، این برنامه تمامی دیتابیس MIB مربوط به پروتکل را برایتان بیرون میکشد ، در این برنامه آدرس های
OID پیش فرض بسیاری از تولید کنندگان سخت افزار و نرم افزار قرار دارد . و ده ها ابزار مربوط به این نوع حملات 

 

در اینجا ابزار IP-Network-Browser را برای گرفتن اطلاعات محدوده IP داده شده به برنامه برای کشف snmp ها را معرفی میکنیم

 

N0yfT.jpg

 

ابتدا از طریق گزینه new محدوده IP را برای ابزار تعیین میکنیم ، سپس طبق آنچه در تصویر بعد ملاحظه میکنید ، کلمات ارتباط
پیشفرض همانند private و public و. . . را به برنامه داده و اسکن را شروع میکنیم . در شکل بالا ابزار یک سیستم عامل ویندوز
2003 را با community string = private یافته و اطلاعات زیر را از آن بیرون کشیده است :

 

rgogf0b2xh3vq1e459pc.jpg

 

شماره 1 : نام کارتهای شبکه و تولید کنندگاه آن و IP آدرس هر کارت .

 

XyRho.jpg

 

 

شماره 2 : سرویس هایی که در آن سیستم در حال اجرا هستند

( توسط این سرویس ها میتوان به نام آنتی ویروس فایروال و ده ها – مورد امنیتی دیگر که برای ما اهمیت دارند رسید )

 

شماره  3: قسمت مهم و حیاتی ای همانند نام های کاربری که درداخل سیستم وجود دارند .

 

y1iecd77uqm4g61aio.jpg

 

شماره 4 و 5 : نام فایل ها و پرینتر های به اشتراك گذاشته شده .

 

vnhiu4vlg3zk3tlg6it.jpg

 

شماره 7 و 6 : اطلاعات مربوط به Route Table ها که سیستم به آنها route دارد .

 

rgogf0b2xh3vq1e459pc.jpg

 

 نحوه وارد کردن Community String هایی را که میخواهیم در یک محدوده IP برای ماشین هایی که پروتکل SNMPرا سرویس دهی میکنند تست شود

 

600ceak2pur3ljtontsj.jpg

 

 

ویرایش 3 از این پروتکل که دارای کلمه عبور و نام کاربری بوده و ارتباط امن تری برقرار می کند ، به دلایل مختلفی از جمله تنبلی
مدیران و نیز پشتیبانی نشدن توسط بسیاری از ابزار های مهم NMS ، تقریبا بدون استفاده مانده است . البته محققان امنیتی در کنفرانس
BlackHat سال 2007 اعلام کردند که در صورت فراگیر شدن این پروتکل مشکلات امنیتی فراوانی را رونمایی خواهند کرد

 

با تشکر از همه ی دوستان ...

 

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

برای ارسال دیدگاه یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید دیدگاهی ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در سایت ما ثبت نام کنید. عضویت خیلی ساده است !

ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید

ورود به حساب کاربری

انجمن تیم امنیتی گارد ایران

تیم امنیتی گارد ایران یک گروه مستقل است که قوانین آن با خط مشی جمهوری اسلامی ایران مغایرت ندارد. تیم امنیتی گارد ایران از سال 1393 فعالیت خود را آغاز کرد و هدف این تیم تامین امنیت سایت ها و سرورهای ایرانی است. تیم ما همیشه برای دفاع از مرزهای سایبری سرزمین عزیزمان ایران آماده است.

شبکه های اجتماعی

×
×
  • اضافه کردن...