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

Введение
Порт 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:
В некоторых случаях — вносить изменения в конфигурацию через set-запросы. - Узнать внутреннюю структуру сети (IP-адреса, маршруты, имена интерфейсов).
- Получить список запущенных процессов.
- Извлечь список пользователей:

SNMP Reflection / Amplification (DDoS)
- SNMP может использоваться как усилитель в DDoS-атаках: малый запрос — огромный ответ.
- Используется в UDP Amplification вместе с подменой IP-адреса.
SNMP write
- При включенной поддержке записи можно удалённо менять конфигурацию: маршруты, таблицы ARP, параметры интерфейсов и даже перезагружать устройство.
CVE и 0day
В силу своей специфики, этот сервис стал лакомым кусочком для исследователей безопасности и злоумышленников, в результате чего появилось множество способов атак на него, от разведки и DoS до удаленного выполнения кода.
Вот лишь некоторые из них:
- https://github.com/artkond/cisco-snmp-rce
- https://github.com/jakabakos/CVE-2023-39362-cacti-snmp-command-injection-poc
- https://github.com/Cacti/cacti/security/advisories/GHSA-c5j8-jxj3-hh36
Как защититься
- Не публикуйте порт 161 в интернет. SNMP должен быть доступен только из доверенных сегментов, желательно через VPN. Проверить доступность порта можно при помощи команды
nmap -sU -p 161 <ip> - Отключите SNMP, если он не используется. Некоторые устройства по умолчанию открывают порт 161, даже если он не требуется для их работы
- Фильтрация, firewall и ACL. Разрешайте SNMP-запросы только от конкретных IP-адресов по принципу белого списка, для этого необходимо настроть ACL на сетевом оборудовании
- Если SNMP все-таки нужен – убедитесь что используется исключительно SNMPv3 с шифрованием и аутентификацией, а так же не используйте стандартные значения в качестве
community string
Заключение
SNMP создавался в эпоху, когда интернет был другим. Когда инфраструктуры были замкнуты, доверие — нормой, а безопасность — делом администраторов, а не атакующих.
Прошло три десятилетия, и теперь любой желающий при помощи Shodan может увидеть ваш роутер, камеру или маршрутизатор так же ясно, как вы видите свою клавиатуру.
Публично доступный порт 161 — это едва заметная дверь в инфраструктуру.
Метаскан позволяет выявлять публично доступные snmp-порты на Вашем периметре, а наши эксперты вручную проверяют каждый выявленный сервис.