Использование SNMPv1 для разведки

  • Автор темы Автор темы LeSh1y777
  • Дата начала Дата начала

LeSh1y777

Пользователь
Регистрация
25/9/25
Сообщения
5,682
Репутация
49
Лайки
152
Депозит
-8.95$
6a4a49_8b8582bdf9d4400a9b990e427068ce08~mv2.png


Как вы знаете, протокол Simple Network Management Protocol использует UDP-порты 161 и 162 для управления сетевыми устройствами. Сетевые устройства используют этот протокол для взаимодействия друг с другом, а администраторы могут использовать его для управления устройствами. Если мы, хакеры, получим доступ к протоколу SNMP, мы сможем получить огромный объём информации о сети жертвы и даже отключить и изменить настройки этих устройств. Представьте себе, какой хаос можно устроить, изменив настройки маршрутизаторов и коммутаторов!

Справочная информация о SNMP

Протокол SNMP (Simple Network Management Protocol) входит в состав пакета межсетевых протоколов (IP), предназначенного для управления компьютерами и сетевыми устройствами. Cisco описывает его как «протокол прикладного уровня, упрощающий обмен информацией между сетевыми устройствами». Коротко и верно, но в нём отсутствует функция управления, которую также предоставляет SNMP.

SNMP — это протокол без сохранения состояния, ориентированный на дейтаграммы. Он использует один или несколько административных компьютеров, называемых менеджерами. Эти менеджеры контролируют и управляют группой компьютеров. На каждом управляемом компьютере установлен агент, взаимодействующий с менеджером. См. схему выше, где схематично показан принцип работы SNMP.

Агент на управляемых компьютерах предоставляет данные управления управляющему компьютеру. Менеджер может выполнять задачи управления, включая изменение и применение новых конфигураций.

Данные управления, предоставляемые агентами на каждой управляемой машине, хранятся в иерархической базе данных, называемой базой управляющей информации (MIB) . Именно эта информация в MIB и будет нам интересна. MIB содержит обширный массив информации о каждом устройстве в сети, включая пользователей, установленное программное обеспечение, операционные системы, открытые порты и т. д. Вся эта информация может оказаться бесценной при разработке стратегии эксплуатации целевой уязвимости.

Протокол SNMP использует порт UDP 161. Связь осуществляется посредством блоков данных протокола (PDU). Существует семь (7) типов PDU.

  • GetRequest
  • SetRequest
  • GetNextRequest
  • GetBulkRequest
  • Ответ
  • Ловушка
  • InformRequest
Версии SNMP

SNMP имеет три (3) версии. Версия 1, или SNMPv1, обладает очень слабой безопасностью. Аутентификация клиентов осуществляется открытым текстом и по умолчанию использует «строку сообщества», которая установлена как « публичная ». Эта строка сообщества действует как пароль и действительна для каждого узла в сети. Аутентификация менеджера также осуществляется с помощью строки сообщества, которая по умолчанию установлена как « частная ». Используя эти строки сообщества, злоумышленник может собрать всю информацию из MIB (с помощью открытой строки сообщества) и даже настроить конфигурацию устройств (с помощью закрытой строки сообщества). Хотя широко известно и понятно, что SNMPv1 небезопасен, он по-прежнему широко используется (недавно я проводил оценку безопасности в крупном банке Нью-Йорка, и они все еще использовали SNMPv1). Даже если сетевой администратор изменит строку сообщества со значений по умолчанию, поскольку связь осуществляется открытым текстом, злоумышленник может перехватить строки аутентификации из сети.

Протокол SNMPv2 превосходит SNMPv1 по производительности и безопасности, но из-за отсутствия обратной совместимости с SNMPv1 не получил широкого распространения. SNMPv3 значительно безопаснее SNMPv1 и v2. SNMPv3 обеспечивает шифрование, целостность сообщений и аутентификацию, но до сих пор используется не во всех сетях.

Использование SNMP для сбора информации

Теперь, когда мы немного разобрались с протоколом SNMP, давайте используем его для сбора информации о нашей цели. Откройте Kali и перейдите в раздел «Приложения» -> Kali Linux -> Сбор информации -> Анализ SNMP -> snmpcheck, как показано на скриншоте ниже.

6a4a49_88996fc5e66349d68eeccc5931885b44~mv2.png


После этого вы увидите экран справки snmpcheck , как показано ниже.

6a4a49_c1d44fd430be45d48a7eda4de9fa1074~mv2.png


Snmpcheck — это скрипт на Perl, который запрашивает информацию о целевом IP-адресе из базы MIB SNMP. Синтаксис довольно прост.

kali > snmpcheck -t <целевой IP>

Конечно, доступны некоторые параметры, такие как строка сообщества (по умолчанию используется «public»), версия SNMP (по умолчанию используется 1 или 2. Обратите внимание, что это не будет работать с более безопасным протоколом SNMP v3) и некоторые другие. Мы будем использовать его на сервере 2003 в нашей сети, чтобы посмотреть, какую информацию SNMP может предоставить нам о цели.

Как видно на скриншоте ниже, мы запустили snmpcheck, и он начал собирать информацию из MIB о цели и отображать её на экране. Сначала он выдаёт информацию об оборудовании, затем об операционной системе и времени бесперебойной работы (время бесперебойной работы может быть очень полезной информацией для определения того, были ли установлены исправления в системе).

6a4a49_4850970c99564026b327288b1061068c~mv2.png


Далее отображается информация об устройстве.

6a4a49_2ab453d560234cc5b472fe40fddeb166~mv2.png


Далее, информация о хранении.

6a4a49_5e93b336e0ca49219962ca56f6926a80~mv2.png


Затем — учетные записи пользователей (это может пригодиться позже при попытке взлома паролей пользователей. Это избавит от необходимости угадывать имена учетных записей пользователей).

6a4a49_41e7738c7b1f4870993ffe8825aa2fce~mv2.png


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

6a4a49_e25bfd31cdb0422c8ffa3f2c606d0719~mv2.png


Взлом строк сообщества SNMP

Как вы видели в предыдущем упражнении, SNMP может предоставить нам значительный объём информации о нашей цели, если мы получим к ней доступ. В предыдущем упражнении мы предполагали, что администратор оставил строку сообщества «публичной». Что, если бы администратор проявил большую осторожность и позаботился о безопасности и изменил строку сообщества? Как нам найти эту строку?

В Kali есть отличный инструмент под названием onesixtyone (предположительно, названный в честь порта по умолчанию, на котором работает SNMP). По сути, это взломщик строк сообщества SNMP. Как и большинство взломщиков паролей, он использует словарь или список слов, чтобы перебрать пароль сервиса, пока не найдёт совпадение.

Давайте откроем onesixtyone, перейдя в «Приложения» –> Kali Linux –> Сбор информации –> Анализ SNMP –> onesixtyone . Должен открыться экран справки, как показано ниже.

6a4a49_48318d76b21e43eb9e439e51e30d5ab8~mv2.png


Синтаксис onesixtyone довольно прост и понятен.

kali > onesixtyone [опции] <IP-адрес хоста> <строка сообщества (частная или публичная)>

Как и в случае со взломщиком паролей по словарю, словарь, используемый в onesixtyone, имеет решающее значение. В onesixtyone есть встроенный словарь. Он небольшой, но содержит множество часто используемых строк SNMP. Если вы создаёте собственный словарь для взлома SNMP, это хорошая отправная точка, но вы можете расширить его, добавив вариации доменного имени или названия компании, поскольку сетевые администраторы обычно не прилагают больших усилий для создания сложных строк для SNMP. Например, если компания — Microsoft, можно попробовать строки, которые может использовать ленивый администратор, такие как microsoft-public, microsoft-private, microsoft-snmp, microsoft-network и т. д.

Давайте посмотрим на файл словаря, набрав:

Кали > cat /usr/share/doc/onesixtone/dict.txt

6a4a49_36ab24f1813b4726b1026261fb2d8c35~mv2.png


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

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

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

Кали > onesixtyone 192.168.1.102 -c /usr/share/doc/onesixtyone/dict.txt

6a4a49_548505804a0d4db7b34af22f0be4531f~mv2.png


Как видно на снимке экрана выше, удалось найти как приватную строку сообщества (по-прежнему имеющую значение по умолчанию «private»), так и публичную строку сообщества (по-прежнему имеющую значение по умолчанию «public»). Эти строки сообщества затем можно использовать в snmpcheck для получения информации из MIB о целевой системе.

SNMP может стать ценным источником информации о целевой сети, если к нему получить доступ. snmpcheck извлечёт информацию из MIB, а onesixtyone поможет нам взломать «пароли» SNMP. Оба этих инструмента могут быть критически важны для использования SNMP в разведывательных целях.
 
Назад
Сверху Снизу