<summary><strong>Lernen Sie AWS-Hacking von Null auf Held mit</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Wenn Sie Ihr **Unternehmen in HackTricks beworben sehen möchten** oder **HackTricks als PDF herunterladen möchten**, ü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** 🐦 [**@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 einreichen.
Wenn Sie an einer **Hacking-Karriere** interessiert sind und das Unhackbare hacken möchten - **wir stellen ein!** (_fließendes Polnisch in Wort und Schrift erforderlich_).
**SNMP - Simple Network Management Protocol** ist ein Protokoll, das verwendet wird, um verschiedene Geräte im Netzwerk zu überwachen (wie Router, Switches, Drucker, IoTs...).
SNMP verwendet auch den Port **162/UDP** für **Traps**. Dabei handelt es sich um Daten **Pakete, die vom SNMP-Server an den Client gesendet werden, ohne explizit angefordert zu werden**.
Um sicherzustellen, dass der SNMP-Zugriff über verschiedene Hersteller und mit verschiedenen Client-Server-Kombinationen funktioniert, wurde die **Management Information Base (MIB)** erstellt. MIB ist ein **unabhängiges Format zur Speicherung von Geräteinformationen**. Eine MIB ist eine **Textdatei**, in der alle abfragbaren **SNMP-Objekte** eines Geräts in einer **standardisierten** Baumstruktur aufgelistet sind. Sie enthält mindestens eine `Object Identifier` (`OID`), die neben der erforderlichen **eindeutigen Adresse und einem Namen** auch Informationen über den Typ, die Zugriffsrechte und eine Beschreibung des jeweiligen Objekts bereitstellt.\
MIB-Dateien sind im auf ASCII-Text basierenden Format `Abstract Syntax Notation One` (`ASN.1`) geschrieben. Die **MIBs enthalten keine Daten**, sondern erklären **wo welche Informationen zu finden sind** und wie sie aussehen, welche Rückgabewerte für die spezifische OID zurückgegeben werden oder welcher Datentyp verwendet wird.
**Object Identifiers (OIDs)** spielen eine entscheidende Rolle. Diese eindeutigen Bezeichner sind dazu bestimmt, Objekte innerhalb einer **Management Information Base (MIB)** zu verwalten.
Die höchsten Ebenen der MIB-Objekt-IDs oder OIDs werden verschiedenen Standardisierungsorganisationen zugewiesen. Innerhalb dieser obersten Ebenen wird der Rahmen für globale Managementpraktiken und -standards festgelegt.
Darüber hinaus haben Anbieter die Freiheit, private Zweige zu erstellen. Innerhalb dieser Zweige haben sie die **Autonomie, verwaltete Objekte einzuschließen, die für ihre eigenen Produktlinien relevant sind**. Dieses System stellt sicher, dass es eine strukturierte und organisierte Methode zur Identifizierung und Verwaltung einer Vielzahl von Objekten über verschiedene Anbieter und Standards hinweg gibt.
Sie können sich durch einen **OID-Baum** im Web navigieren: [http://www.oid-info.com/cgi-bin/display?tree=#focus](http://www.oid-info.com/cgi-bin/display?tree=#focus) oder **sehen, was ein OID bedeutet** (wie `1.3.6.1.2.1.1`) unter [http://oid-info.com/get/1.3.6.1.2.1.1](http://oid-info.com/get/1.3.6.1.2.1.1).\
Es gibt einige **bekannte OIDs** wie diejenigen innerhalb von [1.3.6.1.2.1](http://oid-info.com/get/1.3.6.1.2.1), die auf von MIB-2 definierte Simple Network Management Protocol (SNMP)-Variablen verweisen. Und von den **von diesem abhängigen OIDs** können Sie einige interessante Host-Daten abrufen (Systemdaten, Netzwerkdaten, Prozessdaten...)
Diese ersten sechs Werte sind für alle Geräte tendenziell gleich und geben grundlegende Informationen über sie. Diese Zahlenfolge wird für alle OIDs gleich sein, außer wenn das Gerät von der Regierung hergestellt wurde.
* **SNMPv1**: Die Hauptversion, sie ist immer noch die häufigste, die **Authentifizierung basiert auf einem String** (Community-String), der im **Klartext übertragen wird** (alle Informationen werden im Klartext übertragen). **Version 2 und 2c** senden den **Datenverkehr ebenfalls im Klartext** und verwenden einen **Community-String zur Authentifizierung**.
* **SNMPv3**: Verwendet eine bessere **Authentifizierungsform** und die Informationen werden **verschlüsselt übertragen** (ein **Wörterbuchangriff** könnte durchgeführt werden, wäre jedoch viel schwieriger, die richtigen Anmeldeinformationen zu finden als bei SNMPv1 und v2).
Wie bereits erwähnt, **um auf die im MIB gespeicherten Informationen zuzugreifen, müssen Sie den Community-String in den Versionen 1 und 2/2c kennen und die Anmeldeinformationen in Version 3**.\
Beachten Sie, dass **die Schreibbarkeit einer OID vom verwendeten Community-String abhängt**, sodass **selbst** wenn festgestellt wird, dass "**public**" verwendet wird, Sie möglicherweise in der Lage sind, **einige Werte zu schreiben**. Es **können auch Objekte existieren, die immer "Nur lesen" sind**.\
In den Versionen 1 und 2/2c, wenn Sie einen **falschen** Community-String verwenden, antwortet der Server nicht. Wenn er antwortet, wurde ein **gültiger Community-String verwendet**.
* Der SNMP-Agent empfängt Anfragen auf UDP-Port **161**.
* Der Manager empfängt Benachrichtigungen ([Traps](https://en.wikipedia.org/wiki/Simple\_Network\_Management\_Protocol#Trap) und [InformRequests](https://en.wikipedia.org/wiki/Simple\_Network\_Management\_Protocol#InformRequest)) auf Port **162**.
* Bei Verwendung von [Transport Layer Security](https://en.wikipedia.org/wiki/Transport\_Layer\_Security) oder [Datagram Transport Layer Security](https://en.wikipedia.org/wiki/Datagram\_Transport\_Layer\_Security) werden Anfragen auf Port **10161** empfangen und Benachrichtigungen werden an Port **10162** gesendet.
Um den Community-String zu **erraten**, könnten Sie einen Wörterbuchangriff durchführen. Überprüfen Sie [hier verschiedene Möglichkeiten, einen Brute-Force-Angriff gegen SNMP durchzuführen](../../generic-methodologies-and-resources/brute-force.md#snmp). Ein häufig verwendeter Community-String ist `public`.
**SNMP** enthält viele Informationen über den Host, darunter **Netzwerkschnittstellen** (IPv4- und **IPv6-Adresse), Benutzernamen, Betriebszeit, Server/Betriebssystemversion und **Prozesse**
1.**`rwuser noauth`** ist so eingestellt, dass voller Zugriff auf den OID-Baum ohne Authentifizierung möglich ist. Diese Einstellung ist unkompliziert und ermöglicht uneingeschränkten Zugriff.
2. Für eine spezifischere Steuerung kann der Zugriff gewährt werden durch:
Beide Befehle erfordern einen **Community-String** und die entsprechende IP-Adresse, um unabhängig vom Ursprung der Anfrage vollen Zugriff zu gewähren.
* **Systemprozesse**: Über `1.3.6.1.2.1.25.1.6.0` können aktive Prozesse im System überwacht werden.
* **Laufende Programme**: Der Wert `1.3.6.1.2.1.25.4.2.1.2` ist für die Verfolgung der aktuell laufenden Programme vorgesehen.
* **Prozesspfad**: Zur Bestimmung des Speicherorts eines Prozesses wird der MIB-Wert `1.3.6.1.2.1.25.4.2.1.4` verwendet.
* **Speichereinheiten**: Die Überwachung von Speichereinheiten wird durch `1.3.6.1.2.1.25.2.3.1.4` erleichtert.
* **Softwarename**: Zur Identifizierung der auf einem System installierten Software wird `1.3.6.1.2.1.25.6.3.1.2` verwendet.
* **Benutzerkonten**: Der Wert `1.3.6.1.4.1.77.1.2.25` ermöglicht die Verfolgung von Benutzerkonten.
* **TCP-Local-Ports**: Schließlich ist `1.3.6.1.2.1.6.13.1.3` für die Überwachung von TCP-Local-Ports vorgesehen und bietet Einblicke in aktive Netzwerkverbindungen.
Wenn Sie den **String** haben, der es Ihnen ermöglicht, **Werte im SNMP-Dienst zu schreiben**, könnten Sie ihn missbrauchen, um **Befehle auszuführen**:
[Braa ](https://github.com/mteg/braa)ist ein massiver SNMP-Scanner. Die beabsichtigte Verwendung eines solchen Tools besteht natürlich darin, SNMP-Abfragen durchzuführen - im Gegensatz zu snmpwalk von net-snmp kann es jedoch Dutzende oder Hunderte von Hosts gleichzeitig und in einem einzigen Prozess abfragen. Dadurch verbraucht es sehr wenige Systemressourcen und führt das Scannen SEHR schnell durch.
Also, lassen Sie uns nach den interessantesten Informationen suchen (von [https://blog.rapid7.com/2016/05/05/snmp-data-harvesting-during-penetration-testing/](https://blog.rapid7.com/2016/05/05/snmp-data-harvesting-during-penetration-testing/)):
Der Prozess beginnt mit der Extraktion von **sysDesc MIB-Daten** (1.3.6.1.2.1.1.1.0) aus jeder Datei, um die Geräte zu identifizieren. Dies wird durch die Verwendung eines **grep-Befehls** erreicht:
Ein entscheidender Schritt besteht darin, den **privaten Community-String** zu identifizieren, den Organisationen verwenden, insbesondere auf Cisco IOS-Routern. Dieser String ermöglicht das Extrahieren von **laufenden Konfigurationen** von Routern. Die Identifizierung beruht oft auf der Analyse von SNMP-Trap-Daten nach dem Wort "trap" mit einem **grep-Befehl**:
Protokolle, die in MIB-Tabellen gespeichert sind, werden auf **fehlgeschlagene Anmeldeversuche** überprüft, die versehentlich Passwörter enthalten könnten, die als Benutzernamen eingegeben wurden. Schlüsselwörter wie _fail_, _failed_ oder _login_ werden durchsucht, um wertvolle Daten zu finden:
Abschließend wird zur Extraktion von **E-Mail-Adressen** aus den Daten ein **grep-Befehl** mit einem regulären Ausdruck verwendet, der sich auf Muster konzentriert, die E-Mail-Formate entsprechen:
Wenn es eine ACL gibt, die nur bestimmten IPs das Abfragen des SNMP-Dienstes erlaubt, können Sie eine dieser Adressen im UDP-Paket fälschen und den Datenverkehr abfangen.
Wenn Sie an einer **Hackerkarriere** interessiert sind und das Unhackbare hacken möchten - **wir stellen ein!** (_fließendes Polnisch in Wort und Schrift erforderlich_).
<summary><strong>Erlernen Sie AWS-Hacking von Null auf Held mit</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Wenn Sie Ihr **Unternehmen in HackTricks beworben sehen möchten** oder **HackTricks im PDF-Format herunterladen möchten**, ü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** 🐦 [**@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 einreichen.