Добро пожаловать обратно, поклонники «Мистера Робота»!
В первой серии второго сезона сериала «Мистер Робот» (eps2.0_unm4sk-pt1.tc) хакеры из f/society взяли под контроль «умный дом» главного юрисконсульта (ведущего юриста) компании Evil Corp. В элегантном доме этой женщины, расположенном в престижном районе Гринвич-Виллидж в Нью-Йорке, всё было автоматизировано, включая телевизор, освещение, аудиосистему, гараж, отопление и кондиционирование, систему безопасности, водонагреватель и т.д. f/society удалось получить контроль над этой цифровой системой и в конечном итоге выселить женщину из её дома. Вскоре после этого f/society переехало туда.
Этот взлом выявляет зарождающиеся проблемы безопасности Интернета вещей (IoT). По мере того, как всё — от систем домашней безопасности до развлекательных систем и тому подобного — становится цифровым, риски взлома и потери контроля над собственным домом возрастают.
В последние годы в системах умного дома был обнаружен ряд уязвимостей, включая доступ к системам домашней безопасности, домашним системам наблюдения за детьми, домашним системам отопления, вентиляции и кондиционирования воздуха и другим. Например, исследователи из Мичиганского университета смогли взломать популярную систему Samsung SmartThings и получить PIN-код от системы безопасности входной двери.
Давайте посмотрим, как f/society могли взломать ее дом, но вместо системы «умный дом» давайте взломаем систему «умного здания» .
Серверы автоматизации зданий Schneider Electric
Schneider Electric — парижская компания, известная в сфере промышленного управления. Она является пионером в этой области, разработав наиболее распространённый протокол Modbus, применяемый в промышленных системах управления.
Компания Schneider Electric производит продукцию, использующую цифровое управление в промышленных приложениях. Эти цифровые контроллеры называются программируемыми логическими контроллерами (ПЛК). Компания использует эти ПЛК во множестве промышленных приложений, включая системы автоматизации зданий, и продаёт их по всему миру.
Один из их продуктов, Schneider-Electric Automation Server, используется в коммерческих зданиях для управления и автоматизации многочисленных систем, включая отопление и охлаждение, безопасность и т. д. Это своего рода коммерческий эквивалент умного дома, но с гораздо более высокими ставками.
Использование Shodan для поиска серверов автоматизации
Мы можем найти эти серверы автоматизации в Shodan, выполнив поиск по запросу «Schneider-Electric».
Автоматизация «Schneider Electric»
Если немного прокрутить этот список, то можно увидеть, что, помимо многих других, эти серверы автоматизации использует крупный отель в Канзас-Сити.
Несколько месяцев назад независимый исследователь безопасности Карн Ганешен обнаружил серьёзную уязвимость в этих серверах автоматизации, которая позволяет практически любому получить над ними контроль. Давайте попробуем. Я буду использовать Kali Linux, но, поскольку этот взлом настолько прост, подойдёт практически любой Linux.
Уязвимость
Эта уязвимость позволяет злоумышленнику подключиться к серверу автоматизации по SSH, используя учётные данные по умолчанию, а затем повысить свои привилегии до уровня «root». Получив права root, злоумышленник становится владельцем не только сервера, но и всего здания!
Подключение к серверу автоматизации зданий
Для начала найдём сервер автоматизации Schneider Electric и подключимся к нему по SSH. Команда простая.
кали > ssh <IP> -l администратор
После подключения сервер запросит пароль. Используйте пароль по умолчанию «admin».
Затем вас встретит учетная запись администратора сервера автоматизации.
Мы можем ввести «help», чтобы узнать, какие команды мы можем использовать из этой учетной записи.
Например, наберём «release». Как видите ниже, система отвечает информацией о версии сервера. Обратите внимание, что одна из команд — «reboot», что может быть полезно при DoS-атаке на эту систему.
Мы также можем узнать время с момента последней перезагрузки, введя «uptime».
админ > время безотказной работы
Одним из недостатков этой системы является возможность пересылать системные команды после этих SSH-команд. Например, мы можем просмотреть файл паролей на базовом сервере, введя:
админ> время работы | cat /etc/passwd
Как видите, мы составили список всех учётных записей на этом сервере. Конечно, этот файл содержит только учётные записи, но не пароли. Пароли находятся в файле /etc/shadow, и доступ к нему есть только у пользователя root.
Получение Root-прав
Конечно, чтобы владеть этим сервером, нам понадобятся права root. Мы можем повысить их, просто набрав:
админ > sudo -i
Конфигурация этого сервера автоматизации зданий по умолчанию не имеет пароля для учетной записи «root», поэтому просто нажмите Enter, когда будет предложено ввести пароль.
Как вы видите, подсказка стала зеленой и это означает, что мы являемся пользователем root!
Теперь давайте введем здесь «help», чтобы увидеть, какие команды нам доступны.
Теперь, когда у нас есть права root на этом компьютере, мы можем делать практически всё! Давайте посмотрим, сможем ли мы извлечь хеши паролей из /etc/shadow.
AS > cat /etc/shadow
Как видите, нам удалось получить все учётные записи и хэши их паролей! При необходимости мы могли бы пропустить эти хэши через брутфорс-кракер, например, Hashcat, чтобы получить пароли в открытом виде.
Скорее всего, файл конфигурации сервера автоматизации находится в каталоге /etc. Давайте перейдём туда и выведем список всех файлов и каталогов.
AS> cd /etc
AS > ls -l
Если прокрутить список немного вниз, мы увидим файл «whitelist.rules». Он определяет, кто может подключаться к этому серверу. Давайте откроем его.
Как вы можете видеть, системный администратор никогда не настраивал whitelist.rules на этом сервере, и в результате к нему может подключиться кто угодно.
Наконец, поскольку у нас есть права root, мы можем добавлять новых пользователей. Прежде чем уйти, я могу добавить себя в список пользователей, предоставить себе права root и добавить себя в правила whitelist.rules, чтобы даже если администратор устранит эту уязвимость, у меня сохранилась учётная запись и доступ к этому серверу.
Надеюсь, само собой разумеется, что теперь, когда у меня есть доступ к системе с правами root, я могу изменять и манипулировать этой системой так, как захочу!
Хотя f/society, вероятно, использовал другой сервер, нежели эта уязвимость коммерческого интеллектуального здания, я надеюсь, что это подчеркивает, насколько уязвимы эти системы и насколько богатой областью для взлома является Интернет вещей!
В первой серии второго сезона сериала «Мистер Робот» (eps2.0_unm4sk-pt1.tc) хакеры из f/society взяли под контроль «умный дом» главного юрисконсульта (ведущего юриста) компании Evil Corp. В элегантном доме этой женщины, расположенном в престижном районе Гринвич-Виллидж в Нью-Йорке, всё было автоматизировано, включая телевизор, освещение, аудиосистему, гараж, отопление и кондиционирование, систему безопасности, водонагреватель и т.д. f/society удалось получить контроль над этой цифровой системой и в конечном итоге выселить женщину из её дома. Вскоре после этого f/society переехало туда.
Этот взлом выявляет зарождающиеся проблемы безопасности Интернета вещей (IoT). По мере того, как всё — от систем домашней безопасности до развлекательных систем и тому подобного — становится цифровым, риски взлома и потери контроля над собственным домом возрастают.
В последние годы в системах умного дома был обнаружен ряд уязвимостей, включая доступ к системам домашней безопасности, домашним системам наблюдения за детьми, домашним системам отопления, вентиляции и кондиционирования воздуха и другим. Например, исследователи из Мичиганского университета смогли взломать популярную систему Samsung SmartThings и получить PIN-код от системы безопасности входной двери.
Давайте посмотрим, как f/society могли взломать ее дом, но вместо системы «умный дом» давайте взломаем систему «умного здания» .
Серверы автоматизации зданий Schneider Electric
Schneider Electric — парижская компания, известная в сфере промышленного управления. Она является пионером в этой области, разработав наиболее распространённый протокол Modbus, применяемый в промышленных системах управления.
Компания Schneider Electric производит продукцию, использующую цифровое управление в промышленных приложениях. Эти цифровые контроллеры называются программируемыми логическими контроллерами (ПЛК). Компания использует эти ПЛК во множестве промышленных приложений, включая системы автоматизации зданий, и продаёт их по всему миру.
Один из их продуктов, Schneider-Electric Automation Server, используется в коммерческих зданиях для управления и автоматизации многочисленных систем, включая отопление и охлаждение, безопасность и т. д. Это своего рода коммерческий эквивалент умного дома, но с гораздо более высокими ставками.
Использование Shodan для поиска серверов автоматизации
Мы можем найти эти серверы автоматизации в Shodan, выполнив поиск по запросу «Schneider-Electric».
Автоматизация «Schneider Electric»
Если немного прокрутить этот список, то можно увидеть, что, помимо многих других, эти серверы автоматизации использует крупный отель в Канзас-Сити.
Несколько месяцев назад независимый исследователь безопасности Карн Ганешен обнаружил серьёзную уязвимость в этих серверах автоматизации, которая позволяет практически любому получить над ними контроль. Давайте попробуем. Я буду использовать Kali Linux, но, поскольку этот взлом настолько прост, подойдёт практически любой Linux.
Уязвимость
Эта уязвимость позволяет злоумышленнику подключиться к серверу автоматизации по SSH, используя учётные данные по умолчанию, а затем повысить свои привилегии до уровня «root». Получив права root, злоумышленник становится владельцем не только сервера, но и всего здания!
Подключение к серверу автоматизации зданий
Для начала найдём сервер автоматизации Schneider Electric и подключимся к нему по SSH. Команда простая.
кали > ssh <IP> -l администратор
После подключения сервер запросит пароль. Используйте пароль по умолчанию «admin».
Затем вас встретит учетная запись администратора сервера автоматизации.
Мы можем ввести «help», чтобы узнать, какие команды мы можем использовать из этой учетной записи.
Например, наберём «release». Как видите ниже, система отвечает информацией о версии сервера. Обратите внимание, что одна из команд — «reboot», что может быть полезно при DoS-атаке на эту систему.
Мы также можем узнать время с момента последней перезагрузки, введя «uptime».
админ > время безотказной работы
Одним из недостатков этой системы является возможность пересылать системные команды после этих SSH-команд. Например, мы можем просмотреть файл паролей на базовом сервере, введя:
админ> время работы | cat /etc/passwd
Как видите, мы составили список всех учётных записей на этом сервере. Конечно, этот файл содержит только учётные записи, но не пароли. Пароли находятся в файле /etc/shadow, и доступ к нему есть только у пользователя root.
Получение Root-прав
Конечно, чтобы владеть этим сервером, нам понадобятся права root. Мы можем повысить их, просто набрав:
админ > sudo -i
Конфигурация этого сервера автоматизации зданий по умолчанию не имеет пароля для учетной записи «root», поэтому просто нажмите Enter, когда будет предложено ввести пароль.
Как вы видите, подсказка стала зеленой и это означает, что мы являемся пользователем root!
Теперь давайте введем здесь «help», чтобы увидеть, какие команды нам доступны.
Теперь, когда у нас есть права root на этом компьютере, мы можем делать практически всё! Давайте посмотрим, сможем ли мы извлечь хеши паролей из /etc/shadow.
AS > cat /etc/shadow
Как видите, нам удалось получить все учётные записи и хэши их паролей! При необходимости мы могли бы пропустить эти хэши через брутфорс-кракер, например, Hashcat, чтобы получить пароли в открытом виде.
Скорее всего, файл конфигурации сервера автоматизации находится в каталоге /etc. Давайте перейдём туда и выведем список всех файлов и каталогов.
AS> cd /etc
AS > ls -l
Если прокрутить список немного вниз, мы увидим файл «whitelist.rules». Он определяет, кто может подключаться к этому серверу. Давайте откроем его.
Как вы можете видеть, системный администратор никогда не настраивал whitelist.rules на этом сервере, и в результате к нему может подключиться кто угодно.
Наконец, поскольку у нас есть права root, мы можем добавлять новых пользователей. Прежде чем уйти, я могу добавить себя в список пользователей, предоставить себе права root и добавить себя в правила whitelist.rules, чтобы даже если администратор устранит эту уязвимость, у меня сохранилась учётная запись и доступ к этому серверу.
Надеюсь, само собой разумеется, что теперь, когда у меня есть доступ к системе с правами root, я могу изменять и манипулировать этой системой так, как захочу!
Хотя f/society, вероятно, использовал другой сервер, нежели эта уязвимость коммерческого интеллектуального здания, я надеюсь, что это подчеркивает, насколько уязвимы эти системы и насколько богатой областью для взлома является Интернет вещей!