Skip to main content
  1. Lab-blue/

[TODO] Lab - SNMP v2 in chiaro vs v3 cifrato

·4 mins
Alessio Barnini
Author
Alessio Barnini
Table of Contents

Cosa fa
#

Installa snmpd su Ubuntu, configura prima v2 (community string visibile in tcpdump) poi v3 (auth+priv), e dimostra con snmpwalk da Kali la differenza di sicurezza.

TL;DR
#

SNMP v2 → community string "public" viaggia in chiaro → chiunque la vede con tcpdump
SNMP v3 → autenticazione SHA + cifratura AES → traffico cifrato
VersioneAutenticazioneCifraturaUsare in produzione?
v1Community stringNoMai
v2cCommunity stringNoMai
v3SHA/MD5AES/DES

Fase 1 — Setup snmpd su Ubuntu
#

  • Task 1.1 — Installa snmpd e snmp-utils

    sudo apt update && sudo apt install -y snmpd snmp
    • Come sai che hai finito: snmpd --version risponde
  • Task 1.2 — Verifica stato servizio

    sudo systemctl status snmpd
    sudo systemctl enable snmpd
    sudo systemctl start snmpd
    • Come sai che hai finito: status: active (running)
  • Task 1.3 — Installa snmp su Kali

    # Da Kali
    sudo apt install -y snmp

Fase 2 — SNMP v2: community string in chiaro
#

  • Task 2.1 — Configura snmpd per v2

    sudo nano /etc/snmp/snmpd.conf

    Aggiungi/modifica questa riga:

    rocommunity public 192.168.64.0/24
    sudo systemctl restart snmpd
  • Task 2.2 — Avvia tcpdump su Ubuntu (terminale separato)

    sudo tcpdump -i any port 161 -nn -A
    # -A = mostra payload in ASCII — vedrai la community string
  • Task 2.3 — snmpwalk da Kali con v2

    # Da Kali — "system" richiede MIB installato, usa OID numerico
    snmpwalk -v2c -c public 192.168.64.3 1.3.6.1.2.1.1
    • Come sai che hai finito: vedi output con sysDescr, sysUpTime ecc.
    • Guarda tcpdump su Ubuntu: la stringa "public" è visibile in chiaro nel payload

    Output reale del lab (24/05/2026):

    iso.3.6.1.2.1.1.1.0 = STRING: "Linux barno-server 6.8.0-111-generic #111-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 11 22:59:23 UTC 2026 aarch64"
    iso.3.6.1.2.1.1.5.0 = STRING: "barno-server"
    iso.3.6.1.2.1.1.6.0 = STRING: "Sitting on the Dock of the Bay"

    tcpdump corrispondente su Ubuntu (community string in chiaro):

    15:09:55 IP 192.168.64.200 > 192.168.64.3.161: GetRequest .1.3.6.1.2.1.2.2
    E..F..@.@..k..@...@..t...2/U0(.....public......Z~......0.0...+........

    "public" appare in ogni pacchetto, in ASCII leggibile.

    Nota MIB: su Kali senza MIB installati, systemUnknown Object Identifier. Usa sempre l'OID numerico 1.3.6.1.2.1.1. Il MIB è un dizionario locale che traduce nomi → OID numerici.

  • Task 2.4 — Prova una community string sbagliata

    snmpwalk -v2c -c sbagliata 192.168.64.3 system
    • Come sai che hai finito: timeout — ma in tcpdump vedi comunque la stringa "sbagliata" in chiaro

Fase 3 — SNMP v3: autenticazione + cifratura
#

  • Task 3.1 — Crea utente v3 su Ubuntu

    sudo systemctl stop snmpd
    
    sudo net-snmp-create-v3-user -ro -A "password123!" -a SHA -X "priv456!" -x AES monitoruser
    
    sudo systemctl start snmpd
    • Come sai che hai finito: utente aggiunto in /var/lib/snmp/snmpd.conf
  • Task 3.2 — Verifica utente creato

    sudo grep monitoruser /var/lib/snmp/snmpd.conf
  • Task 3.3 — snmpwalk con v3 da Kali

    # Apici singoli per le password con ! (doppi apici causano history expansion in bash)
    snmpwalk -v3 -l authPriv \
        -u monitoruser \
        -a SHA -A 'password123!' \
        -x AES -X 'priv456!' \
        192.168.64.3 1.3.6.1.2.1.1
    • Come sai che hai finito: stesse info di prima ma il traffico è ora cifrato

    Trappola bash: le password con ! dentro doppi apici causano dquote> (history expansion). Usa sempre apici singoli per le password con caratteri speciali.

  • Task 3.4 — Confronta tcpdump v2 vs v3

    sudo tcpdump -i any -A udp port 161

    v2c → community string in chiaro in ogni pacchetto:

    .....public. ....Z}......0.0..

    v3 → payload cifrato AES, solo username visibile nell'header:

    F=ap U="monitoruser" [!scoped PDU]b8_7b_92_5a_ae_d1_e7_51_58_d2_cf_82_7a_79_07_d5...

    Osservazione chiave: con v3, un attaccante che sniffa vede solo monitoruser — nessuna password, nessun dato di sistema. Con v2c vede tutto: community string + dati + OID interrogati.


Fase 4 — Cosa monitora SNMP (bonus)
#

  • Task 4.1 — Esplora gli OID principali
    # CPU load
    snmpwalk -v2c -c public 192.168.64.3 1.3.6.1.4.1.2021.10
    
    # Memoria
    snmpwalk -v2c -c public 192.168.64.3 1.3.6.1.4.1.2021.4
    
    # Interfacce di rete
    snmpwalk -v2c -c public 192.168.64.3 interfaces
    • Come sai che hai finito: vedi metriche operative del server

Scenario Reale
#

Un attaccante sulla stessa rete intercetta traffico SNMP v2 con Wireshark. Vede la community string "public" → può fare snmpwalk su tutti i device della rete e raccogliere: uptime, interfacce, route, credenziali se configurate male. Con v3 lo stesso attacco produce solo traffico cifrato illeggibile.


Risorse
#

  • man snmpd.conf — configurazione completa
  • man snmpwalk — query OID
  • Gibson SY0-701 Cap 3 — SNMP

Collegato a
#

  • cap-03-security-architecture — SNMP security

Related