SNMP RCE
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)
SNMP può essere sfruttato da un attaccante se l'amministratore ignora la sua configurazione predefinita sul dispositivo o server. Abusando della comunità SNMP con permessi di scrittura (rwcommunity) su un sistema operativo Linux, l'attaccante può eseguire comandi sul server.
Per estendere i servizi SNMP e aggiungere comandi extra, è possibile aggiungere nuove righe alla tabella "nsExtendObjects". Questo può essere realizzato utilizzando il comando snmpset
e fornendo i parametri necessari, incluso il percorso assoluto all'eseguibile e il comando da eseguire:
L'iniezione di comandi da eseguire sul servizio SNMP richiede l'esistenza e l'eseguibilità del binario/script chiamato. Il NET-SNMP-EXTEND-MIB
richiede di fornire il percorso assoluto all'eseguibile.
Per confermare l'esecuzione del comando iniettato, il comando snmpwalk
può essere utilizzato per enumerare il servizio SNMP. L'output mostrerà il comando e i suoi dettagli associati, incluso il percorso assoluto:
Quando il comando iniettato viene letto, viene eseguito. Questo comportamento è noto come run-on-read()
. L'esecuzione del comando può essere osservata durante la lettura di snmpwalk.
Per ottenere il controllo sul server e ottenere una shell del server, può essere utilizzato uno script python sviluppato da mxrch da https://github.com/mxrch/snmp-shell.git.
In alternativa, una reverse shell può essere creata manualmente iniettando un comando specifico in SNMP. Questo comando, attivato da snmpwalk, stabilisce una connessione di reverse shell alla macchina dell'attaccante, consentendo il controllo sulla macchina della vittima. Puoi installare i prerequisiti per eseguire questo:
O una reverse shell:
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)