<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert en équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
Si vous êtes intéressé par une **carrière en piratage** et pirater l'impossible - **nous recrutons !** (_maîtrise du polonais écrit et parlé requise_).
**SNMP - Simple Network Management Protocol** est un protocole utilisé pour surveiller différents appareils dans le réseau (comme les routeurs, les commutateurs, les imprimantes, les objets IoT...).
SNMP utilise également le port **162/UDP** pour les **traps**. Ce sont des **paquets de données envoyés du serveur SNMP au client sans être explicitement demandés**.
Pour garantir que l'accès SNMP fonctionne entre les fabricants et avec différentes combinaisons client-serveur, la **Base d'Information de Gestion (MIB)** a été créée. MIB est un **format indépendant pour stocker les informations des appareils**. Un MIB est un fichier **textuel** dans lequel tous les **objets SNMP interrogeables** d'un appareil sont répertoriés dans une hiérarchie d'arborescence **standardisée**. Il contient au **moins un `Identifiant d'Objet` (`OID`)**, qui, en plus de l'**adresse unique** nécessaire et d'un **nom**, fournit également des informations sur le type, les droits d'accès et une description de l'objet respectif.\
Les fichiers MIB sont écrits dans le format texte ASCII basé sur la `Notation de Syntaxe Abstraite Un` (`ASN.1`). Les **MIB ne contiennent pas de données**, mais ils expliquent **où trouver quelles informations** et à quoi cela ressemble, ce qui renvoie des valeurs pour l'OID spécifique, ou quel type de données est utilisé.
Les **Identifiants d'Objet (OID)** jouent un rôle crucial. Ces identifiants uniques sont conçus pour gérer les objets au sein d'une **Base d'Information de Gestion (MIB)**.
Les niveaux les plus élevés des ID d'objet MIB, ou OIDs, sont attribués à diverses organisations de normalisation. C'est à l'intérieur de ces niveaux supérieurs que le cadre des pratiques et normes de gestion mondiales est établi.
De plus, les fournisseurs se voient accorder la liberté d'établir des branches privées. À l'intérieur de ces branches, ils ont l'**autonomie d'inclure des objets gérés pertinents pour leurs propres gammes de produits**. Ce système garantit qu'il existe une méthode structurée et organisée pour identifier et gérer une large gamme d'objets à travers différents fournisseurs et normes.
![](../../.gitbook/assets/snmp_oid_mib_tree.png)
Vous pouvez **naviguer** dans un **arbre OID** depuis le web ici : [http://www.oid-info.com/cgi-bin/display?tree=#focus](http://www.oid-info.com/cgi-bin/display?tree=#focus) ou **voir ce que signifie un OID** (comme `1.3.6.1.2.1.1`) en accédant à [http://oid-info.com/get/1.3.6.1.2.1.1](http://oid-info.com/get/1.3.6.1.2.1.1).\
Il existe quelques **OIDs bien connus** comme ceux à l'intérieur de [1.3.6.1.2.1](http://oid-info.com/get/1.3.6.1.2.1) qui font référence aux variables SNMP définies par MIB-2. Et à partir des **OIDs en attente de celui-ci**, vous pouvez obtenir des données hôtes intéressantes (données système, données réseau, données de processus...)
Ces six premières valeurs ont tendance à être les mêmes pour tous les appareils et elles vous donnent des informations de base sur eux. Cette séquence de nombres sera la même pour tous les OIDs, sauf lorsque l'appareil est fabriqué par le gouvernement.
* **SNMPv1** : La principale, c'est toujours la plus fréquente, l'**authentification est basée sur une chaîne** (chaîne de communauté) qui voyage en **texte clair** (toutes les informations voyagent en texte clair). **La version 2 et 2c** envoient également le **trafic en texte clair** et utilisent une **chaîne de communauté comme authentification**.
* **SNMPv3** : Utilise une meilleure **forme d'authentification** et les informations voyagent **chiffrées** (une **attaque par dictionnaire** pourrait être effectuée mais il serait beaucoup plus difficile de trouver les bons identifiants que dans SNMPv1 et v2).
Comme mentionné précédemment, **pour accéder aux informations enregistrées sur le MIB, vous devez connaître la chaîne de communauté sur les versions 1 et 2/2c et les identifiants sur la version 3.**\
Notez que **la possibilité d'écrire un OID dépend de la chaîne de communauté utilisée**, donc **même** si vous découvrez que "**public**" est utilisé, vous pourriez être en mesure d'**écrire certaines valeurs**. De plus, il **peut** exister des objets qui sont **toujours "Lecture Seule"**.\
Si vous essayez d'**écrire** un objet, une erreur **`noSuchName` ou `readOnly`** est reçue\*\*.\*\*
Dans les versions 1 et 2/2c, si vous utilisez une **mauvaise** chaîne de communauté, le serveur ne **répondra** pas. Donc, s'il répond, une **chaîne de communauté valide a été utilisée**.
* L'agent SNMP reçoit des demandes sur le port UDP **161**.
* Le gestionnaire reçoit des notifications ([Traps](https://en.wikipedia.org/wiki/Simple\_Network\_Management\_Protocol#Trap) et [InformRequests](https://en.wikipedia.org/wiki/Simple\_Network\_Management\_Protocol#InformRequest)) sur le port **162**.
* Lorsqu'il est utilisé avec [Transport Layer Security](https://en.wikipedia.org/wiki/Transport\_Layer\_Security) ou [Datagram Transport Layer Security](https://en.wikipedia.org/wiki/Datagram\_Transport\_Layer\_Security), les demandes sont reçues sur le port **10161** et les notifications sont envoyées sur le port **10162**.
Pour **deviner la chaîne de communauté**, vous pourriez effectuer une attaque par dictionnaire. Consultez [ici différentes façons d'effectuer une attaque par force brute contre SNMP](../../generic-methodologies-and-resources/brute-force.md#snmp). Une chaîne de communauté fréquemment utilisée est `public`.
**SNMP** contient beaucoup d'informations sur l'hôte et des éléments qui pourraient vous intéresser sont : **Interfaces réseau** (adresse IPv4 et **IPv6**), Noms d'utilisateur, Temps de fonctionnement, Version du serveur/Système d'exploitation, et **processus**
1.**`rwuser noauth`** est défini pour permettre un accès complet à l'arbre OID sans nécessiter d'authentification. Ce paramètre est simple et permet un accès illimité.
2. Pour un contrôle plus spécifique, l'accès peut être accordé en utilisant :
Les deux commandes nécessitent une **chaîne communautaire** et l'adresse IP pertinente, offrant un accès complet indépendamment de l'origine de la demande.
* **Processus système** : Accessible via `1.3.6.1.2.1.25.1.6.0`, ce paramètre permet de surveiller les processus actifs dans le système.
* **Programmes en cours d'exécution** : La valeur `1.3.6.1.2.1.25.4.2.1.2` est désignée pour suivre les programmes actuellement en cours d'exécution.
* **Chemin des processus** : Pour déterminer d'où s'exécute un processus, la valeur MIB `1.3.6.1.2.1.25.4.2.1.4` est utilisée.
* **Unités de stockage** : La surveillance des unités de stockage est facilitée par `1.3.6.1.2.1.25.2.3.1.4`.
* **Nom du logiciel** : Pour identifier le logiciel installé sur un système, `1.3.6.1.2.1.25.6.3.1.2` est utilisé.
* **Comptes utilisateur** : La valeur `1.3.6.1.4.1.77.1.2.25` permet de suivre les comptes utilisateur.
* **Ports locaux TCP** : Enfin, `1.3.6.1.2.1.6.13.1.3` est désigné pour surveiller les ports locaux TCP, fournissant un aperçu des connexions réseau actives.
[Braa ](https://github.com/mteg/braa)est un scanner SNMP massif. L'usage prévu d'un tel outil est bien sûr de faire des requêtes SNMP - mais contrairement à snmpwalk de net-snmp, il est capable d'interroger des dizaines ou des centaines d'hôtes simultanément, et dans un seul processus. Ainsi, il consomme très peu de ressources système et effectue le balayage TRÈS rapidement.
Alors, cherchons les informations les plus intéressantes (de [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/)):
Le processus commence par l'extraction des données **sysDesc MIB** (1.3.6.1.2.1.1.1.0) de chaque fichier pour identifier les appareils. Cela est accompli grâce à l'utilisation d'une **commande grep**:
Une étape cruciale consiste à identifier la **chaîne communautaire privée** utilisée par les organisations, en particulier sur les routeurs Cisco IOS. Cette chaîne permet l'extraction des **configurations en cours d'exécution** des routeurs. L'identification repose souvent sur l'analyse des données de **trap SNMP** pour le mot "trap" avec une commande **grep** :
Les journaux stockés dans les tables MIB sont examinés pour les **tentatives de connexion échouées**, qui pourraient inclure accidentellement des mots de passe saisis en tant que noms d'utilisateur. Des mots-clés tels que _fail_, _failed_, ou _login_ sont recherchés pour trouver des données précieuses:
Enfin, pour extraire les **adresses e-mail** des données, une commande **grep** avec une expression régulière est utilisée, en se concentrant sur les motifs correspondant aux formats d'e-mail :
S'il existe une ACL qui autorise uniquement certaines adresses IP à interroger le service SMNP, vous pouvez usurper l'une de ces adresses à l'intérieur du paquet UDP et intercepter le trafic.
Si vous êtes intéressé par une **carrière en piratage** et pirater l'impiratable - **nous recrutons !** (_maîtrise du polonais écrit et parlé requise_).
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.