161,162,10161,10162/udp - Pentesting SNMP
Якщо вас цікавить кар'єра в хакінгу і взламати невзламне - ми шукаємо співробітників! (вимагається вільне володіння польською мовою, як письмово, так і усно).
Основна інформація
SNMP - Простий Протокол Управління Мережею - це протокол, який використовується для моніторингу різних пристроїв в мережі (таких як маршрутизатори, комутатори, принтери, IoT...).
SNMP також використовує порт 162/UDP для пасток. Це дані пакети, відправлені з SNMP-сервера на клієнта без явного запиту.
MIB
Для того, щоб забезпечити роботу доступу SNMP між виробниками та різними комбінаціями клієнт-сервер, було створено Базу інформації управління (MIB). MIB - це незалежний формат для зберігання інформації про пристрій. MIB - це текстовий файл, в якому перераховані всі запитувані об'єкти SNMP пристрою в стандартизованій ієрархії дерева. Він містить принаймні один Ідентифікатор об'єкта
(OID
), який, крім необхідної унікальної адреси та назви, також надає інформацію про тип, права доступу та опис відповідного об'єкта.
Файли MIB написані у форматі ASCII-тексту на основі Абстрактної синтаксичної нотації один
(ASN.1
). MIB не містять даних, але пояснюють де знайти яку інформацію та як вона виглядає, які значення повертає для конкретного OID або який тип даних використовується.
OIDs
Ідентифікатори об'єктів (OIDs) відіграють важливу роль. Ці унікальні ідентифікатори призначені для управління об'єктами в межах Бази інформації управління (MIB).
Найвищі рівні ідентифікаторів об'єктів MIB, або OIDs, виділяються різним організаціям, що встановлюють стандарти. Саме на цих верхніх рівнях встановлюється каркас для глобальних практик управління та стандартів.
Крім того, виробникам надається можливість створювати приватні гілки. У межах цих гілок вони мають автономію включати керовані об'єкти, які стосуються їх власних ліній продуктів. Ця система забезпечує структурований та організований метод ідентифікації та управління різноманітними об'єктами в різних виробників та стандартах.
Ви можете переміщатися по дереву OID з веб-сайту тут: http://www.oid-info.com/cgi-bin/display?tree=#focus або переглянути, що означає OID (наприклад, 1.3.6.1.2.1.1
) за посиланням http://oid-info.com/get/1.3.6.1.2.1.1.
Є деякі відомі OIDs, такі як ті, що знаходяться всередині 1.3.6.1.2.1, які посилаються на змінні протоколу простого протоколу управління мережею (SNMP), визначені MIB-2. І з OIDs, що відповідають цьому, ви можете отримати деякі цікаві дані хоста (системні дані, мережеві дані, дані процесів...)
Приклад OID
1 . 3 . 6 . 1 . 4 . 1 . 1452 . 1 . 2 . 5 . 1 . 3. 21 . 1 . 4 . 7
Ось розбивка цієї адреси.
1 - це називається ISO і встановлює, що це OID. Тому всі OIDs починаються з "1"
3 - це називається ORG і використовується для вказівки організації, яка побудувала пристрій.
6 - це dod або Міністерство оборони, яке є організацією, що спочатку встановила Інтернет.
1 - це значення Інтернету для позначення того, що всі комунікації відбуватимуться через Інтернет.
4 - це значення визначає, що цей пристрій виготовлений приватною організацією, а не урядовою.
1 - це значення позначає, що пристрій виготовлений підприємством або бізнес-сутністю.
Ці перші шість значень зазвичай однакові для всіх пристроїв і дають вам основну інформацію про них. Ця послідовність чисел буде однаковою для всіх OID, за винятком випадків, коли пристрій виготовлений урядом.
Переходячи до наступного набору чисел.
1452 - вказує назву організації, яка виготовила цей пристрій.
1 - пояснює тип пристрою. У цьому випадку це будильник.
2 - визначає, що цей пристрій є віддаленою термінальною одиницею.
Решта значень надають конкретну інформацію про пристрій.
5 - позначає дискретний сигнал тривоги.
1 - конкретний пункт у пристрої
3 - порт
21 - адреса порту
1 - дисплей для порту
4 - номер точки
7 - стан точки
Версії SNMP
Існує 2 важливі версії SNMP:
SNMPv1: Основна версія, вона все ще найбільш поширена, аутентифікація базується на рядку (рядок спільноти), який передається в звичайному тексті (вся інформація передається в звичайному тексті). Версія 2 та 2c також відправляють трафік в звичайному тексті та використовують рядок спільноти як аутентифікацію.
SNMPv3: Використовує кращу форму аутентифікації, а інформація передається шифровано (можливий атака словником, але буде набагато складніше знайти правильні облікові дані, ніж у SNMPv1 та v2).
Рядки спільноти
Як вже зазначалося, для доступу до інформації, збереженої в MIB, вам потрібно знати рядок спільноти в версіях 1 та 2/2c та облікові дані в версії 3. Існують 2 типи рядків спільноти:
public
головним чином тільки для читанняprivate
Читання/Запис взагалі
Зверніть увагу, що можливість запису OID залежить від використаного рядка спільноти, тому навіть якщо ви дізнаєтеся, що використовується "public", ви все одно можете записати деякі значення. Також можуть існувати об'єкти, які завжди є "Тільки для читання".
Якщо ви спробуєте записати об'єкт, ви отримаєте помилку noSuchName
або readOnly
.
У версіях 1 та 2/2c, якщо ви використовуєте поганий рядок спільноти, сервер не відповість. Тому, якщо він відповідає, був використаний дійсний рядок спільноти.
Порти
Агент SNMP отримує запити на UDP-порті 161.
Менеджер отримує сповіщення (Пастки та InformRequests) на порту 162.
Коли використовується Протокол транспортного рівня безпеки або Протокол транспортного рівня безпеки дейтаграм, запити отримують на порті 10161, а сповіщення відправляються на порт 10162.
Атака перебором рядка спільноти (v1 та v2c)
Для вгадування рядка спільноти можна виконати атаку словником. Перевірте тут різні способи виконання атаки перебору для SNMP. Часто використовуваний рядок спільноти - public
.
Перелік SNMP
Рекомендується встановити наступне, щоб побачити, що означає кожен зібраний OID з пристрою:
Якщо ви знаєте дійсний рядок спільноти, ви можете отримати доступ до даних за допомогою SNMPWalk або SNMP-Check:
Завдяки розширеним запитам (download-mibs), можна отримати додаткову інформацію про систему за допомогою наступної команди:
SNMP містить багато інформації про хост, серед цікавих можливостей можна виділити: Мережеві інтерфейси (IPv4 та IPv6 адреси), Імена користувачів, Час безвідмовної роботи, Версія сервера/ОС та процеси, які працюють (можуть містити паролі)....
Небезпечні налаштування
У сфері управління мережею певні конфігурації та параметри є ключовими для забезпечення комплексного моніторингу та контролю.
Налаштування доступу
Два основні налаштування дозволяють доступ до повного дерева OID, що є важливою складовою управління мережею:
rwuser noauth
встановлено для дозволу повного доступу до дерева OID без необхідності аутентифікації. Це налаштування є простим та дозволяє необмежений доступ.Для більш конкретного контролю доступ може бути наданий за допомогою:
rwcommunity
для IPv4 адрес, таrwcommunity6
для IPv6 адрес.
Обидва команди вимагають рядок спільноти та відповідну IP-адресу, що надає повний доступ незалежно від походження запиту.
Параметри SNMP для Microsoft Windows
Серія значень бази управління інформацією (MIB) використовується для моніторингу різних аспектів системи Windows через SNMP:
Процеси системи: Доступ до
1.3.6.1.2.1.25.1.6.0
, цей параметр дозволяє моніторити активні процеси в системі.Запущені програми: Значення
1.3.6.1.2.1.25.4.2.1.2
призначене для відстеження поточно запущених програм.Шляхи процесів: Для визначення місця запуску процесу використовується значення MIB
1.3.6.1.2.1.25.4.2.1.4
.Одиниці зберігання: Моніторинг одиниць зберігання здійснюється за допомогою
1.3.6.1.2.1.25.2.3.1.4
.Назва програмного забезпечення: Для ідентифікації встановленого програмного забезпечення на системі використовується
1.3.6.1.2.1.25.6.3.1.2
.Облікові записи користувачів: Значення
1.3.6.1.4.1.77.1.2.25
дозволяє відстежувати облікові записи користувачів.TCP локальні порти: Нарешті,
1.3.6.1.2.1.6.13.1.3
призначено для моніторингу TCP локальних портів, що надає інформацію про активні мережеві підключення.
Cisco
Зверніть увагу на цю сторінку, якщо ви працюєте з обладнанням Cisco:
pageCisco SNMPВід SNMP до RCE
Якщо у вас є рядок, який дозволяє вам записувати значення в службу SNMP, ви можете використати його для виконання команд:
pageSNMP RCEМасовий SNMP
Braa є масовим сканером SNMP. Призначенням такого інструмента, звичайно, є виконання запитів SNMP - на відміну від snmpwalk з net-snmp, він може запитувати десятки або сотні хостів одночасно, і це в одному процесі. Таким чином, він споживає дуже мало системних ресурсів і дуже швидко сканує.
Braa реалізує свій ВЛАСНИЙ стек snmp, тому він НЕ потребує жодних бібліотек SNMP, таких як net-snmp.
Синтаксис: braa [Рядок спільноти]@[IP SNMP сервера]:[iso id]
Це може видобути багато МБ інформації, яку ви не зможете обробити вручну.
Тож давайте шукати найцікавішу інформацію (з https://blog.rapid7.com/2016/05/05/snmp-data-harvesting-during-penetration-testing/):
Пристрої
Процес починається з видобутку даних sysDesc MIB (1.3.6.1.2.1.1.1.0) з кожного файлу для ідентифікації пристроїв. Це досягається за допомогою команди grep:
Визначення приватного рядка
Ключовим кроком є визначення використаного приватного рядка спільноти організаціями, зокрема на маршрутизаторах Cisco IOS. Цей рядок дозволяє витягти робочі конфігурації з маршрутизаторів. Визначення часто ґрунтується на аналізі даних SNMP Trap на наявність слова "trap" за допомогою команди grep:
Імена користувачів/Паролі
Журнали, збережені в таблицях MIB, перевіряються на невдачі спроби входу, які можуть випадково містити паролі, введені як імена користувачів. Ключові слова, такі як fail, failed, або login, шукаються для пошуку цінних даних:
Електронні пошти
Наостанок, для вилучення адрес електронної пошти з даних використовується команда grep з регулярним виразом, який спрямований на шаблони, що відповідають форматам електронної пошти:
Зміна значень SNMP
Ви можете використовувати NetScanTools для зміни значень. Вам потрібно буде знати приватний рядок, щоб це зробити.
Підроблення
Якщо є ACL, яка дозволяє запитувати SMNP-сервіс тільки деяким IP-адресам, ви можете підробити одну з цих адрес в межах пакету UDP та перехопити трафік.
Огляд файлів конфігурації SNMP
snmp.conf
snmpd.conf
snmp-config.xml
Якщо вас цікавить кар'єра хакера та взлам невзламного - ми шукаємо співробітників! (вимагається вільне письмове та усне володіння польською мовою).
Автоматичні команди HackTricks
Last updated