Attacker's perspective on SNMP

Порт 161 — это стандартный порт для SNMP (Simple Network Management Protocol) — простого протокола сетевого управления. Он предназначен для мониторинга и управления сетевыми устройствами: роутерами, коммутаторами, серверами, принтерами, IP-камерами, промышленным оборудованием и даже Умным Домом.

Дата выхода: Время прочтения статьи:
Attacker's perspective on SNMP

Введение

Порт 161 — это стандартный порт для SNMP (Simple Network Management Protocol) — простого протокола сетевого управления. Он предназначен для мониторинга и управления сетевыми устройствами: роутерами, коммутаторами, серверами, принтерами, IP-камерами, промышленным оборудованием и даже Умным Домом.

Вроде бы удобно? Да, но ровно до того момента, пока этот порт не оказывается доступным из интернета. Тогда он превращается из инструмента мониторинга в потенциальную точку входа для атак.

Что представляет из себя SNMP

SNMP — протокол уровня приложений из стека TCP/IP. Он позволяет централизованному менеджеру (SNMP Manager) опрашивать устройства (SNMP Agents) на предмет различных метрик:

  • нагрузка на процессор
  • использование памяти
  • сетевой трафик
  • температура, напряжение
  • конфигурационные параметры

SNMP использует порт 161 UDP для обычных запросов и порт 162 UDP для trap-ов (асинхронных уведомлений об изменениях).

Версии SNMP

  • SNMPv1 — устаревший и небезопасный. Все передаётся в открытом виде.
  • SNMPv2c — обновленная версия, но всё ещё с «community string» в виде пароля (по умолчанию это public / private).
  • SNMPv3 — поддерживает аутентификацию и шифрование, но всё равно редко используется корректно.

Community Strings — "пароли" SNMP

Одним из ключевых элементов безопасности SNMPv1 и v2c является community string — строка, играющая роль "пароля" для доступа к информации.

Существует два основных типа:

  • public — строка по умолчанию для чтения (read-only)
  • private — строка по умолчанию для записи (read-write)

Эти строки зашиты в устройствах и часто не меняются после установки. Злоумышленник, зная строку public, может получить огромное количество информации об устройстве, а строка private позволяет вносить изменения в устройство: от перезагрузки до переписи маршрутов.

Для аудита snmp могут быть использованы такие утилиты, как snmp-check, snmpenum, snmpwalk, onesixtyone, а так же NSE-скрипт для nmap – snmp-info

Почему порт 161 нельзя оставлять доступным из интернета?

Если устройство настроено с community string по умолчанию, то можно:

  • Опрашивать его и узнавать чувствительную информацию: версию ОС, MAC-адреса, IP-конфигурации, uptime:5ae44a26-03e4-41b7-a541-c0d905d1fc6f.pngВ некоторых случаях — вносить изменения в конфигурацию через set-запросы.
  • Узнать внутреннюю структуру сети (IP-адреса, маршруты, имена интерфейсов).
  • Получить список запущенных процессов.
  • Извлечь список пользователей:301f6b77-ea95-4253-aad5-82b0e82e60ce.png

SNMP Reflection / Amplification (DDoS)

  • SNMP может использоваться как усилитель в DDoS-атаках: малый запрос — огромный ответ.
  • Используется в UDP Amplification вместе с подменой IP-адреса.

SNMP write

  • При включенной поддержке записи можно удалённо менять конфигурацию: маршруты, таблицы ARP, параметры интерфейсов и даже перезагружать устройство.

CVE и 0day

В силу своей специфики, этот сервис стал лакомым кусочком для исследователей безопасности и злоумышленников, в результате чего появилось множество способов атак на него, от разведки и DoS до удаленного выполнения кода.

Вот лишь некоторые из них:

Как защититься

  1. Не публикуйте порт 161 в интернет. SNMP должен быть доступен только из доверенных сегментов, желательно через VPN. Проверить доступность порта можно при помощи команды nmap -sU -p 161 <ip>
  2. Отключите SNMP, если он не используется. Некоторые устройства по умолчанию открывают порт 161, даже если он не требуется для их работы
  3. Фильтрация, firewall и ACL. Разрешайте SNMP-запросы только от конкретных IP-адресов по принципу белого списка, для этого необходимо настроть ACL на сетевом оборудовании
  4. Если SNMP все-таки нужен – убедитесь что используется исключительно SNMPv3 с шифрованием и аутентификацией, а так же не используйте стандартные значения в качестве community string

Заключение

SNMP создавался в эпоху, когда интернет был другим. Когда инфраструктуры были замкнуты, доверие — нормой, а безопасность — делом администраторов, а не атакующих.

Прошло три десятилетия, и теперь любой желающий при помощи Shodan может увидеть ваш роутер, камеру или маршрутизатор так же ясно, как вы видите свою клавиатуру.

Публично доступный порт 161 — это едва заметная дверь в инфраструктуру.

Метаскан позволяет выявлять публично доступные snmp-порты на Вашем периметре, а наши эксперты вручную проверяют каждый выявленный сервис.d156618d-2c01-4994-866e-87cbcbe3499b.png

 
 
Attacker's perspective on SNMP | METASCAN