161,162,10161,10162/udp - Pentesting SNMP
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
If you are interested in hacking career and hack the unhackable - we are hiring! (вимагається вільне володіння польською мовою в письмовій та усній формі).
SNMP - Simple Network Management Protocol є протоколом, що використовується для моніторингу різних пристроїв у мережі (таких як маршрутизатори, комутатори, принтери, IoT...).
SNMP також використовує порт 162/UDP для трапів. Це дані пакети, надіслані з SNMP-сервера до клієнта без явного запиту.
Щоб забезпечити роботу доступу SNMP між виробниками та з різними комбінаціями клієнт-сервер, була створена База управлінської інформації (MIB). MIB є незалежним форматом для зберігання інформації про пристрої. MIB - це текстовий файл, в якому всі запитувані об'єкти SNMP пристрою перераховані в стандартизованій ієрархії дерева. Він містить принаймні один Object Identifier
(OID
), який, крім необхідної унікальної адреси та імені, також надає інформацію про тип, права доступу та опис відповідного об'єкта.
Файли MIB написані в форматі ASCII тексту Abstract Syntax Notation One
(ASN.1
). MIB не містять даних, але пояснюють де знайти яку інформацію і як вона виглядає, які значення повертаються для конкретного OID або який тип даних використовується.
Ідентифікатори об'єктів (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.
Є кілька відомих OID, таких як ті, що знаходяться всередині 1.3.6.1.2.1, які посилаються на змінні Simple Network Management Protocol (SNMP), визначені в MIB-2. І з OID, що походять з цього, ви можете отримати цікаві дані про хост (дані системи, дані мережі, дані процесів...)
1 . 3 . 6 . 1 . 4 . 1 . 1452 . 1 . 2 . 5 . 1 . 3. 21 . 1 . 4 . 7
Ось розбивка цієї адреси.
1 – це називається ISO, і це встановлює, що це OID. Саме тому всі OID починаються з "1".
3 – це називається ORG, і використовується для вказівки організації, яка виготовила пристрій.
6 – це dod або Міністерство оборони, яке є організацією, що першою встановила Інтернет.
1 – це значення Інтернету, що позначає, що всі комунікації відбуватимуться через Інтернет.
4 – це значення визначає, що цей пристрій виготовлений приватною організацією, а не урядовою.
1 – це значення позначає, що пристрій виготовлений підприємством або бізнес-структурою.
Ці перші шість значень, як правило, однакові для всіх пристроїв і надають основну інформацію про них. Ця послідовність чисел буде однаковою для всіх OID, за винятком випадків, коли пристрій виготовлений урядом.
Продовжуючи до наступного набору чисел.
1452 – вказує на назву організації, яка виготовила цей пристрій.
1 – пояснює тип пристрою. У цьому випадку це будильник.
2 – визначає, що цей пристрій є віддаленим терміналом.
Інші значення надають специфічну інформацію про пристрій.
5 – позначає дискретну точку тривоги.
1 – конкретна точка в пристрої.
3 – порт.
21 – адреса порту.
1 – дисплей для порту.
4 – номер точки.
7 – стан точки.
Існує 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.
Менеджер отримує сповіщення (Traps та InformRequests) на порт 162.
Коли використовується з Transport Layer Security або Datagram Transport Layer Security, запити отримуються на порт 10161, а сповіщення надсилаються на порт 10162.
Щоб вгадати рядок спільноти, ви можете виконати атаку методом підбору. Перевірте тут різні способи виконання атаки методом підбору проти SNMP. Часто використовуваний рядок спільноти - public
.
Рекомендується встановити наступне, щоб побачити, що означає кожен OID, зібраний з пристрою:
Якщо ви знаєте дійсний рядок спільноти, ви можете отримати доступ до даних, використовуючи SNMPWalk або SNMP-Check:
Дякуючи розширеним запитам (download-mibs), можливо перерахувати ще більше інформації про систему за допомогою наступної команди:
SNMP має багато інформації про хост, і речі, які можуть вас зацікавити, це: мережеві інтерфейси (IPv4 та IPv6 адреси), імена користувачів, час роботи, версія сервера/ОС та процеси
які працюють (можуть містити паролі)....
У сфері управління мережею певні конфігурації та параметри є ключовими для забезпечення всебічного моніторингу та контролю.
Два основні налаштування дозволяють доступ до повного OID дерева, що є важливим компонентом в управлінні мережею:
rwuser noauth
встановлено для надання повного доступу до OID дерева без необхідності аутентифікації. Це налаштування є простим і дозволяє необмежений доступ.
Для більш специфічного контролю доступ може бути наданий за допомогою:
rwcommunity
для IPv4 адрес, та
rwcommunity6
для IPv6 адрес.
Обидва команди вимагають рядок спільноти та відповідну IP-адресу, пропонуючи повний доступ незалежно від походження запиту.
Серія значень бази управлінської інформації (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 SNMPЯкщо у вас є рядок, який дозволяє вам записувати значення всередині служби SNMP, ви можете зловживати цим для виконання команд:
SNMP RCEBraa є масовим сканером 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 з регулярним виразом, зосереджуючись на шаблонах, які відповідають форматам електронної пошти:
Ви можете використовувати NetScanTools для зміни значень. Вам потрібно знати приватний рядок, щоб це зробити.
Якщо є ACL, який дозволяє лише деяким IP запитувати службу SMNP, ви можете спуфити одну з цих адрес у UDP-пакеті та прослуховувати трафік.
snmp.conf
snmpd.conf
snmp-config.xml
Якщо вас цікавить кар'єра в хакерстві і ви хочете зламати незламне - ми наймаємо! (вимагається вільне володіння польською мовою в письмовій та усній формі).
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)