[[{"content_id":440474,"content_number":0,"portal_id":184,"lang_id":"fa","content_title":"آسیب­ پذیری­های متداول ipmi","content_rtitr":"","content_short_title":null,"content_summary":"","content_summary_fill":0,"content_body":"ipmi (Intelligent Platform Management Interface)\r\n\r\n\r\n\r\nipmi&nbsp;(Intelligent Platform Management Interface)&nbsp;مجموعه&shy;ای از ویژگی&shy;ها است که امکانات مدیریتی و پایش اجزای سخت&shy;افزاری سیستم (مانند&nbsp;CPU،&nbsp;firmware&nbsp;و ...) و سیستم&shy;عامل را به طور جداگانه و مستقل فراهم می&shy;کند. این پروتکل بر اساس&nbsp;UDP&nbsp;است و از پورت شماره&nbsp;623&nbsp;استفاده می&shy;کند.\r\n\r\nاین ویژگی&shy;ها توسط شرکت اینتل فراهم شده است. در حال حاضر&nbsp;ipmi&nbsp;دارای دو نسخه&nbsp;1.5و&nbsp;2.0&nbsp;می&shy;باشد.&nbsp;&nbsp;ipmi&nbsp;مجموعه&shy;ای از واسط&shy;های کاربری را در اختیار مدیر شبکه قرار می&shy;دهد که با استفاده از آن&shy;ها می&shy;توان سیستم را مدیریت و عملکرد آن را پایش کرد.&nbsp;ipmi&nbsp;در واقع یک واسط کاربری می&shy;باشد که مدیر شبکه از طریق آن می&shy;تواند با&nbsp;BMC&nbsp;(Baseboard Management Controller)&nbsp;موجود بر روی سرور ارتباط برقرار کند. ارزش این کار زمانی مشخص می&shy;شود که سیستم&shy;عامل دچار اشکال شده و دسترسی به آن غیرممکن باشد. قبل از استقرار یک سرور، از طریق تنظیمات مربوط به&nbsp;BIOS&nbsp;، یک آدرس&nbsp;IP&nbsp;به&nbsp;BMC&nbsp;اختصاص می&shy;یابد و به محض خرابی سیستم، مدیر شبکه می&shy;تواند به راحتی از طریق این آدرس&nbsp;IP&nbsp;با سیستم معیوب ارتباط برقرار کند. تمام ارتباطات برای بازگرداندن سیستم به وضعیت عادی از طریق پروتکل&nbsp;ipmi&nbsp;انجام می&shy;شود. به عنوان مثال&nbsp;ipmi&nbsp;راهی برای مدیریت سیستمی که خاموش شده است و یا به اتصالات شبکه پاسخی نمی&shy;دهد (از نظر سخت&zwnj;افزاری)، در اختیار می&shy;گذارد.ipmi&nbsp;بدون توجه به سیستم&shy;عامل و دیگر نرم&shy;افزارها با سخت&shy;افزارهای سرور ارتباط برقرار می&shy;کند. مدیر شبکه با استفاده از&nbsp;ipmi&nbsp;می&shy;تواند از یک مکان چندین سرور را توسط رابط کاربری مناسب مدیریت کند. رخدادهای مهم سیستم برای هر سرور می&shy;توانند گزارش&shy;گیری شوند و تنظیمات برای هر ورودی و یا خروجی سیستم می&shy;تواند پایش و یا تغییر داده شود. همچنین می&shy;توان از طریق&nbsp;ipmi&nbsp;سرورها را از راه دور روشن، خاموش و یا مجدداً راه&shy;اندازی کرد.\r\n\r\n&nbsp;\r\n\r\nآسیب &shy;پذیری&shy;های متداول&nbsp;ipmi\r\n\r\nدر ادامه آسیب&shy;پذیری&shy;های متداولی که در ارتباط با&nbsp;ipmi&nbsp;مطرح می&shy;باشند، توضیح داده شده&zwnj;اند:\r\n\r\n\r\n\tدور زدن مکانیزم احراز اصالت&nbsp;ipmi&nbsp;از طریق حالت&nbsp;cipher 0&nbsp;: این آسیب&shy;پذیری در&nbsp;ipmi&nbsp;نسخه&nbsp;2.0&nbsp;وجود دارد و&nbsp;chpher&nbsp;نوع&nbsp;0&nbsp;نام&shy;گذاری شده است و حاکی از این موضوع است که کلاینتی که خواهان احراز اصالت به صورت فاش می&shy;باشد، منجر به دسترسی با هر رمزعبوری می&shy;شود. به عبارت ساده&shy;تر هنگامی که دسترسی به&nbsp;BMC&nbsp;از طریق&nbsp;cipher 0&nbsp;انجام می&shy;شود، نیازی به مکانیزم احراز اصالت نمی&zwnj;باشد. بر روی بسیاری از&nbsp;BMC&nbsp;ها،&nbsp;cipher 0&nbsp;به صورت پیش فرض فعال می&shy;باشد. این آسیب&shy;پذیری در تجهیزات&nbsp;HP،&nbsp;Dell&nbsp;و&nbsp;Supermicro BMC&nbsp;و همچنین تمامی پیاده&shy;سازی&shy;های&nbsp;ipmi&nbsp;نسخه&nbsp;2.0&nbsp;وجود دارد. برای تشخیص این آسیب&shy;پذیری می&shy;توان از فریم&shy;ورک متاسپلویت به روش زیر استفاده کرد:\r\n\r\n\r\n$&nbsp;msfconsole\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;=[ metasploit v4.7.0-dev [core:4.7 api:1.0]\r\n\r\n+ -- --=[ 1119 exploits - 638 auxiliary - 179 post\r\n\r\n+ -- --=[ 309 payloads - 30 encoders - 8 nops\r\n\r\n&nbsp;\r\n\r\nmsf&gt;&nbsp;use auxiliary\/scanner\/ipmi\/ipmi_cipher_zero\r\n\r\nmsf auxiliary(ipmi_cipher_zero) &gt;&nbsp;set RHOSTS 10.0.0.0\/24\r\n\r\nmsf auxiliary(ipmi_cipher_zero) &gt;&nbsp;run\r\n\r\n[*] Sending IPMI requests to 10.0.0.0-&gt;10.0.0.255 (256 hosts)\r\n\r\n[+] 10.0.0.99:623 VULNERABLE: Accepted a session open request for cipher zero\r\n\r\n[+] 10.0.0.132:623 VULNERABLE: Accepted a session open request for cipher zero\r\n\r\n[+] 10.0.0.141:623 VULNERABLE: Accepted a session open request for cipher zero\r\n\r\n[+] 10.0.0.153:623 VULNERABLE: Accepted a session open request for cipher zero\r\n\r\n&nbsp;\r\n\r\n\r\n\tبازیابی مقدار&nbsp;hash&nbsp;مربوط به رمز عبور در حین استفاده از پروتکل&nbsp;RAKP&nbsp;: این آسیب&shy;پذیری نیز در نسخه&nbsp;ipmi 2.0&nbsp;وجود دارد. در نسخه&nbsp;2.0&nbsp;از&nbsp;ipmiعملیات احراز اصالت بدین گونه است که سرور قبل از احراز اصالت کلاینت، یک مقدار&nbsp;hash&nbsp;(SHA1&nbsp;یا&nbsp;MD5) که&nbsp;salt&nbsp;شده است (salted password has) را متناسب با رمزعبور درخواستی کاربر به کلاینت ارسال می&shy;کند. بنابراین&nbsp;BMC&nbsp;مقدار&nbsp;hash&nbsp;مربوط به هر کاربر معتبری که درخواست داده شود را باز می&shy;گرداند. این مقدار&nbsp;hash&nbsp;را می&shy;توان با استفاده از حمله دیکشنری و یا&nbsp;bruteforce&nbsp;به صورت آفلاین شکست. به دلیل اینکه این آسیب&shy;پذیری مربوط به یک قسمت مهم از ساختار&nbsp;ipmi&nbsp;می&shy;باشد، راه حل ساده&shy;ای برای برطرف کردن آن وجود ندارد (البته به غیر از اینکه تمام&nbsp;BMC&nbsp;ها در یک شبکه جداگانه قرار گیرند). از طریق متاسپلویت و ماژول&nbsp;ipmi_dumphashes&nbsp;موجود در آن می&shy;توان وجود این آسیب&shy;پذیری را بررسی کرد و رمزهای عبور معادل مقادیرhash&nbsp;را به&zwnj;دست آورد:\r\n\r\n\r\n$&nbsp;msfconsole\r\n\r\n&nbsp;\r\n\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;=[ metasploit v4.7.0-dev [core:4.7 api:1.0]\r\n\r\n+ -- --=[ 1119 exploits - 638 auxiliary - 179 post\r\n\r\n+ -- --=[ 309 payloads - 30 encoders - 8 nops\r\n\r\n&nbsp;\r\n\r\nmsf&gt;&nbsp;use auxiliary\/scanner\/ipmi\/ipmi_dumphashes\r\n\r\nmsf auxiliary(ipmi_dumphashes) &gt;&nbsp;set RHOSTS 10.0.0.0\/24\r\n\r\nmsf auxiliary(ipmi_dumphashes) &gt;&nbsp;set THREADS 256\r\n\r\nmsf auxiliary(ipmi_dumphashes) &gt;&nbsp;run\r\n\r\n&nbsp;\r\n\r\n&nbsp;[+] 10.0.0.59 root:266ead5921000000....000000000000000000000000000000001404726f6f74:eaf2bd6a5 3ee18e3b2dfa36cc368ef3a4af18e8b\r\n\r\n[+] 10.0.0.59 Hash for user &#39;root&#39; matches password &#39;calvin&#39;\r\n\r\n[+] 10.0.0.59 :408ee18714000000d9cc....000000000000000000000000000000001400:93503c1b7af26abee 34904f54f26e64d580c050e\r\n\r\n[+] 10.0.0.59 Hash for user &#39;&#39; matches password &#39;admin&#39;\r\n\r\n&nbsp;\r\n\r\nدر مثال بالا، ماژول مورد استفاده توانسته است دو اکانت مربوط به کاربران معتبر را یافته و مقادیر&nbsp;hash&nbsp;مربوط به آن&shy;ها و همچنین مقدار کرک شده آن را به&zwnj;دست آورد. کرک این رمزهای عبور ابتدا از طریق دیتابیس داخلی متاسپلوت انجام می&shy;شود و در صورت موفق نشدن در این مرحله، متاسپلویت از یک برنامه و یا دیتابیس خارجی برای کرک مقادیر&nbsp;hash&nbsp;استفاده می&shy;کند.\r\n\r\n&nbsp;\r\n\r\n\r\n\tاحراز اصالت&nbsp;ipmi&nbsp;به صورت ناشناس : علاوه بر مشکلات مربوط به عملیات احراز اصالت که در بالا به آن&shy;ها اشاره شد، در بسیاری از&nbsp;BMC&nbsp;ها احراز اصالت به صورت ناشناس به طور پیش&shy;فرض فعال می&zwnj;باشد. این کار بدین صورت انجام می&shy;شود که برای اولین اکانت مربوط به کاربر، مقادیر نام کاربری و رمزعبور خالی گذاشته شود. برای شناساسی این اکانت&shy;ها می&shy;توان از ابزار&nbsp;ipmtool&nbsp;و به روش زیر استفاده کرد:\r\n\r\n\r\n$ ipmitool -I lanplus -H 10.0.0.97 -U &#39;&#39; -P &#39;&#39; user list\r\n\r\nID&nbsp; Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Callin&nbsp; Link Auth&nbsp;&nbsp;&nbsp; IPMI Msg&nbsp; Channel Priv Limit\r\n\r\n1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; false&nbsp; false&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; true&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ADMINISTRATOR\r\n\r\n2&nbsp; root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; false&nbsp; false&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; true&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ADMINISTRATOR\r\n\r\n3&nbsp; admin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; true&nbsp;&nbsp;&nbsp; true&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; true&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ADMINISTRATOR\r\n\r\n&nbsp;\r\n\r\n$ ipmitool -I lanplus -H 10.0.0.97 -U &#39;&#39; -P &#39;&#39; user set password 2 password\r\n\r\n&nbsp;\r\n\r\n\r\n\tآسیب&shy;پذیری&nbsp;UPnP&nbsp;موجود در&nbsp;Supermicro IPMI&nbsp;:&nbsp;Supermicro&nbsp;شامل یک&nbsp;UPnP SSDP listener&nbsp;می&shy;باشد که از&nbsp;UDP&nbsp;استفاده می&shy;کند و بر روی پورت1900&nbsp;اجرا می&shy;شود.&nbsp;UPnP&nbsp;(Universal Plug and Play)&nbsp;مجموعه&shy;ای از پروتکل&shy;های شبکه می&shy;باشد که به تجهیزات موجود در شبکه مانند سیستم&zwnj;های شخصی، پرینترها، تجهیزات&nbsp;gateway، اکسس&shy;پوینت&shy;ها و تلفن&shy;های همراه اجازه می&shy;دهد که بتوانند از حضور یکدیگر در شبکه مطلع شوند و ارتباطی برای به اشتراک گذاشتن اطلاعات با یکدیگر ایجاد کنند. آسیب&shy;پذیری موجود در ارتباط با&nbsp;UPnP&nbsp;این امکان را در اختیار حمله&shy;کننده قرار می&shy;دهد که بتواند با انجام آن دسترسی با سطح مدیر شبکه به&nbsp;BMC&nbsp;پیدا کند. اگر حمله&shy;کننده بتواند از طریق شبکه و یا به طور مستقیم از طریق سیستم مورد نظر به آن دسترسی با سطح مدیر شبکه پیدا کند، می&shy;تواند&nbsp;firmware&nbsp;موجود بر روی&nbsp;supermicro&nbsp;را با یک نسخه آسیب&shy;پذیر تعویض کند.\r\n\r\n\r\n&nbsp;\r\n\r\n\r\n\tرمزهای عبور فاش مربوط به&nbsp;Supermicro IPMI&nbsp;: بر اساس ویژگی&shy;های&nbsp;ipmi 2.0،&nbsp;BMC&nbsp;به روش&shy;های احراز اصالتی که بر اساس استفاده از مقادیر&nbsp;hash(SHA1&nbsp;و&nbsp;MD5) می&shy;باشند، پاسخ می&shy;دهد. این پردازش احراز اصالت دارای ضعف&shy;های جدی می&shy;باشد ولی همچنان برای محاسبه مقدار&nbsp;hash&nbsp;نیاز به دسترسی به رمزهای عبور فاش می&shy;باشد. این بدان معنی است که&nbsp;BMC&nbsp;باید یک نسخه از تمام رمزهای عبور کاربران را به صورت فاش در یک محل ذخیره&shy;سازی دائمی ذخیره کند. در مورد&nbsp;supermicro&nbsp;این محل ذخیره&shy;سازی در نسخه&shy;های مختلف متفاوت است و یکی از دو محل&nbsp;\/nv\/PSBlock&nbsp;یا\/nv\/PSStore&nbsp;می&shy;باشد. رمزهای عبور در تکه&shy;های باینری مختلف پخش می&shy;شوند ولی یافتن آن&shy;ها به این دلیل که پس از نام کاربری قرار می&shy;گیرند، آسان است. این موضوع برای سازمان&shy;هایی که از رمزهای عبور مشترک بین&nbsp;BMC&nbsp;ها و یا حتی انواع مختلفی از تجهیزات استفاده می&shy;کنند، بسیار جدی و حائز اهمیت می&shy;باشد.\r\n\r\n\r\n$ cat \/nv\/PSBlock\r\n\r\n&nbsp; admin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ADMINpassword^TT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;rootOtherPassword!\r\n\r\n&nbsp;\r\n\r\nاقدامات اولیه در مورد امن&shy;سازی&nbsp;ipmi\r\n\r\nعلاوه بر راه حل&shy;های گفته شده در مورد هر آسیب&shy;پذیری، انجام اقدامات زیر در شروع کار مهم می&shy;باشد:\r\n\r\n\r\n\tاولین قدم برای امن&shy;سازی سیستم&shy;هایی که&nbsp;ipmi&nbsp;بر روی آن&shy;ها فعال می&shy;باشد، غیر فعال کردن حالت&nbsp;cipher 0&nbsp;می&shy;باشد.\r\n\tگام بعدی در مورد نحوه برقراری ارتباط فیزیکی با&nbsp;BMC&nbsp;می&shy;باشد. در بسیاری از موارد دسترسی به&nbsp;BMC&nbsp;از طریق پورت&nbsp;RJ45&nbsp;انجام می&shy;شود و درموارد دیگر به وسیله یک پورت اترنت جداگانه قابل دسترس می&shy;باشد. به هر حال باید از تخصیص یک آدرس&nbsp;IP&nbsp;داخلی به پورت مورد استفاده&nbsp;BMC&nbsp;(و نه آدرس&nbsp;IP&nbsp;خارجی) اطمینان حاصل کرد. با این کار مدیر شبکه مطمئن می&shy;شود که پورت مورد نظر فقط از داخل شبکه قابل دسترس می&shy;باشد و از بیرون شبکه نمی&shy;توان به آن دسترسی پیدا کرد.","content_html":"<h4>ipmi (Intelligent Platform Management Interface)<\/h4>\n\n<p><img align=\"left\" alt=\"\" src=\"http:\/\/www.certcc.ir\/upload\/news2014\/fullsize_b784cc1717d7fc06244c44140932fa08.jpg\" width=\"300\" \/><\/p>\n\n<p dir=\"rtl\">ipmi (Intelligent Platform Management Interface) مجموعه­ای از ویژگی­ها است که امکانات مدیریتی و پایش اجزای سخت­افزاری سیستم (مانند CPU، firmware و ...) و سیستم­عامل را به طور جداگانه و مستقل فراهم می­کند. این پروتکل بر اساس UDP است و از پورت شماره 623 استفاده می­کند.<\/p>\n\n<p dir=\"rtl\">این ویژگی­ها توسط شرکت اینتل فراهم شده است. در حال حاضر ipmi دارای دو نسخه 1.5و 2.0 می­باشد.  ipmi مجموعه­ای از واسط­های کاربری را در اختیار مدیر شبکه قرار می­دهد که با استفاده از آن­ها می­توان سیستم را مدیریت و عملکرد آن را پایش کرد. ipmi در واقع یک واسط کاربری می­باشد که مدیر شبکه از طریق آن می­تواند با BMC (Baseboard Management Controller) موجود بر روی سرور ارتباط برقرار کند. ارزش این کار زمانی مشخص می­شود که سیستم­عامل دچار اشکال شده و دسترسی به آن غیرممکن باشد. قبل از استقرار یک سرور، از طریق تنظیمات مربوط به BIOS ، یک آدرس IP به BMC اختصاص می­یابد و به محض خرابی سیستم، مدیر شبکه می­تواند به راحتی از طریق این آدرس IP با سیستم معیوب ارتباط برقرار کند. تمام ارتباطات برای بازگرداندن سیستم به وضعیت عادی از طریق پروتکل ipmi انجام می­شود. به عنوان مثال ipmi راهی برای مدیریت سیستمی که خاموش شده است و یا به اتصالات شبکه پاسخی نمی­دهد (از نظر سخت‌افزاری)، در اختیار می­گذارد.ipmi بدون توجه به سیستم­عامل و دیگر نرم­افزارها با سخت­افزارهای سرور ارتباط برقرار می­کند. مدیر شبکه با استفاده از ipmi می­تواند از یک مکان چندین سرور را توسط رابط کاربری مناسب مدیریت کند. رخدادهای مهم سیستم برای هر سرور می­توانند گزارش­گیری شوند و تنظیمات برای هر ورودی و یا خروجی سیستم می­تواند پایش و یا تغییر داده شود. همچنین می­توان از طریق ipmi سرورها را از راه دور روشن، خاموش و یا مجدداً راه­اندازی کرد.<\/p>\n\n<p dir=\"rtl\"> <\/p>\n\n<p dir=\"rtl\"><strong>آسیب ­پذیری­های متداول <\/strong><strong>ipmi<\/strong><\/p>\n\n<p dir=\"rtl\">در ادامه آسیب­پذیری­های متداولی که در ارتباط با ipmi مطرح می­باشند، توضیح داده شده‌اند:<\/p>\n\n<ul><li dir=\"rtl\">دور زدن مکانیزم احراز اصالت ipmi از طریق حالت cipher 0 : این آسیب­پذیری در ipmi نسخه 2.0 وجود دارد و chpher نوع 0 نام­گذاری شده است و حاکی از این موضوع است که کلاینتی که خواهان احراز اصالت به صورت فاش می­باشد، منجر به دسترسی با هر رمزعبوری می­شود. به عبارت ساده­تر هنگامی که دسترسی به BMC از طریق cipher 0 انجام می­شود، نیازی به مکانیزم احراز اصالت نمی‌باشد. بر روی بسیاری از BMC ها، cipher 0 به صورت پیش فرض فعال می­باشد. این آسیب­پذیری در تجهیزات HP، Dell و Supermicro BMC و همچنین تمامی پیاده­سازی­های ipmi نسخه 2.0 وجود دارد. برای تشخیص این آسیب­پذیری می­توان از فریم­ورک متاسپلویت به روش زیر استفاده کرد:<\/li>\n<\/ul><p>$ <strong>msfconsole<\/strong><\/p>\n\n<p>         =[ metasploit v4.7.0-dev [core:4.7 api:1.0]<\/p>\n\n<p>+ -- --=[ 1119 exploits - 638 auxiliary - 179 post<\/p>\n\n<p>+ -- --=[ 309 payloads - 30 encoders - 8 nops<\/p>\n\n<p> <\/p>\n\n<p>msf&gt; <strong>use auxiliary\/scanner\/ipmi\/ipmi_cipher_zero<\/strong><\/p>\n\n<p>msf auxiliary(ipmi_cipher_zero) &gt; <strong>set RHOSTS 10.0.0.0\/24<\/strong><\/p>\n\n<p>msf auxiliary(ipmi_cipher_zero) &gt; <strong>run<\/strong><\/p>\n\n<p>[*] Sending IPMI requests to 10.0.0.0-&gt;10.0.0.255 (256 hosts)<\/p>\n\n<p>[+] 10.0.0.99:623 VULNERABLE: Accepted a session open request for cipher zero<\/p>\n\n<p>[+] 10.0.0.132:623 VULNERABLE: Accepted a session open request for cipher zero<\/p>\n\n<p>[+] 10.0.0.141:623 VULNERABLE: Accepted a session open request for cipher zero<\/p>\n\n<p>[+] 10.0.0.153:623 VULNERABLE: Accepted a session open request for cipher zero<\/p>\n\n<p dir=\"rtl\"> <\/p>\n\n<ul><li dir=\"rtl\">بازیابی مقدار hash مربوط به رمز عبور در حین استفاده از پروتکل RAKP : این آسیب­پذیری نیز در نسخه ipmi 2.0 وجود دارد. در نسخه 2.0 از ipmiعملیات احراز اصالت بدین گونه است که سرور قبل از احراز اصالت کلاینت، یک مقدار hash (SHA1 یا MD5) که salt شده است (salted password has) را متناسب با رمزعبور درخواستی کاربر به کلاینت ارسال می­کند. بنابراین BMC مقدار hash مربوط به هر کاربر معتبری که درخواست داده شود را باز می­گرداند. این مقدار hash را می­توان با استفاده از حمله دیکشنری و یا bruteforce به صورت آفلاین شکست. به دلیل اینکه این آسیب­پذیری مربوط به یک قسمت مهم از ساختار ipmi می­باشد، راه حل ساده­ای برای برطرف کردن آن وجود ندارد (البته به غیر از اینکه تمام BMC ها در یک شبکه جداگانه قرار گیرند). از طریق متاسپلویت و ماژول ipmi_dumphashes موجود در آن می­توان وجود این آسیب­پذیری را بررسی کرد و رمزهای عبور معادل مقادیرhash را به‌دست آورد:<\/li>\n<\/ul><p>$ <strong>msfconsole<\/strong><\/p>\n\n<p> <\/p>\n\n<p>         =[ metasploit v4.7.0-dev [core:4.7 api:1.0]<\/p>\n\n<p>+ -- --=[ 1119 exploits - 638 auxiliary - 179 post<\/p>\n\n<p>+ -- --=[ 309 payloads - 30 encoders - 8 nops<\/p>\n\n<p> <\/p>\n\n<p>msf&gt; <strong>use auxiliary\/scanner\/ipmi\/ipmi_dumphashes<\/strong><\/p>\n\n<p>msf auxiliary(ipmi_dumphashes) &gt; <strong>set RHOSTS 10.0.0.0\/24<\/strong><\/p>\n\n<p>msf auxiliary(ipmi_dumphashes) &gt; <strong>set THREADS 256<\/strong><\/p>\n\n<p>msf auxiliary(ipmi_dumphashes) &gt; <strong>run<\/strong><\/p>\n\n<p> <\/p>\n\n<p> [+] 10.0.0.59 root:266ead5921000000....000000000000000000000000000000001404726f6f74:eaf2bd6a5 3ee18e3b2dfa36cc368ef3a4af18e8b<\/p>\n\n<p>[+] 10.0.0.59 Hash for user 'root' matches password 'calvin'<\/p>\n\n<p>[+] 10.0.0.59 :408ee18714000000d9cc....000000000000000000000000000000001400:93503c1b7af26abee 34904f54f26e64d580c050e<\/p>\n\n<p>[+] 10.0.0.59 Hash for user '' matches password 'admin'<\/p>\n\n<p dir=\"rtl\"> <\/p>\n\n<p dir=\"rtl\">در مثال بالا، ماژول مورد استفاده توانسته است دو اکانت مربوط به کاربران معتبر را یافته و مقادیر hash مربوط به آن­ها و همچنین مقدار کرک شده آن را به‌دست آورد. کرک این رمزهای عبور ابتدا از طریق دیتابیس داخلی متاسپلوت انجام می­شود و در صورت موفق نشدن در این مرحله، متاسپلویت از یک برنامه و یا دیتابیس خارجی برای کرک مقادیر hash استفاده می­کند.<\/p>\n\n<p dir=\"rtl\"> <\/p>\n\n<ul><li dir=\"rtl\">احراز اصالت ipmi به صورت ناشناس : علاوه بر مشکلات مربوط به عملیات احراز اصالت که در بالا به آن­ها اشاره شد، در بسیاری از BMC ها احراز اصالت به صورت ناشناس به طور پیش­فرض فعال می‌باشد. این کار بدین صورت انجام می­شود که برای اولین اکانت مربوط به کاربر، مقادیر نام کاربری و رمزعبور خالی گذاشته شود. برای شناساسی این اکانت­ها می­توان از ابزار ipmtool و به روش زیر استفاده کرد:<\/li>\n<\/ul><p>$ ipmitool -I lanplus -H 10.0.0.97 -U '' -P '' user list<\/p>\n\n<p>ID  Name        Callin  Link Auth    IPMI Msg  Channel Priv Limit<\/p>\n\n<p>1                    false  false      true      ADMINISTRATOR<\/p>\n\n<p>2  root            false  false      true      ADMINISTRATOR<\/p>\n\n<p>3  admin            true    true      true      ADMINISTRATOR<\/p>\n\n<p> <\/p>\n\n<p>$ ipmitool -I lanplus -H 10.0.0.97 -U '' -P '' user set password 2 password<\/p>\n\n<p> <\/p>\n\n<ul><li dir=\"rtl\">آسیب­پذیری UPnP موجود در Supermicro IPMI : Supermicro شامل یک UPnP SSDP listener می­باشد که از UDP استفاده می­کند و بر روی پورت1900 اجرا می­شود. UPnP (Universal Plug and Play) مجموعه­ای از پروتکل­های شبکه می­باشد که به تجهیزات موجود در شبکه مانند سیستم‌های شخصی، پرینترها، تجهیزات gateway، اکسس­پوینت­ها و تلفن­های همراه اجازه می­دهد که بتوانند از حضور یکدیگر در شبکه مطلع شوند و ارتباطی برای به اشتراک گذاشتن اطلاعات با یکدیگر ایجاد کنند. آسیب­پذیری موجود در ارتباط با UPnP این امکان را در اختیار حمله­کننده قرار می­دهد که بتواند با انجام آن دسترسی با سطح مدیر شبکه به BMC پیدا کند. اگر حمله­کننده بتواند از طریق شبکه و یا به طور مستقیم از طریق سیستم مورد نظر به آن دسترسی با سطح مدیر شبکه پیدا کند، می­تواند firmware موجود بر روی supermicro را با یک نسخه آسیب­پذیر تعویض کند.<\/li>\n<\/ul><p dir=\"rtl\"> <\/p>\n\n<ul><li dir=\"rtl\">رمزهای عبور فاش مربوط به Supermicro IPMI : بر اساس ویژگی­های ipmi 2.0، BMC به روش­های احراز اصالتی که بر اساس استفاده از مقادیر hash(SHA1 و MD5) می­باشند، پاسخ می­دهد. این پردازش احراز اصالت دارای ضعف­های جدی می­باشد ولی همچنان برای محاسبه مقدار hash نیاز به دسترسی به رمزهای عبور فاش می­باشد. این بدان معنی است که BMC باید یک نسخه از تمام رمزهای عبور کاربران را به صورت فاش در یک محل ذخیره­سازی دائمی ذخیره کند. در مورد supermicro این محل ذخیره­سازی در نسخه­های مختلف متفاوت است و یکی از دو محل \/nv\/PSBlock یا\/nv\/PSStore می­باشد. رمزهای عبور در تکه­های باینری مختلف پخش می­شوند ولی یافتن آن­ها به این دلیل که پس از نام کاربری قرار می­گیرند، آسان است. این موضوع برای سازمان­هایی که از رمزهای عبور مشترک بین BMC ها و یا حتی انواع مختلفی از تجهیزات استفاده می­کنند، بسیار جدی و حائز اهمیت می­باشد.<\/li>\n<\/ul><p>$ cat \/nv\/PSBlock<\/p>\n\n<p>  admin                      ADMINpassword^TT                    rootOtherPassword!<\/p>\n\n<p dir=\"rtl\"> <\/p>\n\n<p dir=\"rtl\"><strong>اقدامات اولیه در مورد امن­سازی <\/strong><strong>ipmi<\/strong><\/p>\n\n<p dir=\"rtl\">علاوه بر راه حل­های گفته شده در مورد هر آسیب­پذیری، انجام اقدامات زیر در شروع کار مهم می­باشد:<\/p>\n\n<ul><li dir=\"rtl\">اولین قدم برای امن­سازی سیستم­هایی که ipmi بر روی آن­ها فعال می­باشد، غیر فعال کردن حالت cipher 0 می­باشد.<\/li>\n\t<li dir=\"rtl\">گام بعدی در مورد نحوه برقراری ارتباط فیزیکی با BMC می­باشد. در بسیاری از موارد دسترسی به BMC از طریق پورت RJ45 انجام می­شود و درموارد دیگر به وسیله یک پورت اترنت جداگانه قابل دسترس می­باشد. به هر حال باید از تخصیص یک آدرس IP داخلی به پورت مورد استفاده BMC (و نه آدرس IP خارجی) اطمینان حاصل کرد. با این کار مدیر شبکه مطمئن می­شود که پورت مورد نظر فقط از داخل شبکه قابل دسترس می­باشد و از بیرون شبکه نمی­توان به آن دسترسی پیدا کرد.<\/li>\n<\/ul>","content_source":"","content_url":"","content_date_start":"2016-07-11 09:29:04","content_date_event":"2016-07-11 09:29:04","content_date_event_start":null,"content_date_event_end":null,"content_show_title_slider":1,"content_date_last_edit":"2016-07-11 09:39:46","content_date_register":"2016-07-11 09:29:48","content_columns":0,"content_show_img":1,"content_show_details":0,"content_show_related_img":0,"content_show_slider":1,"content_comment":1,"content_score":0,"tag_id":0,"score_average":null,"score_count":null,"score_date_last":null,"uid":15356,"eid":15356,"attach_title":null,"attaches":[{"sizes":{"150":".\/cache\/184\/attach\/201607\/46274_1430638016_150_107.webp","300":".\/cache\/184\/attach\/201607\/46274_1430638016_300_213.webp","400":".\/cache\/184\/attach\/201607\/46274_1430638016_400_284.webp","600":".\/cache\/184\/attach\/201607\/46274_1430638016_600_426.webp","900":".\/cache\/184\/attach\/201607\/46274_1430638016_702_499.webp","1200":".\/cache\/184\/attach\/201607\/46274_1430638016_702_499.webp"},"ext":"jpg","file_media":1,"token":1430638016,"files":{"original":{"url":".\/file\/184\/attach\/201607\/46274_1430638016.jpg","width":702,"height":499,"size":0}}}]}]]