Translated ['network-services-pentesting/pentesting-snmp/README.md', 'wi

This commit is contained in:
Translator 2023-12-24 19:02:51 +00:00
parent b6ecfe0cb1
commit caf4d861b6
2 changed files with 186 additions and 917 deletions

View file

@ -4,118 +4,117 @@
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary> <summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* Travaillez-vous dans une entreprise de **cybersécurité** ? Voulez-vous voir votre entreprise annoncée dans HackTricks ? ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! * Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? ou souhaitez-vous accéder à la **dernière version du PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) * Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection d'[**NFTs**](https://opensea.io/collection/the-peass-family) exclusifs
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) **groupe Discord** ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** * **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez**-moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Partagez vos astuces de piratage en soumettant des PR au** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **et au** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud). * **Partagez vos astuces de hacking en soumettant des PR au** [**dépôt hacktricks**](https://github.com/carlospolop/hacktricks) **et au** [**dépôt hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details> </details>
<img src="../../.gitbook/assets/i3.png" alt="" data-size="original">\ <img src="../../.gitbook/assets/i3.png" alt="" data-size="original">\
**Astuce de prime de bug** : **inscrivez-vous** à **Intigriti**, une plateforme de prime de bug premium créée par des pirates, pour les pirates ! Rejoignez-nous sur [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) aujourd'hui et commencez à gagner des primes allant jusqu'à **100 000 $** ! **Conseil pour les bug bounty** : **inscrivez-vous** sur **Intigriti**, une plateforme de bug bounty premium créée par des hackers, pour des hackers ! Rejoignez-nous sur [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) aujourd'hui, et commencez à gagner des primes allant jusqu'à **100 000 $** !
{% embed url="https://go.intigriti.com/hacktricks" %} {% embed url="https://go.intigriti.com/hacktricks" %}
## Informations de base ## Informations de base
**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 IoT...). **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 IoTs...).
``` ```
PORT STATE SERVICE REASON VERSION PORT STATE SERVICE REASON VERSION
161/udp open snmp udp-response ttl 244 ciscoSystems SNMPv3 server (public) 161/udp open snmp udp-response ttl 244 ciscoSystems SNMPv3 server (public)
``` ```
{% hint style="info" %} {% hint style="info" %}
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**. 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 avoir été explicitement demandés**.
{% endhint %} {% endhint %}
### MIB ### MIB
Pour garantir que l'accès SNMP fonctionne entre les fabricants et avec différentes combinaisons client-serveur, le **Management Information Base (MIB)** a été créé. MIB est un **format indépendant pour stocker les informations de l'appareil**. Un MIB est un **fichier texte** 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 `Object Identifier` (`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.\ Pour garantir que l'accès SNMP fonctionne à travers les fabricants et avec différentes combinaisons client-serveur, la **Base d'Informations de Gestion (MIB)** a été créée. MIB est un **format indépendant pour stocker les informations des appareils**. Un MIB est un fichier **texte** dans lequel tous les **objets SNMP interrogeables** d'un appareil sont listés dans une hiérarchie arborescente **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 `Abstract Syntax Notation One` (`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 fichiers MIB sont écrits dans le format de texte ASCII basé sur la `Notation Syntaxique Abstraite Un` (`ASN.1`). Les **MIB ne contiennent pas de données**, mais ils expliquent **où trouver quelles informations** et à quoi elles ressemblent, quelles valeurs de retour pour l'OID spécifique, ou quel type de données est utilisé.
### OIDs ### OIDs
**OID** signifie **O**bject **Id**entifiers. **Les OIDs identifient de manière unique les objets gérés dans une hiérarchie MIB**. Cela peut être représenté sous forme d'arbre, dont les niveaux sont attribués par différentes organisations. Les identifiants d'objet MIB de niveau supérieur (OID) appartiennent à différentes organisations standard.\ **OIDs** signifie **Identifiants d'Objets**. **Les OIDs identifient de manière unique les objets gérés dans une hiérarchie MIB**. Cela peut être représenté comme un arbre, dont les niveaux sont attribués par différentes organisations. Les identifiants d'objets MIB de niveau supérieur (OIDs) appartiennent à différentes organisations standard.
**Les fournisseurs définissent des branches privées comprenant des objets gérés pour leurs propres produits.** **Les fournisseurs définissent des branches privées comprenant des objets gérés pour leurs propres produits.**
![](../../.gitbook/assets/snmp_oid_mib_tree.png) ![](../../.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).\ Vous pouvez **naviguer** à travers 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 qu'un OID signifie** (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 **OID 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 Simple Network Management Protocol (SNMP). Et à partir des **OID en attente de celui-ci**, vous pouvez obtenir des données d'hôte intéressantes (données système, données réseau, données de processus...) Il existe certains **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 référencent les variables du protocole de gestion de réseau simple (SNMP) définies par MIB-2. Et à partir des **OIDs dépendant de celui-ci**, vous pouvez obtenir des données intéressantes sur l'hôte (données système, données réseau, données de processus...)
### **Exemple d'OID** ### **Exemple d'OID**
**`1 . 3 . 6 . 1 . 4 . 1 . 1452 . 1 . 2 . 5 . 1 . 3. 21 . 1 . 4 . 7`** **`1 . 3 . 6 . 1 . 4 . 1 . 1452 . 1 . 2 . 5 . 1 . 3 . 21 . 1 . 4 . 7`**
Voici une ventilation de cette adresse. Voici une décomposition de cette adresse.
* 1 - cela s'appelle l'ISO et cela établit qu'il s'agit d'un OID. C'est pourquoi tous les OIDs commencent par "1" * 1 cela s'appelle l'ISO et cela établit qu'il s'agit d'un OID. C'est pourquoi tous les OIDs commencent par “1”
* 3 - cela s'appelle ORG et il est utilisé pour spécifier l'organisation qui a construit l'appareil. * 3 cela s'appelle ORG et il est utilisé pour spécifier l'organisation qui a construit l'appareil.
* 6 - c'est le dod ou le Département de la Défense qui est l'organisation qui a établi Internet en premier. * 6 c'est le dod ou le Département de la Défense qui est l'organisation qui a établi Internet en premier.
* 1 - c'est la valeur d'Internet pour indiquer que toutes les communications se feront via Internet. * 1 c'est la valeur de l'internet pour dénoter que toutes les communications se feront via Internet.
* 4 - cette valeur détermine que cet appareil est fabriqué par une organisation privée et non gouvernementale. * 4 cette valeur détermine que cet appareil est fabriqué par une organisation privée et non gouvernementale.
* 1 - cette valeur indique que l'appareil est fabriqué par une entreprise ou une entité commerciale. * 1 cette valeur indique que l'appareil est fabriqué par une entreprise ou une entité commerciale.
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. Ces six premières valeurs ont tendance à être les mêmes pour tous les appareils et elles vous donnent les informations de base à leur sujet. Cette séquence de nombres sera la même pour tous les OIDs, sauf lorsque l'appareil est fabriqué par le gouvernement.
Passons au prochain ensemble de nombres. Passons à la série suivante de nombres.
* 1452 - donne le nom de l'organisation qui a fabriqué cet appareil. * 1452 donne le nom de l'organisation qui a fabriqué cet appareil.
* 1 - explique le type d'appareil. Dans ce cas, c'est une alarme. * 1 explique le type d'appareil. Dans ce cas, il s'agit d'un réveil.
* 2 - détermine que cet appareil est une unité de terminal à distance. * 2 détermine que cet appareil est une unité terminale à distance.
Le reste des valeurs donne des informations spécifiques sur l'appareil. Le reste des valeurs donne des informations spécifiques sur l'appareil.
* 5 - indique un point d'alarme discret. * 5 désigne un point d'alarme discret.
* 1 - point spécifique dans l'appareil * 1 point spécifique dans l'appareil
* 3 - port * 3 port
* 21 - adresse du port * 21 adresse du port
* 1 - affichage pour le port * 1 affichage pour le port
* 4 - numéro de point * 4 numéro de point
* 7 - état du point * 7 état du point
_**(Exemple tiré d'**_ [_**ici**_](https://www.netadmintools.com/snmp-mib-and-oids)_**)**_ _**(Exemple pris de**_ [_**ici**_](https://www.netadmintools.com/snmp-mib-and-oids)_**)**_
### Versions SNMP ### Versions SNMP
Il existe 2 versions importantes de SNMP : Il existe 2 versions importantes de SNMP :
* **SNMPv1** : La principale, elle 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 le **trafic en texte clair** également et utilisent une **chaîne de communauté comme authentification**. * **SNMPv1** : La principale, elle est encore la plus fréquente, l'**authentification est basée sur une chaîne** (chaîne de communauté) qui circule en **texte clair** (toutes les informations circulent en texte clair). Les **versions 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 **cryptées** (une **attaque par dictionnaire** pourrait être effectuée mais il serait beaucoup plus difficile de trouver les bonnes informations d'identification que dans SNMPv1 et v2). * **SNMPv3** : Utilise une meilleure forme d'**authentification** et les informations circulent **chiffrées** en utilisant (**une attaque par dictionnaire** pourrait être effectuée mais il serait beaucoup plus difficile de trouver les identifiants corrects que dans SNMPv1 et v2).
### Chaînes de communauté ### Chaînes de Communauté
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 informations d'identification sur la version 3.**\ Comme mentionné précédemment, **afin d'accéder aux informations enregistrées sur le MIB, vous devez connaître la chaîne de communauté dans les versions 1 et 2/2c et les identifiants dans la version 3.**\
Il y a **2 types de chaînes de communauté** : Il existe **2 types de chaînes de communauté** :
* **`public`** principalement des fonctions **en lecture seule** * **`public`** principalement des fonctions **en lecture seule**
* **`private`** **Lecture/écriture** en général * **`private`** **Lecture/Écriture** en général
Notez que **la possibilité d'écrire sur 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"**.\ Notez que **la possibilité d'écrire sur un OID dépend de la chaîne de communauté utilisée**, donc **même** si vous trouvez que "**public**" est utilisé, vous pourriez être capable 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. Si vous essayez d'**écrire** sur un objet, une erreur **`noSuchName` ou `readOnly`** est reçue\*\*.\*\*
Dans les versions 1 et 2/2c, si vous utilisez une chaîne de communauté **incorrecte**, le serveur ne **répondra pas**. Donc, s'il répond, une **chaîne de communauté valide a été utilisée**. 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**.
## Ports ## Ports
* L'agent SNMP reçoit des demandes sur le port UDP **161**. * L'agent SNMP reçoit les requêtes 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**. * Le gestionnaire reçoit les 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**. * 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 requêtes sont reçues sur le port **10161** et les notifications sont envoyées au port **10162**.
## Attaque par Force Brute de la Community String (v1 et v2c)
## Brute-Force de la chaîne de communauté (v1 et v2c) Pour **deviner la community string**, vous pourriez effectuer une attaque par dictionnaire. Consultez [ici différentes méthodes pour réaliser une attaque par force brute contre SNMP](../../generic-methodologies-and-resources/brute-force.md#snmp). Une community string souvent utilisée est `public`.
Pour **deviner la chaîne de communauté**, vous pouvez 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`.
## Énumération SNMP ## Énumération SNMP
Il est recommandé d'installer les éléments suivants pour voir ce que signifie **chaque OID collecté** à partir de l'appareil : Il est recommandé d'installer ce qui suit pour comprendre ce que signifie **chaque OID recueilli** depuis l'appareil :
```bash ```bash
apt-get install snmp-mibs-downloader apt-get install snmp-mibs-downloader
download-mibs download-mibs
# Finally comment the line saying "mibs :" in /etc/snmp/snmp.conf # Finally comment the line saying "mibs :" in /etc/snmp/snmp.conf
sudo vi /etc/snmp/snmp.conf sudo vi /etc/snmp/snmp.conf
``` ```
Si vous connaissez une chaîne de communauté valide, vous pouvez accéder aux données en utilisant **SNMPWalk** ou **SNMP-Check**: Si vous connaissez une chaîne de communauté valide, vous pouvez accéder aux données en utilisant **SNMPWalk** ou **SNMP-Check** :
```bash ```bash
snmpbulkwalk -c [COMM_STRING] -v [VERSION] [IP] . #Don't forget the final dot snmpbulkwalk -c [COMM_STRING] -v [VERSION] [IP] . #Don't forget the final dot
snmpbulkwalk -c public -v2c 10.10.11.136 . snmpbulkwalk -c public -v2c 10.10.11.136 .
@ -135,21 +134,35 @@ Grâce aux requêtes étendues (download-mibs), il est possible d'énumérer enc
```bash ```bash
snmpwalk -v X -c public <IP> NET-SNMP-EXTEND-MIB::nsExtendOutputFull snmpwalk -v X -c public <IP> NET-SNMP-EXTEND-MIB::nsExtendOutputFull
``` ```
**SNMP** contient beaucoup d'informations sur l'hôte et des choses qui pourraient vous intéresser sont: les **interfaces réseau** (adresse IPv4 et **IPv6**), les noms d'utilisateur, le temps de fonctionnement, la version du serveur/OS et les **processus** en cours d'exécution (peuvent contenir des mots de passe)... **SNMP** contient beaucoup d'informations sur l'hôte et vous pourriez trouver intéressants : **Interfaces réseau** (adresse IPv4 et **IPv6**), Noms d'utilisateur, Temps de fonctionnement, Version du serveur/OS, et **processus**
### Paramètres dangereux **en cours** (peut contenir des mots de passe)....
À partir de [https://academy.hackthebox.com/module/112/section/1075](https://academy.hackthebox.com/module/112/section/1075) ### **Paramètres dangereux**
| Paramètres | Description | **Depuis** [**https://academy.hackthebox.com/module/112/section/1075**](https://academy.hackthebox.com/module/112/section/1075)\*\*\*\*
| ---------- | ----------- |
| `rwuser noauth` | Fournit un accès à l'ensemble de l'arbre OID sans authentification. | | **Paramètres** | **Description** |
| `rwcommunity <community string> <adresse IPv4>` | Fournit un accès à l'ensemble de l'arbre OID indépendamment de l'endroit où les demandes ont été envoyées. | | ------------------------------------------------- | ------------------------------------------------------------------------------------- |
| `rwcommunity6 <community string> <adresse IPv6>` | Même accès qu'avec `rwcommunity` avec la différence d'utiliser IPv6. | | `rwuser noauth` | Donne accès à l'arbre OID complet sans authentification. |
| `rwcommunity <chaîne de communauté> <adresse IPv4>` | Donne accès à l'arbre OID complet indépendamment de l'origine des requêtes. |
| `rwcommunity6 <chaîne de communauté> <adresse IPv6>` | Même accès qu'avec `rwcommunity` avec la différence de l'utilisation d'IPv6. |
### Paramètres SNMP de Microsoft Windows
| **Valeur MIB** | **Description** |
| ------------------------------------------------ | ------------------------------------------------------------------------------------- |
| `1.3.6.1.2.1.25.1.6.0` | Processus Système. |
| `1.3.6.1.2.1.25.4.2.1.2` | Programmes en cours d'exécution. |
| `1.3.6.1.2.1.25.4.2.1.4` | Chemin des processus. |
| `1.3.6.1.2.1.25.2.3.1.4` | Unités de stockage. |
| `1.3.6.1.2.1.25.6.3.1.2` | Nom du logiciel. |
| `1.3.6.1.4.1.77.1.2.25` | Comptes utilisateurs. |
| `1.3.6.1.2.1.6.13.1.3` | Ports locaux TCP. |
### Cisco ### Cisco
Jetez un coup d'œil à cette page si vous avez un équipement Cisco: Consultez cette page si vous utilisez du matériel Cisco :
{% content-ref url="cisco-snmp.md" %} {% content-ref url="cisco-snmp.md" %}
[cisco-snmp.md](cisco-snmp.md) [cisco-snmp.md](cisco-snmp.md)
@ -157,59 +170,57 @@ Jetez un coup d'œil à cette page si vous avez un équipement Cisco:
## De SNMP à RCE ## De SNMP à RCE
Si vous avez la **chaîne** qui vous permet d'**écrire des valeurs** dans le service SNMP, vous pourriez être en mesure de l'utiliser pour **exécuter des commandes**: Si vous avez la **chaîne** qui vous permet d'**écrire des valeurs** dans le service SNMP, vous pourriez l'exploiter pour **exécuter des commandes** :
{% content-ref url="snmp-rce.md" %} {% content-ref url="snmp-rce.md" %}
[snmp-rce.md](snmp-rce.md) [snmp-rce.md](snmp-rce.md)
{% endcontent-ref %} {% endcontent-ref %}
## SNMP massif ## **SNMP massif**
[Braa](https://github.com/mteg/braa) est un scanner SNMP massif. L'utilisation prévue d'un tel outil est bien sûr de faire des requêtes SNMP - mais contrairement à snmpwalk de net-snmp, il est capable de faire des requêtes sur 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. [Braa](https://github.com/mteg/braa) est un scanner SNMP massif. L'utilisation prévue d'un tel outil est, bien sûr, de faire des requêtes SNMP mais contrairement à snmpwalk de net-snmp, il est capable de requêter 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.
Braa implémente sa propre pile SNMP, il n'a donc pas besoin de bibliothèques SNMP comme net-snmp. Braa implémente sa PROPRE pile snmp, donc il n'a pas besoin de bibliothèques SNMP comme net-snmp.
**Syntaxe:** braa \[chaîne de communauté]@\[adresse IP du serveur SNMP]:\[id iso] **Syntaxe :** braa \[Chaîne de communauté]@\[IP du serveur SNMP]:\[id iso]
``` ```
braa ignite123@192.168.1.125:.1.3.6.* braa ignite123@192.168.1.125:.1.3.6.*
``` ```
Cela peut extraire beaucoup de Mo d'informations que vous ne pouvez pas traiter manuellement. Cela peut extraire beaucoup de Mo d'informations que vous ne pouvez pas traiter manuellement.
Alors, cherchons les informations les plus intéressantes (à partir 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/)): 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/)) :
### Appareils ### Appareils
L'une des premières choses que je fais est d'extraire les données MIB sysDesc .1.3.6.1.2.1.1.1.0 de chaque fichier pour déterminer les appareils à partir desquels j'ai collecté des informations. Cela peut facilement être fait en utilisant la commande grep suivante: L'une des premières choses que je fais est d'extraire les données MIB sysDesc .1.3.6.1.2.1.1.1.0 de chaque fichier pour déterminer de quels appareils j'ai récolté des informations. Cela peut facilement être fait en utilisant la commande grep suivante :
``` ```
grep ".1.3.6.1.2.1.1.1.0" *.snmp grep ".1.3.6.1.2.1.1.1.0" *.snmp
``` ```
### Identifier la chaîne privée ### Identifier la chaîne privée
Par exemple, si je peux identifier la chaîne de communauté privée utilisée par une organisation sur ses routeurs Cisco IOS, je pourrais éventuellement utiliser cette chaîne de communauté pour extraire les configurations en cours d'exécution de ces routeurs. La meilleure méthode pour trouver de telles données est souvent liée aux données SNMP Trap. Ainsi, en utilisant à nouveau le grep suivant, nous pouvons parcourir rapidement de nombreuses données MIB en recherchant le mot clé "trap": Par exemple, si je peux identifier la chaîne de communauté privée utilisée par une organisation sur leurs routeurs Cisco IOS, alors je pourrais potentiellement utiliser cette chaîne pour extraire les configurations en cours de ces routeurs. La meilleure méthode pour trouver de telles données a souvent été liée aux données de Trap SNMP. Donc, encore une fois, en utilisant le grep suivant, nous pouvons analyser rapidement une grande quantité de données MIB à la recherche du mot-clé « trap » :
```bash ```bash
grep -i "trap" *.snmp grep -i "trap" *.snmp
``` ```
### Noms d'utilisateur/mots de passe ### Noms d'utilisateur/mots de passe
Une autre zone d'intérêt est les journaux, j'ai découvert qu'il y a des appareils qui contiennent des journaux dans les tables MIB. Ces journaux peuvent également contenir des tentatives de connexion échouées. Pensez à la dernière fois que vous vous êtes connecté à un appareil via Telnet ou SSH et que vous avez involontairement entré votre mot de passe comme nom d'utilisateur. Je recherche généralement des mots clés tels que _fail_, _failed_ ou _login_ et j'examine ces données pour voir s'il y a quelque chose de valeur. Un autre domaine d'intérêt concerne les journaux, j'ai découvert que certains appareils conservent des journaux dans les tables MIB. Ces journaux peuvent également contenir des tentatives de connexion échouées. Pensez à la dernière fois que vous vous êtes connecté à un appareil via Telnet ou SSH et que vous avez involontairement saisi votre mot de passe comme nom d'utilisateur. Je recherche généralement des mots-clés tels que _échec_, _échoué_ ou _connexion_ et j'examine ces données pour voir s'il y a quelque chose de valeur.
```bash ```bash
grep -i "login\|fail" *.snmp grep -i "login\|fail" *.snmp
``` ```
### Emails ### Courriels
Les emails
```bash ```bash
grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" *.snmp grep -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" *.snmp
``` ```
## Modification des valeurs SNMP ## Modification des valeurs SNMP
Vous pouvez utiliser _**NetScanTools**_ pour **modifier les valeurs**. Vous devrez connaître la **chaîne privée** pour le faire. Vous pouvez utiliser _**NetScanTools**_ pour **modifier des valeurs**. Vous devrez connaître la **chaîne privée** pour pouvoir le faire.
## Spoofing ## Usurpation
S'il existe une ACL qui ne permet à certaines adresses IP que de consulter le service SMNP, vous pouvez usurper l'une de ces adresses à l'intérieur du paquet UDP et renifler le trafic. S'il existe une ACL qui n'autorise que certaines adresses IP à interroger le service SMNP, vous pouvez usurper l'une de ces adresses dans le paquet UDP et renifler le trafic.
## Examen des fichiers de configuration SNMP ## Examiner les fichiers de configuration SNMP
* snmp.conf * snmp.conf
* snmpd.conf * snmpd.conf
@ -222,35 +233,36 @@ Port_Number: 161 #Comma separated if there is more than one.
Protocol_Description: Simple Network Managment Protocol #Protocol Abbreviation Spelled out Protocol_Description: Simple Network Managment Protocol #Protocol Abbreviation Spelled out
Entry_1: Entry_1:
Name: Notes Name: Notes
Description: Notes for SNMP Description: Notes for SNMP
Note: | Note: |
SNMP - Simple Network Management Protocol is a protocol used to monitor different devices in the network (like routers, switches, printers, IoTs...). SNMP - Simple Network Management Protocol is a protocol used to monitor different devices in the network (like routers, switches, printers, IoTs...).
https://book.hacktricks.xyz/pentesting/pentesting-snmp https://book.hacktricks.xyz/pentesting/pentesting-snmp
Entry_2: Entry_2:
Name: SNMP Check Name: SNMP Check
Description: Enumerate SNMP Description: Enumerate SNMP
Command: snmp-check {IP} Command: snmp-check {IP}
Entry_3: Entry_3:
Name: OneSixtyOne Name: OneSixtyOne
Description: Crack SNMP passwords Description: Crack SNMP passwords
Command: onesixtyone -c /usr/share/seclists/Discovery/SNMP/common-snmp-community-strings-onesixtyone.txt {IP} -w 100 Command: onesixtyone -c /usr/share/seclists/Discovery/SNMP/common-snmp-community-strings-onesixtyone.txt {IP} -w 100
Entry_4: Entry_4:
Name: Nmap Name: Nmap
Description: Nmap snmp (no brute) Description: Nmap snmp (no brute)
Command: nmap --script "snmp* and not snmp-brute" {IP} Command: nmap --script "snmp* and not snmp-brute" {IP}
Entry_5: Entry_5:
Name: Hydra Brute Force Name: Hydra Brute Force
Description: Need Nothing Description: Need Nothing
Command: hydra -P {Big_Passwordlist} -v {IP} snmp Command: hydra -P {Big_Passwordlist} -v {IP} snmp
``` ```
<img src="../../.gitbook/assets/i3.png" alt="" data-size="original">\ ```markdown
**Astuce de prime de bug**: **inscrivez-vous** à **Intigriti**, une plateforme de prime de bug premium créée par des pirates, pour les pirates! Rejoignez-nous sur [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) aujourd'hui et commencez à gagner des primes allant jusqu'à **100 000 $**! <img src="../../.gitbook/assets/i3.png" alt="" data-size="original">
**Conseil pour les bug bounties** : **inscrivez-vous** sur **Intigriti**, une plateforme de bug bounties premium créée par des hackers, pour des hackers ! Rejoignez-nous sur [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) dès aujourd'hui, et commencez à gagner des récompenses jusqu'à **100 000 $** !
{% embed url="https://go.intigriti.com/hacktricks" %} {% embed url="https://go.intigriti.com/hacktricks" %}
@ -258,10 +270,11 @@ Entry_5:
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary> <summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* Travaillez-vous dans une entreprise de **cybersécurité**? Voulez-vous voir votre entreprise annoncée dans HackTricks? ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF**? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! * Vous travaillez dans une **entreprise de cybersécurité** ? Vous souhaitez voir votre **entreprise promue dans HackTricks** ? ou souhaitez-vous accéder à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family) * Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection d'[**NFTs**](https://opensea.io/collection/the-peass-family) exclusifs
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Obtenez le [**merchandising officiel PEASS & HackTricks**](https://peass.creator-spring.com)
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** * **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-moi** sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Partagez vos astuces de piratage en soumettant des PR au** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **et au** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud). * **Partagez vos astuces de hacking en soumettant des PR au** [**dépôt hacktricks**](https://github.com/carlospolop/hacktricks) **et au** [**dépôt hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details> </details>
```

File diff suppressed because one or more lines are too long